Код
#статьи

С какого языка начать изучение программирования

Рассказываем о языках JavaScript, PHP, Python, Java, CSS и HTML, сравниваем их и помогаем выбрать лучший.

Иллюстрация: Wikimedia Commons / Roungroat / Rawpixel / Annie для Skillbox Media

Содержание

У каждого языка программирования свои особенности, достоинства и недостатки, своя сфера применения и свой список связанных технологий (он называется «стек»). Сегодня мы сравним несколько популярных языков веб-разработки и дадим советы, которые помогут вам сделать осознанный выбор.

Что такое типизация

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

Типизация — это разделение переменных на разные типы: например, int (целое число), flow (число с десятичной частью), string (строка текста), bool (правда/неправда).

Типизация бывает явная или неявная, слабая или сильная и статическая или динамическая.

Явная типизация значит, что вы должны сами указать тип переменной, а если у языка неявная типизация, этим занимается компилятор. Явная типизация более надёжная (у переменной будет именно тот тип, который вам нужен), зато добавляет работы, а неявная позволяет сэкономить время, но переменная может получить не тот тип, который вы хотели.

В языках со статической типизацией типы переменных устанавливаются на этапе компиляции, причём обычно переменные объявляются с указанием типа (явно).

Динамическая типизация означает, что типы определятся уже во время выполнения программы.

Сильная (строгая) типизация не позволяет смешивать в выражениях разные типы и не выполняет автоматически неявные преобразования.

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

Теперь, когда мы разобрались с типизацией, перейдём к самим языкам.

HTML и CSS: «строительный материал» сайтов

Начнём издалека — с HTML (Hypertext Markup Language) и CSS (Cascade StyleSheets). Почему с них и почему «издалека»? С них — потому что они лежат в основе веб-разработки и ни один сайт без них не обойдётся. А издалека — потому что это не совсем языки программирования.

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

HTML и CSS очень простые — в основах можно разобраться буквально за пару дней, даже самостоятельно. Так что если вы очень боитесь программирования и не верите, что у вас получится, попробуйте начать с них. Это под силу каждому, поможет вам плавно войти в программирование и оценить свои силы. А потом при желании можно перейти к другим языкам.

Изображение: Public Domain

JavaScript: главный по фронтенду

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

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

Тем не менее, несмотря на широкое применение, JavaScript не волшебная таблетка. У него есть свои ограничения, из-за которых он подходит не для всех задач.

Какие плюсы и минусы есть у этого языка:

Изображение: Skillbox Media

Что касается минусов — есть инструменты, которые помогают их компенсировать. Например, TypeScript и Flow делают работу с типами более безопасной, но код становится писать сложнее.

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

Зарплата специалистов и востребованность языка

По данным «Хабр Карьеры», средняя зарплата JavaScript-разработчика составляет около 154 тысяч рублей. Новички зарабатывают от 40 до 100 тысяч, а профессионалы могут похвастаться зарплатой в 200 тысяч и выше.

Найти работу с такой специальностью не проблема: это очень популярный язык, и требуется он почти везде. Даже если в вашем городе нет больших компаний, которым нужны программисты, не расстраивайтесь. Сейчас около 40% программистов работают удалённо — так что смело ищите работу в других городах.

Синтаксис JavaScript

JavaScript может выглядеть так:

$("button.login").click(function(){
	var login = $ ("#login") .val();
      var password = $ ("#password").val();
	$("#status").text("Загрузка...");
	$.post("/auth/login", {login: login,
password: password}, function(data) {
	if(data.result == false) {
		$("#status").text("Неправильный логин или пароль")
     } else {
	     $("#status").text("Добро пожаловать, " + data.userName);
       }
    });
});

Этот код отвечает за авторизацию на сайте. Он читается не настолько легко, как в некоторых других языках, но если вы знаете английский, то можно догадаться, что здесь происходит. Например, в первой строке мы видим, что у нас есть кнопка (button), которая отвечает за вход в систему (login), и по ней можно кликнуть (click).

Какие технологии используют с JavaScript

Разработчику на JavaScript недостаточно освоить синтаксис языка и основные концепции. В своей работе «джаваскриптеры» используют целый арсенал инструментов.

1. Редакторы кода или IDE:

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

  • Chrome Web Inspector (DevTools);
  • Firebug.

3. Среда исполнения серверного ПО: Node.js.

4. Средства разработки десктопных приложений:

5. Фреймворки для веб-разработки:

6. JSON самый популярный формат передачи структурированных данных.

7. MongoDB документо-ориентированная база данных. Можно создавать JS-процедуры.

