Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
53 changes: 48 additions & 5 deletions modules/10-basics/10-hello-world/ru/README.md
Original file line number Diff line number Diff line change
@@ -1,9 +1,52 @@
Изучение нового языка программирования традиционно начинается с 'Hello, World!'. Это простая программа, которая выводит приветствие на экран и заодно знакомит с новым языком — его синтаксисом и структурой программы. Этой традиции уже больше сорока лет, поэтому и мы не будем ее нарушать — в первом же уроке напишем программу `Hello, World!`.

Эта программа будет выводить на экран текст:
Изучение нового языка программирования традиционно начинается с программы 'Hello, World!'. Это простая программа, которая выводит приветствие на экран и знакомит с синтаксисом и структурой нового языка.

```text
Hello, World!
Hello, World!
```

![Hello World](./assets/hello-world.png)

Этой традиции уже больше сорока лет, и мы тоже начнем с нее. В первом уроке мы напишем программу `Hello, World!`. На JavaScript эта программа выглядит так:

```javascript
console.log('Hello, World!');
```

Команда `console.log()` выводит на экран текст, указанный в скобках. Вместо примера можно написать любой другой текст.

```javascript
console.log('Хекслет - школа программирования');
```

Команда остается той же, меняется только содержимое скобок. Чтобы программа понимала, что это именно текст, он заключается в кавычки. Можно использовать одинарные `'...'` или двойные `"..."`, но открывающая и закрывающая кавычки должны совпадать.

```javascript
console.log("Хекслет - школа программирования");
```

Чтобы вывести что-то на экран, нужно дать компьютеру специальную команду. В языке JavaScript такая команда — `console.log()`.
## Значение символов

Код состоит из команд, и каждая из них должна быть написана в определенной форме. Помимо букв, в коде важны кавычки `'` и `"`, скобки `()` и знаки препинания. Пропущенный или перепутанный знак приведет к тому, что программа не запустится. Попробуйте определить, какую ошибку допустили в каждой из строк?

```javascript
console.log("it's JavaScript"
console.log(it's JavaScript")
consol.log("it's JavaScript")
console.log('it's JavaScript")
consolelog("it's JavaScript")
```

Даже небольшое отличие, например одна лишняя буква или другой знак, может привести к тому, что программа не будет работать. Это относится и к регистру, то есть к различию между большими и маленькими буквами. Если в обычном тексте `Привет` и `привет` выглядят одинаково, то для JavaScript это разные слова. JavaScript считает `console.log`, `Console.Log` и `CONSOLE.LOG` разными командами, и сработает только первый вариант.

## Где практиковаться

