Вступление
Сейчас, во время развития ИТ, всё больше людей начинают задумываться о том, чтобы выучить какой-либо язык программирования (ЯП) и реализовать какие-то свои задумки, будь то бот для своей компании, скрипт на автоматизацию каких-процессов системы или же Вы хотите создать собственную игру.
И так. Вы приняли решение, что Вам нужно выучить язык программирования. Естественно, вооружившись гуглом, Вы начинаете искать: "А какие языки существуют?". Спустя 5 минут поиска перед Вами вырисовывается картина, что этих самых языков существует огромное множество... Ох, а это Вы ещё не знаете про различные библиотеки и фреймворки... Последнее нас сейчас мало интересует, главное выбрать ЯП, который нужно учить, для чего, собственно, и написана эта статья. Для удобной навигации я разбил её (статью) на несколько глав, пусть это будет некоторое "Оглавление":
- Веб-разработка (front-end и back-end).
- Программное обеспечение (ПК и мобильные).
- Игры.
- Data Science (ИИ, Big Data и т.п.).
Веб-разработка
Вы решили, что хотите писать супер-крутые сайты и зарабатывать на этом деньги. Первое, что нужно разобрать - что такое front-end и back-end.
front-end
Если говорить коротко и максимально понятно, то front-end - это разработка внешнего вида сайта, т.е. все блоки с информацией, все меню, все анимации и т.д.
В качестве языков программирования здесь абсолютная монополия стека HTML, CSS и JavaScript (не путать с Java). Пройдёмся подробнее по каждому.
HTML - язык гипертекстовой разметки. Этот язык не является языком программирования. Его задача - создать некоторый скелет и мясо из блоков сайта и контента в них, к примеру тег (единица разметки) <header></header> нужен для того, чтобы сделать шапку сайта, к примеру там может быть меню, поиск и форма авторизации пользователя. Т.е. основная задача - создать блоки и чем-то их заполнить, о внешнем виде здесь беспокоиться не стоит.
CSS - каскадная таблица стилей. Тоже не является языком программирования. Является некоторой "кожей" сайта, задаёт внешний вид блокам HTML, к примеру, вышеупомянутому тегу <header></header>, мы можем поменять цвет текста, задать фоновое изображение, задать выравнивание, отступы и т.п.
JavaScript. На этот раз JS - это язык программирования, чья задача сделать сайт более интерактивным, продолжая аналогию, с помощью HTML и CSS у нас получился болванчик, а с помощью JS мы его заставляем двигаться и что-то делать. Самый простой примеру - переключение тёмной темы на сайте.
Где можно изучить данный стек:
- HTMLAcademy - интерактивный учебник. Есть несколько бесплатных курсов, где Вы научитесь азам HTML и CSS. За подписку откроются остальные курсы по ним же + JS.
- Курсы на Stepik - прекрасная площадка, где можно найти курсы на любой вкус и цвет абсолютно бесплатно.
- Онлайн-учебник по JS.
back-end
Если front-end отвечает за внешнюю часть, то back-end - за серверную часть и все процессы, которые скрыты от глаз пользователей. К примеру, отвечают за регистрацию пользователей, отправку контактной формы и т.д. В front-end разработке уже существует устоявшийся стек, поэтому выбирать особо не приходится, но в данном случае существует несколько популярных языков программирования.
Первый язык, который приходит в голову - это PHP. Он является самым популярным и востребованным языком программирования для back-end разработки. Если Вы хотите стать back-end разработчиком, то начинать изучение стоит именно с него, к тому же, он не так сложен для новичка.
Python - это универсальный язык программирования, который сейчас используют в двух сферах: back-end и Data Science, но первенство занимает именно второе. Он не так популярен, как PHP, но с его помощью можно заниматься, как уже понятно, не только веб-разработкой. Достаточно прост в освоении, даже проще PHP, но, если на PHP Вы можете писать код на чистом языке программирования, то для Python потребуется установка и изучение дополнительных библиотек.
JavaScript. И снова "Здравствуйте". Да-да, на JS можно заниматься не только front-end разработкой, но и back-end с помощью его фреймворков.
Думаю, на этих трёх языках и остановимся. Я мог продолжать список дальше, назвав Ruby, Java, Go, C# и т.д., но эти языки куда сложнее вышеописанных, либо не сильно востребованы на рынке back-end.
Где можно изучить:
- Онлайн-учебник по PHP.
- Онлайн-учебник по JS.
Программное обеспечение
Вы решили, что хотите написать самое крутое ПО. Десктопное приложение можно написать на любом языке программирования, даже на том же JavaScript, но мы поговорим о наиболее востребованных и функциональных.
- С# - это универсальный язык, на котором можно писать и сайты, и мобильные приложения, и десктопные. Хотите писать консольные приложения или скрипты - подойдёт и чистый язык, хотите создавать приложения с графическим интерфейсом - изучайте библиотеку WPF и язык разметки XAML, хотите мобильное приложение - Xamarin к вашим услугам, но стоит заметить, что этот язык ориентирован на Windows, поэтому с запуском программ на других платформах могут возникнуть некоторые сложности.
- Java. Этот язык является прямым конкурентом прошлого ЯП, имеет аналогичные функции и свойства, но главное отличие от C# - то, что Java не ограничена рамками Windows, т.е. код может запускаться абсолютно на любой платформе, главное, чтоб на ней был установлена JVM. И да, на нём можно писать приложения под Android.
- Swift. Если Вы пользователь Apple, то это рай для вас, поскольку с помощью данного языка Вы сможете создавать приложения для всех устройств компании Apple: для маков, для айфонов и часов. Единственное условие - Вам нужен Мак или Макбук, чтобы программировать на Swift.
- Kotlin. Приложения на Android, этим всё сказано. Его часто сравнивают с Java, как минимум из-за того, что код на Kotlin запускается через JVM, но этот язык, на мой взягляд, куда больше подходит для мобильной разработки.
Игры
С играми всё совсем просто: C# или C++. Можно, конечно, поспорить и назвать, к примеру Java, но лучше не стоит: сравните производительность Minecraft Java Edition и Bedrock Edition (C++) и получите ответ.
C# - Unity3D... Я думаю, что больше слов и не нужно.
C++ - это невероятно мощный язык, один из самых производительных, но не самый лёгкий в освоении. Unreal Engine? C++. Source? С++. Вы можете даже сами написать свой игровой движок на этом языке. Некоторые сказажут, что C++ можно было упомянуть в каждой главе. Согласен, но я этого не сделал именно из-за того, что этот язык действительно сложен для новичков.
Стоит отметить, что для создания браузерных игр подойдут JS и PHP, но будем честны, сейчас этот жанр мёртв.
Data Science
Питон... Просто питон. Порог вхождения в эту отрасль высокий, поэтому, если Вы не статист и/или математик, то изучать что-то будет достаточно проблематично. Для математиков и/или статистов рекомендую Python с различными его библиотеками: pandas, tensorflow и т.д.
🔥🔥🔥 Если Вам статья показалась интересной и полезной, прошу проявить активность. Так я пойму, что двигаюсь в правильном направлении. Если же появились вопросы или критика, всегда рад ответить в комментариях.