Выбор языка программирования

Java

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

На Java разрабатывают десктопные программы, приложения под Android, серверные конструкции и масштабные промышленные и банковские системы. Достаточно сложный в освоении язык.

Новички могут рассчитывать на 35–60 тысяч рублей. Специалисты среднего уровня — на 50–100 тысяч. Высокий уровень — на доход 135–270 тысяч рублей.

Синтаксис простой и понятный. Методология языка — классическое объектно-ориентированное программирование. Работает на всех операционных системах. На Java можно написать ПО любой сложности — от небольшой утилиты до комплекса с миллионами строк. Кстати, если хотите писать для Android — приложения на нем делают только на Java.

Особенности:

  • Разработка на Java подразумевает высокий уровень абстракции. С одной стороны, такое ПО легче поддерживать и развивать. С другой — типовые и простые вещи требуют бОльших усилий. Сравните: на PHP для чтения файла по ссылке нужна одна строчка кода. На Java придется написать пять-десять строк.
  • Строгость языка. Это надежно, отсутствуют неявные конструкции, нет упрощений. С другой стороны, код очень громоздкий. Представьте, что вы продаете машину. Если говорить просто, то выйдет что-то вроде: «Вот машина. Вася продал ее Пете. Петя отдал деньги Васе». На Java все то же самое придется написать в форме договора купли-продажи — когда отдают деньги, где что в машине, какие номера двигателя, корпуса. Плюс еще масса данных. Так, чтобы не было многозначности.
  • Высокий порог вхождения: синтаксис прост, примеров много, но общие принципы понять сложно. Придется очень много учиться и практиковаться. Но и возможности в итоге получите практически безграничные.

Стек:

  • IDE: Eclipse, Netbeans, IntelliJIDEA, AndroidStudio;
  • среда выполнения: JVM (Java Virtual Machine);
  • фреймворк: Spring, Swing, Hibernate, OrmLite (для Android);
  • инструменты для Android: SDK Manager, Android Emulator (эмуляторы ОС разных версий);
  • базы данных: Oracle, MySQL и любые другие;
  • менеджер зависимостей: Grandle, Ant, Maven.

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

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


Пример кода на Java — создаем окно с кнопкой

Курс «Профессия Java-разработчик»

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

  • Живая обратная связь с преподавателями
  • Неограниченный доступ к материалам курса
  • Стажировка в компаниях-партнёрах
  • Дипломный проект от реального заказчика
  • Гарантия трудоустройства в компании-партнёры для выпускников, защитивших дипломные работы

Перспективные языки: почему эти пять?

Пять языков программирования, о которых пойдёт речь, весьма новы (не исключено, что о каком-то вы услышите впервые), и они явно имеют отличные шансы пробиться во второй эшелон в ближайшие 2-3 года. Может быть, когда-нибудь один из этих языков сможет потеснить и языки первого эшелона.

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

Elm набирает популярность в сообществе JavaScript, в первую очередь среди тех, кто предпочитает функциональное программирование, которое находится на подъеме. Как и TypeScript или Dart, Elm транспилируется в JavaScript.

Rust является языком системного программирования, предназначенным в основном для ниш, где применяют С и С++. Поэтому удивительно видеть, что популярность этого языка быстрее растёт среди веб-разработчиков. Этот факт становится более осмысленным, когда вы выясняете, что язык был создан в Mozilla, которая хотела дать лучший вариант веб-разработчикам, которые вынуждены писать низкоуровневый код, и при этом более производительный, чем PHP, Ruby, Python или JavaScript. Rust был также признан лучшим в номинации ”сама любимая технология” по результатам опроса разработчиков, проведённом StackOverflow в 2016 году (это означает, что большинство пользователей хотели бы продолжать использовать этот язык).

Kotlin существует уже около пяти лет, но только в этом году он достиг production-ready версии 1.0. Несмотря на то, что он ещё не достиг популярности Scala, Groovy или Clojure — три самых популярных и зрелых (не считая Java) языков под JVM — он выделяется из множества других JVM-языков и, кажется, готов занять свое место среди лидеров этой группы. Язык возник в JetBrains (создатель популярной IntelliJ IDEA IDE). Так что он продуман с упором на производительность труда разработчиков.

