Типичный пример, когда появляются вопросы на тостере по типу: «Я хочу выучить программирование, чтобы делать сайты, нужно ли мне учить php/python/ruby/java/.net и прочее». Некоторые, вообще начинают заходить с C/C++. И главная проблема в том, что люди задают серию таких вопросов на протяжении 6-12 месяцев, рассуждают о каких-то концепциях по типу «Мне недостаточен ПХП, так как он не имеет гибкость» и прочим трешем. Т.е. становится явно, что человек занят каким-то бесполезным дрочевом, которое никакого отношения не имеет программированию.
Зачем вы учите тот или иной язык программирования
Когда мы спрашиваем человека лет 25-35, почему он учит тот или иной язык программирования, то он начинает с большим энтузиазмом рассказывать о его плюсах, возможностях, концепциях и прочее. Это все очень круто и здорово! Когда мы спрашиваем человека лет 35-50, почему он учит тот или иной язык программирования, то ответ получаем крайне прагматичный – «Мне за это платят».
Людей, кто действительно горит программированием ради программирования не так много на самом деле, поэтому разумно рассматривать именно второй вариант подхода к выбору своего стека.
А когда заходит речь про «Мне за это платят», нужно понять, кто вам готов за это платить и сколько. Практика показывает, что гораздо приятней получать зп в 150 тысяч, клепая модули для интернет магазина на ПХП, чем учить условный Python и сидеть без работы.
Небольшой Пример
Ниже я привожу небольшую сводку по вакансиям в Санкт-Петербурге, с указанием числа вакансий, уровня зп и того, что на этом стеке делают.
PHP
- Веб-сайт (Веб-сервис)
- Интернет-магазин (Битрикс + интеграция 1С)}
- ВЕБ-CRM
Общий пул вакансий 525
- Zend — 43 (потолок 200 — 3 вакансий, 100 — 20 вакансий, 80 — 28 вакансии).
- Yii-102 (потолок 215 — 4 вакансий, 100 — 54 вакансий, 80 — 78 вакансии).
- symfony — 85 (потолок 200 — 5 вакансий, 100 — 44 вакансий, 80 — 66 вакансии).
- laravel — 76 (потолок 170 — 4 вакансий, 100 — 42 вакансий, 80 — 54 вакансии).
- Битрикс — 181 (потолок 130 — 14 вакансий, 100 — 27 вакансий, 80 — 62 вакансии).
Python
- Веб-сайты (веб-сервисы)
- ВЕб-CRM/ERP
- Порт QT — что-то простое или программа под Linux.
- Ютилиты для Linux (Ansible)
- Биг-дата — самый простой вход
- Тестирование
Общий пул вакансий: 596 вакансий
- Теcтирование — 107 (потолок 175 — 8 вакансий, 100- 19 вакансий, 80- 30 вакансии).
- Data — 93 (потолок 245 — 3 вакансий, 150- 13 вакансий, 100- 17 вакансии).
- Devops — 86 (потолок 235 — 1 вакансий, 150- 7 вакансий, 100- 13 вакансии).
- Django — 64 (потолок 240 — 6 вакансий, 150-12 вакансий, 80- 32 вакансии).
- Flask — 25 (потолок 215 — 3 вакансий, 150-8 вакансий, 80- 12 вакансии)
- Tornado — 17
- aiohttp — 5
- Twisted — 4
Java
- Веб-сайты (веб-сервисы)
- CRM/ERP — системы
- Десктоп корпоративный JavaFX
- Биг-дата
- Распределительные системы (hadoop)
- Андроид приложения (в основном не игры).
- Интернет-магазин
- Автоматическое тестирование
Общий пул вакансий: 790
- Spring — 175 (потолок 400 — 3 вакансий, 150 — 28 вакансий, 100 — 51 вакансии).
- Android — 235 (потолок 250 — 9 вакансий, 150 — 31 вакансий, 100 — 53 вакансии).
- Теcтирование — 133 (потолок 165 — 5 вакансий, 100- 18 вакансий, 80- 28 вакансии).
- Java EE — 88
- Scala/Kotlin — 27 (19/8)
C#
- Веб-сайты (веб-сервисы)
- CRM/ERP — системы
- Лучший десктоп под Windows
- Биг-дата
- Распределительные системы
- Приложения андроид/ios (хамарин)
- Интернет-магазин (на базе nopeCommerce — платный из РФ)
- Игры на Unity
Общий пул вакансий: 412 вакансий
- .Net — 313 (потолок 235 — 10 вакансий, 150 — 45 вакансий, 100 — 81 вакансии).
- Asp.net — 153 (потолок 225 — 3 вакансий, 150 — 24 вакансий, 100 — 44 вакансии).
- .Net core — 48 (потолок 395 — 2 вакансий, 150 — 5 вакансий, 100 — 10 вакансии).
- Unity -64 (потолок 225 — 1 вакансий, 150 — 6 вакансий, 100 — 12 вакансии).
- Microsoft Dynamics — 38 (потолок 195 — 3 вакансий, 150 — 4 вакансий, 100 — 7 вакансии).
- Xamarin — 13 (потолок 125 — 2)
- Ruby -112 вакансий
- Node.js — 171 вакансий
- С++ — 489 вакансий
- 1C — 811 вакансий
- Golang – 49
Из это небольшой сводки становится понятно, что легче всего получить работу на php/java/.net – так как таких специалистов требуется много, и их профиль большего всего связан с разработкой, а не Devops/Data/Testing- как у Python.
А если мы смотрит такой же обзор по Владивостоку, то там требуется 3 специалиста по Java, 64 специалиста по PHP, 2 по C# и 110 по 1C. И эти данные как-то намекают на то, что во Владивостоке нужно учить либо PHP, либо 1C. Иначе вы будете сидеть без работы.
Главное правило: учить тот язык, за который вам готовы платить в том месте, где вы находитесь. Когда начнете получать деньги, когда появится опыт – уже сможете поменять свой стек и профиль при необходимости. Для этого достаточно открыть местный сайт вакансий и решение само к вам придет.
Пример девственника
Выбор первого языка программирования можно сравнить с первым сексом.
Когда приходит время, парень начинает изучать данный вопрос, смотрит определенные видео, слушает мнения своих друзей, мнение других девушек и так далее. Он строит у себя в голове определенный идеал того, какой должна быть девушка, где должна быть эта девушка и так далее.
Но потом появляется понимание, что определенные его идеалы недостижимы, на другие ему не хватает физических, денежных возможностей. И он либо остается ни с чем, либо делает свое дело с девушкой, которая просто оказалась рядом, и была не очень то и против.
Также обстоит дело и с языком программирования, выбирайте тот стек, который дает вам возможность начать прямо сейчас. Поменять стек и свою сферу всегда будет возможность. Никто не заставляет вас жениться на своем первом выборе.
Комментарии (36)
LuridSNK
17.08.2018 09:58+1Вы бы информацию, что-ли, в удобочитаемый вид привели. В таблички, например.
А то вырвиглазно как-то…
claygod
17.08.2018 10:02… учить тот язык, за который вам готовы платить в том месте, где вы находитесь ...
В этом утверждении не учтена удалёнка, а это значительная и всё увеличивающаяся доля рынка труда. Мало того, по своему небогатому опыту скажу, что на вкусных и интересных вакансиях, где нужно не «штамповать», а искать и потом писать решения непростых задач, работодатель понимая, что кандидат ему реально подходит — вполне идёт навстречу многим пожеланиям программиста — удалёнка, сдвинутый рабочий день и т.п.
realSTAG
17.08.2018 10:04На мой взгляд, выбор первого языка почти всегд аделают за тебя: в школе бейсик/паскаль. Потом в вузе тебе говорят на чем прогать, а после, чаще всего, прогаешь на том, чему тебя научили.
nikweter
17.08.2018 10:14Ну не скажите. В бытность мою студиозусом, php в вузе практически и не учили. Где делфи, где С++, где Java — зависело от специальности и предмета. Тем не менее, бОльшая часть моих сокурсников программирует сейчас как раз на php.
c_kotik
17.08.2018 10:06И эти данные как-то намекают на то, что во Владивостоке нужно учить либо PHP, либо 1C. Иначе вы будете сидеть без работы.
А может стоит просто хорошо разобраться в теме и потом работать по удалёнке или вообще, прости господи, переехать! Специалисты разные важны, специалисты разные важны…intet
17.08.2018 10:16У новичков изучение языка на должном уровне чтобы работать по удаленки или иметь денежную возможность переехать потребует больше пары месяцев в течении которых он не будет видеть никакого прогресса и может бросить на полпути
c_kotik
17.08.2018 10:44Но и привязка к региональным вакансиям в такой глобальной сфере как IT на мой взгляд очень сомнительна.
saag
17.08.2018 10:45Главное правило: учить тот язык, за который вам готовы платить в том месте, где вы находитесь. Когда начнете получать деньги, когда появится опыт – уже сможете поменять свой стек и профиль при необходимости. Для этого достаточно открыть местный сайт вакансий и решение само к вам придет.
А если в том месте, где я нахожусь нет разработки вообще или если есть, то мизерном количестве?
Babayka_od
17.08.2018 10:45Я думаю, что если хочешь быть именно программистом
, а не формошлепом, то сначала нужно учить С++ или Джаву. После месяцев двух можно переходить в любое другое направление, т.к. будешь знать про типы, приведение этих типов, ООП и.т.д. Сразу нырять в пыху или джс я бы не стал советовать новичкам.
maxxannik
17.08.2018 10:47+1Поржал. Подача огонь! Смысл ок.
Только не ясно кому статья то?
Те кто с головой дружит — им это не надо знать. Они и так учат язык по ходу боя — надо 1С будет 1С, надо ПХП будет ПХП, надо Си++ — да пожалуйста. И никогда не задумываются о первом языке. Для них статья бесполезна.
Те кто занимаются бесполезным дрочевом вместо разработки — они просто сейчас будут дрочить тебя за это все :) Смысл не уловят. Для них статья тоже бесполезна.
Остается 1% аудитории которые это читают просто ради поржать )Babayka_od
17.08.2018 10:55Ну не скажи. Я учил джаву месяцев 8 и понимал ее на уровне зеленого джуна (лично мне так казалось). Решил уже идти смотреть вакансии, а в моем городе нужны только крепкие джуны, мидлы, сеньоры. После безрезультатных попыток найти работу пришлось выучить фронт и идти фрилансить, а потом и работу предложили. А если бы кто-то с самого начала нашептал на ушко про вакансии, то сколько можно было бы сэкономить время…
Easterncheese
17.08.2018 12:42Не согласен. Ситуации бывают разные.
Я сейчас потихоньку изучаю Джаву не потому, что у меня в этом есть надобность, а чтобы понять, хочу и могу ли я программировать (в детстве учил VB и Delphi, но это было давно и сейчас это равносильно тому, что не учил вообще). При этом, с детства осталось мнение, что я могу стать крутым программистом и изменить мир, что я и хочу проверить, будучи уже достаточно взрослым. Моя работа крайне опосредованно связана с софтом, поэтому нет вот этих «по ходу боя» и не предвидится.
Мне информация о том, кто и что делает на каких языках — весьма полезна. Единственное, хотелось бы узнать, на чем пишутся всякие драйвера для игровых мышек/клавиатур — может кто-нибудь подсказать?
«бесполезное дрочево вместо разработки» — диапазон такого понятия ну оооочень широк. Кто-то может выбирать, потому что он хочет писать моды к любимым играм, кто-то «самоделкин» и хочет сам себе делать умный дом. А кто-то, полагаю, как ты, зарабатывают этим, поэтому все, что не приносит реального дохода или не востребованно сейчас — бесполезно. Всяк кулик свое болото хвалит.
muhaa
17.08.2018 10:58+11. Если бы вопрос как освоить программирование мне задали 20 лет назад, я бы сказал — ставь Delphi и вперед. Сегодня место Delphi однозначно занимает .Net и C#. Это самая демократичная, полная, упорядоченная, комфортная экосистема, созданная хорошими людьми и для людей. Единственная проблема — изучая эту экосистему и язык легко стать хорошим программистом, но сложно хорошим веб-программистом. Наигравшись вволю с C# .Net можно переходить к более скучным java на Android, JavaScript, задачам фронтэнда и куда кривая поиска работы вынесет.
2. Выбирать первый язык основываясь на пуле вакансий и заплатах — это в корне неверно. Никто не возьмет вас на работу за знание того или иного языка. Это как надеться получить работу математика научившись складывать в столбик. Вас возьмут на работу за то, что вы можете создавать работающие программы, достаточно подготовлены чтобы иметь дело с любыми технологиями разработки и (в последнюю очередь) имеете наибольшие навыки работы именно с тем языком программирования, который сейчас нужен этой компании.
VBKesha
17.08.2018 11:03Эххх как сейчас всё сложно то стало. Вот я когда то, в библиотеке взял какую то детскую художественную книжку про компутеры. В конце было пару программ на бэйсике, После долгих мучений мы с другой таки смогли одну из них набрать на ZX Spectrum48(кто знает как там что то набирать тот поймёт) и она заработала, это было чудо, это была магия тут можно делать что круче чем LOAD "" вот и весь выбор первого языка. А сейчас… срамота…
zodchiy
17.08.2018 11:25+1Надо учиться разработке, дизайну реализации конкретных задач, а не языкам. Язык это инструмент, который подбирается под конкретные задачи и платформы.
immaculate
17.08.2018 12:33Когда-то я зарекся подходить к проектам на PHP на пушечный выстрел. Шли годы, я читал, что PHP меняется, что сам язык растет, что появляются человеческие фреймворки.
В этом году два раза пришлось столкнуться с PHP проектами по работе. Это просто тот же зубодробительный кошмар, от которого я убежал 15 лет назад.
Поскольку в этом big ball of mud невозможно было исправить ни единой ошибки, так как они обладали надежностью карточного домика и понятностью языка австралийских аборигенов, после бесплодных попыток починить ошибки в этих ошибках природы, было принято решение переписать оба проекта.
Теперь я убежден на 100%, что либо PHP привлекает разработчиков определенного рода (которые не могут не писать спагетти-код), либо просто калечит мозг.
Простите, накипело. Как вспомню адский ад этого кода, с неинициализированными переменными, с кусками HTML шириной в 200-500 колонок и длиной в 100-1000 строк, выводимых при помощи
echo
...
Ни разу не видел на PHP хорошего кода… Ни разу.
Easterncheese
17.08.2018 12:48Статья хороша. Для начинающих — хотелось бы видеть примеры известных приложений, написанных на перечисленных языках. Так сказать, увидеть, что если будешь хорошо учить данный язык, то сможешь, в теории реализовать вот такое и такое.
А такая-то связка языков позволит сделать вот это и вот это.
maxzh83
Интересное сравнение. А когда в школе или ВУЗе учат Бейсику или Паскалю, это как-будто привели к проститутке, что ли?
Victor_Grigoryev
Как правило, народ в это время очень ничего не понимает, а на моей памяти ещё и несколько человек получили детскую травму от паскаля: мол, весь мир программирования это такой же несвязный и бездарный бред, как в учебной программе. Так что скорей не к проститутке, а на планету из интерстеллара, где за час года проходили, и тоже впустую)
APXEOLOG
Начинал с паскаля и считаю его вполне себе нормальным языком для новичков, не считая нескольких недостатков, не относящихся к самому языку
Hivemaster
Причём к старой и страшной XD
saag
Любопытное определение, тогда С — быстрая, Java — многословная, Ruby — красивая, Go — молодая, Perl — ведьма, JavaScript — транжира, Python — в очках и т.д.
wegres
C++ силиконовая
GeMir
И чем же тогда является Scratch, с которым знакомят классе в пятом а то и раньше?
rstepanov
Очевидно доской с дыркой.
peresada
8 лет колонии учителю информатики
Babayka_od
Это скорее будто батя про секс рассказывает
roscomtheend
Изнасилование бейсиком. Когда-то встроенный бейсик определял первый язык (или Паскаль, как наиболее доступный, благо турбо-среды упрощали процесс). Были ещё Фокал, Рапира и совсем учебные языки. Вот только язык/феймворк не так важен, ну вот умеет человек говорить (писать код на определённом языке), а выражать мысли (превратить нечто в алгоритм) не умеет.
kinall
Скорее урок полового воспитания – всё то же самое, но на словах, по учебнику и под диктовку.
ACherabaev
Урок полового воспитания в версии батюшки, который вел православную культуру >_<
Eldhenn
f66
Часто в ВУЗах учат С/С++, тут уже сравнение с сексом не годится. Вроде и полезно, язык не одноразовый, а вроде и широко прививается массе студентов.
A__I
Паскаль для обучения собственно программированию очень даже не плох.
maxzh83
Да, не плох, учит порядку и дисциплине (особенно бесило вынесение объявлений переменных в var, но потом понял что это было не зря). Да и Бейсик тоже ничего для начала. Я только про необычную метафору.
domix32
У бейсика слишком много минусов чтобы считать его хорошим для начала. Глобальная видимость, лапша из GOTO странные операторы и вот это вот все