Что делать, если мечтаешь стать программистом

Я Андрей Морозов, основатель замечательной команды программистов Firecode. В этой статье хочу рассказать о кадровом рынке в стране, о том, как стать программистом, с чего начать и в какую сторону двигаться тем, кто мечтает стать программистом.

Почему вузы не готовят программистов

Программы обучения в вузах уже очень устарели, у нас еще учат «Бейсику», и в лучшем случае есть небольшие курсы по C++ или C#. Но как показывается практика, этого недостаточно, чтобы в стране было достаточно ИТ-специалистов.

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

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

Очень странно, что наши вузы не внедряют американский подход к обучению ИТ-специалистов. Например, в MIT (Массачусетский технологический институт) имеет в своем арсенале очень мощные программы по подготовке программистов, и у студентов MIT сразу после обучения сильные скилы по популярным технологиям.

Первый шаг для новичка

Нам постоянно пишут люди с просьбой помочь им сделать первый шаг в программировании. Для одних это мечта, для других — необходимость, так как они не видят себя в текущей профессии. ИТ — это не лотерея, так как технологии будут развиваться и становиться все более популярными. Сегодня найти работу нормальному программисту не составляет никакого труда.

Первый вопрос от начинающего специалиста — «Что учить?».

Современное программирование — это:

1. Веб-разработка (сайты, сервисы, интернет-магазины и т. п.). Используемые технологии делятся на front- и back-часть. Front — это то, что видит пользователь в своем браузере: верстку, изображения, картинки, анимацию и т. п. Back — это невидимая часть, она своего рода двигатель любой системы, основные функции которой заключаются в работе с базой данных, обработке информации, логике, отправке почты, взаимодействии с внешними сервисами и т. п. Языки программирования: PHP, Java, Python, JavaScript (Node.js).

Проще всего начать с PHP или Python, у данных языков очень низкий порог входа. На PHP написаны такие популярные фреймворки, как Laravel, Symfony, Битрикс, Yii.

2. Мобайл-разработка (мобильные приложения). Используются технологии: Swift, Kotlin, Java, C#. Порог входа в данные технологии средний и высокий (в зависимости от того, что вы выберете). На Swift разрабатываются приложения для Apple, на Kotlin — приложения под Android.

3. NET-приложения (десктопные приложения). Используют технологии: C#, C++, F#, на которых вы сможете разрабатывать программы для компьютера. Порог входа выше среднего.

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

Если вы определились с тем, что будете изучать, пора понять, как построить свое изучение.

Онлайн-школы и ютуб-уроки

Многие, чтобы упростить процесс своего обучения, обращаются в онлайн-школы, которых сейчас очень много. Стоимость курсов в онлайн-школах варьируются от 20 до 150 т. рублей. Это достаточно много для начинающих программистов. Конечно, к покупке вас будет подталкивать реклама о размере заработных плат программистов, но надо понимать, что это маркетинг-школы, и в пример приводятся зарплаты специалистов с опытом. Я не хочу сказать, что онлайн-школы — это обман и т. п., но надо понимать, что сразу после обучения вы не сможете получать большую заработную плату. Также высока вероятность, что технология вам не понравится, а деньги вы уже заплатите. Еще хуже, когда люди оформляют рассрочку на обучение, а это обычный кредит, который вас обяжут выплатить. Тот, кто не готов потратить деньги на обучение в онлайн-школе, отправляется на YouTube искать бесплатные курсы по интересующему языку программирования или фреймворку. У таких уроков имеются несколько минусов, во-первых, вы не в состоянии оценить качество уроков, во-вторых, вы не получаете домашних заданий, чтобы иметь возможность подкрепить свои знания. Но в России и мире тысячи программистов, которые выучились на книгах и youtube-уроках, поэтому главное — желание и терпение.

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

Стажировка

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

Какие бывают компании-работодатели

1. Студии и агентства

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

2. Маркетинговые компании

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

3. Продакшны и аутсорсинговые компании

Компании, как наша (FIRECODE), специализирующиеся на разработке, обычно в таких компаниях большое количество программистов.

4. Продуктовые компании

Это корпорации, такие как Яндекс, Сбер, Тинькофф и т. п. Тут все очень зависит от того, куда вы попадете и попадете ли вообще, — для начинающего специалиста это своего рода лотерея.

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

Портфолио, или как подтвердить свои знания

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

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

0
30 комментариев
Написать комментарий...
Василий Степанов

