Рассказ программиста о том, как добиться успехов в изучении JavaScript.

JavaScript – язык, на котором сегодня работает всё – от веб-приложений до мобильных приложений и серверов. Его популярность резко выросла за последние несколько лет, обойдя такие языки, как Java и PHP. Сейчас – наилучшее время для изучения JavaScript. Я расскажу, с чего началась моя история, что я изучил и как стать профессионалом в JavaScript.

Предыстория

JavaScript был создан Бренданом Эйхом в 1995 году. Брендан был принят в компанию Netscape Communication, задачей которой было сделать веб более динамичным. Через 10 дней, Брендан создал прототип языка, с синтаксисом, очень похожим на Java. Это был день рождения JavaScript.

Сегодня каждый браузер поддерживает его, тем самым делая JavaScript языком веба.

Некоторые разработчики ненавидят JavaScript за то, что он интерпретирует код таким образом, что в итоге вы получаете совсем не то, что программировали. Написав первые несколько строк на JavaScript, я был удивлён этим фактом. Тем не менее я твёрдо решил, что займусь его изучением.

Первые шаги

После моего первого знакомства с JavaScript, я решил составить план изучения языка:

1. Научиться учиться и запоминать простые вещи

2. Изучить основы JavaScript

3. Погрузиться в изучение и приступить к изучению расширенных возможностей языка.

4. Начать создание своих проектов.

5. Завести блог об изучении JavaScript

6. Научить других

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

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

Учитесь учиться

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

Написание технических текстов как способ обучения

В процессе обучения я записывал все свои достижения. Сделать это можно создав блог или любым другим удобным для вас способом. Если же публиковать свои достижения вы не считаете нужным, ведите записи на своём ПК. Результаты будут видны практически сразу, кроме того, способ помогает тренировать память. Это способствует пониманию пройденного.

Тесты на знание

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

Лучшим способом является использование карточек. Я использую Anki . В приложении можно создавать карточки по каждой пройденной теме. Выполнять тесты желательно регулярно, поэтому каждое утро я посвящаю 10-15 минут на их выполнение. Это помогает не только развивать память, но и запоминать, как правильно задавать вопросы.

Не торопитесь

Наихудшее время для обучения – когда вы чувствуете усталость. В такие моменты, главное не заставлять себя. Сделайте перерыв на несколько дней, когда будете готовы продолжайте обучение. Кроме того, я настоятельно рекомендую использовать метод помидора . Суть в том, чтобы 25 минут заниматься, и 5 минут отдыхать. Этот способ помогает повысить продуктивность.

Найдите ментора

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

Основы JavaScript

Теперь, когда мы познакомились с наиболее эффективными способами обучения пришло время перейти к самому обучению. Всё надо начинать с основ. Благодаря популярности JavaScript, найти информацию в интернете не составит труда. Я поделюсь ресурсами, где я сам обучался. Вы можете выбрать любой из них:

MDN’s JavaScript Guide — руководство охватывает всё необходимое, грамматику и типы, циклы, функции, выражения, числа и даты, форматирование и многое другое.

You Don’t Know JS — это серия книг Кайла Симпсона. Здесь содержится информация, которая поможет вам изучить язык более глубоко.

Eloquent JavaScript — ещё одна крутая книга о JavaScript. Советую читать её, только после того, как вы получите базовые знания или если у вас есть опыт программирования на других языках.

Free Code Camp — сообщество программистов, где вы будете участвовать в чемпионатах, создавать проекты и получать сертификаты. Способ подойдёт даже новичку, кроме того его можно совмещать с занятиями на других ресурсах.

CodeCademy — ещё одна платформа для обучения с помощью задач. Идеально для новичка.

В процессе обучения на этих ресурсах вы получите базовые знания, необходимые для программирования на JavaScript, после чего вы можете смело приступать к созданию своих первых программ и приложений. Когда вы почувствуете, что уже что-то понимаете, у вас появится мотивация для продолжения изучения JavaScript и любых других языков. Главное – не лениться.

Если вы чувствуете, что не можете самостоятельно справиться с проблемой, погуглите, обратитесь на форум Stack Overflow или просто спросите у ваших знакомых программистов. Всегда спрашивайте себя, для чего вы делаете что-то – «Для чего мне нужны циклы, когда проще использовать метод карт?», «Зачем мне JQuery, если можно обойтись без него?».

«Я знаю основы, что дальше?»

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

Справиться со стрессом мне помогла моя сила воли. Я понимал, что это поможет мне перейти на новый уровень.