Crystal — ещё один язык, который надеется принести производительность программ на уровне C в высокоуровневый мир веб-разработчиков. Crystal нацелен на Ruby-сообщество, т.к. его синтаксис подобен, а порой идентичен, Ruby. И без того большое количество стартапов на Ruby продолжает расти, и Crystal может сыграть ключевую роль, помогая поднять производительность этих приложений на следующий уровень.

Elixir также черпал вдохновение из экосистемы Ruby, но вместо того, чтобы пытаться принести C-подобные преимущества, он ориентирован на создание высокодоступных, отзывчивых систем, т.е. на то, с чем Rails имеет проблемы по мнению критиков. Elixir достигает этих преимуществ при помощи Erlang VM, которая имеет прочную репутацию, основанную на 25 годах успешного применения в телекоммуникационной отрасли. Phoenix (веб-фреймворк для Elixir), наряду с большой и цветущей экосистемой, придаёт этому языку дополнительную привлекательность.

Теперь взгляните, как четыре из этих пяти языков карабкаются по лестнице популярности (на основе данных StackOverflow и GitHub):

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

Как научиться?

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

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

Вполне вероятно, что задача, с которой вы столкнулись, уже решена и это решение где-то лежит. Иногда разобраться с тем, как оно работает, сложнее, чем написать заново. Это стандартная программистская проблема, но для этого у нас есть Stack Overflow, одно из главных изобретений человечества в сфере программирования. Это сайт, где разработчики делятся опытом и отвечают на вопросы друг друга. У каждого участника свой уровень репутации, все очень удачно спроектировано, поэтому на простые вопросы можно получить ответ в течение десяти секунд. Это очень помогает. В современном мире вы не просто пишете программу — вы одновременно используете огромное количество программ и инструментов, уже созданных другими людьми.

Хороший способ научиться программировать — поставить перед собой задачу, которой вам было бы интересно заниматься, и потом попытаться ее решить. Конечно, есть множество онлайн-курсов — почитайте отзывы, чтобы выбрать подходящий. Первый язык программирования — это сложно, потому что нужно перестраивать то, как вы взаимодействуете с компьютерами и анализируете процессы. Универсальных ответов нет, все очень индивидуально. Кому-то достаточно почитать документацию, посмотреть примеры кода, и все понятно. В другой ситуации хорошо иметь наставника, который ответил бы на базовые вопросы. Вот несколько советов, которые кажутся мне важными.

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

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

Не беспокойтесь по поводу математики. Желательно знать, что такое остаток от деления числа на другое число, но все зависит от задач, которые перед вами стоят. Конечно, если вы хотите хитро обрабатывать данные, то вам нужна математика в том объеме, который нужен для такой обработки.

Не бойтесь. Когда вы будете начинать программировать для себя, наверное, вы будете писать не тот код, который понравится профессиональным разработчикам. Они скажут, что так не пишут, что это избыточно, что такой код будет сложно поддерживать, и так далее. Наверное, они будут правы. Но если вы пишете для себя и если вы только начинаете, это нормально, что ваши первые попытки не являются текстами уровня Льва Толстого. Если вы напишете программу, которая будет работать и решать вашу задачу, то это хорошо.

Есть мнение, что на фоне развития искусственного интеллекта и машинного обучения программисты скоро будут не нужны: компьютеры сами научатся себя программировать. Но мне кажется, что это не так. До тех пор, пока есть задачи и пока нужно объяснять, как их решать, программирование будет существовать. Безусловно, программирование сильно эволюционирует, за последние 20 лет оно изменилось очень сильно. Но от того, что компьютеры стали умнее, разработчиков меньше не стало — наоборот, их стало гораздо больше. И мне кажется, что дальше будет происходить то же самое.

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

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

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

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


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

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

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

Процедурное и непроцедурное программирование

Сначала нужно узнать общие виды языков программирования и их назначение.

Все они подразделяются на две категории:

  • процедурные;
  • непроцедурные.

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

Процедурные языки отличаются тем, на кого в первую очередь направлены: на машину или человека. Они подразделяются на две категории:

  • низкого уровня (или машинно-ориентированные);
  • высокого уровня.

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

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

Непроцедурные языки включают две основные языковые группы:

  • объектно-ориентированные;
  • декларативные.

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

