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


vlada_maestro / shutterstock
Разобраться в мотивации
Перед началом обучения задайтесь вопросом, для чего вам это нужно. Если вы собираетесь программировать только потому, что у разработчиков высокие зарплаты, из этого ничего хорошего не выйдет.
В этой сфере нет никакой романтики, как опрометчиво полагают многие. Здесь нужно ежедневно много думать и читать, и человеку без математического склада ума будет просто тяжело работать. Это означает в том числе, что вы десять часов можете провести за решением одной задачи, пробуя различные варианты.
У программистов рутинная и механическая работа, и к этому нужно быть готовым. Правда, некоторые разработчики почему-то обижаются, когда их занятие не ассоциируют с творчеством. Тогда они находят красоту в коде: «О, вот эта реализация очень красивая». Странно это слышать, поскольку реализация либо работает, либо нет, а красота кода — от лукавого.
Приводим два экспертных мнения насчет того, является программирование творчеством или нет. Директор центра по подбору специалистов SymbioWay Даниил Пилипенко полагает, что это зависит от задачи:

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



Языки программирования Java и Python занимают высокие позиции в большинстве рейтингов. Советуем присмотреться к ним сегодня, чтобы стать специалистом завтра.
Практиковаться на реальных проектах
Итак, у вас есть огромное желание и мотивация изучать программирование, вы определились с языком — теперь начинайте развиваться в выбранном направлении. Читая статьи и книги, вы узнаете, как научиться основам программирования. Это правильный подход в начале пути, но без практического применения все полученные знания быстро улетучатся из головы. Практика — вот основа всего.
Если у вас пока нет работы программиста, начинайте писать свой стартап-проект. Разумеется, из этого ничего не выйдет — в 99,99% случаев так и происходит. Зато вы получите бесценный опыт и «потрогаете» программирование своими руками.
Искать работу с первых шагов
Отправлять резюме на подходящие вакансии нужно сразу, как только вы хотя бы поверхностно изучили предмет. У компаний разные требования к разработчикам начального уровня, а некоторые готовы обучать. В любом случае, получив даже джуниорскую позицию, вы будете обучаться программированию «в бою» на реальных проектах и уже зарабатывать своим ремеслом деньги.
Как минимум, изучение вакансий на рынке труда поможет понять стек технологий: вы будете учиться предметно, а не распыляться, пытаясь ухватить знания во всех сферах. В каждом языке есть много библиотек и фреймворков, но требуются обычно три-четыре.

Поэтому просматривайте вакансии, чтобы понять, что вообще нужно учить и на что обратить внимание. Выполняя тестовые задания, вы также оцените свои силы и отследите личный прогресс.
Развиваться вне рабочих задач
Если вы получили заветную должность, не стоит думать, будто этого достаточно для развития. Нужно постоянно читать техническую литературу, статьи на профильных ресурсах и перенимать опыт коллег.
Программирование — это область, которая движется очень быстро. Если не читать литературу, вы отстанете от прогресса и не будете знать о новых решениях, которыми сейчас пользуется весь мир. А значит, через некоторое время просто станете никому не нужны как специалист.
Изучайте блоги разработчиков — отечественные и англоязычные, — читайте статьи на «Хабре» и других ресурсах, следите за новостями фреймворка, с которым работаете.
Делать код-ревью
Очень важно общаться с коллегами — на кухне офиса или после работы за стойкой бара. Вы обсуждаете конкретные технические решения, и они могут подсказать такие, которых не описывают книги и документация. А также просите их сделать
код-ревью — это просмотр его другим разработчиком с целью анализа и выявления ошибок.

Если ваш код проверит другой человек, это обезопасит его от багов. Но гораздо важнее, что этот процесс — обмен опытом. Благодаря код-ревью вы можете почерпнуть новые решения из чьей-то практики.
Учиться на основе последних тенденций
Старайтесь получать опыт, работая с самыми современными технологиями. Например, в случае с PHP нужно практиковаться на фреймворках, а не на LAMP — наборе программного обеспечения из Linux, Apache, MySQL и PHP. Первые сейчас популярны и быстро развиваются, а второе — пережиток прошлого.
Важно посещать IT-конференции — они дают представление о последних тенденциях. Многие ошибочно полагают, что на профильных мероприятиях учат, как нужно работать. Ничего подобного: здесь рассказывают, на какой этап сейчас переходят технологии, а разработчик уже сам должен найти литературу по этой теме и прочитать, чтобы быть в курсе.
Например, на событии выступает спикер из «Яндекса», рассказывая, что они стали хранить файлы иначе, чем раньше. Он не объяснит в деталях, что нужно делать, — лишь обозначит тезисы. Слушателям самостоятельно нужно вникнуть в тему и узнать, как реализовывать это.
Вот несколько широко известных профильных конференций для разработчиков:
Компании EPAM, «Яндекс», Google и другие, а также столичные вузы часто проводят бесплатные митапы для всех желающих.
Мероприятия полезны разработчикам, на них можно не только научиться новому, но и просто пообщаться, считает ведущий курса по Python в Skillbox Вадим Шандринов:
— Во-первых, можно отдохнуть и поесть пиццы. Без комментариев. Во-вторых, поговорить с другими программистами, расспросить, как они работают, поудивляться. И иногда возникает «вау”-эффект: а что, так можно было? По-новому смотришь на свои решения, переосмысливаешь их. В-третьих, на конференциях выступают спикеры, рассказывают о новинках и своих подходах к решению задач. Это очень помогает, когда хотел бы изучить новую библиотеку, но нет времени. А тут тебе всё рассказали, к тому же можно задать вопросы.