Теория усваивается лучше, когда параллельно запускаешь код и видишь результат. Для этого подходит консоль браузера (DevTools), где команды выполняются построчно. Все, что встречается в уроке, стоит пробовать [в консоли браузера](https://developer.chrome.com/docs/devtools/console/).

Как это работает технически? Любой написанный код передается в движок JavaScript, который этот код выполняет и выводит на экран результат его работы.

```text
Код Движок JS Экран
┌──────────────────┐ ┌───────────┐ ┌──────────────┐
│ console.log(…) │──→│JavaScript │──→│ Hello, World!│
└──────────────────┘ └───────────┘ └──────────────┘
```
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
2 changes: 1 addition & 1 deletion modules/10-basics/20-comments/index.js
Original file line number Diff line number Diff line change
@@ -1 +1 @@
// You know nothing, Jon Snow!
// TODO: добавить функцию приветствия
10 changes: 9 additions & 1 deletion modules/10-basics/20-comments/ru/EXERCISE.md
Original file line number Diff line number Diff line change
@@ -1 +1,9 @@
Создайте однострочный комментарий с текстом: `You know nothing, Jon Snow!`.
Вы пишете программу и понимаете, что одну часть нужно доделать позже. Чтобы не забыть, программисты оставляют себе заметки прямо в коде — TODO-комментарии.

Добавьте в файл такой комментарий:

```javascript
// TODO: добавить функцию приветствия
```

Когда вернётесь к этому месту позже, комментарий напомнит, что здесь ещё есть незавершённая работа.
20 changes: 20 additions & 0 deletions modules/10-basics/20-comments/ru/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -38,3 +38,23 @@ console.log('I am the King');
```

Такие комментарии, обычно, используют для документирования кода, например, функций.

## Служебные комментарии

В процессе работы вы будете встречаться с таким кодом в нашем редакторе:

```javascript
// BEGIN

// END
```

*BEGIN* и *END* здесь — это обычные комментарии, которые никак не влияют на работу программы. Они показывают, куда писать код задания.

```javascript
// BEGIN
<здесь ваше решение>
// END
```

Увидев *BEGIN* и *END*, пишите свой код между ними, остальное оставляйте без изменений.
65 changes: 55 additions & 10 deletions modules/10-basics/40-instructions/ru/README.md
Original file line number Diff line number Diff line change
@@ -1,27 +1,72 @@
Инструкция — это команда для компьютера выполнить какое-то действие.
Команду `console.log('Hexlet')` мы можем назвать инструкцией, она говорит интерпретатору JavaScript, что нужно делать. Таких инструкций может быть сколько угодно. Каждая из них выполняется после того, как закончилась предыдущая, и так мы из простых элементов получаем сколь угодно большую и сложную программу.

Программа на JavaScript состоит из набора инструкций. Чаще всего каждая инструкция записывается с новой строки. Иногда инструкции дополнительно разделяют точкой с запятой `;`, но во многих случаях её можно не ставить.
```text
Инструкция 1: console.log('Hello') → выполнена
Инструкция 2: console.log('World') → выполнена
Инструкция 3: console.log('!') → выполнена
```

Вот пример кода с двумя инструкциями.
Вот пример кода с двумя инструкциями. Эти строки говорят компьютеру вывести фразы на экран.

```javascript
console.log('Mother of Dragons.');
console.log('Dracarys!');
console.log('Mother of Dragons.'); // Первая инструкция
console.log('Dracarys!'); // Вторая инструкция
```

При запуске этого кода, на экран последовательно выводятся два предложения:
Результат выполнения:

```text
Mother of Dragons.
Dracarys!
```

Теоретически, инструкции можно написать друг за другом без переноса на новую строчку:
## Порядок имеет значение

Интерпретатор JavaScript выполняет код строго в том порядке, в котором вы его написали. Если поменять строки местами:

```javascript
console.log('Mother of Dragons.'); console.log('Drakarys!');
console.log('Dracarys!');
console.log('Mother of Dragons.');
```

на экране они тоже поменяются:

```text
Dracarys!
Mother of Dragons.
```

Результат на экране будет таким же, но такой код неудобен для чтения, поэтому инструкции располагают друг под другом.
## Альтернативная форма записи

Почему это важно знать? Инструкция — это единица исполнения. Интерпретатор, программа которая запускает код на JavaScript, выполняет инструкции строго по очереди. И мы, как разработчики, должны понимать этот порядок и уметь мысленно разделять программу на независимые части, удобные для анализа.
Обычно инструкции пишут на отдельных строках, но их можно записать и на одной строке через `;`:

```javascript
console.log('Mother of Dragons.'); console.log('Dracarys!');
```

Обе версии работают одинаково, но второй вариант читать сложнее. Поэтому инструкции почти всегда пишут по одной на строку.

## Зачем это нужно

Сейчас мы пишем очень простые программы, но со временем они начнут усложняться, и один из самых важных навыков, который поможет их понимать, — это способность разбивать (в голове) программу на независимые инструкции. Только так можно разобраться в том, что в коде происходит. Ниже пример для привлечения внимания, понимать его пока не надо:

```javascript
const isPrime = (number) => {
if (number < 2) {
return false;
}

let divider = 2;

while (divider <= number / 2) {
if (number % divider === 0) {
return false;
}
divider += 1;
}

return true;
};
```
2 changes: 1 addition & 1 deletion modules/10-basics/45-testing/index.js
Original file line number Diff line number Diff line change
@@ -1 +1 @@
console.log(9780262531962);
console.log(10);
8 changes: 2 additions & 6 deletions modules/10-basics/45-testing/ru/EXERCISE.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,3 @@
Просто тренировка. Выведите на экран число 9780262531962.
В магазине на полке осталось 10 яблок. Напишите программу, которая выводит это число на экран.

```text
9780262531962
```

Поэкспериментируйте с выводом. Передайте туда другое число или строку. Посмотрите на ответ системы, попробуйте его перевести и понять.
Затем попробуйте вывести другое число и посмотрите, что покажет система проверки. Это поможет научиться читать сообщения об ошибках тестов.
Loading