Как стать программистом? Советы преподавателей Skillbox
Программист — одна из тех профессий, которой можно овладеть самостоятельно. В программировании неважно, есть ли у вас высшее профильное образование или нет. Важен результат работы, а не объем изученной теории.
Если вы в состоянии создать работающий IT-продукт — проблем с трудоустройством не будет, уверяют программисты. Однако в самом начале карьеры и при смене профессии всегда есть опасения. Чтобы снять сомнения в духе «смогу ли я?» или «а устроюсь ли я на работу, если я самоучка», мы узнали, что думают опытные программисты о высшем образовании, складе ума и переходе в IT-индустрию из других областей.
Обязательно ли высшее образование?
Вопрос о специальном образовании возникает одним из первых, если вы только пришли в IT-индустрию. Не у всех в запасе есть четыре года на университетскую программу и необходимые финансовые возможности. Вот что советуют программисты:
«„Высшее образование опционально для программистов“ — это я слышал от HR-специалиста одного из наших IT-гигантов в 2008 году. Она тогда привела в пример технического директора компании, мол, у него тоже нет. Ей вторит Яков Файн —Java-гуру и IT-предприниматель с двадцатипятилетним опытом, у которого я обучался, — что математики в программировании ничтожно мало, и основной навык программиста — это логично и структурированно мыслить, уметь видеть следствие и причину.
Я лично бросил университет, хоть и учился по специальности „Программирование“. С тех пор я прошел более пятидесяти курсов и мастер-классов. Плюс много читаю и программирую тестовые задачки, когда надо освоить новую технологию. Все это дало мне возможность многое узнать и научиться гораздо большему».
— Ексей Пантелеев, программист и преподаватель Swift и Objective-C
Плюсы высшего образования очевидны — оно дает фундаментальное представление о низкоуровневых технологиях: алгоритмах, компиляторах, процессорных командах, работе с памятью и т.д.
Высшее образование дает входной бонус при найме на работу. Если у вас есть корочка престижного университета, то при первичном фильтре эйчары отдадут предпочтение вам — но только вначале!
Все равно вам придется показывать свой код и свои навыки, а тут корочки и дипломы не помогут... разве что помахать как веером на перегретую голову.
«Большинство компаний, связанных с разработкой программного обеспечения, не рассматривают высшее образование среди ключевых критериев при приеме на работу. Гораздо важнее опыт создания реальных продуктов — портфолио выполненных проектов. Есть немало примеров высококлассных программистов без высшего образования, и наоборот: нередко люди с дипломом инженера-программиста работают совсем не по специальности. Как специалист с высшим образованием не могу не отметить, что высшее образование закладывает серьезный фундамент, который позволяет шире смотреть на проблемы и быстрее учиться новым технологиям».
— Кирилл Маслов, преподаватель курса «C#»
Из каких профессий приходят в программирование
В программирование приходят в разном возрасте и из разных областей. Одним переход в IT-индустрию дается легче, другим на освоение новых технологий нужно больше времени и усилий. Овладеть программированием может каждый, вопрос лишь в мотивации и готовности учиться новому. Навыки в других областях — это всегда преимущество. Они позволяют шире смотреть на задачи и находить нестандартные решения.
Переход в программирование будет легче со специальностей, где есть логика и алгоритмы действий.
Например, врачи — у них развит навык логических выводов на основе показаний анализов — или механики автомастерских — есть навык логического анализа проблемы на основе стуков в моторе, а потом алгоритм действий для снятия/установки мотора.
Кому будет сложнее, так это представителям «спонтанных» профессий: художникам, артистам, писателям, дизайнерам. Но если они пробьются через порог входа — результат у них будет исключительным.
Среди моих студентов и сотрудников в команде есть интересные примеры: кто-то из промоутера стал программистом, кто-то строил взлетно-посадочные полосы в аэропортах или работал на заводе мороженого.
Успех зависит от желания и способности к логичному структурированному мышлению.
На мой взгляд, переход легче дается тем, кто привык в работе использовать логику, обращать внимание на детали и работать с цифрами. Например, бухгалтерам и аналитикам.
Если же с этим не приходилось сталкиваться — не беда, но предстоит научиться. На обучающие курсы в Skillbox часто приходят дизайнеры, которые хотят разобраться в том, как их дизайн-макеты превращаются в работающие продукты при помощи кода.
Перспективы входа в профессию
Спрос на специалистов IT-индустрии в России в разы превышает предложение. Недавно ФРИИ выпустил исследование о кадровом голоде, в котором говорится, что через десять лет на рынке IT в России будет не хватать2 млн специалистов.
Система высшего образования пока неспособна принять и обучить такое количество IT-специалистов. В программировании с приходом новых технологий знания устаревают настолько быстро, что вузы, даже совершенствуя программы обучения минимум раз в год, будут неизбежно отставать от стандартов IT-индустрии. Поэтому стать джуниор-разработчиком самостоятельно быстрее и проще.
Получить должность джуниор-разработчика в России всё легче. Компаниям нужны программисты, и многие из них делают выбор в пользу «взять сейчас джуниора и обучить за три месяца всему» вместо «три месяца искать хорошего middle-разработчика».
Этот выбор позволяет сильно сэкономить: программисту, который только три месяца назад был джуниором, еще год можно не повышать зарплату, но уровень его мотивации очень высокий — он хочет работать и приносить пользу.
«Сейчас в индустрии по-прежнему ощущается нехватка толковых специалистов по разработке. Крупные компании с хорошо поставленными процессами охотно берут на работу начинающих программистов, проводят обучение. Мой совет: подготовьте пару-тройку реальных примеров ваших работ, сделанных пусть даже для себя. Это даст вам преимущество в борьбе за самые интересные места в топ-компаниях».
— Кирилл Маслов, преподаватель курса «C#»
При всех возможностях освоить программирование самому, заниматься самообразованием можно до бесконечности. Меняются технологии и стандарты, появляются новые решения.
Новичкам в программировании кажется, что вот еще этот язык подучить и этот курс пройти — и уже можно рассылать резюме. На деле такой подход не самый эффективный.
Самообразование в программировании — процесс непрерывный, и он не должен отделять вас от получения работы. Вадим Шадринов рассказал о другой крайности — так называемых предпрограммистах.
«На рынке много предпрограммистов. Это люди, которые изучили язык программирования по книгам и статьям и рвутся в бой. Опыта работы с реальными проектами у них нет (сайт для своей кошки не в счет). Они не умеют работать в команде, не умеют поддерживать свой и чужой код, не знают о тех проблемах, которые возникают в IT-индустрии. Джуниорами их назвать сложно, джун уже работал в команде под руководством наставника.
На мой взгляд, это большая проблема: есть желание со стороны новичков войти в профессию, и есть желание со стороны работодателей получить хорошего работника. Однако не все работодатели готовы учить таких предпрограммистов за свой счет.
Изучать разработку самому — это только первый шаг для программиста. Дальше нужно совместно с другими программистами делать реальные и нужные более чем одному человеку проекты. Также важно выкладывать свой код на открытые источники — работодатели смотрят на стиль и алгоритмы. Посещайте конференции и слушайте доклады опытных разработчиков. Ходите на собеседования: даже если вас не возьмут, вы по крайней мере поймете требования работодателей».
И в заключение напомним, что научиться программированию действительно можно самому. Более того, в большинстве случаев так и происходит.
Если вы готовы усердно трудиться, изучать новое и развиваться, проблем с трудоустройством не будет.
Не все приходят в IT-индустрию сразу после института. Кто-то до того, как стать программистом, сменил не один род деятельности. При этом навыки, полученные в других сферах, могут оказаться полезными в программировании и даже дать вам профессиональное преимущество. Помните, что всех курсов не пройдешь и всех книг не прочитаешь.
Более эффективный способ изучать новые технологии — это тут же применить их в реальном проекте. В программировании важна ваша способность создавать полезные для других продукты, а этому никогда не поздно научиться.
Ресурсы для изучающих программирование
CS50 на русском — Гарвардский курс по основам программирования.
Mozilla Developer Network на русском — справочник по веб-разработке.
Современный учебник Javascript — JavaScript с нуля.
Codewars — сборник задач по программированию.
Microsoft Virtual Academy — бесплатные онлайн-курсы от экспертов Microsoft.
Академия Хана — видеоуроки по программированию на Python.