Лучшие языки программирования в 2020 году

Введение

Начну с мелочи. Удобно ли сейчас организована типичная смена раскладки клавиатуры? В смысле переключения на русский/латинский? На мой взгляд, в смартфонах и то удобнее. Не надо нажимать одновременно все эти «Shift» и «Alt». На моем первом домашнем компьютере «Электроника-901» (он же ai-PC16) было даже две специальных «пустых» клавиши примерно там, где сейчас клавиши-«окна». Одна переключала на русскую раскладку постоянно, а другая — временно (на время нажатия). Это гораздо удобнее. Впрочем, самый удобный вариант переключения в свое время я сделал сам из массивной педали от швейной машинки «Тула», просто соединив ее двумя проводами с контактами DTR и DSR разъема RS-232. В этом случае если программно установить бит DTR в «1», то наличие сигнала DSR означает, что педаль нажата, иначе – отпущена. Переключать раскладку без рук оказалось очень эргономично. Увы, по мере распространения новых интерфейсов, RS-232 постепенно сошел на нет и сейчас в ноутбуке педаль просто некуда подключить.

Кстати, дарю идею фирмам, выпускающим всякую USB-ерунду, вроде пластикового хамелеона, периодически высовывающего язык: выпустить USB-устройство в виде педали, при нажатии на которую эмулируются нажатия заданных пользователем клавиш. Правда уже есть USB-руль с педалями, но там все-таки много лишнего. Наиболее очевидное использование нового простого устройства – переключение раскладки клавиатуры без помощи рук.

Справедливости ради: на некоторых клавиатурах есть отдельная клавиша переключения (на ней обычно нарисован глобус). Сложность в том, что на многих других компьютерах ее нет. В древнем текстовом редакторе «SideKick» я даже когда-то использовал обе клавиши «Shift», поскольку они есть всегда: правая переключала постоянно (и поэтому как «Shift» вообще не работала), а левая – временно, первые две секунды как «Shift», а уже затем как переключатель. Смысл в том, что тогда можно печатать, например, по-русски, затем, удерживая мизинцем клавишу, одно слово по-английски, затем отпустить и опять продолжать по-русски.

Но, повторю, громоздкое переключение — это мелочь, не проблема, а, скорее, следствие отношения к использованию русского языка как к чему-то второстепенному и не стоящему внимания. Хотя и эта мелочь нет-нет, да и напомнит о себе, хотя бы в виде модной, но глупой аббревиатуры КЫВТ (вместо RSDN) на форумах сайта RSDN.RU.

Настоящей проблемой, на мой взгляд, является появление на тех же компьютерных форумах обсуждений на тему: «мешает ли русский язык программированию». С точки зрения той части российских программистов, которые работают в западных фирмах или поставили себе такую цель (с возможным и желательным отъездом за границу) русский язык в программировании – это действительно зло, дополнительный барьер, мешающий быстрее адаптироваться в англоязычной среде. Но мне кажется, им мешает не русский язык в программировании, а русский язык вообще.

Самые популярные языки программирования

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

Популярные языки программирования по версии StackOverFlow

Python

Python — популярный высокоуровневый язык программирования общего назначения. Его используют в веб-разработке, машинном обучении, создании приложений под различные платформы и т. д.

В рейтинге пользовательских симпатий StackOverFlow Python занимает одно из первых мест. И это не удивительно, ведь он имеет приятный синтаксис, хорошую читаемость и продуманную модульность. Очень многие новички выбирают Питон в качестве своего первого языка.

Подробнее про этот язык программирования можно почитать на википедии. Там все: от истории до конкретных примеров применения.

Java

Java — еще один популярный язык, который может применяться в разных сферах. От других ЯП Java отличается мультиплатформенностью.

То есть, приложения, написанные на этом языке, могут использоваться и на Windows, и на Linux, и на любой другой операционной системе. В веб-разработке Java также используется.

Возможно это благодаря JVM — виртуальной машине, которая может транслировать байт-код в любой другой, «понятный» для конкретной платформы.

Подробнее об этом языке можно прочитать все там же — на википедии.

PHP

