Два года назад я начал изучать программирование будучи школьником. Через год после обучения нашел первую работу на позицию Junior Frontend developer'а, а через пол года мне предложили позицию Middle Frontend developer'а.
В данной статье немного субъективных размышлений о лучших практиках в обучении и советах, основанных на личном опыте.
Совет №1. Изучайте алгоритмы, но не перебарщивайте
Алгоритмы в программировании являются бессмертной классикой. Их знание требуют многие гигантские IT-корпорации. Под изучением алгоритмов имеется ввиду не только заучивание готового кода и попытки его воспроизвести из памяти, но и объединение концепций нескольких алгоритмов в попытке найти решении для совершенно иной задачи. Главной проблемой при изучении алгоритмов является то, что люди часто впадают в крайности. Либо тратят все свое время на олимпиадные задачи и оптимизацию времени выполнения кода, либо с отвращением смотрят на все, что связано с нотацией большого О. В начале своей карьеры я находился в числе вторых. Бытует мнение, что решение только алгоритмических задач ухудшает качество кода программиста, так как неизбежно ведет к отречению от комментариев, однозначных имен переменных и стайл гайдов. Решение достаточно простое: даже если вам в вашей работе не требуется знание алгоритмов, изучите несколько и решайте задачи на сайтах по типу hackerrank, codewars или codeforces. Таким образом вы не только увеличите количество пройденных собеседований, но и подтянете знание синтаксиса своего конкретного языка и улучшите мышление.
Совет №2. Пишите чистый код
Не знания многих языков, не разработка на десятках фреймворков и даже не владение всеми алгоритмами делает разработчика профессионалом (или как лучше выражаться Senior разработчиком). Нет, главным показателем профессионализма является умение писать качественный код. Что это такое? Однозначного ответа не существует, поэтому этому навыку очень сложно обучиться. Если не вдаваться в рассуждения, то качественный код - это тот код, который будет понятен даже начинающим, несмотря на то, что реализует сложную функциональность.
Совет №3. Все языки одинаковые
Хоть некоторые языки могут использовать совершенно разные парадигмы, (какие-то пишутся исключительно в объектно-ориентированному стиле, другие в функциональном, а третьи и в том и в другом) принципы везде одни и те же. Как только Вы сможете преодолеть барьер и изучить синтаксис одного языка, следующий покажется вам очень знакомым.
Совет №4. Курсы по программированию не сделают вас крутым разработчиком
Я это говорю на личном опыте. На момент написания данной статьи я уже более полу года работаю наставником на курсе по JavaScript'у в одном из популярных онлайн образовательных центров, выпускаю уже 3-ий поток студентов и с уверенностью могу сказать, что курсы не дают того, чего от них ожидает большинство последних. Справедливости ради надо сказать, что курсы безоговорочно выполняют свою часть сделки и дают крепкую и прочную базу для студентов. Однако, ученики уверены, что заплатив деньги они прокладывают легкую тропу к своей цели. Это так не работает. Студент, который хочет обучиться, обучится и без дорогостоящих курсов. Благо, в интернете полно информации и учебных материалов.
Совет №5. Участвуйте во всех ивентах, в которых можете
На текущий момент я прошел курсы от Unicef Summer Residency (Blockchain), Beeline Big Data School и сейчас обучаюсь и менторю на Rolling Scopes School. Такие бесплатные ивенты проводятся с завидной регулярностью и грех не пользоваться этими возможностями. Вам в двойне повезло, если вы живете в большом городе, где практически каждый месяц проводятся локальные курсы или митапы. От себя могу сказать, что участие в данных ивентах подарило мне кучу новых знакомств и опыта, которые радикально повлияли на мою карьеру.