Основные возможности платформы Hexlet не доступны в вашем браузере. Пожалуйста, обновитесь.

Основы программирования

Знакомство с миром программирования и популярнейшим языком JavaScript. Этот курс рассчитан на новичков без опыта в программировании. На протяжении десятков уроков вы познакомитесь с фундаментальными понятиями и концепциями программирования, научитесь писать простые программы, понимать ошибки, которые возникают при запуске и выполнении кода, получите опыт работы с модулями в JavaScript и получите необходимую базу для движения к следующим курсам учебной программы «Профессия JavaScript-программист».

Содержание курса

  • 1

    Введение

    Цель: Познакомиться с курсом и программой обучения. Изучить не только содержание курса, но и понять мотивацию при изучении: зачем мы будем изучать те или иные аспекты программирования в целом и языка JavaScript в частности, почему эти аспекты важны.

    теория (10:24)  
  • 2

    Идеальная программа

    Цель: Посмотреть на гипотетическую идеальную программу чтобы лучше понимать к чему стремиться при написании кода. Познакомиться с важными понятиями декларативного и императивного описания кода и взглянуть на языки программирования через призму такой классификации. Ответить на вопрос «для кого пишется код?»

    теория (09:05)   тесты  
  • 3

    Первая программа

    Цель: Познакомиться со средой для написания простых программ, написать и запустить свою первую программу на языке JavaScript. Привыкнуть к процессу и поэкспериментировать с программным кодом.

    теория (03:26)   тесты  
  • 4

    Онлайн-среда Хекслета

    Цель: Познакомиться с онлайн-средой для выполнения практических упражнений на Хекслете. Научиться правильно читать задания, отправлять ваши решения на автоматическую проверку и читать сообщения об ошибках.

    теория (07:48)   тесты  
  • 5

    Арифметика

    Цель: Рассмотреть арифметические операции в языке программирования. Научиться использовать их для выполнения простых математических вычислений в своих программах и выяснить некоторые важные детали, касающиеся приоритета выполнения операций.

    теория (05:58)   тесты   практика  
  • 6

    Числа

    Цель: Рассмотреть неочевидности и сложности, связанные с работой с числами в языке программирования JavaScript. Узнать ответ на вопрос «что происходит при делении на ноль?» и «что будет, если работать с бесконечностью?». Изучить причины, по которым числа в компьютерах представлены тем или иным образом.

    теория (10:04)   тесты  
  • 7

    Структура

    Цель: Познакомиться со строительными блоками — инструкциями в языке JavaScript и рассмотреть структуру программ. Понять, чем по сути является любая программа (на любом языке), и каким образом происходит последовательное выполнение каждой строчки кода.

    теория (08:57)   тесты  
  • 8

    Константы

    Цель: Изучить понятие константы и научиться использовать константы для повышения модульности в программах. Рассмотреть пример использования константы для упрощения процесса вычисления и понять как работает константа в языке программирования JavaScript.

    теория (07:26)   тесты   практика  
  • 9

    Функции

    Цель: Изучить главный «строительный блок» программирования — функции. Рассмотреть пример где уместно написание и использование функции. Познакомиться с понятием «абстракции» с помощью функций. Понять структуру функции, как она создается и используется в коде, и что такое возврат функции и аргументы.

    теория (12:53)   тесты   практика  
  • 10

    Выражения

    Цель: Познакомиться с понятием «выражение», которое уже использовалось в ранних уроках. Понять очень важную концепцию вычисления в значение и использовать это понимание для чтения и написания кода. Изучить отличие выражений от инструкций, что позволит понимать происходящее в коде.

    теория (09:02)   тесты   практика  
  • 11

    Модули

    Цель: Изучить проблематику использования одинаковых имен для констант, функций и других идентификаторов в программах, и рассмотреть способ решения проблем с помощью модулей.

    теория (06:51)   тесты   практика  
  • 12

    Математика

    Цель: Рассмотреть несколько стандартных констант и функций, помогающих выполнять математические операции вроде возведения в степень или округления чисел.

    теория (05:03)   тесты   практика  
  • 13

    Булева алгебра

    Цель: Рассмотреть случай, когда кроме простых арифметических конструкций есть необходимость оперировать чем-то, что может быть «правдой» или «неправдой», научиться строить условия в программе.

    теория (10:29)   тесты   практика  
  • 14

    Условие с if

    Цель: Использовать понимание булевой алгебры для знакомства с конструкцией if, которая позволяет выполнять разный код в зависимости от того, является ли выражение истинным или ложным. Научиться записывать код с условиями в полной и краткой форме.

    теория (06:29)   тесты   практика  
  • 15

    Ошибки и отладка

    Цель: Разобраться с тем, какие бывают ошибки в процессе разработки, и научиться правильно реагировать на них, понимать и находить причины их появления.

    теория (13:24)   тесты   практика  
  • 16

    Автоматические тесты и модульное тестирование

    Цель: Понять каким образом можно справляться с логическими ошибками в коде используя автоматическое тестирование собственного кода. Познакомиться с одним из видов такого тестирования — модульным тестированием, и написать свои первые тесты.

    теория (11:47)   тесты   практика  
  • 17

    Рекурсивный процесс

    Цель: Рассмотреть необходимость повторного выполнения кода, и написать программу для вычисления факториала числа, следуя простой математической рекуррентной формуле.

    теория (10:08)   тесты   практика  
  • 18

    Итеративный процесс

    Цель: Рассмотреть понятие итеративного процесса, а также понять, что такое «состояние программы», и почему это понятие может быть важным в контексте программирования.

    теория (10:31)   тесты   практика  
  • 19

    Цикл while и переменные

    Цель: Понять, в какой парадигме мы изучали основы программирования до текущего урока, понять отличие декларативной парадигмы от императивной. Познакомиться с циклами и переменными.

    теория (17:35)   тесты   практика  
  • 20

    Отладочная печать

    Цель: Научиться решать проблемы с неработающим кодом используя метод отладки под названием «отладочная печать». Рассмотреть типичные проблемы с кодом, понять, как их обнаружить, проверить и исправить.

    теория (05:07)   тесты   практика  
  • 21

    Мутаторы

    Цель: Познакомиться со специальными конструкциями, упрощающими изменение переменных в языке JavaScript.

    теория (04:53)   тесты   практика  
  • 22

    Цикл for

    Цель: Изучить альтернативу конструкции while — цикл for.

    теория (04:10)   тесты   практика  
  • 23

    Строки и работа со строками

    Цель: Узнать что такое строка в программировании, для чего используются строки и почему они важны. Научиться работать со строками и манипулировать ими.

    теория (18:11)   тесты   практика  
  • 24

    Значение null

    Цель: Узнать о специальном типе и значении null и его семантическом смысле. Понять отличие null от undefined.

    теория (05:43)   тесты  
  • 25

    Switch

    Цель: Рассмотреть частный случай условия if и специальную конструкцию switch, позволяющую проще и удобнее работать с подобными условиями.

    теория (04:15)   тесты   практика  
  • 26

    Окружение

    Цель: Изучить очень важную тему, актуальную для программирования на любом языке — окружение.

    теория (14:50)   тесты   практика  
  • 27

    Функции и побочные эффекты

    Цель: Рассмотреть некоторые свойства функций, о которых важно задумываться при построении программы и ее анализе. Узнать о детерминированности функции, побочных эффектах и чистых функциях.

    теория (10:32)   тесты   практика  
  • 28

    Типы данных

    Цель: Познакомиться поближе с понятием "тип данных", рассмотреть примитивные типы данных в JavaScript. Понять отличие динамической типизации от статической, и изучить плюсы и минусы, которые возникают при использовании того или иного подхода, а главное — понять проблемы, которые помогает решить система типов.

    теория (15:17)   тесты   практика  
  • Course completed

  • Практика после курса

    Это практические задания, которые мы советуем выполнить после завершения курса. Задания помогут вам получить дополнительный опыт в программировании и закрепить полученные навыки.

    # Задание % завершений
    1 Переворот числа 81%
    2 Инвертированный регистр 89%
    3 Функция Аккермана 77%
    4 Счастливый билет 85%
    5 Переворот строки 83%
    6 Палиндром 81%
    7 Форматированное время 86%
    8 Преобразование DNA в RNA 89%
    9 Степень тройки 88%
    10 Счастливые числа 78%

Подробнее о курсе

Учащихся
10368
Сообщений
2691
Упражнений
21
Часов
17
Автор
Image

Кирилл Мокевнин

Со-основатель и технический директор образовательного проекта Hexlet. Со-организатор конференции Nastachku.ru. В прошлом руководил филиалом undev.ru в Ульяновске, а до этого работал в Qik (Skype). Создает инженерную культуру в компаниях и несет в массы XP, DDD и DevOps. Евангелист ментального программирования.