PHP — скриптовый язык программирования, который используется в веб-разработке. WordPress, Joomla и некоторые другие популярные CMS написаны на этом языке. Он имеет простой синтаксис и много разных расширений.

PHP-программисты могут неплохо зарабатывать, потому что большая часть сайтов в интернете работает на этом языке. На рынке фриланса, соответственно, много заказов, которые связаны именно с PHP.

Подробнее об этом языке можно почитать в википедии.

JavaScript

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

Данный язык не имеет ничего общего с Java. Он также может работать в объектно-ориентированном стиле, но, как я и сказал, чаще его используют в вебе.

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

C++

Про C++ вы наверняка уже где-то слышали. Этот язык постоянно на слуху, поэтому не удивительно, что он есть в рейтинге популярных языков программирования.

C++ — это язык общего назначения, который применяется в самых разных направлениях. На нем пишут приложения, программы, игры и т. д. Даже драйверы и некоторые операционные системы написаны на этом языке.

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

HTML/CSS

HTML и CSS — это НЕ языки программирования. HTML — язык разметки, CSS — стилей. С их помощью создается дизайн ресурса. В StackOverFlow эти языки размещены на 2-м и 3-м местах.

И некоторые люди ошибочно думают, что эти два языка используются для программирования чего-то. Но нет. Я размещаю их здесь, чтобы еще раз указать на это. Еще многие гуглят подборки популярных языков, надеясь увидеть в них именно html/css. Не будем лишать удовольствия таких людей.

C#

C# (произносится как C Sharp) — объектно-ориентированный язык программирования, который используется в разработке под Microsoft .NET Framework. У него C-подобный синтаксис, хотя многие отмечают сходство с Java.

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

Ruby

Ruby — динамический высокоуровневый язык, который используется в разных областях. Одна из них — приложения для Linux и MacOS. Другая — веб-разработка.

В Ruby простой синтаксис, многие сравнивают его с Python и Perl. С последним у Ruby более заметные сходства.

Подробнее об этом языке можно узнать из статьи на Википедии.

Swift

Swift — язык программирования общего назначения от Apple. Именно на этом языке разрабатываются приложения для MacOS и iOS. В силу того, что продукция Apple обрела огромную популярность, Swift стал одним из самых популярных языков программирования.

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

Верить ли этому — решайте сами. Я же просто оставлю ссылочку на подробную статью о Swift. Если вас заинтересовал этот язык — обязательно ознакомьтесь.

Python

Разработчики любят Python за универсальность, при этом его все активнее используют в узкоспециализированных областях — например, дата-сайенс и машинном обучении. Python регулярно занимает первые места в различных списках языков программирования. Специалист со знанием Python может получить доступ к самым разным задачам и проектам.

Кроме того, многие разработчики считают, что Python легко учить.

В интернете есть много учебных материалов по Python. Например, Python.org предлагает удобное введение в программирование и Python. У Microsoft есть видеокурс Python for Beginners с десятками уроков. Большинство из них длится менее пяти минут, и все они — не более 13 минут.

Начинаем с основ

Сегодня говорим о том, что такое язык программирования.

Языки программирования (ЯП) похожи на языки человеческого общения, но устроены проще. Выучить язык программирования можно за несколько месяцев. Опытные программисты могут изучить новый язык за несколько недель. В мире уже более 8000 языков программирования. Нет такого консенсуса, как «лучший язык». Хотя есть языки, которые дают фундаментальные знания, С++ например. И есть отслеживание популярности языков, в частности, TIOBE Index.

Ядро из двух десятков наиболее популярных языков состоит из: Java, C, Python, C++, Visual Basic .NET, JavaScript, C#, PHP, SQL, Objective-C, Assembly language, MATLAB, Perl, Delphi/Object Pascal, R, Ruby, Visual Basic, Go, Groovy, Swift. Есть еще 2-3 десятка довольно широко используемых языков, таких как Scala, Lua, Fortran, COBOL, Lisp, Prolog, Rust, Kotlin, Eglang, Haskell и др. Со временем разработчик знает и сочетает несколько языков для разных задач и платформ.

У языков программирования есть авторы, правила, спецификации, стандарт конкретного языка и разные реализации / воплощения стандарта. Реализации языка влияют на то, как разработчики пользуются им.

