Как стать разработчиком

Быть правильным программистом в правильной кампании классно. Задачи интересные, условия хорошие, коллеги — умные, творчества — сколько хочешь.

Это — некоторые из причин популярности поисковых запросов вроде «как стать программистом» или «курсы программирования с нуля». Проблема в том, что научиться программировать сложнее, чем кажется на первый взгляд. Нельзя пройти трёхдневный интенсив, прочитать книгу «С++ за 14 дней» и стать программистом.

На пятом шаге придётся особенно нелегко

Дисклеймер: способ ниже не является оптимальным с математической точки зрения. Никто не проводил соответствующих исследований, поэтому дальше — моё субъективное мнение.

Выбрать цель

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

Но это ещё не цель. Чего ты хочешь? Работать в Гугле? Разрабатывать игры? Создать язык программирования, который станет популярным? Помогать сообществу? Сделать свой Фейсбук? Это — примеры долгосрочных целей.

Оптимальная краткосрочная цель — найти работу в нужной сфере. Нужен геймдев — посмотри на Варгейминг, разработка популярных сервисов — Яндекс.

Нужные вакансии легко найти, даже если они закрыты. Требования нужной вакансии — план работы на ближайшие месяцы.

Важно понимать, что везде нужны разные разработчики. Если ограничить вакансии веб-стеком, то в кампании нужны младшие разработчики с разными уклонами: во фронтенд, исследование данных или усиленное знание конкретных библиотек. Поэтому становиться «просто джуниором» не оптимально — нужно как можно конкретнее представлять, как себя представлять, чтобы получить работу.

Приготовиться много программировать

Писать код тебя никто не научит. Страуструп не научит С++, Гвидо Ван Россум — Питону. Не научат профильные курсы и книги. Репетитор тоже не научит.

Научиться программировать можно только самостоятельно. Способ тоже только один — программировать. Это не отменяет книги, курсы и лекции, но главное — писать код.

Учебные материалы — вспомогательный материал для написания кода. Учить до появления вопросов не прагматично.

Выбрать первый язык

В ВУЗе меня учили программировать на Паскале, потом — на С++. Этот подход не лишён плюсов. Паскаль даёт понять базовые примитивы, не отвлекаясь на сложные вещи, а С++ — разобраться в низкоуровневых подробностях. Правда, оптимальным этот подход назвать нельзя.

Прагматичный способ начать программировать — выучить Питон. Он не сложный, универсальный и популярный.

На начальных этапах важно время между началом действия и получением удовольствия от завершения. С Питоном это время мало. Это достигается за счёт простоты языка и огромного количества написанного кода, который легко использовать.

Выбрать первый проект

Надо попробовать что-то сделать. Что угодно. Сложить два числа. Посчитать факториал. Сделать блог.

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

После этого стоит начать делать свой проект. Несложная игра, простой веб-сервис, маленькое приложение. В процессе появятся вопросы. Получение ответов на них — правильная учёба.

Найти наставника

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

Такой человек поможет с поиском ответа на вопрос, на который ты уже три дня не можешь найти ответ — весь Гугл прочитан, друзья опрошены, а решения нет.

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

Наставник — ключевой элемент оптимального обучения разработке. Без него можно, но оптимально точно не получится.

Кстати, слово «наставник» тут не подходит — оно высокопарное и размытое. Такой человек — скорее тренер или старший товарищ.

Получать удовольствие

Удовольствие от программирования — обязательное условия для того, что бы стать программистом. Если не прёт — можно и не начинать.

Этот пункт относится в основном к тем, кого программирование привлекает высокой зарплатой и удобными условиями. Подумайте ещё раз.

Для остальных это — ещё одни повод задуматься о правильности выбранного пути. Готовы сидеть до утра над проектом, который интересен? Уже есть идея?

На первый взгляд, удовольствие — необязательное условие, но это не так. У правильного разработчика должны гореть глаза.

Знать английский

Документация на английском. Общение с коллегами на английском. Комментарии на английском. Код на английском. Всё на английском.

Если ты не можете быстро понять, что написано на странице документации — подтяни английский.

Я не говорю о том английском, когда тебя принимают за носителя. Я говорю о «английском на уровне чтения технической документации».

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

Прокачать софт-скилз

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

Это нужно уметь делать понятно и честно. И это не просто.

Может показаться, что в этом нет ничего сложного. «Ну что я, не объясню что ли?». Скорее всего нет. Всё это — такие же навыки, как и умение писать код, их надо тренировать. Глупо рассчитывать на то, что оно само получится. Если ты ждёшь, что будешь днями писать код без контактов с внешним миром — тебя обманули.

Я раньше считал, что это не так важно — мол, главное — хорошо писать код. Это тоже не так. Даже наоборот — работодатели, которых я спрашивал, уверены, что это важнее технических навыков. Поэтому не уделять внимание таким вещам — не прагматично.

Итого

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

Фотография в заголовке — офис «Блондинки.ру». Взята из статьи на vc.ru.

А комикс про «С++ за 21 день» взял с Пикабу.

← к статьям