Как стать программистом с нуля
Программисты разных специализаций в дефиците на рынке труда. Профессия высокооплачиваемая, поэтому привлекает многих, кто решает, кем стать, или думает, какое направление выбрать, чтобы сменить надоевшую и малодоходную работу. Что нужно, чтобы с нуля стать разработчиком, «ПрофГид» спросил у самих программистов. Кстати, недавно центр профориентации ПрофГид разработал точный тест на профориентацию, который сам расскажет, какие профессии вам подходят, даст заключение о вашем типе личности и интеллекте.
Курсы, где можно научиться программировать с нуля:
Для начала стоит определиться: что вам ближе – интерфейсы или серверная часть. В зависимости от направления – front-end или back-end, будет варьироваться выбор языка, фреймворков, инструментов и навыков.
Самый простой вариант обучения – школы внутри больших компаний, где преподают практикующие программисты, а лучших выпускников по завершении курса берут в штат.
Если решили учиться самостоятельно, то стоит составить план и придерживаться его. Лучше всего попросить помочь знакомого разработчика набросать список к обучению. Если таковых нет, изучаем требования рынка через вакансии.
Как правило, для Junior-позиции необходимы:
- базовые знания языка программирования и сопутствующих фреймворков;
- знание инструментов сборки, чтобы собрать и запустить приложение;
- умение работать с GIT;
- навыки работы с базами данных, умение писать SQL-запросы;
- не лишним будут навыки работы с системами непрерывной интеграции.
Советую начинать обучение не с книг, а с видеоуроков и туториалов. А потом сразу же применять на практике изученный материал.
Изучение любого языка программирования начинается с изучения синтаксиса и базовых возможностей. Найдите ресурсы, предлагающие большое количество задач по каждой теме на выбранном языке. Надо решить не по одной задачке на каждую тему, а по несколько десятков. В результате вы должны прорешать 700–900 задач. Загружайте их на GitHub. Решение задач – это очень важный процесс, который позволит набить руку в кодинге. Теория на таких площадках обычно скудная, совмещайте обучение с прочтением качественных книг, охватывающих недостающую теорию.
У вас нет бэкграунда, поэтому на собеседовании вас обязательно спросят, почему вы решили стать программистом и в каких проектах уже успели поучаствовать.
Найдите курсы, которые предполагают разработку приближенного к реальному учебного проекта на современном стеке технологий.
Этот проект тоже загрузите на GitHub, укажите его в резюме, и вы сможете рассказать о нем на интервью. В результате у вас будет хороший профиль на GitHub, решено несколько сотен задач, прочтены книги и разработан проект, на котором вы изучите современные фреймворки.
Останется только подготовиться к прохождению интервью. Это последний ключевой этап. Найдите список самых популярных вопросов, которые задают на собеседовании, и записи реальных или тестовых интервью. Изучите это все. Хорошее резюме и внушительный GitHub-профиль в совокупности с качественной подготовкой к собеседованию неизбежно приведут вас к получению достойного офера.
До изучения любого языка может быть все что угодно. Люди с разным бэкграундом становятся программистами. Я встречал коллег, которые поменяли профессию на программиста после 40 лет. Также видел школьников, которые уже нарешали сотни задач и продолжают заниматься. И я уверен, они получат первую работу в качестве младшего программиста, как только достигнут совершеннолетия.
Разумеется, качественное профильное образование может послужить крепким фундаментом в вашей карьере, и если еще есть возможность получить его, то именно так и надо сделать. Вуз даст базовые знания, а еще будут проводиться стажировки, которые дадут опыт работы над реальным проектом.
Те, кто не заканчивал технических специальностей, тоже абсолютно спокойно могут пойти в программисты. Программирование – это не rocket science. Любой может научиться этому. Я сам окончил юрфак и изучал программирование уже потом самостоятельно. Просто кому-то понадобится больше времени, а кому-то меньше. Но если вы приложите необходимое количество усилий, не свернете на полпути, то обязательно достигнете цели.
Ещё курсы, где можно стать программистом с нуля:
Я, хоть и учился на программиста в универе, делал довольно длительный перерыв. Поэтому ворвался в коммерческую разработку только в 26 лет, но за 4 года дорос до техлида.
Важно понимать, что абсолютные новички никому не нужны, особенно когда вы не прямиком после университета. Поэтому необходимо пройти какие-то курсы, старательно делать на них ДЗ и, желательно, написать парочку пет-проектов. Все это обязательно стоит написать в резюме.
На собеседованиях главное – дойти до тестового задания. И уж на нем постараться как следует. По сути, это единственное, где вы можете произвести впечатление. Как правило, работы делаются небрежно, поэтому даже просто хорошо структурированный код даст свои плоды.
Первая компания – критический момент. Несмотря на отсутствие опыта, стоит как следует отнестись к ее выбору. Главное, что должно быть на проекте, – это современный технологический стек и процесс код-ревью. Код-ревью позволит быстрее прогрессировать, а современный стек направит этот прогресс в нужное русло.
А дальше все зависит от того, как быстро вы готовы поглощать знания. Часто новички задерживаются на работе, но я бы рекомендовал тратить внерабочее время на расширение кругозора, проходя курсы по технологиям из вашей области.
А еще «ПрофГид», кроме основного вопроса «Как стать программистом с нуля?», задал уточняющие:
- Сейчас программистами становятся так же, как 10–15 (или даже больше) лет назад, или уже есть другие входы в профессию?
- Раньше войти в профессию было легче или теперь это сделать проще?
- Если сейчас пришлось бы начинать заново, вы повторили бы свой путь в профессию или выстроили бы траекторию как-то по-другому, минуя какие-то этапы, или, наоборот, захотели бы пройти еще какой-то дополнительный, который, возможно, облегчил бы будущую работу, о которой теперь вы знаете всё?
И получил на них вот такие ответы.
В целом ничего не поменялось. Как и в любую другую профессию, вход в разработку ПО – это обучение и практика. Как и раньше, нужно много изучать и много практиковаться, и ты станешь отличным востребованным на рынке труда профессионалом. Нужно стараться браться за сложные задачи в сильной команде, для того чтобы расти быстрее.
Раньше в плане обучения было сложнее, но интереснее. Конкуренция была ниже, так как сейчас высокие ЗП и повышенный спрос толкают в профессию много новых кадров. Сейчас гораздо проще начать, например, тем же frontend-разработчиком. Порог входа очень низкий. Есть готовые библиотеки/фреймворки, как React или Vue, и отличная документация.
Если сейчас выбирать путь программиста с нуля, я бы занялся C#. Думаю, что в обозримом будущем этот язык будет очень популярным. Он сейчас занимает достойные позиции и будет их только укреплять. Раньше не было удаленки, был плохой интернет, было очень мало документации и примеров. Я учил С++ по бумажной книге, которую мне подарил товарищ.
Глядя в прошлое, я бы обошел стороной 1С и С++. Они оба имеют очень узкую специализацию, а освоить С++ в совершенстве сложно и займет много времени.
Хороший вуз будет подспорьем, не более. Чтобы научится программировать, лучше всего идти стажером в компанию, так как программирование – это про практику.
У нас в компании сейчас стажируется студент, и у него хорошо получается. В вузе дают общие знания, которые, конечно, пригодятся.
Важно постоянно заниматься саморазвитием. Программирование быстро развивается, и чтобы оставаться востребованным специалистом, нужно много читать и пробовать новые технологии. Быть гибким и не лениться. А остальное придет со временем. Важнее всего – мощная команда, тогда будет самый быстрый рост.
Общая мысль в том, что техническая специальность и математика будут большим плюсом, но никак не обязательным условием. У нас в компании работал парень, который закончил юридический, при этом занимался программированием.
Я по образованию программист, первый рабочий код написал в 5 классе, много лет посвятил разработке на С++. Сейчас не занимаюсь непосредственно написанием кода, но плотно и ежедневно общаюсь с программистами. Возможностей зайти в профессию или даже сферу сейчас стало намного больше. Есть шанс стать разработчиком не только у обладателей профильного образования, было бы желание.
Среди возможностей:
- огромное количество разнообразных курсов – платных, бесплатных, общих, узконаправленных, теоретических, практических и т. д.;
- разнообразные «тренажеры»;
- прохождение стажировок на базе компаний (можно получить как профильный опыт, так и после окончания войти в штат на Junior-позиции).
Активно развиваются комьюнити, где можно найти ответ на практически любой вопрос, и система менторства. При этом никто не отменял «стандартных» экспертных материалов и литературы.
Те, кто хочет влиться в профессию, находили способы сделать это как тогда, так и сейчас. Просто сейчас больше дверей открыто в силу кадрового голода, а компании сами прилагают много усилий, чтобы закрыть вакансии.
Я бы ничего не поменял. Весь опыт бесценен. С++ – сложный язык, но его изучение научило меня системности и упорству.
Путь в профессии у каждого свой, но если выводить нечто среднее, я бы посоветовал следующий алгоритм:
- Определиться со сферой деятельности.
- Изучить теоретические основы. Практика – это прекрасно, но и азы знать нужно.
- Подтянуть английский. Незнание языка сильно осложнит путь в профессии, ведь вся новая документация выходит именно на нем.
- Практиковаться. Делайте задания, усложняйте образцы задачек, пилите собственные проекты. Пусть они будут элементарные, не страшно. Главное – начать.
- Не бояться спрашивать совета. Какую библиотеку выбрать? А что лучше тут? А как тут?
- Найти стажировку. Ничего не мотивирует сильнее работы над реальными проектами.
Порог входа в профессию снизился. Сейчас наиболее простой способ с технической точки зрения – вход через тестирование или через no-code. Это можно сделать, даже не получая фундаментального образования, связанного с математикой, программированием и другими длительными программами бакалавриата и магистратуры в университетах. Есть множество других способов, один из них – прохождение курсов, после которого можно трудоустроиться в компанию, не имея опыта в IT. Мы одними из первых запустили такую практику в Napoleon IT School, когда обнаружили нехватку кадров. Мы набираем и выращиваем таланты, которые и по сей день работают у нас.
В нашей компании есть очень интересные примеры, как ребята пришли в IT. Например, Дарья – QA-engineer, три года работала преподавателем по робототехнике для детей с 6 до 15 лет, а потом пришла на курсы QA Napoleon IT School. Когда получила тестовое задание, поняла, что навыки очень близки к профессии. Два дня изучала тестовый лендинг, перечитала кучу статей о том, как оформлять баг-репорты и спустя пару бессонных ночей со страхом отправила задание на проверку. А другой сотрудник Азат работал в Красноармейском лесничестве. Чтобы подзаработать, брал заказы на обработку участков от вредителей. Втянулся в сферу IT, когда разработал сайт для своей компании, а потом попал к нам в команду.
Сейчас 100 % легче попасть в IT. Конечно, для разработок, связанных с созданием новых технологических решений, необходимо фундаментальное образование.
Но сегодня IT настолько широко применяется абсолютно в разных сферах, где каких-то высокотехнологичных и прорывных решений не требуется. В 95 % случаев достаточно применения уже готовых решений, основанных на no-code. Это разработка, но она основана на других принципах, на более визуальных и простых. Вход для новых разработчиков очень простой.
Если бы сейчас я вновь становился человеком в IT, то пошел бы учиться в университет на фундаментальную длительную программу, но я бы всегда это сопрягал с изучением и применением своего опыта в том, что дает быстрые результаты. Либо пошел бы параллельно с этим на no-code курс и уже сразу бы начал делать проекты на нем, в процессе обогащаясь фундаментальными знаниями и непосредственным опытом для наиболее эффективного применения таланта.
Начал работать программистом более 15 лет назад. Тогда эта профессия была еще не так популярна, и в нее приходили больше по призванию, а не за деньгами. Классический типаж программиста того времени – это бородатый мужик с длинными немытыми волосами в вытянутой майке или свитере. Он обязательно слушал тяжелую музыку и постоянно пил пиво.
Начинать было очень сложно. Приходилось читать очень толстые и нудные книги по программированию, информация в которых ну никак не лезла в голову. Либо сидеть в интернете на тематических форумах и там черпать знания по крупицам от коллег по интересам.
Сейчас все намного проще, огромное количество информации на любой вкус с любой формой подачи. В интернете можно найти большое количество обучающих видео, статей с описанием практического применения знаний и онлайн курсов.
Если бы я сейчас становился программистом с нуля, я бы для себя определил два пути, в зависимости от того, есть ли у меня деньги или нет.
- Платные онлайн-курсы. По-моему, самый быстрый и эффективный способ войти в карьеру.
- Бесплатные обучающие видео на youtube, плюс бесплатные курсы и семинары. Немного сложнее чем платные курсы, но при большом желании более чем реально многому научиться.
Я больше 10 лет работаю программистом. Начинал с 1С, сейчас пишу на Java. Есть сертификат Java Oracle, веду курсы по Java для новичков. Мой путь развития в профессии был достаточно линейным – технический колледж, затем институт. Дальше я просто изучал то, что интересно, и развивался в том, что актуально.
Сейчас сфера IT очень манит новичков высокими зарплатами и разными возможностями. Огромное количество курсов, вебинаров, марафонов обещают вам, что через 5–10 месяцев вы войдете в IT и сможете работать из любой точки мира. Это не так. Чтобы стать мастером своего дела в любой отрасли, необходимо провести много часов, занимаясь этим делом на практике. Об этом реклама курсов чаще всего умалчивает.
С точки зрения возможностей, сейчас, конечно, намного проще войти в сферу IT, чем раньше. Необязательно получать профильное образование, достаточно просто определиться с направлением и внимательно его изучать. И не спешить. Не ждать плюшек с печеньками завтра, а решать задачи, развиваться в программировании, смотреть в суть и перестать бегать по верхам.
Мне всегда было интересно программирование, думаю, что так или иначе я бы к этому пришел. Мой совет тем, кто начинает, – не распыляться и не пытаться выучить все сразу. Выберите технологию, выберите направление и изучайте его. Как можно больше.
И всегда, всегда, всегда пишите код. Программирование – это не про «прочитать», это про «написать». Чем больше практики, тем быстрее придут ваши успехи и будет тот самый заветный офер из компании вашей мечты.
Подведем итоги:
- Среди программистов немало самоучек – разработчиков, совершенно самостоятельно освоивших профессию с нуля без фундаментальной вузовской базы.
- Пункт, прямо вытекающий из предыдущего: неважно, каким было базовое профобразование – гуманитарным, техническим, высшим, СПО. Нестрашно, если его вообще не было: есть программисты, которым для старта хватило курса средней школы. Но высшее образование все-таки большой полюс – это база, на которую накладываются все надстройки.
- Программирование – это не страшно, и не только для технарей до мозга костей. Главное – захотеть, и все получится. Лучший аргумент для вдохновения: среди разработчиков ПО немало бывших юристов, филологов, биологов и других гуманитариев.
- Главное в профессии программиста – практика: писать, писать и еще раз писать коды. Ну, конечно, сначала надо почитать, как их писать.
- Не надо пытаться объять необъятное и хвататься сразу за все – выберите определенное направление программирования и углубляйтесь в него.
- Знание английского очень упростит путь в профессии – вся новая документация выходит на этом языке.
- Курсы надо выбирать те, в программе которых есть разработка учебного проекта, максимально приближенного к реальному, обязательно на современном стеке технологий. Тренировочный проект можно представить в портфолио.
- Самый простой и перспективный вариант обучения на программиста – школы в больших компаниях, где преподают практикующие программисты, а лучших выпускников по завершении курса берут в штат.
И, наверное, главный вывод: стать программистом с нуля можно в любом возрасте: хоть в школе, хоть в 40 лет, когда жизнь только начинается…
Вопрос вроде короткий, но отвечать на него можно очень долго. Попробую рассказать кратко. Рассмотрим на примере того, как стать с нуля java-разработчиком. Если вы будете следовать этому плану, вы с вероятностью 100 % станете разработчиком.
C нуля стать java-разработчиком быстрее чем за полгода вам вряд ли удастся. Давайте посмотрим, как распределить это время.
Я бы не рекомендовал глубоко изучать такие темы, как многопоточность, сериализацию, работу с сокетами, JSP. Эти темы вам с большой долей вероятности не пригодятся. Также не рекомендую заморачиваться с изучением алгоритмов – в бизнес-разработке их практически не используют, но при этом надо представлять, как устроены базовые структуры данных.
Итого за два месяца вы должны покрыть следующие темы:
Попробуйте реализовать пару проектов, например, на банковскую тематику – сервис расчета процентов по кредиту; сервис, эмулирующий работу банкомата. Здесь также должно хватить 2 месяцев.
За эти 4 месяца вы освоите программирование на JAVA и будете способны уже проходить интервью. Но основная задача, которую мы хотим достичь, – быть круче других соискателей начального уровня. Для этого я специально выделил дополнительные 2 месяца.
За эти последние два месяца вы набьете руку в написании микросервисов на Spring Boot, так как их надо будет написать очень много :)
Именно с таким набором знаний вы станете желанным сотрудником в большинстве компаний.