Языки программирования – по сути, инструмент сторителлинга. У вас есть идея, «сюжет», и на языке программирования вы пишете структурированное «произведение», которое компьютер сможет считать, интерпретировать и выполнить. То есть «оживить» исходный код в виде программы, сайта, приложения и т. д., где доступен ряд действий. (Если образно, то напоминает придумывание сюжета, работу над архитектурой истории, написание добротного сценария без ляпов, овладение специальными инструментами для съемки, сам съемочный процесс, монтаж и демонстрацию кино, причем интерактивного.)

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

Язык программирования – это набор правил, которые определяют, как написанная компьютерная программа выглядит и что компьютер может сделать под ее управлением. Программа представляет собой код, написанный по правилам конкретного языка программирования. Код, из которого состоит программа, называют «исходный код».

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

Сегодня код, написанный на популярных языках программирования, для удобства выглядит как текст, состоящий из строк на английском языке. Для того чтобы исходный код смог прочитать и выполнить компьютер, он «переводится». Об этом Almamat Blog расскажет в другом выпуске IT-ликбеза.

В спецификациях языка прописаны его синтаксис и семантика. Каждый язык программирования имеет свой словарь/алфавит. Цепочки и последовательности символов образуют предложения, построенные по правилам языка программирования, – это грамматика. Синтаксическая структура языка служит для определения смысла написанного кода.

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

Синтаксис языка программирования – это порядок слов, форма записи; правила построения сообщений, комбинирования символов и слов. Синтаксис ЯП проще, чем синтаксис человеческих языков общения.

Итак, в программировании слова с каким-то начальным смыслом комбинируются по правилам, чтобы придать действиям смысл.

Обращаем внимание на рынок труда

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

Итак, следует знать, что лидером по количеству вакансий является Java, а второе место занимает JavaScript. Однако мы должны учитывать, что JavaScript, несмотря на то, что он существует уже два десятка лет, активно используется лишь в последнее время. Именно с его помощью создаются ресурсы и вспомогательное ПО таких компаний как PayPal, Walmart и Netflix.

При этом, анализируя рынок труда, можно с уверенностью сказать, что сейчас наблюдается ощутимый недостаток в JavaScript-девелоперах. Например, на каждую такую вакансию приходится всего 0,6 соискателя. Для сравнения, на одно место Java-разработчика претендует целых 2,7 специалиста.

C (1972) и C++ (1985)

C++ изначально появился как развитие языка C, поэтому я объединил оба в одном пункте. Можно сказать, что это дедушка и отец остальных языков в этом списке: они здесь старше всех и очень повлияли на другие языки.

Сейчас они выглядят не точно так, как в момент появления (у C++ каждые три года принимают новый стандарт, недавно был принят C++20), и с годами всё сильнее различаются. Но идеи, заложенные ещё в начале, продолжают накладывать свой отпечаток. Когда создавался C, компьютеры были куда менее производительными, так что их ресурсы приходилось экономить куда старательнее. И тогда всё было «ближе к железу»: программирование в большей степени, чем сейчас, требовало понимать, как физически работает компьютер.

В результате теперь по сравнению с более современными языками у С и С++ репутация «хардкорных»: требовательных к программисту, зато позволяющих выжать из железа всё. И зачастую используют их как раз там, где действительно нужно выжимать как можно больше: например, в играх. Или в софте не для привычных компьютеров, а для различных других устройств, в которых зачастую маломощные процессоры — от автомобилей до банкоматов.

Раз всё сложно, в чём смысл делать подобное своим первым языком? Тут мнения разнятся. Многие считают, что действительно лучше начинать с чего-то полегче. Но есть и такая позиция: при изучении таких языков лучше понимаешь, как работает компьютер и исполняется код, а это для программиста очень полезно. В общем, можно посоветовать тем, кто не ищет лёгких путей, а хочет понять всё поглубже.

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

Веб-разработчики, пожалуй, самые востребованные. И снова деление: одни разрабатывают серверную часть (backend), другие создают пользовательскую (frontend). Серверная часть сайта отвечает за обработку запросов, взаимодействие с базами данных, хранение файлов, обеспечение безопасности и так далее.