Изучение новых вещей становится затруднительным, так как материал уже не такой лёгкий как прежде, но всё еще не настолько тяжёлый, чтобы бросать дело. Я занялся тестирования, шаблонов проектирования, структур JavaScript с помощью книг. Не все из тех книг, что я прочёл, помогли мне. Здесь я приведу список тех, что действительно оказались полезными:

Effective JavaScript: 68 Specific Ways to Harness the Power of JavaScript — в книге описываются 68 подходов для написания кода, к каждому автор приводит примеры. Вы узнаете, как подбирать стиль программирования для разных проектов, решать проблемы и многие другие аспекты программирования.

JavaScript — The Good Parts — несмотря на то, что книга порядком устарела, она всё ещё является отличным помощником. Книга научит вас писать красивый и эффективный код.

— в книге рассказывается о том, как применять современные шаблоны к языку. Написано всё простым языком.

Test-Driven JavaScript Development — одна из лучших книг, обучающих тестированию кода JavaScript.

Путь к профессии

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

Человека нельзя назвать кузнецом своего дела, если он знает всё, но ничего не умеет. То же самое с программированием. Если вы не практикуетесь, вы ничего не получите. Так что мой совет – учитесь и практикуйтесь одновременно. Не стоит волноваться по поводу того, что ваш код не будет идеальным. Главное – практика. Создайте аккаунт на GitHub , пишите код ежедневно, сделайте это одним из пунктов распорядка дня. Когда вы создадите свой проект, поделитесь с сообществом и ждите отзывов. Обратная связь, особенно если это мнение аргументированно, дорогого стоит. В процессе работы над проектом, вы приобретёте навыки, которые помогут вам не только в программировании, но и в других делах.

Человека нельзя назвать кузнецом своего дела, если он знает всё, но ничего не умеет.

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

Не переставайте учиться

Теперь, когда вы обладаете солидным набором знаний и умений, время перейти к следующей проблеме – как оставаться на плаву. Поток информации бесконечен. Чтобы быть в курсе, я подписался на несколько изданий –

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

Что я изучил

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

Научитесь правильно искать

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

Научитесь задавать правильные вопросы и выбирать правильное время

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

Помогайте другим

Заключение

Изучение JavaScript или других языков программирование – непростое дело, но оно безусловно стоит потраченных сил и времени. Изучение требует настойчивости. Но если у вас есть настойчивость, необходимые ресурсы, и мотивация, вы достигнете больших успехов. Какой бы способ обучения вы не выбрали, не забывайте, что он должен быть интересным для вас.

Название : Самоучитель JavaScript.

Эта книга предназначена для самостоятельного освоения программирования на языке JavaScript. Кроме общего руководства, она содержит множество примеров и текстов готовых к использованию программ. Рассматриваются вопросы создания сценариев для веб-сайтов, а также сценариев, выполняемых Windows Scripting Host. В приложениях приводится справочная информация по JavaScript и HTML. Книга адресована как новичкам, так и тем, кто уже имеет некоторый опыт в веб-дизайне и программировании. Во втором издании книги исправлены замеченные опечатки и неточности.

Типы данных
Переменные и оператор присвоения
Имена переменных
Создание переменных
Область действия переменных
Операторы
Комментарии
Арифметические операторы
Дополнительные операторы присвоения
Операторы сравнения
Логические операторы
Операторы условного перехода
Операторы цикла
Выражения с операторами

Функции
Встроенные функции
Пользовательские функции
Выражения с функциями
Встроенные объекты
Объект String (Строка)
Объект Array (Массив)
Объект Number (Число)
Объект Math (Математика)
Объект Date (Дата)
Объект Boolean (Логический)
Объект Function (Функция)
Объект Object

Пользовательские объекты
Создание объекта
Добавление свойств
Связанные объекты
Пример создания базы данных с помощью объектов
Специальные операторы
Побитовые операторы
Объектные операторы
Комплексные операторы
Приоритеты операторов
Зарезервированные ключевые слова
Основы создания сценариев
Из истории программирования НО
От простого до динамического HTML

Простой HTML
Динамический HTML
Где, что и как делают сценарии
Расположение сценариев
Обработка событий
Объекты, управляемые сценариями
Понятие события
Свойства события
Прохождение событий
Указание обработчика события в сценарии
Работа с окнами и фреймами
Создание новых окон

Фреймы
Плавающие фреймы
Всплывающие окна
Динамическое изменение элементов документа
Использование метода writeQ
Изменение значений атрибутов элементов
Изменение элементов
Загрузка изображений
Управление процессами во времени