Чушь. Нет ничего лучше 1С:Программирования!

Ответить
Развернуть ветку
Андрей Морозов (FIRECODE)
Автор

Спасибо за комментарий. Данный стек не рассматривал, так как он применим только для РФ

Ответить
Развернуть ветку
Василий Степанов

Что значит только для РФ. Куча кейсов - Канада, Испания, Германия, Вьетнам. Вы просто отстали от трендов, так же как и российские ВУЗы

Ответить
Развернуть ветку
Nikolay Kenig

Навыки владения ZX-Spectrum еще актуальны?

Ответить
Развернуть ветку
true iBegginer

LOAD ""

Ответить
Развернуть ветку
Валерий Иванов

RUN опять же неплохая команда))

Ответить
Развернуть ветку
Nikolay Kenig

CLR

Ответить
Развернуть ветку
true iBegginer

такой команды нет

Ответить
Развернуть ветку
Nikolay Kenig

GO TO 10

Ответить
Развернуть ветку
Банан

В IoT индустрии специалисты со знанием ассемблера на вес золота

Ответить
Развернуть ветку
Nikolay Kenig

Да ладно?????

Ответить
Развернуть ветку
Николай Богданов

Там уровень входа дикий

Ответить
Развернуть ветку
Аккаунт удален

Комментарий недоступен

Ответить
Развернуть ветку
Валерий Иванов

Оставте тогда ссылки на соцсети, а то где их искать то

Ответить
Развернуть ветку
Андрей Морозов (FIRECODE)
Автор

На нашем сайте firecode.ru

Ответить
Развернуть ветку
Александр Слюсарев

Я бы посоветовал смотреть в сторону js

Ответить
Развернуть ветку
Денис Пешехонов
 PHP, Java

У вас там опечатка в "Go, Kotlin".

Ответить
Развернуть ветку
Аккаунт удален

Комментарий недоступен

Ответить
Развернуть ветку
Денис Пешехонов

В 2020 Си на первом месте, вы серьёзно? Это что за рейтинг такой, по применению в легаси? :)

Вот, ловите, особенно пункт "Most loved/dreaded languages"
https://insights.stackoverflow.com/survey/2020#technology

То, что на пыхе много легаси написано, не значит, что его нужно или интересно учить _сейчас_.

Ответить
Развернуть ветку
Kirill Nikolaenko
 Современное программирование — это:

Подскажите, а на основании чего этот список выделили? Не упомянули embedded, например. 

Ответить
Развернуть ветку
Bulat Ziganshin

это наиболее популярные области, особенно для аутсорса где работает автор

Ответить
Развернуть ветку
Андрей Морозов (FIRECODE)
Автор

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

Ответить
Развернуть ветку
Леонид Барышников

Веб разработка без упоминания JavaScript?)

Ответить
Развернуть ветку
Андрей Морозов (FIRECODE)
Автор

Коллега, в статье есть про JS

Ответить
Развернуть ветку
Ksusha

У меня квалификация экономист-программист. К сожалению, все благополучно забыто, преподаватели были некомпетентные :(

Ответить
Развернуть ветку
Андрей Морозов (FIRECODE)
Автор

К сожалению, это частая проблема...

Ответить
Развернуть ветку
Shavkat Mavlonov

У меня тоже, но все зависит от вас. Если есть желание  - можно стать намного лучше "смертного" программиста ;)

Ответить
Развернуть ветку
Кещик Щепещек
Почему вузы не готовят программистов

Готовят, просто надо идти в нормальный ВУЗ, и смотреть программу. Так же нельзя забывать разделения на кафедры, где придется нырять в определенный стек. А еще всегда есть факультативные курсы от аспирантов или сотрудников компаний, которым хочется поучить, там вполне себе можно сделать проект и уже освоиться в стеке.
Ну если ты ленивая жопа, которая не выходит за рамки базовой программы, то конечно ничему актуальному не научишься.

1. Студии и агентства

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

Достаточно 1-2 человека опытных и все. Они точно будут менторить и помогать, разбираться в коде и даже дописывать. Чем больше народу, тем больше размывается фокус и меньше помощи извне.

Ответить
Развернуть ветку
Андрей Морозов (FIRECODE)
Автор

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

Ответить
Развернуть ветку
Oleg Muzyria

ВУЗ ВУЗу рознь. Во многих вузах есть и java и java script в программе.

Ответить
Развернуть ветку
27 комментариев
Раскрывать всегда