Наиболее распространён среди backend-разработчиков язык PHP — на нём написано около 79% всех сайтов в интернете. В России открыто около 5 000 вакансий для PHP-программистов. Он пригоден для работы небольших сайтов, которые не нужно долго поддерживать. Если же проект рассматривается как долгосрочный, то лучше выбрать Java — его любят в финансовой, банковской и государственной сферах.

Поэтому в вакансиях для Java-разработчиков есть место и создателям веб-приложений. А PHP-специалисты нужны именно для создания сайтов. В некоторых странах о нём забыли совсем — например, в Германии. Учтите это, если хотите устроиться разработчиком за границей.

Frontend — разработка видимой части сайта (интерфейс); backend — разработка серверной части (обработчик).

В вебе работают и с Python. Но новичку здесь сложнее пробиться, потому что в основном нужны люди с опытом.

Если же говорить о визуальной части сайта, тот тут у JavaScript альтернатив нет. Это язык скриптов, реакций на действия пользователя. JavaScript — самый востребованный язык из нашего списка: в России около 10 000 вакансий для специалистов по JS.

Почему JavaScript

В веб-разработке JavaScript преподносится как язык по умолчанию. Он идеально подходит, если вы хотите создавать что-то большее, чем красивые, но всё же статичные сайты. Но это не единственная причина, по которой стоит выбрать JavaScript в качестве первого языка программирования.

Писать код можно прямо из браузера

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

Для новичка в программировании это особенно важно. Освоить командную строку и компилятор легко, но на первом этапе они усложняют восприятие и отбивают интерес к изучению

Всё, что нужно для работы с JavaScript, — это браузер.

Как открыть консоль разработчика в браузере Google Chrome

Кликните правой кнопкой мыши в любом месте на странице, выберите «Просмотреть код».

Далее выберите Console. Перед вами откроется окно консоли разработчика. Другой способ — клавиша F12 на Windows или Cmd+Opt+J на Маке.

Попробуйте написать первую стандартную команду — console.log (‘Hello, JS! ‘); и нажмите Enter. В скобках вместо ‘Hello, JS! ‘ может быть любое слово. Главное — не забудьте кавычки, если это набор букв (для чисел кавычки не нужны). Ниже строкой консоль выведет ваше сообщение.

Ресурсы по JavaScript для начинающих:

  • Книга «Выразительный JavaScript».
  • Современный учебник Javascript.
  • Ресурсы по JavaScript на Mozilla Developer Network.
  • Курс JavaScript от CodeCademy (на английском).
  • FreeCodeCamp (на английском).

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

Следом в текстовом редакторе пишется сама программа, сохраняется, а затем компилируется с помощью «Терминала».

Команды для ввода в «Терминал» для создания директории, компиляции и запуска кода на Java

Шаг 4. Реши, с чего начать изучение языков программирования

По версии сервиса GitHub, работодатели в 2021 году чаще всего ищут программистов на следующих языках.

  1. Выбери сферу. 
    Напомним. Определись, чем ты хочешь заниматься. В рамках этого узнавай, как выбрать язык программирования и оставляй тот, который тебе ближе. 
  2. Начни изучать.
    Учи синтаксис, читай гайдлайны. Это можно делать самостоятельно по учебникам, видеоурокам. Если тяжело с самоорганизацией – проходи курсы. 
  3. Пиши код. 
    Теоретическое изучение не даст толку. Воспроизводи то, о чем читал в книге. Разбирай примеры чужого кода, но не копируй: вдохновляйся и воспроизводи по-своему. Разберись с алгоритмами. 
  4. Найди работу. 
    Обучение от проблемы самое эффективное. Это когда ты решаешь конкретную коммерческую задачу. Поэтому ищи заказы или иди на работу. В компаниях нередко есть вакансии trainee или интерна. 
  5. Поддерживай навыки.
    Общайся в сообществах профессионалов. Изучи фреймворк под свою специализацию. Следи за обновлениями в своей сфере и продолжай углублять умения.

Go

Сложность: синтаксис Golang минимален, а широкая стандартная библиотека позволяет быстро разобраться в управлении командами.

