Добро пожаловать на TLisBlog! Сегодня 16 февраля 2019 года.
Итак, какой же язык программирования выбрать? Кажется, этот вопрос будет жить вечно, как "в чем смысл жизни?" и прочие. В сегодняшней статье я постараюсь дать более-менее актуальный на сегодняшний момент ответ на этот вопрос для начинающих программистов.
В статье:
- Краткий анализ вакансий.
- Обо всём понемногу.
- Подводя черту.
- Бонус для дочитавших.
Краткий анализ вакансий.
Найти "ТОП N самых популярных языков программирования" сейчас не так уж и сложно, на самом деле. Но топ топу рознь. Ниже я хочу привести свой кратки анализ этих самых языков программирования, опираясь на список вакансий на HH.ru в моем не самом маленьком городе.
При составлении списка я не учитывал php, java script, perl и некоторые другие. Это не потому, что я не уважаю веб или что-то такое, а просто потому, что я больше причисляю себя к разработчику программ, а не сайтов. Хотя, про сайты так же на этой или на следующей неделе постараюсь рассказать, но отдельно.
Вы могли заметить, что ЯП упорядочены не по количеству вакансий всего, а по количеству вакансий без опыта работы. Это было сделано потому, что данная статья в основном написана для начинающих разработчиков.
Обо всём понемногу.
Что, языков много, а вы один, а времени не так уж и много. Так что, не смотря на то, что мы уже увидели примерную статистику, давайте рассмотрим каждый язык чуточку подробнее.
(вы всегда можете иметь своё мнения, частично или полностью несовпадающее с моим)
Python
Данный язык программирования имеет во многом более простой и удобный синтаксис, в отличии от таких ЯП как C#, C++, Java и других. Так же среди его достоинств можно выделить возможность кроссплатформенной разработки и возможность разработки сайтов.
К минусам питона относят скорость вычислений и... И пожалуй всё. А, ну и ещё среди вакансий без опыта ни у одной не была указана величина ЗП. Предположительно готовьтесь к хождению по дну первое время.
Java
Зарплата так же почти нигде не указана. Почти, но была пара вакансий и с цифрами. 30-100 тысяч — вакансия, по ошибке оказавшаяся в разделе "без опыта", по факту требующая опыт работы от 2-х лет. 16-25 тысяч — в моём городе это не такие уж и большие деньги, если честно, зато требуют на такой работе знаний английского и обязательно высшего образования. Если честно, то наличие вышки в требованиях расцениваю как вашу готовность к страданиям.
Плюсы Java:
- кроссплатформенность;
- больше всего вакансий в общем.
На этом плюсы данного языка кончаются. Такие вещи как автоматическое управление памятью и ООП я не указываю, потому что почти все современные языки обладают этим, а если нет, то мы сейчас рассмотрим C++.
Минусы:
- скорость выполнения программ;
- недавно Oracle объявила, что с 2019 года компания начнет взимать плату за использование Java Standard Edition 8 в «коммерческих целях».
- синтаксис языка может показаться сложным для новичков в программировании, а многословность и вовсе отпугнёт.
C++
А вот и царь царей. Язык, зная который, вы станете для кого-то полубогом, а для кого-то ископаемым. Я же не буду высказывать что-то крайне положительное или крайне негативное. Однако отмечу, что имею начальные навыки владения этим языком, и даже когда-то писал на нём консольный тетрис. Кстати, надо бы найти исходники...
Плюсы "плюсов":
- кроссплатформенная разработка;
- низкоуровневая разработка;
- скорость выполнения программ;
- можно быстро пересесть на любой Си-подобный язык.
Минусы "плюсов":
- падение популярности;
- в основном "пингвинячьи" вакансии. Я ничего не имею против линукса, но для новичков это может быть сложновато.
То, что я бы отнёс и к минусам и к плюсам:
- отсутствие автоматического управления памятью.
C#
Язык, которым я в основном пользуюсь, и... И это всё, что я могу сказать о нём кратко. Пожалуй, я отдельно про него напишу чуток позже, а если вам интересно, то не забудьте подписаться на канал, мы есть ВК и в Telegam, ссылки будут в конце статьи.
Плюсы:
- относительная кроссплатформенность;
- востребованность в игровой индустрии при владении Unity (больше половины идут на программиста чтоб делать игры);
- удобная среда разработки;
- возможность разрабатывать не только программы, но и сайты благодаря технологии ASP.NET;
- можно быстро пересесть на любой Си-подобный язык.
Минусы:
- относительная кроссплатформенность, всё же в основном ориентирован на Windows разработку;
- очень, ОЧЕНЬ легко дизассемблируется. Да, я знаю, что есть обфускаторы, есть антидизассемблеры, но и их не так уж сложно обойти;
- трудности при подключении dll, написанных на C и C++, но это так, из личного опыта;
- C# программистов уже столько, что девать нас некуда.
Ruby
Простите, можно не описывать?.. Кажется рубинчик какое-то время пошумел, набрал своих поклонников и угомонился.
Плюсы:
- можно разрабатывать не только сайты, но и программы. Да, в таком порядке, потому что большая часть вакансий по разработке сайтов. Зачем я добавил его в список?..
- пока что программистов Ruby не так уж и много, а вакансий хватает, так что вы вряд ли останетесь без работы;
- кроссплатформенность.
Минусы (нашлись не с первого поискового запроса):
- недостаточное количество ресурсов для обучения;
- сложность изучения;
- небольшая тормознутость, хотя она в принципе присуща всему, что связано с вебом (простите).
Go
Если честно, то совсем не знаком с ним, так что... Без описания.
Плюсы:
- можно разрабатывать не только сайты, но и программы. Да, ещё один.
- скорость выполнения;
- простой синтаксис.
Минусы:
- на самом деле из трёх найденных вакансий по запросу "Go" на HH.ru лишь одна оказалась подходящей, другие две были для разработчиков Python и Ruby.;
- недостаточное количество ресурсов для обучения.
Swift
Вот и настало время яблочек. Как-то я думал, что они будут где-то в первых трёх позициях, но... Нет, видно не судьба, а жаль, даже при моём отношении к яблочной продукции.
Плюсы:
- простой в обучении;
- быстро развивается.
Минусы:
- мало вакансий;
- мне как-то говорили, что там много мороки с дизайном.
Objective-C
Ещё один представитель яблочных ЯП, но у него чёт прям печально всё...
Плюсы:
- простите, я не нашёл, но честно искал. =/
Минусы:
- Низкая читаемость кода, что затрудняет изучение языка новичками;
- Не самая высокая производительность;
- Медленно развивается.
Подводя черту.
Подводя черту хотелось бы сказать, что на самом деле не так важно с какого именно языка программирования вы начнёте. Да, это говорят на многих сайтах, в разных статьях, но это чистая правда. Овладев хотя бы на среднем уровне любым языком программирования, после можно легко перейти на какой-то другой в течении 1-10 недель, а это не так уж и много.
Бонус для дочитавших.
Если вы дошли до этого места, значит вам действительно было интересно, и я искренне благодарен вам за это. Как я уже говорил, на другой язык перейти не сложно. Если вы пока так и не решили с чего начать свой путь, то я напоминаю, что в марте планирую начать серию уроков по C#. Подписывайтесь, чтобы не пропустить начало курса, ведь я постараюсь сделать его наиболее интересным, и не таким сухим, как большинство других курсов, коих уже довольно-таки много.
Чтобы не упустить из жизни что-то интересное, важное и полезное, подписывайся на канал Telegram и группу Вконтакте.
Читать прошлую статью — Радости разработки. За что я люблю проблемы.