Ответ на пост «Трудности с изучением 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.
1
Автор поста оценил этот комментарий

c++ golang

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

Выбор джедая, вопросов нет. <сарказм>Пойду весь фронт на плюсах перепишу, чо я лох чтоли. </сарказм> Каждому языку своё применение. Даже 1С на своём месте вполне себе ничего.

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

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

если решил изучать Java Script, то задумайся о смене профессии ))))

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

TypeScript? NodeJS?

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

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

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

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

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

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

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

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


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

показать ответы
2
Автор поста оценил этот комментарий
Ещё до jQuery был document.getElementById, а ты поди ж, понапридумывали всякого, то moo, то jQ.
раскрыть ветку (1)
4
Автор поста оценил этот комментарий

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

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

показать ответы
Автор поста оценил этот комментарий

Я  начинал изучать js. До этого был php. И по привычке по справочникам ищу "функции для работы с массивами", "функции для работы со строками". А их нет! Смотрю примеры и охреневаю: для работы с массивом например вызывается метод обьекта. Но этот объект создал я! При создании я его этими методами не наделял! И вообще я создавал массив, какого лешего он объект!? Какого у него появились методы!? Бог с ним что он объект, можно смириться. Но я же создавал его с нуля, не экстендил и не имплеменили его ниоткуда!


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

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

Если ты переучиваешься с другого языка то и разговор с тобой другой будет. Десять минут лигбез и пошли углубляться в детали. Новичку нужно усвоить базовые концепции, они для него дикие. Что такое переменная, что такое присваивание, что такое выражение. До понимания, что такое объект и зачем так все усложнять нужно дорасти. Мне кажется хорошим примером последовательности изложения javascript.ru и ему подобные как раз потому что там все усложняется постепенно.

Автор поста оценил этот комментарий

Вот тут я немного не понееел. Сначало то, сё..., а потом ООП. Вы блеать серьезно? Пост про JS! Там везде ООП! Например: достать колличество элементов массива (обратиться к методу класса length, ООП), даже чтоб получить ключ элемента массива - нужно обратиться к методу или свойству name, ООП. Таи везде ООП, потому что всё - объекты.


Что вы имели ввиду?

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

Речь шла об изуче6ии с нуля. Для начала при изучении достаточно "в этом языке это пишется так". А как дело дойдет до объектов как раз и станет понятно почему оно так пишется а не иначе. Нельзя сходов на первом занятии объяснять что такое объект, потому что ты не сможешь 4ратко и внятно объяснить щачем жта штука нужна, почему все без неё жить не могут.

показать ответы
Автор поста оценил этот комментарий

Приложение hh для поиска работы. Там у каждой вакансии указано кол-во откликов.

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

Вакансий тоже кратно больше. Или там ограничение на отклики? И потом какой процент хоть сколько нибудь вменяемо соответствует вакансии?

Автор поста оценил этот комментарий

Зачем вообще идти в js с такой переполненной нишей? На одно место мидла 500-600 человек.

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

Спрос на услугу рождает предложение и определяет ценообразование. Откуда взяты цифры?

показать ответы
Автор поста оценил этот комментарий

Зачем вы бутсстрап советуете? Пускай пишет на чистом js,html,css (не считая сборников там всяких и т.д.) а то этот bootstrap ваш...

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

Чтобы уменьшить порог вхождения.

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

Уже 2 раза начинал учить JS, всё никак не дастся. Дело в том, что у меня практически нет задач для исполнения на JS, хотя сайты делаю более 2х лет. Соответственно, нет практики на js и закрепления теории - я не совсем понимаю его основные области применения, что постепенно забывается, эх. Зато хорошо знаю html, php, json, css, популярные cms. Прям js не хватает для полной коллекции.

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

ИМХО больше веб-приложения и крупные проекты. Использование и написание фреймворков. В сторону Vue не смотрели?

показать ответы