Опыт программирования на Javascript
Всем, кто решил, что «программирование — это круто» и, немного поучившись, выяснил, что далеко не всё так просто, как казалось поначалу, посвящается эта, пока ещё не книга.
Все мы когда-то учились программировать. Для кого-то принципы построения программ оказались простыми и понятными, кто-то обнаружил нагромождения зауми там, где всё должно быть просто и понятно. Многие потянулись в программирование на Javascript, чтобы делать «крутейшие» веб-страницы и поражать воображение своих друзей, но оказалось, что выучить Javascript недостаточно, нужно уметь выражать запросы вида «кнопка должна менять цвет при наведении» в виде логических условий и реакций на события, вызова функций и многого другого.
Многие внезапно открывают для себя факт, что программирование — это не набор фокусов, которые нужно выучить, и применять везде, где только можно. Нет, «фокусы», конечно, учить приходится, но главное не это. Главное — это умение и готовность эти самые «фокусы» применять, а главное, способность понять, где и как нужно применить тот или иной приём (я буду использовать именно это слово).
Я намеренно хочу ограничить примеры «чистым» javascript-ом, без работы со всем, что касается браузера (да, никаких примеров работы с Canvas и DOM). Я хочу, чтобы тот, кто прочтёт книгу и выполнит все задания, смог бы реализовать любой, ясно описанный алгоритм спокойно и за приемлемое время. В качестве языка программирования будет использоваться старый добрый ES5, без стрелочных функций и остального синтаксического сахара. Я постараюсь приводить задания в рамках одной темы в порядке возрастания сложности. Часть заданий будет не обязательна для освоения материала, но поможет разобраться в нём глубже и поможет, в дальнейшем, использовать рассматриваемые приёмы эффективнее.
Что делать если
Вы не поняли объяснения. Ситуация вполне возможная, особенно учитывая время, затраченное на написание книги. С другой стороны, всегда можно пойти и задать вопрос. Возможно, какая-то тема рассмотрена недостаточно подробно, и нужно её рассмотреть ещё раз.
Вы не нашли объяснения нужной темы. Одно из двух — или я с самого начала не предполагал рассматривать указанную тему, или я просто забыл. Отправляем свой запрос через веб-форму, я его читаю и, если тема должна быть рассмотрена, она будет рассмотрена.
Вы решили все примеры, но хотели бы более сложных примеров. Точно так же, пишем запрос, рассказываем, по какой теме хотелось бы ещё примеров, примеры я либо высылаю вам лично, либо добавляю в книгу.
Хочется не просто отредактировать код, но и убедиться, что он работает. Открываем, например, Chrome, открываем консоль, вводим код (можно скопипастить), смотрим на результат.