Работа с декларативным языком подразумевает установление взаимосвязей между исходными информационными структурами и свойствами конечного результата. При этом в нём не существует понятия «команда», а программист не создаёт алгоритмы.

Декларативные языки подразделяются на два семейства:

  • логические;
  • функциональные.

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

JavaScript (веб-разработка)

Думаю JavaScript не нуждается в представлении. Это очень популярный и востребованный язык программирования, который в основном используется для веб-разработки, в создании мобильных приложений (с помощью сторонних фреймворков) и в создании десктопных приложений на Windows, MacOS и Linux.

Значительный потенциал этого языка программирования можно увидеть при работе с фреймворками Node.js (бэкенд) и React (фронтенд), которые помогают создавать потрясающие веб-приложения.

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

Тем не менее, это также один из самых простых языков для изучения. Если вы хотите идти в сторону веб-разработки, то JavaScript обязательный язык для изучения.

На данный момент доступны около 10 00 вакансий для языка JavaScript по всей России. Проанализировав многие вакансии можно сделать вывод, что большая  часть из них приходится на фронтенд разработку, а в частности на фреймворк ReactJS.

На долю ReactJS приходится более 4 000 вакансий, что является очень приличной цифрой для отельного фреймворка. На долю vue.js и angular приходится около 400 и 2 000 вакансий соответственно.

По запросу React Native — платформу для создания мобильных приложений, пришлось около 700 вакансий.

Из этого всего можно сделать вывод что JS действительно является популярным языком и думаю в 2021 году он станет ещё востребованным.

Почему языки программирования состоят из английских слов

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

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

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

Действительно, допустим, нужно на этом языке программирования подать команду для нахождения случайного числа. Разработчик языка, наверное, придумал бы слово СЛУЧАЙНОЕ. Согласны? Так ведь удобно и понятно, чем, например, случайное число назвать АБРАКАДАБРА. Уж лучше СЛУЧАЙНОЕ…

А вот если бы язык программирования придумал англичанин, американец, коллектив англо-говорящих изобретателей, то он (они) бы случайное число обозначил(и), как RANDOM. При чем здесь какой-то там «рандом»? Да потому, что по-английски «random» как раз и означает «случайный».

И вот теперь подходим к той мысли, что современные компьютеры пришли к нам от англосаксов. Мы придумали и распространили по всему миру такие слова, как «спутник», «перестройка». А вот иностранцы нам «в ответ»: «компьютер» (вместо русского «вычислитель») и вместе с компьютером нам преподнесена без преувеличения богатая компьютерная терминология, применяемая в том числе в программировании.

Можно ли применять русские слова в программировании

А что, разве никогда не было языков программирования с русскими командами? Конечно, были. ВЫПОЛНИТЬ, ВЫЧИСЛИТЬ, ПУСТЬ, ГДЕ и многое другое – все это было. Но не прижилось со временем. Языки программирования в большинстве своем строятся с использованием английских слов, фраз и предложений.

Открою небольшой секрет

Для компьютеров совершенно неважно, какие слова будут использоваться в языках программирования. Рассмотрим на примере русского слова СЛУЧАЙНЫЙ или английского слова RANDOM

Нам понадобится термин «транслятор» – это такой компьютерный переводчик с любого человеческого языка в язык компьютера.

Транслятор языка программирования переведет либо команду «СЛУЧАЙНЫЙ», либо команду «RANDOM» в последовательность нулей и единиц. Скажем, это будет перевод в последовательность 1100100111001001. На самом деле последовательность будет намного длиннее, страницы может не хватить для ее печати. И какая нам теперь разница, откуда это странное число появилось? Да хоть из слова НИЧЁСЕ!

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

Получается, что компьютеру совершенно не важно, на каком языке с ним говорит программист. Но, так как трансляторы (то есть, переводчики с человеческого на машинный язык) создавали в основном англо-говорящие инженеры и ученые, вот и результат: всюду английские слова и предложения в программировании

А могли бы быть и русские, ибо компьютеру это совершенно безразлично.

Можно, конечно, немного погрустить по поводу не распространенности русского языка в программировании. Но можно увидеть в данной несправедливости некоторые плюсы. Скажем, если программисту нужно изучить английский язык – мало ли для чего ему это понадобилось – оказывается, программист уже знает множество английских слов. Откуда? Из языков программирования! Английский язык в программировании используется при написании команд.

