Как выбирать язык для изучения в 2017 году

Редактор Ольга Евсикова специально для блога Нетологии рассказала, как выбирать язык для изучения.

image

Существует множество причин стать разработчиком. Программисты зарабатывают много денег, создают новые продукты и меняют мир. Горите желанием стать одним из них, но не знаете, как сделать первый шаг? Эта статья поможет разобраться.

Присмотритесь к рейтингам


Рейтинг PYPL


Система оценки PYPL (PopularitY of Programming Languages) основана на количестве поисковых запросов учебных пособий в Google. Они, совместно с GitHub, составили топ языков программирования на 2017 год.

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

image

С 2005 года во всём мире Java является самым популярным языком программирования. За последние 5 лет больше всего интерес проявляется к языку Python, а PHP теряет популярность, но не уступает своему преследователю C#. В топе языков ещё JavaScript, C++ совместно с C, R и Ruby.

Индекс TIOBE


Другая система оценки популярности языков программирования — TIOBE формируется на основе частоты поиска в Google, Baidu, Wikipedia, Yahoo и YouTube.

image

По ней лидирует снова Java, но Python занимает всего четвертую позицию, замыкают десятку JavaScript, PHP. А начинает двадцатку — Ruby.

Определитесь с направлением


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

Веб-разработка


Это процесс создания веб-сайтов и приложений. Это может быть все что угодно: от социальной сети до посадочной страницы спортивного клуба.

Веб-разработка внешней части называется front-end. Сначала с помощью разметки HTML создаётся страница. Именно эта разметка отвечает за структуру страницы. Затем внешний вид созданной страницы изменяют с помощью каскадных таблиц стилей — CSS и добавляют интерактивности на языке JavaScript.

Back-end — это серверная часть. Тут происходит вся магия взаимодействия с интерфейсом, и часто мы видим только результат работы на серверной стороне. Важная часть работы с сервером — умение пользоваться базами данных. Если вам интересно это направление, смело учите язык управления базами данных SQL, MySQL и знакомьтесь с фреймворком Oracle. Бекенд можно писать на Ruby, Python, Java, PHP.

Крупные ресурсы всегда используют несколько инструментов, так как необходимо поддерживать работу нескольких дата-центров, серверов и системы взаимодействия этих серверов. Это продукт работы большой команды: программистов, инженеров и системных администраторов. Так социальная сеть ВКонтакте использовала для своей работы транслятор от компании Facebook — HipHop, превращающий исходный язык PHP в C++ для ускорения работы. Позже ВКонтакте создали свой собственный транслятор и назвали его Kitten PHP.

Мобильные приложения


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

Для разработки под систему iOS пишут на Swift и Objective-C. Под Android — Java и C++.

image
Мобильные приложения в Google Play Market.

Настольные приложения или десктоп


Это может быть десктоп-версия мобильного приложения. Например, мессенджер Viber. Или сервис видеозвонков Skype, созданный во времена, когда приложения для мобильных устройств ещё не были так популярны. И вообще любые программы для повседневных задач, которые можно запустить с ноутбука или компьютера.

Для Windows пишут на C++, C# и Java. Для Mac OS — Objective-C. Для разработки под Linux пишут на C и C++.

image
Настольные приложения в App Store.

Разработка игр или геймдев


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

Мобильные игры под Android пишут на Java и C++, под IOS — Swift и Objective-C. В браузерные онлайн-игры можно поиграть в социальных сетях. Здесь вам пригодится знание веб-разработки на JavaScript+HTML или Flash. Компьютерные игры часто пишут на C++. Этот низкоуровневый язык подходит больше всего, когда речь идёт о разработке сложных вещей.

image

Так одна из самых успешных игр в мире — Minecraft написана на языке Java, но специально для Android переписана на C++.

