Ответ на пост «Трудности с изучением JS»

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

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

По JavaScript есть два прекрасных текстовых ресурса: https://learn.javascript.ru/ и https://developer.mozilla.org/ru/docs/Web/JavaScript для других языков найти сложнее, но почти всегда можно. Например A byte of Python - бесплатная книга по Питону.

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

Сам придумывай себе задачи. Освоил текстовый ввод-вывод и условный оператор? Делай текстовый квест, калькулятор. Освоил простецкий цикл? Думай как с его помощью можно улучшить предыдущие работы (ещё как можно). Теперь конкретно для JavaScript. Можно в HTML делать инпуты и кнопки. Тег <input type="text" id="myinput">. Кнопке можно назначить обработчик события, например onclick="make()". И поехали эксперименты: создаешь функцию make(), в ней пишешь код. Чтобы получить доступ к содержимому поля ввода input достаточно document.getElementById("myinput").value - используй эту запись как переменную.

Автору исходного поста, если ты в теории добрался уже до мутации и прототипов а в практике проблемы - это уже беда. Теория сильно опередила практику. Тебе нужно убедиться, что ты в состоянии создать нормальную HTML страницу для практики. Базовый HTML изучил? Можешь накидать кнопок, инпутов, табличек? Да так, чтоб красиво было? Рекомендую для новичка Bootstrap. Для взаимодействия с тегами на странице возьми jQuery. Он позволяет найти тег или группу тегов по условию, и манипулировать этими тегами.

И начинай создавать простые но интерактивные страницы. Например создай калькулятор с кнопочками, сначала простецкий. Потом такой как в Windows. Тебе нужно научиться пользоваться условными операторами, писать условия. Научиться работать с массивами и циклами. Тут как практика - алгоритмы сортировки. Изучи функции, научись выделять осмысленный кусок кода в отдельную функцию. Научись нормально передавать параметры в функцию, никаких глобальных переменных! Научись возвращать значение из функции. Освой рекурсию как закрепление знаний о функциях. Только потом берись за ООП классы объекты прототипы и далее.

А дальше фреймворки. Выбери React или Vue и разбирайся зачем оно вообще.

Другие посты об образовательной платформе ищите по тэгу GeekBrains. Всю необходимую информацию и отзывы ищите в нашем специальном разделе. Там вы найдёте все актуальные курсы GeekBrains.
Вы смотрите срез комментариев. Показать все
12
Автор поста оценил этот комментарий

За рекомендацию jQuery напихают полную панамку.

раскрыть ветку (10)
4
Автор поста оценил этот комментарий
Напихают. Уже давно есть document.querySelector(). А остальное от лукавого
раскрыть ветку (9)
2
Автор поста оценил этот комментарий
Ещё до jQuery был document.getElementById, а ты поди ж, понапридумывали всякого, то moo, то jQ.
раскрыть ветку (8)
4
Автор поста оценил этот комментарий

Отвечу сразу всем. document.getElementById в статье упомянул и расписал как пользваться. jQuery ИМХО лаконичнее и шире querySelector(). Рекомендовал jQuery новичку для комфортного самообучения на первое время.

Ну и оверкил: после перехода на Vue вспомниаю про первое, второе и третье только при поддержке легаси.

раскрыть ветку (7)
2
Автор поста оценил этот комментарий

Только jQuery делает над элементом свою обертку и для дальнейшей работы стандартными методами придется сначала вытащить оттуда элемент. Так что нафиг его для работы с DOM. Единственное, что действительно удобно в jQuery сейчас - методы для асинхронных запросов в тривиальных случаях.

раскрыть ветку (5)
3
Автор поста оценил этот комментарий

Я НЕ предлагаю jQuery в нормальные проекты. Я предлагаю за 20 минут новичку вникнуть в основы и использовать для простоты. Ради записи вроде $("#input_id").val("test"); Не думал, что это вызовет такое горячее обсуждение.

раскрыть ветку (4)
1
Автор поста оценил этот комментарий

Новичку лучше делать так, как должно быть в реальных проектах. От плохих привычек потом избавляться придется. А еще не стоит забывать, что jQuery действует похоже на querySelectorAll, а не на querySelector и результатом всегда будет псевдомассив, что может новичку стать сюрпризом. Стоит ли чуть более короткая запись этого всего? А если уж так хочется сократить  запись до $, то можно сделать const $ = (selector) => document.querySelector(selector). Только предупредить, что в реальном проекте за это руки оторвут. Зато сразу демонстрация, что $ - не всегда jQuery и с этим неприятным фактом тоже приходится считаться.

раскрыть ветку (3)
1
Автор поста оценил этот комментарий

В реальных проектах я давно забыл и про querySelector и про jQuery. Все мои потребности перекрывает Vue. Даже так скажу: про jQuery забыл как про страшный сон. Vue намного лаконичнее. Удачи новичку начинать сразу с изучения Vue.


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

раскрыть ветку (2)
Автор поста оценил этот комментарий
Удачи новичку начинать сразу с изучения Vue.

Тут я тоже могу только удачи пожелать. Или посоветовать тогда уж не мелочиться и сразу Angular учить. Но и jQuery - скорее дополнительная тема для поверхностного изучения уже после стандартных возможностей языка. И то заслуживает внимания только из-за своей былой популярности и как следствие кучи легаси с ней.

Можете привести пример, где оптимальнее использовать querySelector

Оптимальнее чем jQuery? Любой современный. Первая приходящая в голову причина: jQuery оборачивает ответ в псевдомассив и все время нужно помнить что в какой переменной лежит. Причем, если правильно помню, у него свой вариант forEach, отличающийся от Array.forEach порядком аргументов. Вот и нафиг надо с этим заморачиваться, если у всего уже есть стандартные аналоги. Хотя местами jQuery удобен. В простых случаях проще дернуть $.get или $.post, чем возиться с fetch и его кучей промисов.

раскрыть ветку (1)
Автор поста оценил этот комментарий
А я старый Ангуляр вспоминаю как страшный сон, меня попросили нарефакторить какую-то кэмеловскую админку кажется со второго на четвертый, между ними пропасть и разный синтаксис, мне эта админка по ночам снилась.
1
Автор поста оценил этот комментарий
У меня сплошной легаси, так что в основном jQ, но иногда встречается и чистый js. И да, обучать приятнее на jQ, там миллиард примеров, теория сразу подтверждается практикой.
Вы смотрите срез комментариев. Чтобы написать комментарий, перейдите к общему списку