При изучении программирования в самом начале пути очень важно определиться, чем именно вам хочется заниматься: разработка игр, создание сайтов, разработка мобильных или десктопных приложений и т.д.
После выбора направления ещё важнее понимать, что именно там изучать.
Геймдев
Начнём с наиболее интересного и близкого нам направления — разработка игр. Здесь рекомендуемый список для изучения будет таким:
— Язык программирования Python
— Игровой движок Unreal Engine
— Язык программирования C++
— Язык программирования C# (необязательный пункт, только для дополнительного изучения)
Изучать лучше именно в представленном выше порядке и вот почему:
Python — один из лучших языков для начала изучения программирования. Несложный синтаксис и низкий порог вхождения. Перед первыми попытками что-то сделать в игровом движке лучше уже немного понимать, что такое переменные, функции, условные операторы и циклы. Python очень хорошо подходит для этой задачи. Кроме того, Python может пригодиться вам в дальнейшем для автоматизации различной работы с движком Unreal Engine. Python вообще хорошо подходит для многих задач.
Игровой движок Unreal Engine — один из лучших движков для создания игр. Имеет свой собственный визуальный язык программирования Blueprint — достаточно простой и понятный в ситуациях, когда вы уже немного знакомы с программированием. После Python будет намного легче освоить Blueprint, чем если бы вы это делали с нуля.
Язык программирования C++ — язык, который, помимо Blueprint, используется для создания игр на Unreal Engine. Можно создать простую игру полностью на Blueprint, но в крупных мощных проектах с мультиплеером и плюшками без него никак. У вас уже будет за плечами Python, база по Unreal Engine и Blueprint, поэтому изучение C++ будет не таким болезненным, как могло бы быть с самого начала.
C++ сложнее многих языков и боже упаси начинать изучение программирования с языка C++ по книге Страуструпа!!! При всём уважении к основателю языка, это путь в никуда, а точнее напрямую к мысли «программирование — не моё!» Когда у вас уже есть некоторая «база» по C++, можете попробовать эту книгу, если у вас есть мазохистские наклонности или просто интересно. 😁 Но лучше тогда уж почитайте книгу Стивена Праты.
Язык программирования C# (С-sharp) — при изучении движка Unreal Engine вы наткнётесь на C# в некоторых его частях, поэтому дополнительно можно изучить основы C#, но вполне реально обойтись и без них.

Веб-разработка
Веб-разработка — это, прежде всего, разработка сайтов, а также различных веб-приложений. Здесь уже будут достаточно крупные разветвления, каждое из которых можно также считать направлением: back-end, front-end, fullstack.
I. Back-end
Это направление веб-разработки, в котором вы занимаетесь «закулисными» процессами сайтов и веб-приложений. Базы данных, в которых хранятся имена пользователей, пароли, сообщения, комментарии — с этим всем вам придётся работать. Придётся также поразбираться, как взаимодействуют страницы сайта между собой. И это далеко не всё.
На старте изучения бэкенда снова придётся выбирать — свой «набор» инструментов и языков программирования:
Вариант 1. HTML+CSS, язык программирования PHP, язык программирования SQL, фреймворк Laravel.
Вариант 2. HTML+CSS, язык программирования Python, язык программирования SQL, фреймворк Django.
Начинать изучение бэкенда лучше с HTML и CSS. Это не языки программирования. HTML — язык разметки сайта, а CSS — язык для стилизации элементов. Любой сайт начинается с разметки и стилизации. Хоть HTML и CSS нельзя назвать языками программирования, но их изучение облегчит дальнейший путь в программировании — вы уже будете иметь опыт работы с той или иной логикой. Кроме того, их знание обязательно для веб-разработчика.
После освоения HTML+CSS можно выбрать понравившийся вам язык программирования — PHP или Python.
Python — более популярный и универсальный язык, простой в изучении. Вы можете столкнуться с большой конкуренцией при поиске работы, но вам легче будет перейти в другое направление, если появится такое желание или будет необходимость. Python применяется очень много где: веб-разработка, разработка десктопных приложений, нейросети, data science и т.д.
PHP — язык, заточенный именно под веб-разработку. Достаточно простой. Не популярный, но гораздо меньше конкуренции. Однако перейти с него в другое направление будет сложнее, чем с Python.
SQL — язык программирования для работы с базой данных. Несложный. Обязателен для бэкенд-разработчика. Изучается после PHP или Python.
Фреймворк Laravel — изучается, если вы выбрали PHP. Используется для создания сайтов на PHP.
Фреймворк Django — изучается, если вы выбрали Python. Используется для создания сайтов на Python. Сайты на Django создавать чуть сложнее, чем на Laravel, но тема дискуссионная.
II. Front-end
Front-end — это «лицо» сайтов и веб-приложений. Различные кнопочки и формочки на сайте, визуальные эффекты, раскрывающиеся списки, выпадающие менюшки и вся прочая красота. Именно этим вы и будете заниматься.
Здесь уже почти без разветвлений. Вам потребуется очень хорошее знание HTML+CSS, язык программирования Javascript, а также фреймворки на выбор: React, Angular, Vue. Дополнительно можно изучить язык Typescript для программирования и фреймворк Bootstrap для вёрстки.
HTML+CSS — «библия» фронтендера. Нужно знать очень хорошо. Однозначно лучше, чем бэкендеру. Плюсом будет также знание какого-нибудь фреймворка для вёрстки сайтов типа Bootstrap.
Javascript — вторая «библия» фронтендера. 😁 Основной и едва ли не единственный язык для фронтенд-разработки.
React, Angular, Vue — фреймворки для фронтенд-разработки. Берём и бегло смотрим каждый, затем выбираем тот, что по душе.
Typescript — говорят, что иногда нужен. 🙂 Язык программирования. Похож на Javascript, но более строгий в некотором смысле.
III. Fullstack
Fullstack-разработчик — это универсал, который может сделать одновременно и back-end и front-end для сайта. При выборе этого направления вам придётся смириться с мыслью, что вы с большой долей вероятности не станете первоклассным специалистом ни во фронтенде, ни в бэкенде, потому что, пожалуй, и всей жизни не хватит, чтобы досконально разобраться в обеих областях сразу. Однако вы в одиночку сможете полностью создать хороший крупный сайт!
У fullstack-разработчика больше всего «веток»:
Вариант 1. HTML+CSS, PHP + Laravel, Javascript + React, Angular или Vue.
Вариант 2. HTML+CSS, Python + Django, Javascript + React, Angular или Vue.
Вариант 3. HTML+CSS, NodeJS, Javascript + React, Angular или Vue.
Из вышеперечисленного не упоминали только NodeJS — «вариант» языка Javascript, видоизменённый под работу с «серверной частью» сайта, то есть с бэкендом. Сначала изучаем Javascript, потом — NodeJS. В итоге fullstack-разработчику в данном варианте как будто не нужно изучать другие языки. Однако NodeJS будет чуть посложнее в изучении, чем PHP или Python, и менее популярен. От классического Javascript отличается достаточно заметно.