Работа с Cookie
Объектная модель браузера и документа
Объект window
Свойства window
Методы window
События window
Объект document
Свойства document
Коллекции document
Методы document
События document
Объект location
Свойства location
Методы location
Объект history
Свойство history
Методы history

Объект navigator
Свойства navigator
Коллекции navigator
Методы navigator
Объект event
Объект screen
Объект TextRange
Свойства TextRange
Методы TextRange
Примеры сценариев
Простые визуальные эффекты
Смена изображений
Подсветка кнопок и текста
Мигающая рамка
Переливающиеся цветами ссылки
Объемные заголовки

Применение фильтров
Эффект печати на пишущей машинке
Движение элементов
Движение по заданной траектории
Перемещение мышью
Рисование линий
Прямая линия
Произвольная кривая
Графики зависимостей, заданных выражениями
Графики зависимостей, заданных массивами
Динамические линии
Напишем число словами
Обработка данных форм

Меню
Раскрывающийся список
Настоящее меню
Поиск в текстовой области
Таблицы и простые базы данных
Доступ к элементам таблицы
Добавление и удаление строк таблицы
Генерация таблиц с помощью сценария
Простые базы данных
Сортировка данных таблицы
Фильтрация данных таблицы

Поиск по сайту
Вставка HTML-документа в таблицу
Обработка табличных данных
Защита веб-страниц с помощью пароля
Взаимодействие с Flash-мультфильмами
Передача данных из JavaScript в ActionScript
Вызов сценария JavaScript из сценария ActionScript
Работа с файловой системой
и реестром Windows
Создание объекта файловой системы
Работа с дисками
Работа с папками
Создание папки
Копирование, перемещение и удаление папки

Работа с файлами
Создание текстового файла
Копирование, перемещение и удаление файла
Чтение данных из файла и запись данных в файл
Создание ярлыков
Запуск приложений
Работа с реестром
Приложение Руководство по динамическому HTML
Основные понятия
Форматирование текстов
Стандартные логические стили
Управление шрифтом
Цвет
Текст заданного формата
Списки
Разделительные полосы
Бегущая строка
Специальные и зарезервированные символы

Графика на веб-страницах
Вставка изображений
Фоновая графика
Ссылки
Текстовые ссылки
Графические ссылки
URL-адреса ссылок
Ссылки в пределах одного документа
Таблицы
Стили
Позиционирование элементов
Статические фильтры
Динамические фильтры
Таблицы стилей в отдельных файлах
Вставка Flash-мультфильма в веб-страницу
Вставка звука и видео

Поле ввода данных
Переключатели (radiobuttons)
Флажки
Кнопки
Фреймы
Тег МЕТА
Группа HTTP-EQUIV (HTTP-эквиваленты)
Группа NAME (имя)
Приложение Справочник по HTML
Теги HTML
Структура документа
Заголовки и названия
Абзацы и строки
Стили
Списки

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

Примеры правильных имен переменных: myFamily, my_adress, _x, tel412_3456.
Примеры неправильных имен переменных: 512group, my adress, tel:4l2 3456.
При выборе имен переменных нельзя использовать ключевые слова, то есть слова, используемые в определениях конструкций языка. Например, нельзя выбирать слова var, if, else, const, true, false, function, super, switch и ряд других. Список ключевых слов приведен в разделе 1.11. Имя должно отражать содержание переменной. Если имя состоит из нескольких слов, то между ними можно вводить символ подчеркивания или писать их слитно, начиная каждое слово с прописной буквы.

Вот примеры: my_first_adress,myFirstAdress. Иногда в качестве первого символа имени используют букву, указывающую на тип данных (значений) этой переменной: с - строковый (character), n - числовой (number), b - логический (boolean), о - объект (object), a - массив (array). Например cAdress, nCena, aMonth.

Коллекция бесплатных электронных книг для тех, кто хочет изучить JavaScript. Книги предоставляются в различных цифровых форматах: PDF, EPUB, HTML и др.

Марин Хауэрбеке «Элегантный JavaScript»

Эта книга представляет собой введение в программирование на JS. Книга также охватывает основные парадигмы программирования, например, ООП. В последней части книги рассказывается о Node.js.

Коди Линдли «JavaScript просветление»


Книга глубоко проникает в возможности и тонкости углубленного JS. Чтобы показать читателю, насколько она технически подробна: отдельная глава полностью посвящена значению null , другая - целиком undefined . Если вы хотите разобраться в самой подноготной языка, эта книга специально для вас.