Ещё для создания игр используют специальные игровые движки типа Unity (C# и Java Script) и Unreal Engine (C++). Они упрощают процесс создания игр и позволяют создавать 2D и 3D игры на Mac OS, Linux, Windows и консоли PlayStation, Xbox.

Большие данные


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

В России рынок Big Data только формируется, но банки и телекоммуникационные компании уже проявили большой интерес. Появилась новая профессия — дата-аналитик. Существуют языки программирования типа R, разработанные специально для работы с большими объемами данных. Ещё используют Python, C, Java и Scala.

image
Big Data в исследовании компании МегаФон и института «Стрелка».

Оцените рынок


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

image
Данные «Моего круга».

По статистике видно, что самые высокооплачиваемые программисты, в среднем, это занимающиеся мобильной разработкой или программным обеспечением. В остальном — программисты крайне редко зарабатывают менее 80 тысяч рублей. К примеру, согласно отчету аналитической компании App Annie, ожидается, что мировой рынок мобильных приложений в 2017 г. вырастет на 28,6% и достигнет $166 млрд.

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

Выбирайте то, что нравится

Независимо от выбранной области программирования — язык должен вам нравиться. Пробуйте.
Нетология
89.73
Университет интернет-профессий
Share post

Comments 30

    +3
    Чёт с графиками зп совсем грустно…
      –1
      Спасибо за статью! А системное ПО — есть какие-то данные? Задавая этот вопрос я подразумеваю «ассемблер и си», в первую очередь.
        +8

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

          –1

          Почитайте про Xamarin.

            +1
            Почитайте про сарказм.
              0
              Так он же в сарказм
            0
            «Мобильные игры под Android пишут на Java и C++, под IOS — Swift и Objective-C.»
            Не соглашусь — в обоих случаях пишут на с++ и очень редко на языках платформы. В добавок не стоит забывать про unity которая позволяет писать на c# или js, для мобильных приложений.
              0
              Давно под ios пишут на плюсах?
                +2
                Ну я пишу начиная с 3 iOS. Кто-то еще раньше. Там есть mm файлы которые могут содержать код на двух языках objc и c++ — они выступают как обертки. Потом пишут на чистом с++. Причём для игр уже все давно написано: cocos2dx как самое популярное, он далеко не единственный.
                При этом swift написан на С++ и может также вызывать с++ код.

                Более того многое кроссплатформенные бизнес приложения имеют в ядре также С++. Точно знаю dropbox и 2gis все остальное менее известно.
              +6
              знакомьтесь с фреймворком Oracle

              Оу, что-то новенькое
                +3
                <сарказм> удивлен, что в статье не упомянули тот-самый-язык-на-букву-К </сарказм>
                  +5

                  Столько текста ни о чём. Язык — не цель, а средство.
                  Начинать лучше с Си, потому что он простой и оказал влияние на целую кучу мейнстримовых языков — синтаксис и многие концепции похожи. После Си можно учить чего душа пожелает.

                    –2
                    Начинать с Си? «Да ты чё?» (с) Белены объелся?
                      –1

                      Начать с C, а потом долго въезжать в концепции ООП.

                        0

                        Я тоже поддержу возмущение, Си даёт слишком мало абстракции для первого языка, лучше сначала учить Java или C#, а потом уже учить Си, чтобы понимать что реально происходит когда работает VM и на сколько это не эффективно :-D

                          0

                          Мне кажется, лучше понимать сразу, и Си этому хорошо способствует.


                          А то откроет новичок книжку по C#, а там — классы, структуры, модификаторы доступа, обычные и статические методы, наследование, геттеры-сеттеры, неймспейсы — причём это добро крутится в виртуальной машине. Структуры передаются по значению и могут лежать на стеке, объекты — по ссылке и в куче… Без начальных знаний всё это понять будет сложно.
                          Процедурное программирование никуда не делось, только в довесок появилась куча абстракций.


                          А вот если брать С# после Си — ок, алгоритмическая часть уже знакома, понимание принципов происходящего есть, остаётся только освоить ООП.


                          P.S. Я вообще в школе начинал с Паскаля — и лучше бы это был Си. В 11 классе пробовал писать игру на С# (был такой XNA Framework), но все эти фичи C# вместе с незнакомым синтаксисом вызывали боль. Потом я как-то освоил джаву (куда только не заведёт желание писать игры), а в институте на первом курсе был Си.
                          В общем-то не обязательно учить его полностью и со всеми нюансами. Мы тогда писали несложные задачки типа сортировок и построения деревьев и списков — не rocket science, но именно тогда у меня появилось понимание происходящего. Дальше всё стало просто.

                          0
                          С далеко не прост, в плане языка он маленький, но отсутствие ограничений открывает большой простор. «Цена за свободу — повышенная бдительность». А так да, после С можно учить все что угодно. Конечно, если бы все с него начинали, было бы лучше.
                          +3
                          Подскажите, какие из перечисленных языков лично использовал автор материала?
                            +1

                            Маркетинговый

                            0
                            В 2017 пора бы начать упоминать C# для бэкенда.
                              0
                              Первая пятерка не изменилась с 2016-го, судя по рейтингу TIOBE https://habrahabr.ru/company/kingservers/blog/307012/
                                0
                                Бекенд можно писать на Ruby, Python, Java, PHP, Node.js, Django.

                                А разве Django — это не фрейморк на Python?
                                  0
                                  После
                                  Бекенд можно писать на Ruby, Python, Java, PHP, Node.js, Django.
                                  перестал читать. Автор далек от темы
                                    0
                                    Бекенд можно писать на Ruby, Python, Java, PHP, Node.js, Django.

                                    Django внезапно стал новым языком программирования…
                                      0

                                      Как и Node.js

                                      0
                                      Выглядит как статья, написанная копирайтером, который пару часов почитал про программирование
                                        0
                                        Статистика с StackOverflow за 2016 и 2017 как по мне более интересная
                                          –1
                                          Изучайте Kotlin, как универсальный язык — будущее в JVM мире, транслируеться в JavaScript и наследник Java. Либо Go, как язык для бэкенда, быстрый и лаконичный.
                                            0
                                            > Изучайте Kotlin

                                            а вот и подъехало
                                            наследник Java? Ню-ню.

                                            > язык для бэкенда

                                            не существует серебряной пули для бэкенда
                                            0
                                            видимо зп в основном взяты по МСК, во многих провинциях РФ цифры меньше в двое, если не в трое

                                            Only users with full accounts can post comments. Log in, please.