Разработка мобильных приложений
Не интересующая конкретно нас, но очень перспективная область. Всё больше и больше людей предпочитают пользоваться приложениями на смартфонах, для некоторых это даже полноценная замена домашнего компьютера или ноутбука.
Больше всего пользователей у операционной системы Android, для которой очень много приложений, написанных на языке программирования Java — его и следует изучать, если вы планируете идти в мобильную разработку. Также может пригодиться и более современный язык программирования Kotlin, на котором всё чаще пишут новые приложения для Android.
Если вам интересна возможность разрабатывать приложения под iOS, то нужно будет изучить язык программирования Swift, который был специально создан для этих задач.
Ну и, конечно, придётся поизучать дополнительные инструменты, уникальные для сферы мобильной разработки.

Разработка десктопных приложений
Десктопные приложения — это программы для компьютеров или ноутбуков. Область интересная, но не самая популярная и перспективная. Здесь широкий выбор языков программирования и инструментов: от Python с библиотекой Tkinter до C++ с фреймворком QT. Выбранный язык программирования должен уметь работать с десктопными операционными системами, к нему должны быть фреймворки и библиотеки для создания UI (привычных нам окошек с кнопочками и т.д.) — их, само собой, придётся изучить.

Embedded-разработка
Интересная, но очень сложная область. Разработка программного обеспечения для различной техники от условных микроволновки и холодильника до робота-пылесоса и «умного дома». Здесь вам, скорее всего, понадобится знание редких и не самых популярных языков программирования «низкого уровня». Хотя для многих задач может подойти и, например, C++.
Наверняка вы столкнётесь с двоичной системой счисления. Есть такая шутка: «существует только 10 типов людей — те, кто знает двоичную систему счисления, и те, кто её не знает». Если вам понятна эта шутка, то можете попробовать свои силы в направлении embedded-разработки. 😎
Embedded-разработчики востребованы в робототехнике, медицине, производстве, телекоме.

ИТОГИ
Мы перечислили далеко не все программистские и около-программистские направления. Кроме того, и внутри направлений перечислены не все возможные варианты. Ведь использовать для веб-разработки можно и C++, а для создания игр — Javascript. У каждого свой путь. 😉
Однако вы можете использовать данный материал как путеводитель на старте вашего обучения программированию, а дальше уж никто лучше не разберётся во всём этом, чем вы сами. Вы поймёте, что вам нравится и что по душе, какие задачи какими инструментами вы хотите выполнять. Мы лишь пожелаем вам удачи на этом пути!
Кстати, одним из лучших вариантов изучения программирования мы считаем обучение по видеокурсам. У нашего партнёра, 👉 Михаила Русакова, есть классные курсы по большинству из упомянутых выше языков программирования. У вас будет очень хорошая «база» после их изучения.
Оставить комментарий к этой статье можно в нашем Telegram-канале:
Присоединяйтесь! 😉
