Мы тут уже немного касались темы выбора ОС и преимуществ изучения отдельных технологий. После этого в сообщениях меня попросили рассказать о том, как выбирать языки программирования для изучения.
Любые разговоры на эту тему стоит начать с индекса популярности языков — индекса Tiobe. Чтобы нормально зарабатывать на бездрожжевой хлеб с хумусом, однозначно, нужно учить языки из верхней части списка. Вообще все техно в целом норм и на каждом из ЯП можно написать программу. Поэтому выбирать языки нужно по параметрам, которые лежат вне концепций, реализованных в этих самых языках — смотреть, кто пишет на этих языках и, самое главное, что пишет.
Давайте выборочно прошуршим по верху списка Tiobe и обсудим самые интересные позиции.
Java. Суровый мир корпоративного софта. Хочешь работать в большой конторе с соцпакетом, спортзалом, обедами? Тебе сюда. Писать придется, в основном, энтерпрайз: логистические системы, магазины, корпоративные приложения. Такие задачи хороши своей предсказуемостью и документированностью, а темп работы в больших конторах не слишком тороплив.
С — что-то суровое и низкоуровневое, связанное с быстрыми приложениями (часто из мира *NIX). Для настоящих гуру IT, которые хотят копаться в недрах ОС. Зарплаты крайне непредсказуемы, от очень маленьких в местном НИИ ракетостроения до весьма впечатляющих в компаниях, занимающихся разработками системного ПО. К языку С часто идет в комплекте общество задротистых людей в растянутых свитерах, широкими познаниями в научной фантастике, настольных играх, криминалистике, астрономии, физике и черт знает в чем еще. Обожаю общение с такими ребятами, они могут поведать много интересного.
Python. Моя любимая лошадка. Можно писать серверные приложения и заниматься анализом данных. Язык простой, мощный и многофункциональный. Публика пишет на нем очень разная — тут и бизнес-аналитики в костюмах, и аспиранты-математики в клетчатых рубашках, и хипстеры в модных кросах. Работать можно в совершенно разных местах — университеты, лаборатории, банки, корпорации, стартапы.
С++ — это как С, только, кхм, лучше. Для любителей нетривиальных задач и усиленной работы мозгом. На С++ делается все: игры, требовательный к ресурсам софт, настольные приложения, системный софт, антивирусы. На этом ЯП пилятся самые интересные задачи. Порог вхождения в язык довольно высок — вашими коллегами будут умные люди, у которых можно многому научиться. Писать на C++ тяжко, интересно и классно. Зарплата непредсказуема. Однозначно стоит посмотреть на этот язык, если вы реально болеете хардкорным программированием и серьезным игростроем.
С# — С++ c сильным привкусом Microsoft и нотками Java. Живет в экосистеме Windows. На нем пишутся виндовые приложения и кое-какие игрушки. Ничем примечательным не отличается, язык как язык. Работать с ним вас позовут в крупные компании и конторы, занимающиеся аутсорс разработкой для иностранных рынков.
JavaScript и NodeJS — нормальная такая пушка. Можно писать крутые сайты, можно браузерные игры, можно серверные приложения, можно мобильные. Разрабов на JS хотят все. Технология быстро развивается, так что придется все время что-то учить, проверять и тестить. Годный язык для шустрых, динамичных ребят, которые не любят стоять на месте. С JS работают адекватные IT компании и стартапы. Из-за популярности языка на нем пишет кто попало, в том числе и люди, которые вообще не должны быть программистами ни при каких условиях.
Go. Эта штука пробивается к вершине индекса Tiobe с самых низов. Медленно и уверенно. Это мощно и быстро, как С и C++, но при этом максимально просто и доступно. Порог вхождения в сам язык низок, но для понимания его специфики нужно очень хорошо шарить в архитектуре ОС и концепциях асинхронного кода. На Go пишут те, кто раньше писал серверные приложения на Питоне, Ноде или PHP, но теперь хочет писать круче и быстрее. С этим языком работают топовые IT компании, зарплаты хороши.
Вот и все. Вчитайся и слушай свои эмоции, юный падаван. Твоя интуиция укажет тебе, с чем нужно работать и куда податься.