Kotlin, Java, Python и другие непонятные слова. Это первое, с чем столкнется человек, который решит начать программировать. Как выбрать язык? На чем пишут сайты, а на чем мобильные приложения? Давайте разберемся.
Правильнее спросить себя не «Какой язык программирование учить?», а «Какие приложения я хочу создавать?».
Программирование используется для таких задач как:
- Разработка мобильных приложений;
- Создание игр. Как для мобильных телефонов, так и для компьютеров и приставок;
- Программирование сайтов;
- Создание ботов для мессенджеров;
- Обработка больших массивов данных, искусственный интеллект (Big Data & AI);
- и т.д.
Для каждой из описанных задач существуют свои языки программирования и инструменты.
Разработка мобильных приложений

Сегодня «Программирование под мобильные устройства» подразумевают либо Android либо iOS. Мы не будем рассматривать другие системы, т.к. доля их незначительна на данный момент.
Программирование под Android
Изначально основным языком программирования под Android была Java. Однако 7 мая 2019 года Google анонсировал, что теперь Kotlin — предпочтительный язык для разработки под их систему.
Kotlin и Java имеют много общего. Ничего не знать про Котлин и писать приложения только на Java — можно, наоборот — сложнее. Базовые вещи все-таки придется изучить.
Программирование под iOS
Ситуация похожа с Android. Изначально был Objective-C. Ему на смену пришел Swift. Смысл, что в случае с Котлином, что со Свифтом один — снизить порог входа в профессию.
Разработка сразу под несколько платформ
Возможно создание кроссплатформенных приложений. Теоретически это значит, что создавая одно приложение его можно выложить сразу и в Google play и в Apple Appstore и все будет работать из коробки. На практике не все так радужно. Порой переиспользовать можно лишь часть всего кода. Поддержка остальной части может оказаться сложнее, чем изначально написать все нативно (под определенную платформу).
Данный подход может быть использован, когда надо написать лишь обертку над системой. Так называемый тонкий клиент. Так или иначе разработчику необходимо разбираться в нюансах каждой операционной системы, без этого никак.
Flutter
Flutter — набор инструментов, который предоставляет Google для разработки сразу под обе системы. Dart — язык программирования, который используется внутри.
React native
React native — разработка компании Facebook. Что интересно, лозунг компании «Учи один раз, пиши везде». Т.е. они изначально намекают на то, что не получится написать один раз и использовать везде. Они пропагандируют немного другой подход: зная react native можно писать под разные платформы на одном языке.
Xamarin
Xamarin — продукт Microsoft. С ним можно разрабатывать мобильные приложения на C#/.Net. Может быть хорошим выбором, если вы и так хорошо знакомы с C#.
Kivy
Kivy позволяет разрабатывать мобильные (и не только) приложения на Python. Можно использовать если вы уже хорошо знакомы с питоном и не хочется переучиваться. В противном случае, если цель именно писать мобильные приложения — начинать стоит с Kotlin/Java.
Создание игр

Создание приложений и игр сильно отличается даже если рассматривать разработку под одну и ту же систему, например Android. Игры используют много ресурсов системы, так что необходимо большое внимание к деталям. Хорошая новость в том, что для этих задач уже создано несколько популярных фреймворков.
Unity
Unity — среда разработки кросплатформенных игр. Можно использовать ряд языков для написании скриптов. Наиболее популярным является C#. Unity — очень популярный инструмент который уже доказал, что его можно использовать в реальных играх.
Unreal engine
Unreal engine — игровой движок от компании Epic. Той самой, что сделал Fortnite. Он также как и Unity хорошо известен в контексте компьютерной графики и игр.
Программирование сайтов
В большинстве случаев, когда говорят о разработке сайтов, интернет магазинов и т.д. предполагают Full-stack разработчика. У каждого сайта есть его «лицо» (Frontend) и «серверная часть» (Backend). Когда человек одновременно работает над обеими частями это и есть Full-stack.
Backend
Основные языки, которые вы встретите при разработке серверной части: Php, Ruby, Python, NodeJS.
PHP
PHP изначально расшифровывался как personal home page. Широко используемый скриптов язык, который используется для построения сайтов. На нем, скорее всего, будет не так удобно строить большие системы.
Широко используемая система Wordpress написана на PHP.
Node.JS
Node.JS — это серверный Javascript. По сути для него необходимо знать Javascript как базовый язык. Node позволяет писать высоко нагруженные системы, работающие в реальном времени — чаты, системы совместного использования, стриминговые сервисы и т.д.
Python
Python также позволяет писать серверную часть для веб приложений. Этот язык хорош для старта, он довольно простой и не отпугнет новичков. Если о питоне говорят в разрезе веб приложений, то скорее сего имеют в виду Django — фреймворк для построения web приложений на Python.
Ruby on Rails
Ruby on Rails — фреймворк, который позволяет писать полноценные web приложения. Shopify, Github, Airbnb — они и тысячи других используют Ruby on rails.
Frontend
Что касается Frontend, то вот те термины, с которыми так или иначе вы столкнетесь
- Html (гипертекстовый язык разметки). Описывает как должны располагаться элементы на странице, какие ссылки куда ведут и тд.
- CSS (каскадные таблицы стилей). Описывает то, как выглядит ваша разметка. Т.е. размеры, цвета и тд.
- Javascript. Это скриптовый язык, который описывает поведение и взаимодействие пользователей с сайтом.
Фреймворки
Сегодня никто не будет делать сайты на чистых Html + Javascript. Будут использовать фреймворки, облегчающие разработку, но все они так или иначе основаны на базовом наборе веб программиста.
React — Javascript библиотека от Facebook. Довольно популярна на данный момент. Познакомившись с ним будет легче использовать React native для мобильных приложений.
Angular — другой популярный фреймворк.
Vue — и еще один фреймворк, который зачастую упоминается в тройке react, angular, vue.
Обработка Big data и искусственный интеллект
Все что касается Bigdata и AI будет упоминаться вместе с Python в большинстве случаев. Т.ч. тут особо альтернатив нет. Если ваш выбор — искусственный интеллект, машинное обучение и все что с этим связано, то ваш выбор — Python.
Заключение
На первом месте стоит задача, а лишь потом инструмент. Нельзя, например, выучить только Python и быть на одном уровне с мобильным разработчиком, который владеет более подходящим инструментом. Важно, хотя бы отдаленно представлять какой стек подходит для определенных задач.
Если вы совсем новичок, то хорошим началом будет знакомство с Python. Так вы поймете базовые принципы не испугавшись слишком технических аспектов программирования.
После первого знакомства с разработкой выбирайте свою нишу и погружайтесь в изучение соответствующих инструментов.
Но перед тем как пойти изучать выбранную технологию, ознакомьтесь с базовыми принципами программирования.
А если остались вопросы, то добро пожаловать в чат в Телеграм.
2 комментария
Какой язык программирования выбрать? > Unreal Engine
Enreal Engine не совсем ЯП, он и Unity достойны внимания если геймдевом заниматься.