Профессии: Backend-разработчик

Продукты: YouTube, архитектура Ozon, backend Wildberries

Go разработали инженеры Google. Это (так же, как Swift и Kotlin) — компилируемый язык, который выступает альтернативой С++ для высоконагруженных приложений

На нем можно писать сетевые приложения на промышленном уровне, поэтому на Go все чаще обращают внимание крупные ритейлеры (вроде Ozon)

По сравнению с остальными языками, этот — очень молодой (2009 год), но у него достаточно быстро растущее комьюнити, которое взаимодействует по Google-рассылке.

Курс

Backend-разработчик

Программа рассчитана на 12 месяцев. В конце обучения вы сможете уверенно претендовать на позицию Junior+ Go Developer. Дополнительная скидка 5% по промокоду BLOG.

Узнать больше

Разумные границы использования

Попытки превратить язык программирования в национальный или, наоборот, избавиться от национальных особенностей в тексте программы были предприняты еще более полувека назад. Я имею в виду языки Кобол и АПЛ.

Язык Кобол предполагал, что программу можно будет писать просто по-английски. Поэтому он имел большое число зарезервированных и даже «шумовых» (необязательных) слов. Но ничего хорошего из этого не вышло. Текст программ все равно получался не на английском, а на ломаном английском, а их анализ усложнялся. Точно так же не получится писать программы и на любом другом «настоящем», например, русском языке, поскольку обычный язык никогда не будет тождественен программному. Однако наличие некоторого множества слов и их частых сочетаний на родном языке все же улучшает и на интуитивном уровне облегчает понимание текста программы, ведь, в конце концов, человек не сканер транслятора и не анализирует текст посимвольно.

Другую крайность представлял язык АПЛ, имевший большое число специальных знаков для всяких операций. Запись программы на АПЛ внешне напоминала записи, которыми пользуются математики. АПЛ остался в истории знаменитым тем, что программу, записанную на одной строке, т.е. не более 80 знаков, можно было анализировать часами, т.е. долго разгадывать, что же, собственно говоря, она делает. Получалось, что кроме авторов в таких программах вообще никто не мог разобраться, и идея сверхкомпактной записи большим числом специальных знаков была заброшена.

На мой взгляд, программные тексты должны иметь золотую середину между этими крайностями. Они, конечно, не должны быть слишком многословными и этим напоминающими старинные поваренные книги, но и шарады из цепочек значков и скобок (можно вспомнить Лисп, где встречалось до двадцати скобок подряд) это тоже не идеал. А если в тексте программы все же используются не одни значки, но и слова, то лучше, чтобы они были на родном языке.

Искусственный интеллект и аналитика

Хотя тема ИИ кажется чем-то далёким, люди занимаются этим уже сейчас, используя Java, C++, R и Python. Наибольшей популярностью пользуется именно последний — около 6 300 вакансий в России.

Задача разработчика ИИ — написать программу, которая обрабатывает информацию, следуя определённым алгоритмам. Пропуская через себя большой объём данных, программа учится выполнять какие-то задания.

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

Посмотрите пример на сайте thispersondoesnotexist.com. Есть и другой аналогичный сайт, но на нем генерируются фотографии кошек — thiscatdoesnotexist.com. С людьми получается явно лучше.

Портрет человека, сгенерированный нейросетью

Изображение кошки, сгенерированное нейросетью

Python

Python тоже часто используется в веб-разработке, а ещё это один из самых популярных языков для анализа данных и в Data Science. Вы встретите Python в разработке веб-сайтов и утилит, в машинном обучении и работе с нейросетями.

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

Плюсы Python

  • Легко освоить.
  • Удобный синтаксис.
  • Прекрасно подходит для своих задач (мы перечислили их выше).
  • Для него создано много полезных фреймворков и библиотек.

Спорные моменты

  • Частичная поддержка многопоточности.
  • Медленный, но можно значительно ускорить с помощью Cython.
  • Неявная типизация.

Зарплаты и востребованность

