Игра Яндекс Практикума
Игра Яндекс Практикума
Игра Яндекс Практикума

7 советов изучающим языки программирования

Я знаю 7 языков программирования, при этом 5 из них я выучил самостоятельно. В статье делюсь опытом и рассказываю, как эффективнее учиться.

2К открытий5К показов

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

Автор статьи — Андрей Устьянцев, ведущий аналитик направления Big Data в Лиге Цифровой Экономики.

Учитесь на реальных проектах

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

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

Ключевое слово для этого совета — «интересно». Предвкушение классного софта или избавления от рутины будут мотивировать вас учиться с коэффициентом x10.

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

Создавайте алгоритмы

Владение синтаксисом — не главное. Как владение зеркальной фотокамерой не делает из человека фотографа, так и знание технической документации языка не превращает его в хорошего программиста. 80% качественного кода — это алгоритм.

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

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

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

Анализируйте чужой код

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

  1. Как иначе решается ваша задача? 
  2. Ваш код более оптимален? 
  3. Что можно улучшить в чужом коде? 

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

Избегайте копипаста

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

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

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

Используйте минимум сторонних библиотек

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

Поймите правильно: я не против внешних библиотек. Но специализированные библиотеки типа Pandas — это как изучение нового языка программирования. У них свой синтаксис функций и методов, свои особенности применения. Если вы только начинаете изучать язык программирования, освойте базовый синтаксис и только потом приступайте к специализированным библиотекам.

Главный риск использования чужих библиотек — код перестанет работать в самый неподходящий момент. А искать ошибки в чужом коде — то еще «удовольствие». На моей практике такие коды ломались, когда полно срочных задач и нет времени вдумчиво разбираться, что и почему не работает. Что приходилось делать? Правильно — быстро с нуля писать свой код на основе базового синтаксиса и минимума сторонних библиотек, потому что при подключении каждой первой внутренний голос ехидно шептал: «А вдруг и в этой библиотеке глюк?»

Более гипотетический, но все же возможный риск — чужой код может содержать вирусы. В крупных компаниях за этим следят специалисты информационной безопасности, поэтому «занести» сторонний код во внутренний контур непросто. Если в перспективе вы планируете работать в крупной компании, про копипаст придется забыть. Исключение — распространенные библиотеки типа Pandas, которые уже стали негласным стандартом отраслей.

Стремитесь сразу писать правильно

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

Не увлекайтесь бесплатными вебинарами

Люди по-разному воспринимают информацию: кто-то быстрее учится по книгам, другим нужен преподаватель. Ничто из этого ни хорошо ни плохо — просто следует учитывать это при планировании обучения. Однако один из популярных форматов я все же не рекомендую новичкам.

На первых этапах освоения языка программирования советую отказаться от обучающих видео и вебинаров из открытого доступа. У них есть два серьезных недостатка:

  1. Много рекламы и «воды», то есть бесполезной информации. Это пустая трата времени, которое лучше посвятить практике.
  2.  Бессистемная подача материала, которая грозит новичкам хаосом в голове.

Сказанное не исключает того, что встречаются бесплатные материалы с качественным содержанием. Например, практические приемы решения задач и лайфхаки хорошо ложатся на базовые знания.

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

Следите за новыми постами
Следите за новыми постами по любимым темам
2К открытий5К показов