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

XakeR

Member
Регистрация
13.05.2006
Сообщения
1 912
Реакции
0
Баллы
16
Местоположение
Ukraine
Я знаю 7 языков программирования, при этом 5 из них я выучил самостоятельно. На собственной практике я проверил, какие методы помогают быстро прогрессировать, а от каких не стоит ожидать хороших результатов. В этом материале хочу поделиться опытом и рассказать, как эффективнее осваивать языки программирования.

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

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


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

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

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

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

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


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

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

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

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

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


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

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

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

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


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

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

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

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


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

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

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

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

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


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

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


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

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

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

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

***

Подведем итог: для изучения языков программирования полезно фокусироваться на практических задачах, чаще писать код своими руками и постоянно анализировать собственные и чужие решения. Впрочем, необязательно внедрять все рекомендации сразу и следовать им неукоснительно — пробуйте разные варианты и в итоге найдете оптимальную для себя методику
 
198 162Темы
635 133Сообщения
3 618 414Пользователи
drakkon12345Новый пользователь
Верх