По объединённым данным сайтов для поиска работы (HeadHunter, Superjob, Rabota.ru и другим), вакансий для разработчиков на Python в Москве около 200, а зарплаты в среднем около 105 тысяч рублей. Для новичков — в среднем 60 тысяч, а для специалистов — от 150 до 170 тысяч. Если вы разбираетесь в нейросетях и знакомы с машинным обучением, то скорее всего ваша зарплата будет выше.

Синтаксис

Вот пример кода в Python:

Это имитация шляпы из «Гарри Поттера», которая распределяет студентов по факультетам. Наша шляпа учится сама. Она читает данные о студентах из прошлых лет и делит их на две группы: данные о самих студентах и о том, на каком факультете они учатся. Потом шляпа учится предсказаниям с помощью модуля машинного обучения и проверяет свои способности на контрольной группе. В конце программа оценивает точность предсказания.

По намерениям

Какая сфера привлекает вас больше других?

1. «Хочу делать сайты и веб-приложения»

Java, JavaScript, HTML 5, Ruby, Python, SQL, PHP

2. «Хочу написать приложение для айфона»

Swift (потребуется макбук или iPad с клавиатурой, чтобы писать код). Коммерческому iOS-разработчику нужно знать Objective-С и Swift.

3. «Хочу писать приложения под Android»

Java и Kotlin

4. «Хочу сделать карьеру в IT»

Разница между «работать» и «сделать карьеру» в IT есть, как и на других рынках. Хорошо начать с С/C++, так часто пишут, потому что между ними есть несколько отличий, а в целом они похожи. В описании вакансий часто пишут именно С/C++. Работы много и на российском, и на калифорнийском рынках. Хорошие перспективы для развития и вертикального роста.

5. «Хочу работать с темой AI»

Python, C/C++

6. «Хочу работать с данными»

Python, Java, R, Scala

7. «Хочу работать в геймдев»

Базис – С# и среда Unity

8. «Хочу понять, как все это работает»

С/C++

9. «Хочу работать в робототехнике»

С/C++

10. «Хочу быстро сделать свой стартап»

Ruby, Java, Swift, JavaScript

11. «Хочу работать в IoT, интернете вещей»

С/C++, Python, Java, Go, JavaScript

12. «Хочу работать в известной компании»

Вот данные авторитетного ресурса Stackshare.io по использованию популярных языков программирования в известных компаниях:

Java (Airbnb, Instagram, Uber Technologies, Spotify, Netflix, Pinterest, Slack, Google, LinkedIn, Lyft)

Python (Instagram, Uber Technologies, Spotify, Netflix, Facebook, Dropbox, Pinteres, Reddit, Google)

С (Twich, Telegram Messenger)

JavaScipt (Airbnb, Instagram, Slack, Reddit, eBay, Asana, Coursera, Product Hunt, MIT)

C++ (Google, Twich, IBM, Lyft)

C# (Microsoft, Stack Overflow)

Objective-С (Apple, Instagram, Uber Technologies, Pinterest, Slack, Snapchat)

Swift (Lyft, Asana, Apple)

Go (Google, Uber, Medium, Lyft, Shopify, Twich, Codeacademy)

Ruby (Airbnb, Shopify, StackShare, Twich, Starbucks, Hulu, Kickstarter, Product Hunt, Hotel Tonight, MIT, Coinbase, Codeacademy)

13. «Хочу перейти на IT-рынок»

Если входить через специальность QA-инженера, то можно начать, например, с JavaScript, Java, Ruby или Python. Названия Java и JavaScript похожи, но свойства языков различаются, оба языка – топовые и характеризуются как доступные для новичков.

Что делать, если я не хочу изучать эти языки?

Разумеется, мы не заставляем вас целый год учить «никому не нужные» Pascal и Delphi: достаточно просто потренироваться в них какое-то время, чтобы усвоить правила хорошего тона. Наша задача — только дать совет, с какого языка лучше начать изучение программирования. С самообразованием будьте аккуратны: можно испортить себя как разработчика, едва начав карьеру.

Не исключено, что наши рекомендации покажутся вам старомодными, и вы захотите броситься на амбразуры кодинга как можно скорее с динамическими языками современного веба: PHP, Python и другими. Тогда начинайте изучение программирования с поиска ментора и прохождения онлайн-курсов. Здесь вас научат писать код по правилам те, кто уже давно умеет это и прошли боевую школу со многими другими языками и технологиями. Присутствие наставника — это очень важный фактор при изучении программирования на первых порах.

