Какой язык программирования учить в 2017

Вступление

Наступил 2017 год, а значит, следует задуматься над тем, какие языки программирования выучить в этом новом году!  Я решил создать свой собственный топ-10 самых актуальных языков, базируясь исключительно на своём мнении. Должен сказать, что учить язык программирования, чтобы просто его знать — дурацкая затея и так делать не следует. Лучше сначала придумать, зачем вы его хотите выучить. Вторая оговорка — в большинстве случаев, знание языка ничего не даёт. Гораздо важнее разбираться в инструментах и фреймворках этого языка. Каждый язык вы сможете изучить на достаточном уровне за месяц, а то и меньше, а вот, чтобы разобраться во всех важных библиотеках и фреймворках, может уйти очень много времени и практики. Также в целом я опираюсь на российские реалии, где экономика и образование формирует рынок труда иногда весьма специфичным образом.

10. Scala

Скала прекрасный функциональный (и не только!) язык, отлично подходящий для создания риалтайм программ и работы с параллельными вычислениями. Среди всех функциональных языков именно этот завоевал наибольшую популярность в России. Этот язык базируется на платформе Java Virtual Machine, а значит может взаимодействовать с обычным Java кодом и использовать его пакеты. Из-за этого факта, а так же потому, что многие команды мигрируют с Джавы на Скалу, часто можно видеть в вакансиях сочетание Scala/Java. В целом, Scala не самый простой язык, но при этом парадоксально, именно новичкам, не знакомым с другими языкми осваивать его будет легко. Единственный нюанс — вакансий без знаний Джавы мало.

В первый раз я услышал об этом языке, когда узнал, что твиттер перевёл на Скалу бэкэнд с Ruby on Rails.

9. Ruby

Говорим Ruby, подразумеваем веб-фреймворк Ruby on Rails. Такова реальность и основная проблема этого языка. Простота и изящность Руби, хайп и монополизация веб-фреймворков Рельсами привела к вырождению других инструментов на руби — зачем что-то делать, если в Рельсах уже всё есть? Однако, сейчас Рельсы уже не так популярны, большинство вакансий — поддержка старых, а на запуск новых проектов. Хорошие рельсовики стоят дорого, а в 2017 Рельсы не обладают преимуществом над другими серьёзными веб-фреймворками. Тем не менее, огромное количество компаний по-прежнему поддерживают и развивают руби проекты, а новые версии языка и фреймворка радуют интересными возможностями.

Благодаря этому языку, я узнал, в что такое перегрузка операторов!

8. С++

Да, старый С++ по-прежнему востребован у большого количество работодателей. Не самый простой язык, в основном, из-за управления памяти, но пока что единственный достаточно быстрый язык для современного игростроя. Например, в движке Unreal Engine активно используется С++. Я советую изучать этот язык именно с прицелом на игры, потому что в обычных приложения гораздо привлекательнее выглядят другие языки. Правда, в России игр не делают, но есть много хороших аутсорсеров, где работает много талантов. В соседней Беларуси я бы обратил внимание на Танки http://wargaming.com/ru/careers/. В какой-то мере, этот язык — идеальное отражение баланса денежной компенсации и требований от программиста. Для любителей бросить себе вызов!

Это единственный язык из этого списка, на котором я не пытался создать программы.

7. Go

