Это расшифровка лекции «Как выбрать первый язык программирования» CEO Хекслета Кирилла Мокевнина о том, что действительно важно при выборе языка программирования и с чего можно начать обучение. Пересказываем главные идеи c небольшими дополнениями.
С чего начать
Сам по себе язык для новичка вторичен, а его главная задача — не научить плохому и не мешать процессу обучения. Изучение программирования можно сравнить с изучением английского языка. Недостаточно знать отдельные слова, чтобы уметь складывать из них предложения. В программировании важнее уметь мыслить алгоритмически, чем знать синтаксис конкретного языка.
Рассмотрим пример: новичку, который выучил основы языка программирования, нужно алгоритмически посчитать, сколько раз в тексте встречается каждое слово. Скорее всего, решить эту задачу будет сложно — нужно понимать, как подойти к ней, как производить вычисления и пошагово двигаться к результату. Для этого и нужно алгоритмическое мышление.
Кроме того, в основе почти всех языков программирования лежат одинаковые концепции, а их базовые конструкции за редким исключением идентичны. Ядро каждого языка программирования — переменные, константы, функции, циклы, рекурсии и конструкции из базовой алгебры. Эти сущности присутствуют в каждом языке.
Составьте свое первое резюме: Вы можете бесплатно опубликовать свое резюме в нашем сервисе «Хекслет-CV» и получить советы по его улучшению от разработчиков и HR-менеджеров
Как только ядро освоено, можно переходить к работе с коллекциями и агрегатными функциями. Стоить учиться решать задачи с ними вне зависимости от спецификаций конкретного языка программирования: воспроизводить решение сначала в псевдокоде, а затем — в конкретном языке.
Какие подходы к выбору первого языка существуют
Только после того, как все перечисленные этапы пройдены, нужно принимать решение о выборе первого языка программирования. Существует две стратегии:
Ресурсы ограничены и сменить работу нужно как можно скорее. В этом случае стоит посмотреть, какие языки программирования в вашем регионе упоминаются в вакансиях чаще всего. В последние два года в их список входят PHP, Python, Ruby и Javascript. Все это — динамические языки, которые используются в прикладной разработке. Их изучение — вероятно, самый простой вход в индустрию.
Есть время и хочется разобраться глубже. Здесь стоит присмотреться к семейству языков Lisp (Common Lisp, Racket, Scheme). Они кардинально отличаются от языков программирования, перечисленных в первом пункте: на практике они редко используются, но хорошо подходят для развития алгоритмического мышления. Это языки, у которых «отсутствует синтаксис», поэтому они не искажают впечатления об устройстве основных концепций программирования. Ядро Lisp относительно маленькое, но оно хорошо комбинируется — благодаря этому можно решать множество разных задач, используя только базовые конструкции.
Выводы
Язык программирования накладывает те или иные ограничения на концепции программирования, скрывает или искажает их суть. Некоторые из них могут не только мешать обучению, но и требовать дополнительных знаний.
Если важна скорость входа в программирование, стоит подумать в стороны динамических языков. У статических языков программирования есть свои сферы применения, но порог входа в них выше, а некоторые реализации избыточно сложны для новичка. Например, если на JavaScript перевернуть строку можно 10 строчками кода, то в Java их будет больше 100 строчек.
Когда вы освоите азы первого языка программирования, стоит дополнить его другим, отличным от текущего, языком. Это поможет понять, как реализации основных концепций программирования могут отличаться от языка к языку.
Никогда не останавливайтесь: В программировании говорят, что нужно постоянно учиться даже для того, чтобы просто находиться на месте. Развивайтесь с нами — на Хекслете есть сотни курсов по разработке на разных языках и технологиях