Язык программирования похож на иностранный, только с его помощью донести информацию можно не до англичанина или француза, а до компьютера. Цель начинающего программиста — научиться изъясняться так, чтобы компьютер его понимал. Для каждой задачи, платформы и операционной системы хороши определённые языки, а всего их существует около 9 000. Изучать их все не нужно, можно успешно работать всего с несколькими языками или даже с одним.
По традиции, начиная осваивать новый язык, программист пишет на нём скрипт, который выводит на экран надпись Hello, World! Вот как это выглядит на разных языках:
Python
print("Hello, World!")
C#
using System;
namespace HelloWorld
{
class Hello
{
static void Main()
{
Console.WriteLine("Hello World!");
}
}
}
Kotlin
package demo
fun main(args : Array) {
println("Hello, world!")
}
Языков программирования так много, потому что программисты постоянно ищут новые инструменты и возможности упростить и сделать более эффективным процесс разработки. Поэтому создаётся много узкоспециализированных языков, написанных специально под определённую область, а популярные языки, регулярно совершенствуются и обновляются.
Языки программирования используют в самых разных сферах. Кроме разработчиков, они нужны робототехникам, аналитикам, системным администраторам и иногда даже дизайнерам и редакторам.
Условно области, где применяются языки программирования, можно разделить на две большие группы:
- Бизнес — разработка программ, которые помогают решать конкретные проблемы людей. Например, программист может создать для продуктового магазина сервис по доставке.
- Развлечение — языки программирования используются для создания развлекательных приложений и игр.
Остановимся на самых популярных направлениях программирования.
Языки для веб-разработки
Веб-разработка имеет дело с созданием сайтов и приложений и ведётся по двум основным направлениям — фронтенд и бэкенд. Разберёмся на примере.
Практически в любом бизнесе есть фронт-офис и бэк-офис — подразделения, отвечающие за внешние и внутренние процессы в компании. В ресторане клиентов встречают хостес и сервированные столики — фронт-офис. Но готовятся все блюда, которые вынесут в зал, на кухне — её не видно клиентам, но она отвечает за ключевые процессы в бизнесе — бэк-офис.
Так вот, фронтенд — это внешняя оболочка сайта или приложения, то, что видит пользователь, а бэкенд — все отвечающие за это внутренние процессы, которые пользователю не видны.
Для работы во фронтенде нужны три языка: HTML, CSS и JavaScript (JS). При этом настоящий язык программирования только последний: первые два называются языками разметками.
JavaScript — один из главных языков фронтенда, альтернатив для него мало. Популярен также TypeScript, но он создан на основе JavaScript. Если вы хотите, например, чтобы после написания сообщения в чате, оно отображалось, без этих языков программирования не обойтись.
HTML и CSS формируют структуру сайта. HTML говорит, что обозначается на странице — заголовки, абзацы, картинки и так далее, а CSS — как это будет выглядеть: какие размеры должны быть у заголовков, какого они цвета, есть ли подчёркивания и так далее.
С помощью бэкенда хранят и обрабатывают данные. Когда пользователя что-то заинтересовало на Ozon, он заходит в карточку товара, а потом в другую, третью и видит, что карточки очень похожи: все картинки слева, цена справа, описание и отзывы внизу. Нужный раздел уже получается найти интуитивно. Что подгружать на страницу в зависимости от ссылки, на которую пользователь нажал, — в том числе решает бэкенд.
Чтобы реализовывать бэкенд в веб-разработке, пригодятся PHP, Python, Java, Go, C++, Ruby, C# и другие.
PHP был особенно популярен в 2000-е годы и всё ещё находится в топ-15 самых распространённых языков, но в современных крупных компаниях вместо него обычно используют Python или Go.
Ruby часто применяется в разработках для небольших стартапов.
Фулстек-разработчики создают сайты и приложения целиком: отвечают и за фронтенд, и за бэкенд.
Языки для десктопа
Поговорим о языках, на которых разрабатывают стационарные приложения — те, что предназначены для компьютеров.
Для создания программ для Windows, игр на движке Unity, проектов для Sony PlayStation и Microsoft Xbox чаще всего используются C# и C++.
На Java разрабатывают кроссплатформенные приложения, которые работают одновременно на Windows, Mac OS и Linux.
Swift в основном используется компанией Apple, чтобы создавать программы для устройств на собственной операционной системе.
Языки мобильной разработки
Для мобильной разработки тоже используется Java. Можно вспомнить популярные в нулевых Java-игры для мобильных — те, в которые мы играли на своих первых телефонах ещё в школе.
Сейчас с помощью Java создаются приложения для Android. Его альтернатива — Kotlin.
Для iOS используется Swift. Его предшественник — Objective C, раньше Apple использовали для своих разработок именно его.
Языки для разработки игр
Для разработки игр используются уже упомянутые выше C++, C# и Java.
Здесь можно увидеть, как игровые объекты наделяют свойствами с помощью скриптов C#.
Языки для системного программирования
Дополнительные программы, которые создаются в помощь разработчикам и системным администраторам, в основном пишут на C и C++, реже на Rust.
Языки системного администрирования
Для автоматизации задач системного администрирования чаще всего используются скриптовые языки PowerShell и Bash.
Языки для тестирования, или QA (Quality Assurance)
Любой написанный человеком софт может содержать ошибки. Перед запуском проекта их нужно найти и исправить. Поэтому для проверки работы программ пишутся другие программы. Обычно кода программы для тестирования в четыре раза больше, чем кода исходной программы.
Автоматические тесты пишутся на том же языке, на котором написано само приложение.
def test_sum():
assert sum([1, 2, 3]) == 6, "Should be 6"
def test_sum_tuple():
assert sum((1, 2, 2)) == 6, "Should be 6"
if __name__ == "__main__":
test_sum()
test_sum_tuple()
print("Everything passed")
Так выглядит кусочек теста на Python. Источник: Хабр
Если вы хотите разобраться в том, как работают тесты, и попробовать заняться QA, то мы предлагает вам пройти бесплатный интенсив по тестированию: так вы сразу сможете понять, подходит ли вам эта сфера.
Резюмируем
Языков программирования очень много, но знать все не требуется. Главное — найти и освоить тот, на котором вам будет удобно работать и который используется в сфере, с которой вы хотите связать свою карьеру.
Определитесь с темой и начинайте обучение. Мы поможем вам освоить первый язык на наших курсах, а основы некоторых языков вы можете освоить бесплатно: JavaScript и Python уже доступны для изучения.
Удачи в обучении. Мы ждём вас!
__________________________________________
Статья опубликована с сокращениями, полный вариант можно найти в Медиа Нетологии