Перспективный язык активно завоёвывает в России нишу  обработки запросов в условиях высокой нагрузки. Главная особенность языка — незагугливоемое название, следует использовать golang в поисковых запросах. Go умеет единовременно обрабатывать много запросов используя железо по максимуму, и активно используется в обработчиках реклам, и везде, где нужно взаимодействие в реальном времени. Также на момент написания этой заметки, я увидел две любопытные вакансии, первая по переводу OneTwoTrip на Гоу, вторая — перевод почты Mail.ru на Гоу (https://spb.hh.ru/vacancy/19110972https://spb.hh.ru/vacancy/19110972). Не берусь говорить, тренд ли это, но уверен, что на несколько лет Гоу будет часто встречаться в вакансиях. Но самое главное — специалистов по Гоу сейчас мало, и можно успеть сесть на хайп-трейн.

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

6. PHP

Звезды так сложились, что PHP сейчас переживает ренессанс. Седьмая версия языка помимо возможности использовать более строгую типизацию внезапно стало значительно быстрее. Инфраструктура языка серьёзно повзрослела — появились стандарты кодирования, нормальный менеджер пакетов, несколько серьёзных конкурирующих фреймворков и большая библиотека пакетов. Если вам что-то требуется — скорее всего, кто-то это уже написал. Доминирование язык в вебе позволяет не опасаться за внезапное снижение популярности, языком пользуются как маленькие веб-студии, так и гиганты вроде Фейсбука и ВК. PHP является отличным способом войти в веб-разработку, с перспективой роста как в знаниях, так и в деньгах.

Оказалось, что я пользуюсь PHP уже 8 лет!

5. Swift

Долгое время для Андроида надо было писать приложения на Джаве, а для iOS — на странном языке Objective C. Многие разработчики испытывали сложности с этим языком, поэтому Apple решили сделать новый язык попроще. Сейчас, на Свифте можно писать приложения для продуктов Эппл. Нативные приложения высоко ценятся среди компаний и многие мобильные разработчики имеют целые отделы, посвященные этой платформе. В изучении Свифт есть подводный камень — вполне вероятно, вам придется изучить и Objective C, чтобы получить работу. Может иметься старый код, какие-то библиотеки, написанные на Objective-C и одним Свифтом может не обойтись.

Я попробовал и мне понравилось!

4. Java

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

Язык стоит внимания, когда в нём есть свой ад.

3. Python

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

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

2. C#

Как Джава, только лучше. На мой взгляд, язык развивается быстрее, чем Джава, а с новым подходом Майкрософт к опенсорсу и другим платформам весьма перспективен. Сейчас СиШарп можно использовать везде — в офисных приложениях, в веб-приложениях, в играх на движке Unity, в кроссплатформенной мобильной разработке с помощью Xamarin. Среда разработки Microsoft Visual Studio на мой вкус гораздо приятнее и быстрее, а обучающих материалов по языку и платформе в целом очень много. Сами возможности языка очень интересные и позволяют писать весьма изящный и простой код.

Представители Microsoft! Если вы пришли на этот сайт через поиск, то знайте, что я открыт вашему спонсированию этого блага! Я буду продолжать вас искренне хвалить, но буду это делать гораздо чаще за вознаграждение!

1. JavaScript

Каждый веб-разработчик обязан знать этот язык. Но сейчас, когда этот язык повзрослел и вышел за пределы браузера следует сказать, что он пригодится уже не только веб-разработчикам. React Native и NativeScript, мощные инструменты по созданию нативных мобильных приложений на Джаваскрипте выглядит очень перспективно, Electron позволяет портировать веб-приложение на десктоп, платформы NodeJs и Meteor позволяются вам владеть полным стэком для веб-разработки на едином языке. С установлением ES2015 как стандарта и возможности его использования прямо сейчас, стало реальным писать хороший масштабируемый и поддерживаемый JavaScript код высокого качества.

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

Послесловие

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


Also published on Medium.

Какой язык программирования учить в 2017: 2 комментария

  1. 8 — Варгейминг есть и в Питере, например Word of warships делают у нас. Другое дело, что именно Варгейминг — очень любит Питон. Конечно, там есть код и на плюсах, но его мало и всё что можно и нельзя они стараются выносить в Питон. Ещё в Питере есть Сайбер (в основном 3д-шутеры) и Лариан (авторы серии РПГ дивинити) со своими движками на плюсах.

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

    5 и 4 — игры на мобилках часто делаются не на этих языках. Вполне может оказаться выгоднее иметь игру на С++, способную работать где угодно. А под конкретную платформу просто обернуть её «запускалкой» на Java/Obj-C.

    3 — если ты под средами и зависимостями понимаешь виртуальные окружения, то я просто афигел с этой концепции. В плохом смысле. Фактически, ребята бросили идею налаживать совместимость и зависимости, поэтому приняли решение «а давайте всё, что нужно и не нужно будем пихать сразу в программу». В случае Windows там модно создавать exe с интерпретатором питона и вшивать в неё как сам скрипт, так и все нужные библиотеки. Получается на каждый малюсенький скрипт тащится тонна зависимостей, которые уже вполне могут быть в системе. В юникс системах всё ещё веселее — там могут половину операционки за собой утянуть так или иначе.

    Но, язык очень прост и доступен! Любой может написать на нём какой-нить мелкий скриптик и автоматизировать рутину. Это как шеллскрипты/батники XXI века. Хотя, конечно можно выучить язык и писать на нём и что-нить более сложное, если производительность и параллелизм там не главное..

    2 — вот именно шарпы я бы и рекомендовал желающим делать игры. Игры, а не движки для них (движки на с++, это да). Юнити очень популярное, но не единственное решение. Ещё на шарпах модно делать всякие редакторы-тулзы — накидал компонент на форму, описал поведение и готово. Если Питон — это скрипты XXI века, то шарпы — это новый Делфи, т.е. простой и быстрый способ сделать программы с окошками.

Добавить комментарий