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

Обновлено:
183
Как стать разработчиком
Фото: stihi.ru
Гогин Артем
Гогин Артем
Senior BigData Engineer в GridDynamics
Алексей Шепелев
Алексей Шепелев
Ведущий разработчик, Альторос
Давид Григорян
Давид Григорян
Senior iOS Developer
Андрей Сорокин
Андрей Сорокин
Senior Frontend Developer, Сити-Мобил

Гогин Артем, Senior BigData Engineer в GridDynamics, ранее работал в Мегафон и Сбербанк, расскажет, как с нуля стать начинающим разработчиком.

Что нужно, чтобы стать разработчиком

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

Я говорю о паттернах объектно-ориентированного программирования (ООП), структурах данных и сложностях алгоритмов. Ведь если выучить синтаксис языка и его базовые функции способно большинство начинающих программистов, то разобраться в сложности алгоритмов и правильном применении ООП удается не всем. Особенно эти темы коварны тем, что их незнание не помешает новичкам продолжать заниматься программированием и даже реализовывать собственные проекты.

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

Простой путь — стать разработчиком SQL

Но есть способ стать программистом и не погружаясь в структуры данных и ООП. Ответ – сконцентрироваться на языке запросов к базам данных — SQL. Сейчас стабильное направление на рынке IT занимает обработка и аналитика больших и не очень данных.

Не смотря на название «большие», данные не обязательно должны занимать много места. Здесь важны именно подходы, которые берут свое начало из анализа гигантских объемов информации. Хотя эти подходы можно также применять и на незначительных объемах информации.

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

  1. Команды select/ from/where/group by/order by.
  2. Виды join.
  3. Чем отличается primary key от foreign key.
  4. Чем отличается truncate от delete.
  5. Оконные функции.
  6. Индексы в базах данных.
  7. Партиции в базах данных.

Как стать разработчиком с нуля

Как водится в обществе, «программисты это те, кто хорошо знают математику или это люди с аналитическим складом ума», рассказывает Давид Григорян, разработчик ПО. Разумеется, в этом утверждении есть исключения, и для того, чтобы стать программистом, вовсе не нужно иметь награды по олимпиаде или заканчивать технический ВУЗ. И это именно тот путь, который пришлось пройти лично мне. Однако, стоит учесть, что для некоторых специальностей, как, например, разработчик ИИ, знания математики будет одним из пунктов в требованиях, но часто даже и это работодатели отпускают.

  • Первое, что нужно посмотреть — это вакансии в вашем регионе. Если в вашем регионе в основном требуются веб разработчики, то учится на разработчика игр не несёт в себе никакого смысла. Многие могут возразить этому пункту, так как на сегодняшний день — удалённая работа начинает приобретать всё более выраженный характер. Но в большинстве случаев, это не относится к новичкам.
  • Второе, после того как вы ознакомились с потребностями рынка, нужно определится, в какой области вы больше всего заинтересованы. А спектр выбора достаточно велик: разработка игр, мобильных приложений, веб приложений (front-end, back-end), machine learning и другое. Справедливости ради нужно отметить, что разработка игр — это одна из высоко конкурентных областей. В среднем, условия работы и оплата труда в game development, как правило, ниже чем в других областях, это обусловлено тем, что на одно место приходится множество кандидатов.
  • Далее, после выбора той области, в которой вы решили работать — остаётся самое сложное. Это учится. Постоянно. Если вы работающий человек, то можно постараться уделять 1 час своего времени до или после работы на обучение. Вы не всё будете понимать — это нормально. Программисты с 5-10 летнем стажем в своей работе тоже сталкиваются с чем-то впервые и не понимают как это работает. Но если что-то изучать продолжительное время и делать какие-то мини проекты — это обязательно даст свои плоды.

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

  • Делайте домашние проекты. В дальнейшем эти наработки можно будет показывать на собеседованиях как портфолио и это будет весомым аргументом в вашем резюме.
  • Изучайте английский язык. Большинство документаций и проблем в той или иной области программирования описаны на английском языке. Поэтому вам стоит хотя бы понимать технические термины, чтобы можно было подчерпнуть что-то полезное для себя.
  • Поиск стажировок. Ознакомьтесь заранее с теми требованиями, которые просят работодатели у будущих стажеров и подкрепите эти знания. На сегодняшний день существуют множество различных программ стажировок, и это отличная возможность в будущем перейти в штат на full-time позицию. Зачастую этот пункт является «финальным трамплином», который позволит вам получить заветную профессию!

