Меню
Код
Код
#статьи
  • 36398

Закодируйся: как выбрать первый язык программирования

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

Оглавление

ВРЕМЯ ПРОСМОТРА

1&nbspч. 20 мин.

ВРЕМЯ ЧТЕНИЯ

10 мин.

ЭКОНОМИЯ

1&nbspч. 10 мин.


Мария Грегуш

В бэкграунде — программирование, французский язык, академическое рисование, капоэйра. Сейчас учит финский. Любит путешествия и Балтийское море.


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

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

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

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

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

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

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

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

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

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

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

HTML и CSS

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

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

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

JavaScript

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

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

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

Какие же у него плюсы и минусы?

Плюсы

  • Это простой язык, поэтому его часто выбирают как первый язык программирования.
  • У него широкая сфера применения.

Минусы

  • Ненадёжность. У JavaScript слабая типизация: это значит, что код легко писать, но программа потом менее надёжная. Есть инструменты, которые помогают решить эту проблему, например TypeScript и Flow, но с ними писать код сложнее.
    Из-за этой особенности на JavaScript не разрабатываются сложные программы с высокими требованиями к надёжности. Если у вас на сайте не работает кнопка, это неприятно, но не страшно, а вот если у вас ошибка в банковском или промышленном ПО (программном обеспечении), это уже хуже.
  • Мобильные приложения на JavaScript разрабатывать можно, но чаще для них выбирают другие языки, которые более проверены или даже созданы для этого, как, например, Java.

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

По объединённым данным сайтов для поиска работы (HeadHunter, Superjob, Rabota.ru и другим), в Москве средняя зарплата JavaScript-разработчика составляет 104 тысячи рублей. Для новичков это примерно от 40 до 90 тысяч, а для профессионалов — от 126 тысяч и выше.

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

Синтаксис

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

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

Стек технологий

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

  • Notepad++;
  • Sublime Text;
  • WebStorm.

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

  • Chrome WebInspector (DevTools);
  • Firebug.

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

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

  • Electron;
  • AppJS;
  • NwJS (Node-Webkit);
  • Windows8+.

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

  • jQuery;
  • AngularJS;
  • ReactJS;
  • BackBone;
  • Ember;
  • Meteor.

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

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

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

PHP

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

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

Плюсы PHP

  • Легко освоить, поэтому его часто выбирают как первый язык.
  • Для него существует огромное количество готовых решений.
  • Широко распространён, будет легко найти работу.
  • В последних версиях улучшился синтаксис и добавились новые возможности.

Минусы и особенности PHP

  • Слабая типизация, как и у JavaScript.
  • Хотя стандартная библиотека богатая, но организована неудобно и нелогично, в ней легко запутаться.
  • Практически не используется в других областях, кроме веб-разработки.

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

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

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

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

Синтаксис

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

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

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

Стек технологий

1. Редактор/IDE:

  • SublimeText;
  • Notepad++;
  • Atom;
  • PhpStorm.

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

  • Mysql;
  • PostgreSQL.

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

  • Memcached;
  • Redis;
  • MongoDB.

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

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

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

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

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


курс


PHP-разработчик c нуля до PRO

Вы научитесь работать с XML, JSON, REST, SOAP, освоите проектирование программной архитектуры, научитесь оптимизировать разработанную систему и обеспечивать безопасность кода — и после обучения сможете претендовать на звание middle PHP-разработчика.
После обучения — гарантированное трудоустройство.

Записаться на курс

Python

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

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

Плюсы Python

  • Легко освоить.
  • Удобный синтаксис.
  • Прекрасно подходит для своих задач (мы перечислили их выше).
  • Для него создано много полезных фреймворков и библиотек.

Спорные моменты

  • Частичная поддержка многопоточности.
  • Медленный, но можно значительно ускорить с помощью Cython.
  • Неявная типизация.

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

По объединённым данным сайтов для поиска работы (HeadHunter, Superjob, Rabota.ru и другим), вакансий для разработчиков на Python в Москве около 200, а зарплаты в среднем около 105 тысяч рублей. Для новичков — в среднем 60 тысяч, а для специалистов — от 150 до 170 тысяч. Если вы разбираетесь в нейросетях и знакомы с машинным обучением, то скорее всего ваша зарплата будет выше.

Синтаксис

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

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

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

Стек технологий

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

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

  • iPython/jupyter;
  • Anaconda;
  • Matplotlib;
  • Pandas;
  • Numpy;
  • Pyspark.

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

  • Scikit-learn;
  • Keras;
  • Tensorflow.

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

  • Django;
  • Tornado;
  • Flask.

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

  • pip;
  • conda.

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


курс


Профессия
Python-разработчик

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

Записаться на курс

Java

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

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

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

Плюсы Java

  • Понятный синтаксис.
  • Классическое ООП (объектно-ориентированное программирование).
  • Работает на всех операционных системах.
  • Можно писать ПО любой сложности, от маленьких утилит до огромных программных комплексов с миллионами строк кода.
  • Практически единственный язык для создания приложений под Android.

Спорные стороны

  • C одной стороны, написанный код легко поддерживать и развивать, но обратная сторона в том, что на Java сложно писать даже простые вещи. Например, чтобы прочитать файл по URL-ссылке, в PHP вам достаточно одной строчки кода, а в Java понадобится 5-10.
  • Java — строгий, консервативный и надёжный язык, в котором нет неявных конструкций, но с другой стороны, это значит, что код может получиться громоздким и многословным.

Это можно сравнить с юридическим документом, где всё-всё подробно прописано.

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

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

Стек технологий

1. IDE:

  • 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;
  • MSSql.

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

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

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


курс


Профессия
Java-разработчик

Наш курс даст вам углубленное знание универсального языка Java, и вы начнете правильно структурировать код и соблюдать всеми «любимый» синтаксис для создания выдающихся проектов. За 7 месяцев обучения и практики вы получите навыки и портфолио, с которыми можете смело выходить на рынок труда.

Записаться на курс

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

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

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

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

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

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

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

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

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

Если вы пока не определились с выбором или хотите сделать его более осознанно, вам будет полезен наш курс «Я — Веб-разработчик PRO». На нём вы получите базовые знания по веб-вёрстке, программированию на JavaScript и PHP, а также научитесь работать с фреймворками.

Курс

Я — Веб-разработчик PRO


Практический курс для тех, кто хочет стать профессиональным
веб-разработчиком, запустить свой интернет-проект или веб-сервис и получить первые заказы на разработку. Помимо просмотра уроков, вы будете делать реальные проекты, которые оценят. Ведь работодатели будут встречать вас в том числе и по тому, что увидят на аккаунте вашего GitHub. После прохождения обучения — гарантированное трудоустройство

Понравилась статья?
Да