R

R обычно используют в связке с Python. Он подходит для статической обработки данных и работы с графиками. Под R есть несколько пакетов для машинного обучения — например, benchm-ml, CARET, KernLab.

Однако R может и осложнить решение простых задач. В нём существует множество полезных функций — согласно CRAN, для R создано больше 11 тысяч пакетов, а это сотни тысяч функций. Привычной системы меню, как в Excel, нет. Новичку легко запутаться в таком количестве команд. Например, где взять функцию для проведения какого-нибудь статистического анализа? Придётся пролистать немало документации.

Java

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

Сред­няя зар­пла­та на нача­ло 2021 года: 151 тыся­ча (в про­шлом году — 134 тысячи).

Пре­иму­ще­ство Java в том, что код мож­но запу­стить почти на любом желе­зе, где есть под­держ­ка JVM – вир­ту­аль­ной маши­ны Java:

  • кно­поч­ные мобиль­ные телефоны;
  • смарт­фо­ны;
  • ком­пью­те­ры почти с любым про­цес­со­ром и любой опе­ра­ци­он­ной системой;
  • мик­ро­кон­трол­ле­ры и встра­и­ва­е­мые устрой­ства (напри­мер, кон­трол­лер для авто­ма­ти­че­ско­го откры­ва­ния ворот);
  • теле­ви­зо­ры, мик­ро­вол­нов­ки и дру­гая умная техника.

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

С#

Сложность: C# изначально перенял синтаксические конструкции языков С++ и Java, так как его разработали специально, чтобы упростить последние. У него хороший набор фреймворков (.Net, Xamarin) и библиотек.

Профессии: Разработчик игр / Fullstack-разработчик / Backend-разработчик.

Продукты: Это универсальный язык программирования. На нем можно писать серверную часть сайтов, десктопные приложения, серверные приложения и даже игры. На российском рынке популярен движок Unity 3D, который позволяет на языке C# писать игры для любых платформ: для PC, мобильных устройств, приставок или VR.

На нем удобно писать оконные приложения и веб-приложения или даже корпоративное программное обеспечение (например банковское обслуживание).  Так как язык входит в пятерку самых популярных, он узнаваем, и в целом из-за обширной синтаксической семьи C# его сообщество масштабное и активное. Вы можете быть как инди-разработчиком, так и работать в команде — у вас всегда найдутся единомышленники и помощники.

Курс

Разработчик игр

Научим создавать игры на движке Unity, применять на практике ООП и программировать на C#. Дополнительная скидка 5% по промокоду BLOG.

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

Shakespeare — самый поэтичный

Этот esolang маскирует код под пьесы Шекспира. Первый абзац программы — всегда эпиграф, с помощью списка персонажей объявляют количество стеков, а реплики героев — это операции ввода-вывода. Если же шекспировские персонажи задают вопросы, включается условный оператор. Отдельные блоки программы называют актами, которые, в свою очередь, разбиты на более мелкие сцены, пронумерованные римскими цифрами.

Язык получился многословным. Вот так, например, выглядит запись «Hello World». Да уж, это сплошной the time is out of joint — посмотрите, как в одном «произведении» лихо миксуются фразы Джульетты, Ромео, Гамлета и Офелии.

И пусть программировать цитатами из Шекспира — не самое комфортное занятие, зато Shakespeare отлично разминает мозг и даёт возможность развить чувство прекрасного 🙂

Где изучить Shakespeare: http://shakespearelang.sourceforge.net/.

Как применять язык JavaScript на примерах

Базовых знаний JavaScript и принципов работы DOM достаточно для создания хоть и примитивных, но всё же рабочих приложений: органайзер для ведения списка дел, калькулятор, конвертер температур. Два месяца активного изучения основ JavaScript было достаточно, чтобы разобраться с простейшим приложением для списка гостей — RSVP app.

Пример кода для приложения RSVP

Другой пример — конвертер температур, написанный на ванильном JavaScript (без использования библиотеки jQuery и фреймовиков).


В приложении 3 документа: index.html, style.css и app.js


Содержание app.js — всего44 строки кода

JavaScript

Логотип JavaScript