Рекомендации

  1. Не стоит никогда сравнивать свой темп обучения с другими людьми. Все люди разные и скорость усвоения материалов тоже разная. Но все в конечном счёте приходят к одинаковому результату.
  2. Если вы столкнулись с какой-либо проблемой и не можете ее решить на протяжении часа — не стоит насильно продолжать её решать. Встаньте, отдохните минут 15 и вернитесь к задаче снова. Если вас опять постигла неудача — отложите задачу на день — другой. Вашему мозгу нужно время, чтобы осмыслить проблему и найти решение в «фоновом режиме».
  3. Не старайтесь создать свой фейсбук. Это не продуктивная стратегия начала обучения. Ставьте перед собой маленькие задачи.
  4. Посещайте по возможности конференции в той области, в которой вы хотите работать. Возможно, там вам удасться найти нужного себе ментора и новые профессиональные знакомства.
  5. Некоторые сообщества создают группы для новичков и вместе решают какие-либо задачи. Так вы сможете поддерживать мотивацию и просить о помощи у более опытных коллег.

Из своего опыта и наблюдений скажу — что среднее время, когда человек с нуля может выйти на рынок программистом — является 6 месяцев — 1 год. Если в течение этого времени следовать тем рекомендациям и советам, которые были обозначены в этом материале — то у вас обязательно всё получится!

Пошаговый план для начинающего разработчика

Для начала, я бы порекомендовал определиться, с какой целью вы изучаете программирование и в каком направлении хотите начать, говорит Андрей Сорокин, Senior Frontend Developer в Сити-Мобил. Это могут быть разные цели: создание сайтов, мобильных приложений, веб приложений, работа с данными. Для этого в сети полно вводного материала по каждой теме (статьи, видеоролики на youtube). Также, не будет лишним узнать и про базовые вещи любого IT-специалиста, такие как: что такое ОС, как работает сеть, командная строка.

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

Если вы успешно прошли этот этап, то тут уже есть несколько сценариев: Пойти на платный курс, продолжить самостоятельное обучение, поступить в ВУЗ.

Первый вариант самый простой и подходит для тех, кому трудно находить и разбирать информации самостоятельно. На курсах вам преподают информацию структурировано и дают задания, в которых вы закрепляете знания.

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

Прежде, чем поступать в ВУЗ, нужно узнать о том, что будете изучать. Ведь может быть так, что хотите быть веб-разработчиком, а в университете преподают язык C++. В таком случае все равно придется изучать информацию самостоятельно, чтобы достичь своей цели. К тому же, это самый долгий вариант, при котором будут более глубокие знания в математике, алгоритмах и информационных системах, но не будет такого быстрого вхождения в профессию и практику.

Заключение

Я довольно давно работаю преподавателем на образовательных онлайн-платформах, рассказывает Алексей Шепелев. Видел много ребят, которые хотели бы освоить профессию программиста. Кто-то из них работает в кафе, а кто-то домохозяйка. Все с совершенно разным жизненным опытом и возрастом. Но они прекрасно делятся на 2 основные группы: те, кто прошёл курс полностью и выполнил все домашние задания и те, кто бросил начатое на полпути.

Мне кажется, что ключиком к успеху вхождения в IT является самомотивация. Сейчас в интернете существует огромное количество курсов по любым языкам программирования — платные и бесплатные. Преподаватели и менторы на любой вкус. Осталось только этого очень захотеть. Заставить себя начать учить что-то новое и не бросить обучение на полпути.

Если вы уговорили сами себя, почему вы не видите свою дальнейшую жизнь без программирования — отлично, полдела сделано. Думаю, сначала стоит попробовать себя в веб-разработке. Первым языком программирования я бы выбрал JavaScript — его в любом случае придётся учить. Затем выбираем то, как мы будем учиться. Если есть деньги на курсы, то идём на какую-нибудь авторитетную образовательную платформу. Там учиться будет намного проще. Если денег нет — то youtube ваш верный друг. Главное — идти до конца и никогда не бросать начатое, какие бы трудности вас ни поджидали на пути.

16
Обсудить Содержание