
Начинающим в IT: как выбрать язык программирования и прокачать hard skills
IT-индустрия ежегодно растет на 25-30% и остается стабильно привлекательной для свитчеров и выпускников ВУЗов. К тому же в прошлом году было опубликовано более 100 тысяч вакансий на DOU. А по словам руководителя образовательных программ Sigma Software, ощущается нехватка от 50 до 100 тысяч IT-специалистов.
Даже во время полномасштабной войны IT-сфера остается относительно стабильной для команд, постепенно увеличивается количество вакансий и стажировок для специалистов без опыта.
Если вы решили начать карьеру программиста, выбираете направление или хотите повысить уровень технических знаний — этот материал для вас. За ответы благодарим Романа Шмелева, ментора и координатора школы программирования Ш++.
На что следует обращать внимание при выборе языка программирования для изучения?
Новичку в IT стоит обращать внимание не столько на язык, сколько на обучающую программу. Важно, чтобы на курсе/стажировке вы научились программировать в широком смысле (не просто знать один язык или подборку инструментов). Искусство доносить компьютеру свое мнение не принадлежит конкретному языку, но намного важнее как навык. Оно позволяет понимать общую логику и переносить знания на разные языки программирования.
Также советую проверить количество вакансий для начинающих по разным технологиям. Сравните вакансии между собой и выбирайте более популярные направления. Сделать это можно, например, в разделе вакансий на портале DOU.
Динамика количества вакансий для Trainee/Junior Python Developers:
Если вы планируете как можно быстрее найти работу, изучайте простые и популярные языки программирования. Среди них: Java, PHP, Javascript, Python и так далее. В начале карьеры не следует погружаться в языки и технологии с высоким порогом входа, такие как Rust, Haskell, Scala и другие. Обычно к ним приходят со временем и опытом.
Конечно, ориентируйтесь и на собственные предпочтения по направлению. Есть люди, которым более близка работа с графическими элементами (визуальная часть сайта/frontend). А есть те, кто от графики убегает в нечто более математическое или серверное (backend). Есть те, кто мечтают сделать приложение в свой Android или пилить игры. Лучше выбрать интересное направление в начале, чем заставлять себя и демотивироваться в дальнейшем.
Вы можете не знать, чего хотите. Если это так, рекомендую вам обратить внимание на разработку Web. Какой язык выбрать для Web-разработки? Изучите JavaScript, а затем — TypeScript (писать на чистом JavaScript неоправданно сложно, поэтому это не то, чего мы бы вам советовали). Такая стратегия позволит вам быть универсальным бойцом, а в дальнейшей карьере иметь выбор между frontend (например, работать с Vue/React) и backend (Node.js). Это возможно, поскольку и там, и там используется один язык программирования.
Какой язык программирования выбрать новичку?
Обычно не столь важен язык, как удобные редакторы, доступность материалов, низкий порог для старта, наличие людей, которые могут помочь.
Например, JavaScript — первый язык, с которым знакомится студент на начальном этапе обучения в Ш++. Этот язык очень удобен, чтобы быстро получать результат без перегрузки разными продвинутыми техниками и дополнительными инструментами. Все нужно учить постепенно!
Хорошая альтернатива — Python. Однако этот язык не позволяет легко прыгать с изучения frontend к backend и наоборот.
Java — довольно простой язык, но уже имеет «явную статическую типизацию». Это значит, что компьютер сам находит ошибки и указывает на них, однако осваивать Java немного труднее. Это второй язык, который учат студенты в нашей школе.
Подробнее о выборе первого языка программирования мы рассказывали в блоге.
Все популярные языки так или иначе оптимальны для новичков. Иначе они бы не стали популярными. Новички пытаются выбрать самый-самый-самый лучший язык программирования для изучения. Но на самом деле любой язык — самый лучший для начала карьеры. Поэтому хватит выбирать, учитесь уже!
Сколько времени нужно для того, чтобы изучить необходимый минимум для работы Trainee/Junior-разработчиком? Насколько интенсивно необходимо учиться?
Минимальный период, чтобы доучиться до Trainee/Junior уровня, зависит от характера и внутренних качеств самого студента. Обычно взрослому необходимо 6-12 месяцев, но цифра очень вариативна.
Кроме знаний, как программировать, не менее важны так называемые «soft-skills». Это такие навыки, как умение общаться, адекватно доносить свои потребности, быть проактивным, дисциплинированным, ответственным, положительным… Все эти качества дают суперускорение как для первой работы в IT, так и для дальнейшей карьеры.
Если говорить об интенсивности обучения: рекомендуем учиться ежедневно, минимум в течение двух часов, и минимум шесть часов в выходные. Программированием невозможно легко овладеть. Кроме самого языка и навыков мышления (на что уйдет не один месяц), нужно уметь пользоваться разными дополнительными технологиями, чтобы быть интересным для работодателя.
Те, кто учатся честно и интенсивно, получают желаемый результат.
Какие самые критичные знания для старта работы в IT?
Хорошая комбинация — опыт создания более-менее полноценного IT-продукта и понимание фундаментальных основ программирования (алгоритмов, структур данных). Обычно работодатели положительно относятся к Pet-проектам (индивидуальные проекты, которые вы делаете в свободное время на некоммерческой основе).
Всех интересует практичная сторона, никому не нужен заученный материал. Поэтому обязательно практикуйте все навыки, услышанные на курсах.
Какие дополнительные инструменты должен изучать новичок?
Дополнительные инструменты чаще всего зависят от выбранного языка программирования/части архитектуры. Для простоты пользуйтесь карьерными дорожными картами.
Например, Backend Developer, кроме самого языка, должен изучать: базы данных, ОС (например, Linux), инструменты тестирования, системы контроля версий, git, CI/CD-практики и многое другое.
На продвинутых этапах обучения в Ш++ эти темы и инструменты изучаются параллельно выбранному языку программирования.
Почему важно не сужать свою специализацию только на одном языке?
Изучение нового позволяет свежим глазом посмотреть на программирование и на давно знакомые языки и технологии. К тому же, гибкость — это еще один навык, дающий в перспективе большие плюсы, в том числе и денежное вознаграждение.
К тому же, неприятие какого-либо языка указывает на неготовность изменяться под другие, более новые технологии. Сейчас для начинающих порог входа в индустрию несколько высок. Именно поэтому очень важно быть открытыми к изучению нового, на высоких скоростях, ведь сфера IT динамично меняется.
Какой главный совет вы бы дали человеку, желающему начать карьеру в IT?
Пиши код! Не готовься, не изучай много теории, не сомневайся. Начинай писать код, учись не застревать, пиши код своими руками в течение большого количества часов.
Также стоит найти тех, кто тебе поможет или будет идти рядом. Можно попробовать пройти этот путь в Ш++!