Как стать программистом — чек-лист для начинающих

Павел Минаев, Team Lead в June Homes, работает в IT уже десять лет. За это время он успел соприкоснуться с бэкенд и фронтенд-программистами, мобильными разработчиками, с новичками и руководителями подразделений. Последний год он менторит тех, кто хочет улучшить навыки в программировании. 

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

Как стать программистом — чек-лист для начинающих

Мария Передок

Я решил программировать. С чего начать?

Даже если вы уже учитесь в университете на программиста, скорее всего этого не хватит, чтобы сразу найти высокооплачиваемую работу. Если, конечно, у вашего вуза нет партнёрской программы с крупной IT-компанией, например, с «Яндексом». В этом случае вы получите конкретно те знания, которые требуются для работы.

Если же вы не учились на программиста, придётся начинать с самых основ. Скорее всего, вы что-то помните с курса информатики в университете, но этих знаний слишком мало. Что делать в таком случае?

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

Даже если не получилось определиться с самого начала — ничего страшного, изучение любого языка пригодится в дальнейшем. Это расширит кругозор и будет полезно с теоретической и практической точки зрения, ведь в работе можно столкнуться с тем, что вы когда-то учили. Во многих крупных компаниях используется больше одного языка программирования для разработки разных систем.

Чтобы начать учиться, есть два пути:

    Попробовать выучить все самому;

    Найти школу, в которой вам помогут. 

Часто онлайн-школы проводят семинары, которые помогают людям определиться с областью интересов.

Хочу, чтобы мне помогали. Как выбрать школу?

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

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

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

Как правило, школы публикуют отзывы учеников. Попробуйте найти контакты кого-то из тех, кто оставил отзыв, и связаться с ним. Поинтересуйтесь, пришёл ли он в школу с нулевыми знаниями? Всему ли выучился и всё ли было понятно? Узнайте, нашёл ли он работу. Это не даёт гарантии, что вам будет так же легко и понятно учиться, как и ему, но по крайней мере вы будете иметь представление об опыте другого человека.

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

Я справлюсь сам. Как учиться?

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

Если начинаете с нуля, найдите ресурс, который обучит нужному направлению с самых азов. Приготовьтесь, что занятия будут проходить на другом языке, потому что все проверенные ресурсы по большей части англоязычные. Например, freecodecamp.org или codecademy.com. Здесь можно проходить курсы бесплатно. Первый подойдёт тем, кто хочет разобраться во фронтенде, а на втором найдёте кучу разных курсов, начиная с Javascript и заканчивая анализом данных.

Курсы бывают и платными, но их цена несопоставима с ценой обучения в школе. Многие школы также предоставляют видеокурсы, которые намного дешевле, чем занятия в группах с преподавателями и менторами.

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

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

Когда вы более-менее вникли в тему, рекомендую зайти на github и посмотреть реальные проекты, разобраться в них. Там можно искать примеры кода, вбивая такие запросы, как «название языка example» (python example), либо «amazing название языка» (amazing javascript) — так можно найти репозитории с примерами кода или с библиотеками, которые используются в языке. Изучая их, вы будете перенимать опыт других разработчиков, которые уже решали эти задачи. Хорошим продолжением обучения будет реализованный личный проект. Идеи для проекта можно нагуглить.

Как только вы начнёте ориентироваться на github и понимать, как он работает, советую поискать небольшие open source проекты, которые были бы вам интересны, изучить их исходный код и правила внесения своего вклада (contribution) в проект.

Как правило, в активно разрабатываемых проектах есть issues (прим. система распознавания багов) с лейблом good first issue или help wanted. Значит, что можно смело изучить описанную проблему или задачу, прикинуть, как её решить, и если есть уверенность, что это может сработать, попробовать это сделать. Даже если что-то не выходит, всегда можно попросить помощи в решении задачи прямо у контрибьютора на проекте.

Если уже хорошо получается решать такие задачи, скорее всего, вы готовы искать работу.

Кажется, я уже что-то умею. Как искать работу?

Перед тем, как искать работу, пробуйте решать тестовые задания от разных компаний. Часто IT-компании составляют своё тестовое задание на основе их проектов и включают туда небольшие кусочки реальных задач. Найти задания также легко на github. 

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

Выполнение тестовых заданий и тренировка собеседований хорошо подготовят к интервью в ту самую компанию, куда хотите устроиться.

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

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

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

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

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

Моя первая работа: что делать дальше?

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

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

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

Также не стесняйтесь просить помощи коллег, потому что когда компания нанимает новичка, она понимает, что придётся вкладываться в его обучение.

Частые ошибки новичков в профессии.

Оглядываясь на свой опыт, я могу выделить две основных ошибки:

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

Итог

Чтобы стать программистом, нужно не только получить багаж знаний, но и постоянно его обновлять. Работа в IT — это постоянная гонка технологий, поэтому нужно быть привлекательным на рынке труда. И главное — решая войти в профессию программиста, готовьтесь не к спринту, а к длинному марафону.

Источник: rb.ru

Рекомендованные статьи