JavaScript — настоящий язык программирования. Как я уже подмечал ранее, обычно JavaScript учат вместе с HTML / CSS. С помощью HTML — мы задаем структуру сайта, с помощью CSS — стилизуем его, а JavaScript добавляет живность странице. Все наши нажатия на различные кнопки, слайды, формы комментариев — это всё работа JavaScript. Практически всё, что имеет отклик на веб-страничке — это работа JavaScript.

Платформа Веб-разработка (Front-end). Иногда используется для разработки программного обеспечения и мобильных приложений.
Обучение Если смотреть относительно других языков — значительно лёгок в освоении, чем остальные языки. Если же мы берем новичка, который пришел с HTML и CSS — достаточно трудно.
Популярность Очень популярен. №3 в списке PYPL.
Средняя зарплата (мес) 1500$
Преимущества Очень популярный язык программирования. Поддерживается всеми современными веб-сайтами и браузерами.
Недостатки Новичку может быть тяжело в первое время

Java

Синтаксис Java похож на синтаксис С/C++. Но это высокоуровневый язык программирования, который не требует ручного управления памятью. У тех, кто занимается разработкой для ML на Java, есть отличные библиотеки: Weka, MOA, MALLET.

Примеры ML-проектов на Java: Seldon Server ― движок для создания рекомендательных систем, который позволяет развернуть нейронную сеть для рекомендаций, даже если вы новичок; GROBID ― программа для парсинга и извлечения информации даже из неструктурированных документов.

Если вы уже знакомы с Java, то сможете зайти с ним в машинное обучение. Но если вы его не знаете и собираетесь идти в ИИ, лучше изучите другой язык. Да, на GitHub есть много Java-проектов в сфере машинного обучения. Но инфраструктура в сфере ML для того же Python гораздо богаче, выучить его с нуля до хорошего уровня проще.

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 по спектру решаемых задач, но его возможности «глубже». Знание этого языка пригодится при разработке программ на любых платформах.

Получайте удовольствие

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

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

Выводы я сделал: Python мне не по душе, а не оказаться в числе замыкающих мне помог опыт в программировании на других языках. Это было, как минимум, весело!

Так что не стоит зацикливаться на одном языке. Попробуйте другие и поймёте, какой «в руку ляжет».

Поверьте: писать на том, что нравится, гораздо приятнее, да и получается лучше. За этим подтянется и финансовое благополучие. Если, возвращаясь домой из офиса, вы пишете программы «для себя», значит, профессию выбрали правильно.

Как выбрать язык: советы практикующих разработчиков

Владимир Бухаркин, backend-разработчик

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

Язык относительно прост, типизирован и, что важно, предсказуем. Это дает возможность учиться думать в правильном направлении

У него большой спектр библиотек и отличный принцип: «Написать один раз и использовать всегда». Удобно. 

В корпоративной разработке я уже больше двух лет, до этого пробовал с C++, php и JavaScript. Считаю, что отличным стартом для любого начинающего специалиста будут курсы, например, от JavaRush, поскольку он ориентирован на практику: написание кода, решение реальных задачек. 

Чтение книг по программированию и алгоритмам обязательны в обучении, кроме того советую завести собственный pet-проект. Много интересных материалов у  «Техносферы», «Технопарка», Otus. 

С++

Вечная тема — мощный C++. Любимый язык большинства учебных заведений, но разобраться в нем новичку будет куда сложнее, чем с другим языком. Однако я сам начинал именно с «плюсов», благодаря ему же написана наша флагманская разработка — первая российская система класса process mining Proceset. С++ — столп идей объектно-ориентированного программирования (ООП), на его изучение времени уйдет много, придется приложить максимум усилий для понимания. Начать учить можно, как и любой другой язык, с базовых основ — синтаксиса. Для этого будет полезно изучить труд Майкла Физерса — «Эффективная работа с унаследованным кодом», где подробно расписано, как читать, исправлять и совершенствовать свой код с примерами на C++.

Kotlin

Не самый популярный, но совершенно точно с перспективой — Kotlin. В рейтинге PYPL он поднялся на три пункта за год, обходя более известные Go и Ruby. На самом популярном ресурсе по поиску работы в нашей стране более тысячи вакансий с указанием Kotlin.

Роман Гордеев, backend-разработчик

