С какого языка начать изучение программирования
Рассказываем о языках 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 очень простые — в основах можно разобраться буквально за пару дней, даже самостоятельно. Так что если вы очень боитесь программирования и не верите, что у вас получится, попробуйте начать с них. Это под силу каждому, поможет вам плавно войти в программирование и оценить свои силы. А потом при желании можно перейти к другим языкам.
JavaScript: главный по фронтенду
JavaScript сейчас везде. Это один из самых быстроразвивающихся языков современности, и он очень быстро набирает популярность. JavaScript многофункционален, на нём можно разрабатывать программы для любых платформ.
Изначально он использовался для создания интерактивных веб-страниц, но сейчас на нём делают и серверные (привет Node.js), и мобильные, и десктопные приложения, и многое другое.
Тем не менее, несмотря на широкое применение, JavaScript не волшебная таблетка. У него есть свои ограничения, из-за которых он подходит не для всех задач.
Какие плюсы и минусы есть у этого языка:
Что касается минусов — есть инструменты, которые помогают их компенсировать. Например, TypeScript и Flow делают работу с типами более безопасной, но код становится писать сложнее.
Из-за этой особенности на JavaScript не разрабатываются сложные программы с высокими требованиями к надёжности. Если у вас на сайте не работает кнопка, это неприятно, но не страшно, а вот если у вас ошибка в банковском или промышленном программном обеспечении — это уже хуже.
Зарплата специалистов и востребованность языка
По данным «Хабр Карьеры», средняя зарплата JavaScript-разработчика составляет около 154 тысяч рублей. Новички зарабатывают от 40 до 100 тысяч, а профессионалы могут похвастаться зарплатой в 200 тысяч и выше.
Найти работу с такой специальностью не проблема: это очень популярный язык, и требуется он почти везде. Даже если в вашем городе нет больших компаний, которым нужны программисты, не расстраивайтесь. Сейчас около 40% программистов работают удалённо — так что смело ищите работу в других городах.
Синтаксис JavaScript
JavaScript может выглядеть так:
Этот код отвечает за авторизацию на сайте. Он читается не настолько легко, как в некоторых других языках, но если вы знаете английский, то можно догадаться, что здесь происходит. Например, в первой строке мы видим, что у нас есть кнопка (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 есть достоинства и недостатки:
Зарплаты и востребованность
Как вы видите на скриншоте ниже, предложений работы для PHP-разработчиков очень много — больше, чем для других языков, — но средняя зарплата ниже, чем у JavaScript-разработчиков, — 88 тысяч рублей.
Если вы новичок, можете рассчитывать на зарплату от 40 до 80 тысяч рублей; если у вас уже есть опыт, то от 80 до 120 тысяч; профессионалы получают 120 тысяч рублей и больше.
Синтаксис PHP
Вот пример кода на PHP:
Это код со страницы с новостями, который открывает разные новостные разделы.
Человек без опыта программирования, скорее всего, не сможет прочитать его так же легко, как предыдущий на 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:
Зарплаты и востребованность
По данным сайтов для поиска работы (HeadHunter, SuperJob, «Работа.ру» и других), только в Москве для Python-разработчиков открыто более 4 тысяч вакансий. Средняя зарплата питониста — около 115 тысяч рублей. Для новичков — в среднем 70 тысяч, а для специалистов — от 150 до 170 тысяч. Если вы разбираетесь в нейросетях и знакомы с машинным обучением, то, скорее всего, ваша зарплата будет выше.
Синтаксис
Вот пример кода в Python:
Мы имитировали шляпу из «Гарри Поттера», которая распределяет студентов по факультетам. Она учится сама. Читает и делит данные о студентах прошлых лет на две группы: данные о самих студентах и данные о том, на каком они факультете. Потом шляпа учится предсказаниям с помощью модуля машинного обучения и проверяет свои способности на контрольной группе. В конце программа оценивает точность предсказания.
Синтаксис Python читается довольно легко. Хотя совсем без знания языка вряд ли получится понять, что там происходит.
Читайте также:
Какие технологии используют с Python
У Python богатая и довольно стабильная экосистема, включающая инструменты для анализа данных, машинного обучения и популярные веб-фреймворки.
1. Редактор/IDE: PyCharm (самый популярный).
2. Для анализа данных:
3. Для машинного обучения:
4. Для веб-разработки:
5. Менеджер зависимостей:
- Pip;
- Conda.
6. Cython-синтаксис — для написания компилируемого кода.
Java: консервативный и надёжный
Java — мультифункциональный объектно-ориентированный язык со строгой типизацией. Не путайте его с JavaScript, у них похожи только названия, но на практике они во многом противоположны друг другу.
На Java пишут сложное ПО: промышленные и банковские системы — как раз то, что не пишут на JavaScript. Помимо этого, огромное количество десктопных приложений, приложений на Android и серверных программ написано именно на Java.
Java — довольно сложный язык, поэтому его обычно выбирают люди, у которых уже есть какой-то опыт программирования и подготовка. Например, те, кто учится на программиста в университете.
Вот какие достоинства и недостатки есть у Java:
Зарплаты и востребованность
Java — популярный и сложный язык, поэтому для Java-разработчиков всегда достаточно вакансий, а зарплаты у них высокие. Например, средняя зарплата по Москве — 115 тысяч рублей. Даже новичок может зарабатывать от 60 до 95 тысяч.
Какие технологии используют с Java
Как и в случае с остальными языками программирования, пожалуй, самой популярной IDE в Java является продукт JetBrains — IntelliJ IDEA. Хотя у свободных сред разработки Eclipse и NetBeans тоже большие сообщества пользователей. Безоговорочный лидер среди фреймворков для Java — Spring. Это универсальная библиотека для быстрой разработки веб- и консольных приложений.
Вот как примерно выглядит технический стек Java.
1. IDE:
- IntelliJ IDEA;
- Eclipse;
- NetBeans;
- AndroidStudio.
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, среда выполнения кода.
Какой язык лучший?
Теперь давайте сравним все эти языки.
HTML и CSS самые лёгкие, но платят за них тоже не так много. Если вы не уверены в своих силах, стоит начать с них.
JavaScript уже чуть сложнее, но с ним вы точно найдёте работу.
Java — гарантия работы и хорошей зарплаты, но язык сложный, поэтому нужно верно оценить свои силы.
PHP и Python: оба языка очень популярны, но в довольно узких областях. Если эти области вам по душе — замечательный вариант!
Что выбрать новичку?
Опишем краткий алгоритм выбора.
- Для начала выберите не язык, а интересное вам направление. Это может быть веб-, десктопная, мобильная или серверная разработка. А может быть, вы захотите заниматься анализом данных.
- Теперь оцените свои силы и навыки и выберите язык, подходящий вашему уровню. Если вы никогда ничего не программировали и не учились программированию ни в школе, ни в университете, начните с языков полегче (JavaScript, PHP), а если чувствуете себя увереннее и уже пробовали что-то писать, можете выбрать Java.
- Определившись с языком и изучив его синтаксис, не забудьте познакомиться со стеком технологий и популярными фреймворками — это вам точно пригодится. Не надо пытаться сразу всё досконально изучить, но важно ориентироваться в технологиях.