JavaScript — это язык программирования, благодаря которому работает многое из того, что мы видим в интернете. Отображение интернет-страниц, обработка действий пользователя, социальные сети, браузерные игры и онлайн-банки — всё это немыслимо без него. А значит, на разработчиков, которые им владеют, всегда будет спрос. Разберемся, что он собой представляет и как новичку начать его изучать.
Самая первая версия JavaScript была создана в 1995 для браузера NetScape. До этого веб-страницы были статичными. Новый язык позволил добавлять к ним интерактивные элементы, которые реагируют на действия посетителя сайта.
В итоге он стал основным инструментом фронтенд-разработчиков. Хотя с его года создания прошло уже больше двадцати лет, он до сих пор развивается и сохраняет свое значение. Если вы хотите создавать фронтенд, то есть ту часть сайта, с которой взаимодействуют пользователи, без JavaScript не обойтись. У этого языка есть и другие преимущества:
Он прост в изучении и является хорошим вариантом для новичков
После того, как вы освоите основы на его примере, вам будет легче понять и другие языки, если понадобится
Хотя фронтенд — основная сфера его применения, существуют и другие области разработки, в которых вы сможете развиваться
Движок JavaScript включает в себя и интерпретатор, и компилятор JS. Эти компоненты последовательно считывают код скрипта и преобразуют его в набор инструкций более низкого уровня.
JavaScript используется для создания функционала, с которым пользователи интернета взаимодействуют каждый день. Вот для чего он чаще всего нужен:
Веб-сайты и веб-приложения. На нем работают самые разные сервисы — от интернет-магазинов до частных блогов
Браузерные расширения. Если вы пользовались блокировщиком рекламы или расширением для сохранения видео с YouTube, эти инструменты работали на JS
Мобильные приложения. Для этой цели его используют нечасто, так как для создания мобильных приложений есть специализированные языки. Но он может оказаться оптимальным вариантом, если от приложения не требуется сложных задач, а создать его нужно быстро
Серверная часть различных сервисов. В сочетании с движком Node.js он обеспечивает функционирование сервисов, которые подразумевают взаимодействие с сервером, от чатов до генерации изображения с помощью нейросетей.
Код, написанный на JS, может срабатывать в ответ на действия посетителя, например, клик мышью по кнопке. С его помощью можно выполнять различные операции:
Скачивать файлы с сервера или загружать их (например, загрузить фотографию в социальную сеть)
Показывать сообщения (например, спросить подтверждения действия)
Сохранять данные в браузере (например, запомнить данные для входа на сайт, чтобы их не приходилось вводить снова)
Менять HTML-код, отвечающий за отображение сайта, добавлять новые элеменыт или изменять стиль уже существующих
Некоторые действия, такие как использование камеры и микрофона или взаимодействие с другими окнами возможны, только если пользователь в явной форме разрешил их.
Используя этот базовый набор действий, программист может реализовывать сложные сценарии с помощью своего кода и готовых плагинов.
Названия JavaScript и Java похожи, и это может вызывать путаницу. На самом деле они никак не связаны друг с другом. Их создавали разные разработчики, и сходство названий считается совпадением, хотя Брендан Айк, один из создателей JS, упоминал в одном из интервью, что выбор такого названия мог быть и маркетинговой стратегий. Java тогда как раз набирал популярность, и сходство наименований привлекало новых пользователей и к джаваскрипту.
Эти языки различаются по сфере применения и по типичным задачам, для которых они используются. Вот каковы их основные отличия:
Джаваскрипт обеспечивает отображение страниц в браузере, а Java предназначен для разработки самостоятельных приложений
На Java создаются программы различных типов, в том числе приложения для Android и серверный софт
JS исполняется в браузере или в некоторых серверных средах, в то время как Java будет работать на любой платформе, где установлена виртуальная машина Java
Код на Java компилируется перед исполнением, а на джаваскрипте выполняется «на лету»
Программы на Java используются в работе кассовых терминалов, систем «умного дома» и другого оборудования
JavaScript проще в освоении
Кстати, произносить название языка правильно как «джаваскрипт», поскольку именно так оно читается по-английски. В некоторых русскоязычных материалах встречается вариант «яваскрипт», который объясняют тем, что слово Java отсылает к названию острова Ява. Но как бы ни произносилось название острова по-русски, наименования языков программирования всё равно не переводится, а значит, единственно правильным остается вариант «джаваскрипт».
Для работы нужно установить специальное программное обеспечение. Хотя писать код можно и в «Блокноте», на практике никто так не делает: в редакторах кода есть подсветка синтаксиса, автодополнение и другие инструменты, которые экономят время и помогают избежать ошибок. Начинающим, которые еще не сформировали собственных предпочтений о том, где писать код JavaScript, можно выбрать один из этих редакторов:
Visual Studio Code — бесплатный редактор от Microsoft, в который интегрированы возможности работы с системой контроля версий GitHub
Atom — бесплатный кроссплатформенный редактор от GitHub с интеллектуальной системой автодополнения кода
Sublime Text — редактор с гибкими настройками и большим количеством плагинов
WebStorm — платная среда разработки, специально «заточенная» под работу с джаваскрипт и имеющая богатый набор инструментов
Чтобы начать осваивать JavaScript, достаточно установить одну из перечисленных выше программ. Но по мере того, как вы начнете использовать его для решения практических задач, вам понадобятся и дополнительные инструменты. Они делятся на несколько групп в зависимости от того, какую функцию выполняют:
Документирование кода (Swagger, JSDoc, YUIDoc)
Тестирование (Mocha, PhantomJS, Jasmine)
Отладка (JavaScript Debugger, Chrome Dev Tools)
Поиск и устранение уязвимостей (Snyk, Node Security, RetireJS)
Аналитика и оптимизация (JSLint, JSHint, Flow)
Управление версиями (Git или Subversion)
Управление пакетами и зависимостями (Npm, Yarn, Bower)
Сборка и автоматизация (Webpack, Grunt, Gulp)
Не нужно осваивать инструменты впрок: достаточно знать об их существовании и назначении, уметь читать документацию и быть готовым разбираться с ними, когда этого потребует практика. Также, в зависимости от выбранной специализации, вам понадобится изучать фреймворки (frameworks) JavaScript.
После того, как поставили цель и определились, что будете изучать и какие ресурсы использовать, составьте план и обозначьте для себя, в каком темпе рассчитываете по нему продвигаться. Это поможет сохранить мотивацию в течение долгого времени, не выгореть и продолжать осваивать JavaScript, даже если вы столкнулись со сложной темой.
На начальном этапе главное — заложить основы. Вот какие темы понадобится освоить в первую очередь:
Основы синтаксиса и написание прошедших программ
Типы данных в JavaScript
Операторы и их использование
Переменные
Функции в JS, их типы и особенности
Простые и сложные условные конструкции
Методы, объекты и свойства
Циклы и их применение в алгоритмах
Чтобы разобраться в этих темах, можете выбрать тот способ, который будет для вас наиболее продуктивен — написанный простым языком учебник по джава скрипт или систематическое пособие «JavaScript для чайников», онлайн-ресурс, который вы можете изучать в своем темпе, или участие в синхронном онлайн-курсе.
После того, как освоите основы и создадите первые программы, познакомьтесь с HTML и CSS. Поскольку основное назначение этого языка — создание сайтов, знание хотя бы основ веба заметно облегчит вам жизнь. Некоторые предпочитают осваивать оба направления одновременно, но, если вы чувствуете, что новой информации слишком много, их можно и разделить: сначала уверенно разобраться в основах написания кода, а потом перейти к HTML и CSS.
Описанных выше знаний уже хватит, чтобы решать простые задачи. Без практики освоить программирование не получится, поэтому всегда ищите возможности применить то, что только что изучили, например, в работе над мелкими проектами. Находите интересные вам плагины и разбирайте их код, стараясь понять, как он работает и как его можно улучшить.
Затем вам понадобится более глубоко понять отдельные аспекты технологии. В их числе:
Объектная модель браузера (ВОМ)
Объектная модель документа (DOM)
Основы объектно-ориентированного программирования
Обработка событий и хранение данных в браузере
Различные способы взаимодействия с сервером
Использование сторонних библиотек
Работа с библиотекой jQuery
Работа со средой исполнения Node.js – это инструмент, который расширяет возможности языка
Популярные фреймворки, такие как React
Здесь последовательность и набор инструментов, которые вы будете осваивать, уже зависит от того, какое направление вас интересует. Например, если вы хотите работать в веб-разработке, создавая интернет-магазины и другие высоко нагруженные сайты, понадобится освоить фреймворки Vue,js или Angular. Первый из них более доступен для новичков.
Для дополнительной мотивации полезно найти сообщество, которое будет вас поддерживать. Поищите сообщества по JavaScript в ВК или Telegram. Если вы решили учить его на курсах, у них, скорее всего, тоже будет чат, в котором участники смогут обмениваться опытом и задавать вопросы.
Не пренебрегайте такой возможностью: общение с другими людьми, которые работают над теми же задачами, поддержит вашу мотивацию и сэкономит немало времени, если вы никак не можете найти ошибку в коде или зашли в тупик.
Вне зависимости от того, на каком этапе вы находитесь, ищите практическое применение своим знаниям. Решайте простые задачи, создавайте скрипты под свои задачи и не стесняйтесь использовать чуждой код, дорабатывая его под ваши цели. Так вы наберете опыт, который поможет вам при поиске первой работы. Как только почувствуете себя увереннее, начните брать простые заказы на биржах фриланса или ищите работу с возможностью стажировки.
Сколько времени нужно на изучение JavaScript, зависит от того, сколько усилий вы готовы вкладывать. Если вы будете учиться около десяти часов в неделю и планомерно развивать свои знания, то примерно через год у вас будут шансы получить позицию джуниор-разработчика. Разумеется, на этом процесс обучения не заканчивается — чтобы развиваться в профессии программиста, приобретать и отрабатывать на практике новые навыки нужно постоянно