Паттерны проектирования - это традиционные решения типовых задач. Использование хороших паттернов способно улучшить качество, эффективность и безопасность вашего кода, в то время как плохие - так называемые «анти-паттерны» — порождают множество проблем. Эта книга - о JS (и jQuery) паттернах проектирования, техниках и лучших практиках.

Илья Кантор «Современный учебник JavaScript»


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

Хенрик Йоретег «Человеческий JavaScript»


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

Аксель Раушмайер «Говорить на JavaScript»


Книга для тех, кто хочет научиться писать код на JS. Автор позволяет себе допущение, что читатель, взявшийся за данную книгу, является программистом, который уже знает хотя бы один объектно-ориентированный или другой язык программирования, такой как PHP, Ruby, Python, C++, Java и так далее.

Герд Вагнер «Создание клиентских веб-приложений на простом JavaScript»


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

Эрик Эллиот «Программируем JavaScript-приложения»


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

Микито Такада «Одностраничные приложения со всех сторон»


Автор этой книги Микито Такада по прозвищу Mixu уверен, что «лучший способ изучить что-то - это понять, как оно устроено». Таким образом, книга описывает процесс разработки веб-приложения на JS и других веб-технологиях.

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

JavaScript сейчас доминирует в мире IT. С его помощью вы можете как создать маленькое веб-приложение, так и запрограммировать робота. К счастью, язык существует уже довольно давно, и овладевшие им в превосходстве разработчики описали свой опыт программирования на нём в книгах.

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

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

Эта книга посвящена рассмотрению как классических, так и современных шаблонов программирования на JavaScript. В целом ориентирована на начинающих программистов.

HTML5 даёт великолепные возможности. Как и jQuery. Как и Node.JS. Если добавить к ним ещё немного чистого JavaScript - вы запросто покорите веб.

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

Эта книга даст вам универсальные знания о JavaScript, понимание как его общей логики, так и деталей. Автор предполагает, что читатель уже знаком с принципами объектно-ориентированного программирования и каким-либо языком вроде PHP, Ruby, Python, C++ или Java.

Вы готовы сделать шаг вперед в своей практике веб-программирования и перейти от верстки в HTML и CSS к созданию полноценных динамических страниц? Тогда пришло время познакомиться с самым «горячим» языком программирования - JavaScript!

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

В этой книге показано, как писать на JS фронтенд приложений, не используя никаких третьесторонних фреймворков или библиотек.

Кроме общего знания принципов JavaScript, эта книга подарит вам также знания из смежных областей, вроде JSON или NoSQL, а так же понимание того, как вообще пишутся веб-приложения.

Как понятно из названия, эта книга посвящена разработке одностраничных приложений. В ней нет описания конкретных технологий и фреймворков, но зато неплохо описаны общие шаблоны и практики.

Книга посвящена работе с DOM (Document Object Model) - пожалуй, самому важному в JavaScript для всех веб-разработчиков.

Эта книга, написанная Дугласом Крокфордом, создателем JSON и JSLint, является классикой мира JavaScript, и прочитать её должен каждый. В ней рассказывается об основах объектно-ориентированного подхода и приводится множество примеров, как хороших, так и плохих. Разумеется, автор рассказывает, как исправлять такие «вредные» примеры и как не допускать подобных ошибок.

Эта серия, написанная известным преподавателем Кайлом Симпсоном, состоит из 6 книг, каждая из которых покрывает отдельный раздел языка. Главным преимуществом этих книг является то, что они достаточно короткие, благодаря чему вы не успеете отвлечься. А книгу «ES6 и не только» из этой серии вы можете приобрести в бумажном варианте на русском языке.

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

Прочитав «Исчерпывающее руководство» вы сможете:

  • Сделать страницы своего сайта интерактивными.
  • Освоить последнюю версию плагина jQuery UI.
  • Создавать удобные формы с автоматической валидацией и исправлением данных.
  • Применять технологию AJAX.
  • Углубить свои знания в области и стать профессионалом.

После изучения основ верстки вам непременно захочется большей интерактивности и красоты, а также более удобных способов взаимодействия сайта с бэкендом. Тогда-то на арену и выходит JavaScript вместе с безумно популярным фреймворком jQuery. Для начала работы с книгой от вас не требуется никаких глубоких знаний – все их вы получите именно из нее. Здесь демонстрируются только новейшие практики в области кроссбраузерности и оптимизации страниц, а изложение ведется понятным языком с наглядными примерами и иллюстрациями.