Может показаться, что программисты — это отдельная категория людей, которые родились с клавиатурой в руках и с детства дружат с математикой. Но на самом деле программистом вовсе не рождаются — стать им вполне реально. Делимся с вами рабочим алгоритмом.
Поставьте краткосрочную цель — она будет вас мотивировать
Во время обучения вы не раз столкнётесь с очень сложными задачами — захочется всё бросить и вернуться к беззаботным временам. Чтобы этого не случилось, поставьте перед собой цель — такую, которую можно в подробностях представить в голове. Возможно, вы давно хотели создать свою игру или запустить интернет-магазин.
Большую цель лучше разделить на несколько маленьких, чтобы они казались достижимыми в ближайшем будущем. Например, в случае с интернет-магазином это могут быть:
- создать онлайн-каталог;
- превратить его в полноценный интернет-магазин с корзиной и онлайн-оплатой;
- сделать проект конкурентоспособным: добавить синхронизацию, CRM и прочее.
Когда надоест учиться, просто представьте, как пользователи заходят на ваш сайт и удивляются, каким удобным оказывается может быть онлайн-шоппинг: «Что за гений всё это придумал?»
Лайфхак. Начните обучение с детских тренажёров — с ними вы быстро поймёте логику работы программ без кучи литературы и кода. Можно попробовать сервис Scratch — программа в нём собирается из блоков.
Составьте список тем, которые вам нужно изучить
Теперь, когда у вас есть чёткая цель, выясните, какие навыки потребуются для её достижения. Откройте поисковик и введите ваш запрос: например, «как создать интернет-магазин». На этом этапе придётся пересмотреть много сайтов, форумов и книг.
Ещё можно поискать информацию на площадках, где обычно собираются разработчики:
Лайфхак. Не пугайтесь, что вы тратите много времени на поиск и обработку информации. Умение быстро найти ответ на вопрос — это важный навык программиста. Даже опытные разработчики часто ищут в интернете разную документацию.
В итоге у вас должен быть список тем, которые нужно изучить в ближайшем будущем. Например, для создания сайта это могут быть языки HTML, CSS и PHP.
Начните обучаться: самостоятельно или с помощью курсов
Не пытайтесь заучивать всю теорию в надежде, что она вам когда-нибудь пригодится. Вместо этого задавайте себе вопрос: «Эта информация приближает меня к цели?» Если нет — можете отложить изучение на потом.
Ещё важно совмещать теорию с практикой, чтобы не забыть всё на следующий день. Прошли переменные — попробуйте создать их для какой-то реальной задачи. Можно использовать тренажёры вроде CodeCombat или CSS Diner.
С курсами в этом плане полегче: пусть большинство из них платные, но здесь уже есть готовая программа, практические задачи и даже ментор. Вот популярные курсы:
Лайфхак. Курсы лучше выбирать по бесплатным вводным урокам — по ним сразу станет ясно, подходит ли вам методика или лучше поискать другие варианты.
Устройтесь на стажировку или работу: покажите, чем вы можете быть полезны
С базовыми умениями разработчика вы вполне можете устроиться на стажировку — крупные компании регулярно объявляют наборы. Для вас это возможность поработать в окружении опытных разработчиков.
Можно пойти ещё дальше и откликаться на вакансии. Правда, с учебными программами в портфолио ваши шансы невелики. С другой стороны, никто не мешает создать серьёзные проекты специально для резюме. Либо вы можете зарегистрироваться на Яндекс.Услугах в качестве специалиста и предложить помощь в несложных задачах.
Другой способ собрать портфолио — выполнять тестовые задания от рекрутеров. Хотя они редко оплачиваются, зато компании составляют тестовые на основе своих реальных задач. Это практически беспроигрышная стратегия: даже если вас не возьмут на работу, вы не зря потратите время.
Лайфхак. Лучше искать стажировку и работу летом: многие сотрудники в отпуске — компании в это время рады любой помощи.
Продолжайте совершенствоваться: больше навыков — выше шансы найти работу мечты
Если с работой ничего не вышло, не складывайте руки — подготовьтесь ещё лучше, чтобы в следующий раз претендовать на большее. Вот несколько способов прокачать навыки:
Усложняйте задачи. Попробуйте решить задачи из курсов альтернативным путём или усложнить их: расширьте функционал, найдите и закройте уязвимости.
Регулярно посещайте форумы. На этот раз в роли наставника: помогайте новичкам, чтобы не только хорошо кодить, но и уметь донести информацию.
Анализируйте чужой код. В крупных компаниях редко нужно писать что-то с нуля — обычно приходится копаться именно в чужом коде. Заодно так вы позаимствуете интересные приёмы.
Предлагайте, как можно улучшить продукт. Изучите сайт или приложение любимой компании: есть ли в них уязвимости и как их закрыть? Напишите в службу поддержки — возможно, именно так вас и пригласят на работу.