Чтобы хорошо зарабатывать, мало стать программистом, нужно, чтобы был спрос на ваши услуги. Поэтому многие начинающие разработчики задаются вопросом: «Как стать востребованным программистом?». Что вполне резонно. Ведь, если вас никто не знает как IT-специалиста, тогда зачем было вообще изучать эту профессию. Хоть в ней и ощущается нехватка хороших специалистов, но «разрывать» вас на части сразу вряд ли будут, пока вы о себе не заявите.
Есть 2 проверенных метода, как стать востребованным программистом:
Традиционный метод, которым пользуется большинство современных специалистов.
Альтернативный метод, которым пользуются самые смелые и нестандартно мыслящие программисты.
Мы разберем оба, и который вам больше будет «по душе», тем и пользуйтесь.
А вообще, нужно понимать, что хорошим и востребованным программистом может быть каждый, все, что нужно будет, — это «гореть» этой профессией и постоянно развивать определенные качества, ну и обладать профессиональными навыками. То есть, чтобы стать программистом, нужно хотя бы изучить язык программирования, инструменты разработчика и знать английский язык.
Традиционный метод, как стать востребованным программистом
За пример давайте возьмем такую ситуацию: вы стоите только перед стартом в профессии, то есть еще даже не выбрали язык программирования, но уже планируете стать востребованным. На самом деле, это очень хорошо — ставить себе такие цели на старте, тогда вам будет легче пройти весь процесс от полного нуля и до хорошего специалиста.
Чтобы стать программистом, нужно выбрать язык программирования, который будете изучать, и соответствующий стек технологий. Также перед этим нужно определиться, в какой сфере программирования вы рассчитываете работать.
Многие авторитетные ресурсы предлагают традиционный метод, как стать востребованным программистом. И он успешно работает, но все-таки у него есть один большой недостаток.
Традиционный путь выглядит так:
Определиться с направлением, где планируете работать. Это может быть: создание сайтов (фронтенд или бэкенд), мобильные приложения, десктопные приложения, работа с базами данных, работа с большим объемом данных, энтерпрайз разработка, мобильные игры, браузерные игры, десктопные или консольные игры, машинное обучение, научное программирование и т. д. На самом деле, сфер очень много, а самое главное — от них зависит, какой стек технологий нужно изучать.
Просмотреть востребованность профессии. Допустим, вы выбрали направление, где хотели бы творить. Пусть для примера это будет разработка сайтов, фронтенд (внешний вид). Тогда вам нужно посмотреть наличие вакансий по этой специальности, чтобы примерно понимать, что вас ожидает в будущем, на какую зарплату рассчитывать и что лучше изучить для frontend. Потому что это может быть стандартный «набор»: HTML, CSS, JavaScript. Или что-то более современное и специфическое, какие-нибудь фреймворки или технологии: Vue.js, React, CSS-Grid, CSS-Float и т. д.
Выбрать язык программирования. Проанализировав направления, вакансии, зарплаты, востребованность, вы все равно должны будете выбрать из нескольких языков или технологий. На этом пункте в основном идет такой совет: проверить популярность выбранного языка или технологии в разных источниках (отечественных и зарубежных), чтобы понять, в случае чего-то сможете ли вы найти себе другую работу. После этих «проверок» обычно выбор падает на какой-нибудь классический и зарекомендовавший себя язык программирования: Java, JavaScript, Python, C#, C, C++, PHP и др. Кстати, если выбор совсем труден и вы вообще не понимаете, что бы вы хотели программировать, то совет такой же: выбирайте что-то из классических и самых популярных языков, потому что работа на них всегда есть и проектов на них очень много, вообще без дела сидеть не будете.
Практика. Только практика сделает вас востребованным. Одной теории будет недостаточно. Любой работодатель вначале попросит показать, что вы кодили, а потом только спросит, что вы знаете. Потому что он понимает, что теории можно быстро «нахвататься», но в то же время не уметь ее применять. Поэтому практиковаться нужно уже с самого старта, даже в процессе обучения уже нужно что-то начинать писать и разрабатывать. В первое время вообще не стоит сильно зацикливаться на хорошей зарплате, поэтому имеет смысл пойти на биржу фриланса попрактиковаться в мелких задачах, потом найти мелкого заказчика на сайтах по поиску работы и т. д. Нужно нарабатывать себе портфолио хорошими проектами, пусть даже мелкими. Когда будет что указать в резюме, можно смело пробовать силы в крупных компаниях. И еще один момент по практике — вам нужен аккаунт на GitHub. GitHub — это площадка для разработчиков. И многие современные работодатели просят ссылку на аккаунт этой площадки, чтобы посмотреть, чем вы там занимались. Поэтому можете смело даже на самой площадке найти открытый проект и поучаствовать в разработке чего-то серьезного. Там, кстати, часто берут новичков в серьезные проекты, чтобы они выполняли самую рутинную работу. Но для вас как для начинающего программиста — какая разница, чем заниматься, если ваша фамилия будет подписана под каким-либо серьезным проектом, который просто раскрасит ваше резюме яркими красками.
Обучение. Программирование — это такая профессия, где нужно постоянно обучаться. Если вы рассчитываете выучить один язык и этим много зарабатывать всю жизнь, то даже не лезьте в программирование. Вся «соль» в том, что для того, чтобы быть востребованным программистом, нужно постоянно прокачивать свои навыки, все время изучать новые технологии, алгоритмы и инструменты, чтобы быть в «тренде» и не отставать от прогресса. Только в этом случае вам будет обеспечен карьерный рост и востребованность на рынке.
Личные качества. Согласитесь, что даже если вы будете идеально знать язык программирования, но при этом будете грубить коллегам и заказчикам, не будете выходить на связь с заказчиком неделям в процессе работы, постоянно будете обещать дату релиза разработки, но никогда не будете успевать и т. д., то с вами вряд ли захотят работать. Поэтому ответственность, честность, пунктуальность, коммуникабельность, профессионализм, широкий кругозор, доброжелательность и т. д. никто не отменял.
В некоторых случаях вы изначально можете пойти не по описанному пути. Бывают случаи, когда сначала находится вакансия, а потом под нее вы себя уже подготавливаете. Но а вообще принцип такой: «обучение + постоянная практика» на всем протяжении от самого старта и до победы сделает вас востребованным программистом.
Альтернативный метод, как стать востребованным программистом
Альтернативный путь, как стать востребованным программистом, выглядит похоже на традиционный. То есть нужно выполнять те же действия и вырабатывать те же качества. «Альтернативность» кроется в подходе выбора языка программирования. Мы уже писали выше, что традиционно советуют в качестве первого языка выбирать что-то из самых популярных и классических языков. Но у такого подхода есть огромный минус, о котором умалчивают, — это конкурентность. Если учесть, что большинство начинающих программистов выбирают среди популярных языков, то понятно, что в этой области очень много молодых специалистов. Это не значит, что нет шансов стать востребованным, это означает, что будет труднее этого добиться. Но есть альтернативный подход выбора языка программирования для изучения. Смысл опишем ниже.
В чем смысл альтернативного подхода в выборе языка программирования
Традиционно принято делить языки программирования на категории по популярности:
Популярные. Это самая обширная категория, ее часто советуют новичкам.
Трендовая. В эту категорию входят «молодые» языки, она не такая обширная, как популярная. Языки данной категории призваны заменить какие-то языки из популярных в определенных нишах. У данных языков есть перспектива попасть в разряд «популярных», но пока они не сильно пользуются спросом. Их тоже иногда советуют изучать, но есть доля определенного риска. Поэтому их чаще советуют изучать «вторыми» языками после классики.
Антирейтинговая. Это языки, которые когда-то были популярными, но подверглись какой-то критике и на них упал спрос. Или их просто довольно сложно изучать, поэтому они потеряли популярность, так как есть более простые альтернативы. Но в целом они по каким-то причинам продолжают жить и работать.
Ситуация сложилась так, что советуют в основном изучать «популярные» и реже «трендовые». Антирейтинговые стараются избегать и не советовать.
Но суть-то в том, что если большинство изучает популярные языки, то в какой-то момент на одну вакансию будут претендовать несколько почти одинаковых специалистов с одинаковым набором навыков. И победит кто? Тот, кто готов работать за более низкую цену.
Суть альтернативного подхода — это изучать языки из антирейтинговых. Они когда-то были популярными. И многие бизнесы «того» времени до сих пор используют программы на этих языках. Ни одна из этих компаний не согласится тратить огромные деньги, чтобы перестроить свои программы на «трендовые» языки, потому что легче и дешевле продолжать поддерживать существующую эффективную разработку. Именно такие компании будут продолжать нанимать специалистов, знающих именно антирейтинговые языки. Но если их никто не рекомендует к изучению или они просто сложны для изучения, значит, специалистов по данным языкам будет мало. Соответственно, спрос на них сохраняется, востребованность есть, а самое главное — хорошие зарплаты.
К антирейтинговым языкам можно отнести следующие:
Perl;
VBA;
Objective-C;
DevOps Chef;
Puppet;
IBM DB2;
и мн. др.
Возьмите любой из этих языков и проверьте наличие вакансий по ним. Просмотрите как отечественные, так и зарубежные ресурсы. Вы удивитесь наличию открытых вакансий по ним. Взять тот же Objective-C, вбейте в поиске на сайте hh.ru. На момент написания статьи там 317 открытых вакансий с зарплатой от 100 000 до 485 000. Данный язык попал в «антирейтинговые», потому что считается старым языком, а ему на замену пришел Swift, который является трендовым.
Теперь на том же сайте вбиваем «программист Swift», получаем 697 открытых вакансий зарплатой от 88 000. Кстати, оба языка используются для разработки приложений на iOS.
Так вот, получаем ситуацию, когда язык из антирейтинга имеет достаточное количество открытых вакансий с более высокой минимальной зарплатой чем и с очень низкой конкуренцией.
Заключение
Альтернативный подход — это не призыв к действию, это повод провести более глубокий анализ всех языков и технологий, не исключая даже тех, кого записали в антирейтинг. Понятно, что там есть языки, которые действительно бессмысленно изучать, потому что они уже практически «мертвые». Но также есть варианты, которые достойны вашего внимания.
В любом случае стать востребованным программистом — это, как и в любой другой профессии, возможно, только если не лениться и работать, работать и еще раз работать.
Другое