Гогин Артем, Senior BigData Engineer в GridDynamics, ранее работал в Мегафон и Сбербанк, расскажет, как с нуля стать начинающим разработчиком.
Что нужно, чтобы стать разработчиком
Сейчас, с обилием курсов по программированию, очень много возможностей стать программистом любого направления. Многие курсы нацелены на подготовку практиков – людей, которые готовы выполнять поставленные бизнес задачи. Поэтому курсы обычно направленны не только на изучение общих знаний и особенной языка программирования, сколько на изучение определённых инструментов или фреймворков – готовых решений для разработки. Но выбрав почти любой язык или любой инструмент и поняв его синтаксис, новички сталкиваются с одним и тем же препятствием, которое для многих становится финалом их карьеры разработчика.
Я говорю о паттернах объектно-ориентированного программирования (ООП), структурах данных и сложностях алгоритмов. Ведь если выучить синтаксис языка и его базовые функции способно большинство начинающих программистов, то разобраться в сложности алгоритмов и правильном применении ООП удается не всем. Особенно эти темы коварны тем, что их незнание не помешает новичкам продолжать заниматься программированием и даже реализовывать собственные проекты.
Однако при применение подобных решений в реальных системах с большой нагрузкой, такие разработки могут вызвать незапланированную нагрузку на промышленные сервера при увеличении объема обрабатываемых данных. Знание структур данных и ООП обязательно для большинства работодателей и эти темы могут очень активно спрашиваться на собеседованиях.
Простой путь — стать разработчиком SQL
Но есть способ стать программистом и не погружаясь в структуры данных и ООП. Ответ – сконцентрироваться на языке запросов к базам данных — SQL. Сейчас стабильное направление на рынке IT занимает обработка и аналитика больших и не очень данных.
Все важные данные зачастую хранятся в базах данных, и для работы с этими данными достаточно только SQL. Этот язык предлагает массу полезного функционала, который не требует погружения в алгоритмы и производительность. Самое ценное — уметь использовать этот функционал. Поэтому для новичков достаточно обозначить для себя список SQL функций, которые необходимо изучить, и по очереди познакомиться со всем списком. Имея практические навыки работы с SQL не составит труда найти первую работу в мире IT и больших данных. Чек лист по изучению SQL следующий:
- Команды select/ from/where/group by/order by.
- Виды join.
- Чем отличается primary key от foreign key.
- Чем отличается truncate от delete.
- Оконные функции.
- Индексы в базах данных.
- Партиции в базах данных.
Как стать разработчиком с нуля
Как водится в обществе, «программисты это те, кто хорошо знают математику или это люди с аналитическим складом ума», рассказывает Давид Григорян, разработчик ПО. Разумеется, в этом утверждении есть исключения, и для того, чтобы стать программистом, вовсе не нужно иметь награды по олимпиаде или заканчивать технический ВУЗ. И это именно тот путь, который пришлось пройти лично мне. Однако, стоит учесть, что для некоторых специальностей, как, например, разработчик ИИ, знания математики будет одним из пунктов в требованиях, но часто даже и это работодатели отпускают.
- Первое, что нужно посмотреть — это вакансии в вашем регионе. Если в вашем регионе в основном требуются веб разработчики, то учится на разработчика игр не несёт в себе никакого смысла. Многие могут возразить этому пункту, так как на сегодняшний день — удалённая работа начинает приобретать всё более выраженный характер. Но в большинстве случаев, это не относится к новичкам.
- Второе, после того как вы ознакомились с потребностями рынка, нужно определится, в какой области вы больше всего заинтересованы. А спектр выбора достаточно велик: разработка игр, мобильных приложений, веб приложений (front-end, back-end), machine learning и другое. Справедливости ради нужно отметить, что разработка игр — это одна из высоко конкурентных областей. В среднем, условия работы и оплата труда в game development, как правило, ниже чем в других областях, это обусловлено тем, что на одно место приходится множество кандидатов.
- Далее, после выбора той области, в которой вы решили работать — остаётся самое сложное. Это учится. Постоянно. Если вы работающий человек, то можно постараться уделять 1 час своего времени до или после работы на обучение. Вы не всё будете понимать — это нормально. Программисты с 5-10 летнем стажем в своей работе тоже сталкиваются с чем-то впервые и не понимают как это работает. Но если что-то изучать продолжительное время и делать какие-то мини проекты — это обязательно даст свои плоды.
Примерный план обучения может выглядеть следующим образом: выбираете курс, читаете отзывы по нему и если вас всё устраивает — можете приступать к учёбе. Параллельно с этим, было бы неплохо найти себе ментора, у которого есть коммерческий опыт работы, и который будет вести вас на протяжении всего вашего обучения. На сайтах курса обычно расписывают, чем занимается тот или иной специалист, поэтому у вас выстроится более четкая картина того, чем вам предстоит заниматься в будущем. Одно очень важное замечание. Курсы просто предоставляют вам материалы. То как вы их освоите и то как вы их будете прорабатывать — полностью зависит от вас. Просто прослушать курс и ничего не делать — это 100% путь в никуда.
- Делайте домашние проекты. В дальнейшем эти наработки можно будет показывать на собеседованиях как портфолио и это будет весомым аргументом в вашем резюме.
- Изучайте английский язык. Большинство документаций и проблем в той или иной области программирования описаны на английском языке. Поэтому вам стоит хотя бы понимать технические термины, чтобы можно было подчерпнуть что-то полезное для себя.
- Поиск стажировок. Ознакомьтесь заранее с теми требованиями, которые просят работодатели у будущих стажеров и подкрепите эти знания. На сегодняшний день существуют множество различных программ стажировок, и это отличная возможность в будущем перейти в штат на full-time позицию. Зачастую этот пункт является «финальным трамплином», который позволит вам получить заветную профессию!
Рекомендации
- Не стоит никогда сравнивать свой темп обучения с другими людьми. Все люди разные и скорость усвоения материалов тоже разная. Но все в конечном счёте приходят к одинаковому результату.
- Если вы столкнулись с какой-либо проблемой и не можете ее решить на протяжении часа — не стоит насильно продолжать её решать. Встаньте, отдохните минут 15 и вернитесь к задаче снова. Если вас опять постигла неудача — отложите задачу на день — другой. Вашему мозгу нужно время, чтобы осмыслить проблему и найти решение в «фоновом режиме».
- Не старайтесь создать свой фейсбук. Это не продуктивная стратегия начала обучения. Ставьте перед собой маленькие задачи.
- Посещайте по возможности конференции в той области, в которой вы хотите работать. Возможно, там вам удасться найти нужного себе ментора и новые профессиональные знакомства.
- Некоторые сообщества создают группы для новичков и вместе решают какие-либо задачи. Так вы сможете поддерживать мотивацию и просить о помощи у более опытных коллег.
Пошаговый план для начинающего разработчика
Для начала, я бы порекомендовал определиться, с какой целью вы изучаете программирование и в каком направлении хотите начать, говорит Андрей Сорокин, Senior Frontend Developer в Сити-Мобил. Это могут быть разные цели: создание сайтов, мобильных приложений, веб приложений, работа с данными. Для этого в сети полно вводного материала по каждой теме (статьи, видеоролики на youtube). Также, не будет лишним узнать и про базовые вещи любого IT-специалиста, такие как: что такое ОС, как работает сеть, командная строка.
После того, как вы определились с направлением, можно попробовать бесплатные курсы. Главная задача при этом понять, что Вам это действительно интересно, иначе Вам будет очень тяжело и вы каждый раз будете задумываться, надо ли вам это.
Если вы успешно прошли этот этап, то тут уже есть несколько сценариев: Пойти на платный курс, продолжить самостоятельное обучение, поступить в ВУЗ.
Первый вариант самый простой и подходит для тех, кому трудно находить и разбирать информации самостоятельно. На курсах вам преподают информацию структурировано и дают задания, в которых вы закрепляете знания.
Второй вариант уже более сложен, для тех, кому легко задать себе вопрос и найти на него ответ в интернете. При этом я советую ставить себе маленькие цели и решать их с помощью найденной информации. Например, я хочу сделать мобильное приложение — калькулятор. Сделав поиск по этой теме и реализовав такой функционал, вы применяете только что полученные знания на практике и почувствуете, что не зря потратили на это время.
Прежде, чем поступать в ВУЗ, нужно узнать о том, что будете изучать. Ведь может быть так, что хотите быть веб-разработчиком, а в университете преподают язык C++. В таком случае все равно придется изучать информацию самостоятельно, чтобы достичь своей цели. К тому же, это самый долгий вариант, при котором будут более глубокие знания в математике, алгоритмах и информационных системах, но не будет такого быстрого вхождения в профессию и практику.
Заключение
Я довольно давно работаю преподавателем на образовательных онлайн-платформах, рассказывает Алексей Шепелев. Видел много ребят, которые хотели бы освоить профессию программиста. Кто-то из них работает в кафе, а кто-то домохозяйка. Все с совершенно разным жизненным опытом и возрастом. Но они прекрасно делятся на 2 основные группы: те, кто прошёл курс полностью и выполнил все домашние задания и те, кто бросил начатое на полпути.
Мне кажется, что ключиком к успеху вхождения в IT является самомотивация. Сейчас в интернете существует огромное количество курсов по любым языкам программирования — платные и бесплатные. Преподаватели и менторы на любой вкус. Осталось только этого очень захотеть. Заставить себя начать учить что-то новое и не бросить обучение на полпути.
Если вы уговорили сами себя, почему вы не видите свою дальнейшую жизнь без программирования — отлично, полдела сделано. Думаю, сначала стоит попробовать себя в веб-разработке. Первым языком программирования я бы выбрал JavaScript — его в любом случае придётся учить. Затем выбираем то, как мы будем учиться. Если есть деньги на курсы, то идём на какую-нибудь авторитетную образовательную платформу. Там учиться будет намного проще. Если денег нет — то youtube ваш верный друг. Главное — идти до конца и никогда не бросать начатое, какие бы трудности вас ни поджидали на пути.