Что дальше?
Поздравляем! Вы освоили базовые концепции, составляющие основу любой программы на любом языке.

А что дальше?

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

К сожалению, далеко не у всех есть подобный человек.

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

Предположим, мы хотим сделать одностраничный сайт на Node JS (серверный javascript). Вам нужно знать на базовом уровне:

  • Объекты
  • Прототипы
  • Исключения
  • tcp/ip, понятие порта
  • Протокол http (коды, ошибки)
  • Роутинг
  • Request/Response
  • Функции как объекты первого рода
  • Пакетный менеджер, зависимости
  • Шаблонизация

Ну, и само программирование, написание кода, проработка концепций. И множество ошибок и проблем.

Мы в Хекслете не стараемся как можно скорее сделать сайт, а стараемся дать чёткую, сильную основу для погружения в программирование. При этом проекты и разработка программ присутствуют в каждом курсе.
Например, в одном из следующих курсов мы построим библиотеку для работы с графическими фигурами, а потом свою файловую систему. А в конце концов мы придём к созданию полноценных сайтов и веб-приложений.
Весь изучаемый материал можно разделить на две категории:

  1. Язык
  2. Языковая платформа

Вот что говорит об этом Джон Скит, №1 на stackoverflow, автор C# in Depth, одной из лучших книг по .NET, разработчик в Google и 14-кратный MVP:
Многие люди не знают, как это делать, или просто не запариваются — они предпочитают задавать вопросы. Еще многие прыгают с головой в языки и платформы до того, как будут действительно готовы. Лично я пытаюсь изучать вещи по одной, зато как следует, но есть куча людей, которые говорят: «Я совершенно новенький в программировании. Сейчас я пишу приложение под Android на Java, взаимодействующее с SQLite. И этот код не работает», — окей, а это проблема Java, проблема Android или проблема SQLite? Вряд ли все три сразу. Что вы сделали, чтобы понять, что является источником проблемы?

Поймите, я не докапываюсь, я пытаюсь научить людей помогать самим себе. Я твёрдо убежден, что понимание «как работает мой язык», отдельное от «как работает моя платформа» — это реальное преимущество в отношении того, как быстро вы сможете разобраться и начинать применять что-то при изучении нового.

Мы полностью поддерживаем Джона и строим своё обучение таким образом, что сначала изучаем язык, и только потом платформу. Да, этот путь не кажется таким же захватывающим, как сразу окунуться в боевой проект. Наш путь довольно долгий и местами тяжёлый, но если вы его пройдете, то будете значительно опережать многих других начинающих разработчиков.
Изучение языка
Существует заблуждение, что выучить язык программирования – это и есть научиться программировать. На самом деле умение программировать – это способность проанализировать задачу, сформулировать алгоритм её решения и реализовать этот алгоритм в коде.

Без первых двух шагов третий не имеет смысла. Знание конкретных конструкций языка никак не поможет составить алгоритм.

Примитивная задача по выводу списка всех файлов в папке (с подпапками) требует понимания древовидных структур и умения использовать рекурсию.

В этом смысле обучение программированию мало отличается от изучения математики и физики в школе. После небольшой теории идёт долгий период решения всевозможных простых и сложных задач. Так, шаг за шагом, происходит познание и приобретение навыков.

Обучение на Хекслете захватывает практически все возможности современного JavaScript, но основной акцент в обучении строится именно на умении программировать, которое не зависит от языка и определяет способ мышления.
Локальная среда
Какой бы путь обучения вы не выбрали, вам нужно настроить локальное окружение для разработки и научиться запускать код. Этот шаг может быть очень сложным и психологически, и технически, особенно если ваша основная операционная система – Windows.