Рекомендуем курсы для начинающих под руководством ментора:

«Профессия Java-разработчик» — углубленное изучение универсального языка программирования в течение 4 месяцев.

«C#-разработчик с нуля» — практический базовый курс по C# с разработанным десктопным приложением на выходе.

JavaScript

Следующий must have среди языков — JavaScript, для работы с ним хватит браузера. Синтаксис здесь на порядок сложнее: появляются служебные символы и конструкции с разношерстными скобками, названия функций далеко не всегда раскрывают суть действия, и даже простейший код имеет структурированный вид. Взглянем на переписанный код с функцией Фибоначчи:

function fib_recursion(n) {
   return n < 1 ? 
    	 n <= 2 ? 1
    	 fib_recursion(n - 1) + fib_recursion(n - 2);
}
 
console.log(fib_recursion(10));

Объем кода практически не изменился, зато снизилась читаемость. После изучения Python вы без проблем разберетесь, как работает структура return, и оцените удобство именно такого способа записи.

Кроме того, экосистема JavaScript богаче, чем Python. Она предлагает обилие сред разработки, редакторов кода, фреймворков, библиотек. Это еще один шаг к пониманию, как работает «взрослое» программирование.

В целом, JavaScript незначительно уступает Python по спектру решаемых задач, но его возможности «глубже». Знание этого языка пригодится при разработке программ на любых платформах.

По деньгам

Деньги на разных рынках принципиально разные. Например, в Кремниевой долине в разы выше. Много достойных вакансий для тех, кто пишет на Java (разработкой под Android) и Java Script; на С/С++, а также на Objective-С и Swift (разработка под iOS).

Глобально, на порядки больше денег приносят работа в компаниях-мейджорах и такие языки, как F#, Clojure, Groovy, Perl, Erlang, Rust, Scala, Go. Кстати, в этом же ряду популярный простой и лаконичный Ruby. А Rust любят многие в IT-комьюнити. Менее популярные языки часто изучают в дополнение к своему основному, широко используемому на рынке.

Доступные и популярные языки, такие как Java или JavaScript (JS), а также языки, дающие фундаментальные знания (С/С++), приносят хорошие деньги и позволяют быстро находить работу в России, на аутсорсе или с релокацией в другие страны.

Что выбрать новичку?

Опишем краткий алгоритм выбора.

Для начала выберите не язык, а интересное вам направление. Это может быть веб-разработка, десктопная, мобильная или серверная разработка. А может быть, вы хотите заниматься анализом данных.
Теперь оцените свои силы и навыки и выберите язык, подходящий вашему уровню. Если вы никогда ничего не программировали и не учились программированию ни в школе, ни в университете, начните с языков полегче (JavaScript, CSS), а если вы чувствуете себя увереннее и уже пробовали что-то писать, можете выбрать Java.

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

Не надо пытаться сразу всё досконально изучить, но важно ориентироваться в технологиях.

Java

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

Кроме того, Java — великолепный язык, чтобы полноценно понять программирование: здесь реализованы все принципы ООП, организована работа с памятью и периферией, можно поупражняться с функциональным программированием.

А вот так выглядит Java-код нашей последовательности в простейшем императивном случае:

public class MainClass {
 
  public static long fib_recursion(long number) {
	if ((number == ) || (number == 1))
  	return number;
	else
  	return fib_recursion(number - 1) + fib_recursion(number - 2);
  }
 
  public static void main(String args) {
	for (int counter = ; counter <= 10; counter++)
  	System.out.printf("Fibonacci of %d is: %d\n", counter, fib_recursion(counter));
  }
}

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

Для тех, кто хочет начать быстрое освоение Java, наш педагог Сергей Ирюпин подготовил цикл вводных статей, которые мы постепенно публикуем в блоге:

  • Быстрый старт с Java: от знакомства до вашей первой игры
  • Быстрый старт с Java: пишем «крестики-нолики
Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Adblock
detector