Хороший JavaScript-разработчик должен знать эти технологии и уметь их использовать или хотя бы ориентироваться в них. В наше время программировать в «Блокноте» — плохой вариант.

PHP: слон, которого трудно не заметить

PHP — чемпион по популярности в веб-разработке. Его используют в создании серверных приложений, скриптов и утилит. Вы найдёте его в бэкенде сайтов многих известных компаний — например, Avito, Badoo, «ВКонтакте», «Википедии», «Фейсбука»*.

Некоторые называют PHP «ужасным» языком или вовсе говорят, что он умирает. Такая оценка появилась, когда PHP только набирал популярность. В то время у языка действительно было много недостатков и ничего серьёзного на нём не писали. Некоторые специалисты его таким и запомнили, но PHP уже больше десяти лет как настоящий взрослый язык. Более того, огромное количество конструкторов и редакторов сайтов написаны именно на нём.

Какие у PHP есть достоинства и недостатки:

Изображение: Skillbox Media

Зарплаты и востребованность

Как вы видите на скриншоте ниже, предложений работы для PHP-разработчиков очень много — больше, чем для других языков, — но средняя зарплата ниже, чем у JavaScript-разработчиков, — 88 тысяч рублей.

Скриншот: Skillbox Media

Если вы новичок, можете рассчитывать на зарплату от 40 до 80 тысяч рублей; если у вас уже есть опыт, то от 80 до 120 тысяч; профессионалы получают 120 тысяч рублей и больше.

Синтаксис PHP

Вот пример кода на PHP:

<?php

const NEWS_PER_PAGE = 20;

$section = $_GET['section'];
$page = $_GET['page'];

$PDO = new PDO("mysql:dbname = testdb;host=127.0.0.1", "mysql_user", "mysql_password");
$Statement = $PDO->prepare("SELECT * FROM News WHERE section = :section LIMIT :offset, :limit");
$Statement->execute([
":offset" => $page * NEWS_PER_PAGE,
":limit" => NEWS_PER_PAGE
]);

$News = $Statement->fetchAll();
renderTemplate('templates/news_page.tpl', $News);

?>

Это код со страницы с новостями, который открывает разные новостные разделы.

Человек без опыта программирования, скорее всего, не сможет прочитать его так же легко, как предыдущий на JavaScript. Может показаться, что PHP — это очень сложно, но на самом деле язык простой и, чтобы начать в нём разбираться, достаточно основ, а сами основы можно освоить за несколько часов.

Какие технологии используют с PHP

Несмотря на то что освоить PHP довольно легко, к нему в придачу идёт около 20 мастхэв-технологий.

1. Редакторы кода или IDE:

2. Серверы баз данных:

3. Хранилища:

4. Отладчик: Xdebug.

5. Профайлер: XHProf — помогает замерить, сколько времени выполняется какой участок программы, и понять, где программа замедляется.

6. Популярные фреймворки:

  • Symfony;
  • Yii;
  • Laravel;
  • Zend;
  • Silex;
  • Lumen;
  • Slim.

7. Менеджер пакетов: Composer.

Python: сын маминой подруги

Python тоже часто используется в веб-разработке, а ещё это один из самых популярных языков для анализа данных и в Data Science. Вы встретите Python в разработке веб-сайтов и утилит, в машинном обучении и в работе с нейросетями.

Это тоже подходящий язык для новичков, его часто рекомендуют для обучения программированию. Он часто светится в первой пятёрке индекса TIOBE. Например, сейчас (в июне 2022 года) Python занимает там первую строчку.

Вот плюсы и минусы Python:

Изображение: Skillbox Media

Зарплаты и востребованность

По данным сайтов для поиска работы (HeadHunter, SuperJob, «Работа.ру» и других), только в Москве для Python-разработчиков открыто более 4 тысяч вакансий. Средняя зарплата питониста — около 115 тысяч рублей. Для новичков — в среднем 70 тысяч, а для специалистов — от 150 до 170 тысяч. Если вы разбираетесь в нейросетях и знакомы с машинным обучением, то, скорее всего, ваша зарплата будет выше.

Синтаксис

Вот пример кода в Python:

import pandas as pd
from sklearn.metrics import accuracy_score
from sklearn.ensemble import GradientBoostingClassifier
#Sorting hat classification
StudentsData = pd.read_sql("SELECT * FROM StudentsData", engine)
X = pd.drop('faculty')
Y = pd['faculty']
x_train, x_test, y_train, y_test = 
train_test_split(X, Y, test_size=0.33, random_state=42)
Classifier = GradienBoostingClassifier(n_estimators=500)
Classifier.fit(x_train, y_train)

