EngX Code Review: начни писать код еще лучше и построй эффективный процесс код-ревью.


Самые простые языки программирования для изучения — существуют ли они и как их определить?

При большом желании и должной мотивации научиться программированию может каждый, кто умеет читать, писать и работать с клавиатурой, — в этом уверен менеджер по обучению и развитию в EPAM Виталий Шульга, который рассказывает, с чего начать.

Виталий Шульга

Первый шаг — определите цель обучения

— Глобально можно выделить две цели, с которыми человек может захотеть начать изучать программирование, — поясняет Виталий — Это:

  1. Стать программистом: зарабатывать деньги и получать от этого удовольствие; или
  2. Усовершенствовать навыки: например, человек работает физиком, математиком, биологом, и ему нужен язык программирования, чтобы решать прикладные задачи в своей сфере деятельности.

— Мне кажется, что со вторым случаем проще. Для работы с определенными научными инструментами предназначены специализированные языки программирования: MATLAB, язык R. Более того, есть разные пакеты для физиков, математиков со своими языками. Выбирать здесь не нужно: изучаешь, что необходимо.

— А вот в первом случае все гораздо интереснее. Если человек решил стать гонщиком, он не ищет самую легкую в управлении машину. Так и здесь: при желании создавать комплексные системы и работать с большими данными и с высокой нагрузкой самый легкий язык программирования изучать не приходится. В любом случае будет тяжело. Причем язык программирования зачастую будет не самой сложной частью. Для того, чтобы работать программистом сегодня, недостаточно знать только язык программирования. Нужно осваивать множество дополнительных библиотек, инструментов и т. д.

Второй шаг — какой язык выбрать

— Тем не менее, есть несколько признаков, которые определяют первоначальную сложность освоения. Когда человек начинает изучать язык, он не может создать ни одной адекватной программы. Весь процесс обучения приводит к тому, что результата нет. Это очень демотивирует. По аналогии — когда приходишь в тренажерный зал, чтобы набрать или сбросить вес: за две недели вряд ли ты получишь какой-то результат. Так и здесь: есть языки, в которых период освоения дольше, а есть — в которых короче. Чем больше времени и усилий нужно потратить, тем больше людей опускает руки и бросает изучать язык.

Одна из сложностей в языках программирования — управление памятью. Если в языке есть автоматическое управление памятью (memory management), то с ним работать будет легче. Если нет, возникает дополнительный уровень сложности. Это может очень сильно усложнить жизнь на старте.

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

  • Python;
  • Java;
  • C#;
  • JavaScript.

— Какие бы я не рекомендовал для старта? Те, в которых автоматического управления памятью нет. Придется делать это вручную, что достаточно сложно:

  • C;
  • C++.

Java

Если выбирать среди «легких языков» – обратите внимание на Java. В нем четко прослеживается объектно-ориентированная модель. Это хороший язык, чтобы с него начать путь в мир программирования. По нему есть огромный пласт литературы, плюс большое количество программистов работает с ним — то есть высока вероятность найти знакомого, с кем можно профессионально общаться и получать советы.

JavaScript

JavaScript используется в основном для front-end-разработки, он дико популярен последние годы. Больше количество доступной информации, комьюнити, тренинги. JavaScript известен прежде всего как основа front-end, но также используется для back-end задач и embedded-систем.

Python

— Python считается еще более простым для освоения — возможно, потому что это минималистичный язык. Он интерпретируемый, то есть его не нужно компилировать перед запуском. Синтаксические конструкции в Python выглядят проще. Банально не нужно ставить «;» в конце строчки, — улыбается Виталий, — Python используют больше для анализа данных, машинного обучения, скриптов и легковесных приложений.

C#

— C# больше подходит для Back-end-разработки и используется для создания игр. Зная C#, можно работать над чем угодно — точно так же, как и с Java, и с Python. Если человек хорошо знает один их этих языков, то он может решать практически любую инженерную задачу.

SQL

— SQL — это язык запроса к базам данных. Его тоже стоит выучить в самом начале. Есть множество профессий, в которых знание SQL — must-have. И если добавить к нему Python, можно хорошо вырасти. Это язык, который легко начать изучать, и тут действительно за полчаса можно получить первый результат. Он хорошо дебажится (debug – это отладка программ). Когда решаешь задачу, нужно проверить работоспособность промежуточного кода. SQL справится с этим быстрее всего. В нем легковесные среды для написания запросов. Каждому разработчику независимо от языка понадобится знать SQL.

Третий шаг — с чего начать обучение

— На деле ни для одного из языков не нужны никакие знания: ни математика, ни английский. Количество ключевых слов, которые есть в языке программирования, ограничено. Обычно их около 50. То есть их просто можно выучить. Если человек не знает английского, но знает другой язык, или умеет читать на латинице — этого уже хватит, чтобы изучать программирование. Большинство документации будет на английском. Но есть огромное количество статей и видео и на других языках – испанском, китайском, русском.

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

Выводы

— В Harvard есть известный курс по Computer Science. В его рамках студенты изучают даже Scratch. Это язык программирования, который часто используют для обучения детей. Язык, где можно мышкой накликать какой-то алгоритм. Но вряд ли на нем можно написать какое-то промышленное программное обеспечение. Вообще на курсе достаточно поверхностно проходят по каждому языку. Такой подход тоже уместен — можно попробовать несколько языков, а потом работать с тем, который удобнее и больше нравится. В этом случае решение принимается на основе личного практического опыта, а не по статям в интернете и советам друзей.

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

Для анализа популярности языков часто обращаются к индексу Tiobe — он определяет популярность языков программирования. На сегодняшний момент топ-7 выглядит так:

  1. Python;
  2. C;
  3. Java;
  4. C++;
  5. C#;
  6. Visual Basic;
  7. JavaScript.

И вот тот же С хоть и на втором месте, но разобраться с ним тяжелее, и сейчас на нем не так много вакансий. Visual Basic я бы не рекомендовал изучать на старте, это очень специфический язык. Поэтому доверять только индексам тоже неправильно.

Также можно изучить опрос разработчиков на stackoverflow.co. Там есть разные рейтинги. Например, самые любимые и ненавистные языки программирования.

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

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

Version Control with Git
Immerse in Git and lay the groundwork for learning programming.
View coursearrow-right-blue.svg
Материалы по теме
Следи за новостями на любимых платформах