Как стать автором
Обновить

А я у тебя точно первый? Или как выбрать (первый) язык программирования в ${year} году

Время на прочтение4 мин
Количество просмотров16K

Я часто вижу, как разработчики разного уровня «сеньёрности» доказывают, иногда аргументированно, иногда просто «авторитетно», почему стоит или не стоит выбирать определенный язык программирования в качестве первого. YouTube полон роликов по типу «Какой язык программирования учить первым», «Стоит ли учить «такой-то» язык первым», «Лучшие языки программирования для изучения в «таком-то» году» и т.д. Авторы стабильно обновляют такие видео и получают не менее стабильные просмотры. Схожая тенденция наблюдается на тематических форумах и в блогах.  Из этого можно сделать вывод, что тема актуальна для сотен новичков, только начинающих разбираться в программировании. 

За свой IT'шный бэкграунд (в рамках универа, работы и личного интереса) я изучил порядка 15-ти языков программирования.  Пробовал функциональные, структурные, логические и объектно-ориентированные. Мне есть с чем сравнить и на основе чего делать выводы.

Для начала необходимо понять, зачем тебе нужен язык программирования. Поэтому свой первый язык следует выбирать, отталкиваясь от 1-го из 4-х следующих сценариев:

Первое – Пробудить интерес к программированию. Это однозначно Python или JS. Человеческий мозг получает удовольствие, когда у него что-то получается, когда он видит результат своего труда, причем чем быстрее, тем лучше. У Python много готовых библиотек и богатая кодовая база. Существует множество туториалов, по которым можно быстро сделать что-то рабочее и прикольное: ботов, простенькое GUI, скрипты для операционных систем и ещё множество несложных интересных проектов.

К тому же, Python довольно прост в изучении, у него приятный и понятный синтаксис, а пробелы не дают превратить код в мешанину. Немаловажно и то, что материалов по изучению очень много.

Главное здесь, как можно быстрее и нагляднее продемонстрировать себе или другим видимый результат. По причине наглядности сюда же добавил JavaScript. На нём сразу можно сделать что-то прикольное на веб-страничке, поиграться с браузером и т.д. Плюс порог вхождения низкий, и есть куча хороших обучающих материалов. А впоследствии возможно переехать на TypeScript.

Оба языка популярные, вакансий на них немало.  Отличный вариант для старта. Я думаю, что это must have языки для изучения программирования в школе. Поначалу, главное – это привить интерес к программированию, а не готовить девятилетних «сеньёров», стартующих с Erlang, которые будут обсуждать SOLID и Best practice на переменах между уроками ИЗО и Физкультуры.

Второй сценарий – это Программирование интересно само по себе и человек хочет развиваться как разработчик и инженер. Здесь однозначным решением будет C++. Это мощный универсальный язык со статической типизацией и качественным ООП. С памятью поработаете, на указатели посмотрите, поиграете с шаблонами, потыкаетесь в разного рода оптимизации. Стандарты 11-го и 14-го года призваны облегчить «мучения». Не зря в народе С++ в шутку называют «Язык языков». Однако в каждой шутке есть только доля шутки. С ним можно наработать очень хорошую программерскую базу, а потом решить, хочешь ты развиваться в нем дальше или нет. Разработчики редко учат один язык и пишут на нём всю жизнь. Если разобраться в С++ на вменяемом уровне, то изучить любой другой язык в дальнейшем не составит труда.

Следующий вариант – Человек на 100% определился со сферой, в которой хочет работать. Образно, ты горишь идеей разрабатывать мобильные приложения. Это мечта, цель и смысл жизни. Тогда можно сразу приступить к изучению соответствующего ДЛЯ ДАННОЙ СФЕРЫ языка.

Хочется писать под Android – это очевидно Kotlin, если под IOS – то Swift. Прокатиться на двух стульях сразу поможет JS с его React Native.

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

Если ты только начинаешь, то не так важно какой язык осваивать первым. Главное, чётко определиться с направлением, которое тебе интересно: frontend, backend, мобильная разработка или data science, микроконтроллеры и т.д. Так и спектр языков сузится и шанс ненавидеть свою будущую работу уменьшится.

Я рекомендую начинать с мейнстримных языков, потому что по ним больше материалов, учить их легче, да и первую работу найти проще. На экзотику, типа Scala или Rust, можно пересесть потом, имея некоторый опыт.

Заключительный сценарий - Нужно быстро начать зарабатывать деньги. Если ты отлично знаешь любой язык программирования и разбираешься в его экосистеме – без денег ты не останешься. Но существует ряд языков, зная которые, найти работу проще. Они распространены повсеместно, вакансий на них много, глубокой спецификой не отличаются. По этой причине на них охотнее берут разработчиков без опыта, нежели на языки типа Scala, куда неопытных программистов никогда не нанимают.  Кто бы что ни шутил и ни говорил, такими языками являются: PHP, Java, JavaScript и 1С (если ты некрещёный). Тема сегрегации по языкам программирования достойна отдельного обстоятельного разговора.

Универсальной таблетки не существует. Выбор первого и не первого языка программирования зависит от конкретного человека. Этот выбор чаще всего обоснован сферой интересов, амбициями и навыками. Для некоторых важный критерий выбора языка - деньги. Но любые программисты получают достойную зарплату. К тому же, деньги — это временная мотивация, которая работает, пока ты зарабатываешь недостаточно.

Напишите в комментариях какой язык программирования был вашим первым, и что вы думаете о нем сейчас. Мне суперинтересно об этом почитать. У меня, как и у многих, первым был Pascal :)


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

Теги:
Хабы:
+8
Комментарии53

Публикации