y_prediction = Classifier.predict(x_test)
accuracy = accuracy_score(y_test, y_prediction)
print("Model accuracy = " + accuracy_score)

Мы имитировали шляпу из «Гарри Поттера», которая распределяет студентов по факультетам. Она учится сама. Читает и делит данные о студентах прошлых лет на две группы: данные о самих студентах и данные о том, на каком они факультете. Потом шляпа учится предсказаниям с помощью модуля машинного обучения и проверяет свои способности на контрольной группе. В конце программа оценивает точность предсказания.

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

Какие технологии используют с Python

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

1. Редактор/IDE: PyCharm (самый популярный).

2. Для анализа данных:

3. Для машинного обучения:

4. Для веб-разработки:

5. Менеджер зависимостей:

  • Pip;
  • Conda.

6. Cython-синтаксис — для написания компилируемого кода.

Java: консервативный и надёжный

Java — мультифункциональный объектно-ориентированный язык со строгой типизацией. Не путайте его с JavaScript, у них похожи только названия, но на практике они во многом противоположны друг другу.

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

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

Вот какие достоинства и недостатки есть у Java:

Изображение: Skillbox Media

Зарплаты и востребованность

Java — популярный и сложный язык, поэтому для Java-разработчиков всегда достаточно вакансий, а зарплаты у них высокие. Например, средняя зарплата по Москве — 115 тысяч рублей. Даже новичок может зарабатывать от 60 до 95 тысяч.

Скриншот: Skillbox Media

Какие технологии используют с Java

Как и в случае с остальными языками программирования, пожалуй, самой популярной IDE в Java является продукт JetBrains — IntelliJ IDEA. Хотя у свободных сред разработки Eclipse и NetBeans тоже большие сообщества пользователей. Безоговорочный лидер среди фреймворков для Java — Spring. Это универсальная библиотека для быстрой разработки веб- и консольных приложений.

Вот как примерно выглядит технический стек Java.

1. IDE:

2. Популярные фреймворки:

  • Spring;
  • Swing;
  • Hibernate;
  • RxJava.

3. Android-фреймворки:

  • OrmLite;
  • RoboSpice;
  • Picasso;
  • Retrofit;
  • ButterKnife.

4. Android-инструменты:

  • Android SDK Manager;
  • Android Emulator;
  • ADB.

5. Базы данных:

  • Oracle;
  • MySQL;
  • MS SQL.

6. Менеджер зависимостей / система сборки:

  • Gradle — для приложений на Android;
  • Ant;
  • Maven — самый популярный.

7. JVM — Java Virtual Machine, среда выполнения кода.

Какой язык лучший?

Теперь давайте сравним все эти языки.

Изображение: Skillbox Media

HTML и CSS самые лёгкие, но платят за них тоже не так много. Если вы не уверены в своих силах, стоит начать с них.

JavaScript уже чуть сложнее, но с ним вы точно найдёте работу.

Java — гарантия работы и хорошей зарплаты, но язык сложный, поэтому нужно верно оценить свои силы.

PHP и Python: оба языка очень популярны, но в довольно узких областях. Если эти области вам по душе — замечательный вариант!

Что выбрать новичку?

Опишем краткий алгоритм выбора.

  • Для начала выберите не язык, а интересное вам направление. Это может быть веб-, десктопная, мобильная или серверная разработка. А может быть, вы захотите заниматься анализом данных.
  • Теперь оцените свои силы и навыки и выберите язык, подходящий вашему уровню. Если вы никогда ничего не программировали и не учились программированию ни в школе, ни в университете, начните с языков полегче (JavaScript, PHP), а если чувствуете себя увереннее и уже пробовали что-то писать, можете выбрать Java.
  • Определившись с языком и изучив его синтаксис, не забудьте познакомиться со стеком технологий и популярными фреймворками — это вам точно пригодится. Не надо пытаться сразу всё досконально изучить, но важно ориентироваться в технологиях.

* Решением суда запрещена «деятельность компании Meta Platforms Inc. по реализации продуктов — социальных сетей Facebook и Instagram на территории Российской Федерации по основаниям осуществления экстремистской деятельности.

Нейросети для работы и творчества!
Хотите разобраться, как их использовать? Смотрите конференцию: четыре топ-эксперта, кейсы и практика. Онлайн, бесплатно. Кликните для подробностей.
Смотреть программу
Понравилась статья?
Да

Пользуясь нашим сайтом, вы соглашаетесь с тем, что мы используем cookies 🍪

Ссылка скопирована