Kotlin — очень интересный язык: «молодой», универсальный и быстро развивающийся. Его особенности в том, что, во-первых, он кроссплатформенный, во-вторых, дает возможность писать серверный код и UI, создавать мобильные приложения. Относительно простой синтаксис позволяет использовать в работе те же инструменты, что и на Java. Преимущество же Kotlin в том, что можно внедрять в код уже написанные на Java приложения, но сам он при этом более лаконичный. Выразить мысли проще, а ошибок может быть меньше. 

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

Неважно, с чего именно ты начнешь путь в IT, главное — это сделать первый шаг, не бояться ошибиться и не терять терпения. Оно тебе очень пригодится!

Swift

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

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

Продукты: Safari, Procreate, Kickstarter, VSCO

На Swift создают продукты для экосистемы Apple: приложения для iOS, Mac, Apple Watch, Apple TV. В этом его преимущество и недостаток. С одной стороны, разработчики на iOS востребованы, их немного, поэтому можно будет быстро найти работу. С другой стороны, приложения сильно завязаны на своей экосистеме, и на других платформах они работают с трудом, на костылях. При этом делать функциональные и красивые приложения на Swift — проще. Разрабатывая их, вы будете сталкиваться и с UI-дизайном, и с дополненной реальностью. Swift многое взял из языка Objective-C, поэтому не лишним будет знакомство и с ним, чтобы в дальнейшем развиваться в направлении разработок для iOS.

Обычно продукты Apple закрыты для сообщества, но у Swift открытый исходный код, что полезно как языку, так и .

Курс

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

За 1 год обучения по 8 часов в неделю вы освоите навыки iOS-разработчика и соберете портфолио проектов. Дополнительная скидка 5% по промокоду BLOG.

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

Многократные повторы в языках программирования

Вычислительный центр: кадр из фильма “Чародеи”, 1982 год.

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

For – для. С помощью «для» можно задавать так называемые циклы – множественные повторения. Например, ДЛЯ X=1 ШАГ 1 ДО 1 000 000 000 ВЫПОЛНИТЬ – интуитивно понятный «код». Его суть: пусть сначала X=1. На следующем шаге программы его значение станет уже X=2 (ведь ШАГ равен единице). Затем X=3. И так далее, пока X не сравняется с миллиардом! Вот так, одной «фразой» мы заставляем компьютерную программу что-то сделать миллиард раз подряд. А всего-то одно коротенькое предложение.

Правда, с русским языком тут не «прокатит». Нужны английские слова. For мы рассмотрели, теперь некоторые другие слова по затронутой теме:

Step – шаг

To – до

While – до тех пор, пока

Until  (пока), Before (до) –может означать то же самое «до тех пор, пока», но в других языках программирования.

Повторы и сценарии в программировании

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

If – если

Then – затем, тогда

Else – иначе

Do – делать, сделать, выполнить.

Поясним по-русски. Допустим, строится фраза ЕСЛИ X=50 ЗАТЕМ ДЕЛАТЬ aaa ИНАЧЕ ДЕЛАТЬ bbb. Перечитываем фразу по-нашенски: если иксу повезло, и он стал равен 50, то программе нужно сделать нечто, обозначенное условно как aaa. Ну, а если не повезло, и икс не равен 50, то делать придется то, что обозначено как bbb. В английской аббревиатуре этот же текст программы выглядел бы примерно так:

If X=50 (то есть, выполняется определенное условие) then do aaa else do bbb. Как-то так, если не вдаваться в детали и подробности. Ведь для нас сейчас главное не освоение циклов и условий в программном коде, а понимание того, что программисты знают ряд английских слов, таких как for, step, to, while и так далее.

Kotlin

Логотип Kotlin

Аналогично языку Swift — который служит разработке под iOS. Kotlin выступает в качестве разработки приложений под Android. Огромным плюсом Kotlin является его полная совместимость с Java. Если популярность Java постепенно падает, то популярность Kotlin стремительно растет вверх.

Платформа Разработка под Android
Обучение Относительно легко
Популярность Популярен. №11 в списке PYPL.
Средняя зарплата (мес) 2300$
Преимущества Совместимость с Java. Растущая популярность. Большая часть населения земли использует системы под управлением Android.
Недостатки Отсутствуют.

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

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

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

Adblock
detector