не понимаю javascript что делать
Как погрузиться глубоко в JavaScript и не сойти с ума?
Меня зовут Кирилл, ещё вчера я учился на Хекслете, а сегодня работаю в «Авито». У нас высокие требования к разработчикам, поэтому я бесконечно занимаюсь самообразованием, а также рассказываю новичкам, как стать классным специалистом и всё время прогрессировать.
Я написал статью для начинающих разработчиков, которые уже прошли или завершают профессию на Хекслете и используют JavaScript как основной рабочий инструмент. Делюсь советами, которые помогут новичкам углубить знания, не забивая голову бесполезной на первых этапах обучения информацией.
Не начинайте погружение с You Don’t Know JS
Начнём с простого. Всё, что вам нужно знать про логику мира JavaScript для того, чтобы начать погружение — это то, что на обложке культовой книги «Секреты JavaScript ниндзя» изображён самурай.
Тогда я еще не знал этого, поэтому начал изучать дополнительные материалы параллельно с прохождением профессии на Хекслете. На меня свалилась гора информации и много советов из разных источников. Один из советов — изучать You Don’t Know JS. Это замечательный источник, но для новичка он практически бесполезен.
Нужно повариться в разработке и иметь опыт написания кода, чтобы понимать суть того, что пишет Кайл Симпсон (Kyle Simpson). Я мучался и читал, дошёл до конца и почти ничего не понял. Спустя год с удовольствием пролистал все части и почерпнул много нового.
Не надо просто читать спецификацию, в этом нет смысла
Ещё один вредный совет звучит так: «Читай спецификацию». Вы же не учитесь дайвингу, когда едва держитесь на воде? Так и в разработке: информация для опытных специалистов не поможет, пока вы не знаете основ.
Можно, конечно, заглянуть в документацию, чтобы понять какие-то особенности работы той или иной конструкции, но последовательное чтение спеки может отбить желание углубляться в язык.
Не пытайтесь во время обучения полностью постичь асинхронность, без опыта в разработке сделать это сложно
Несмотря на то, что я прошел курс по асинхронному программированию, эта часть профессии у меня и многих студентов вызывала много вопросов. Это нормально, хорошее понимание асинхронной модели придёт к вам с опытом работы в реальных проектах.
Приблизить это время поможет книга Secrets Of The JavaScript Ninja. В ней тема асинхронности раскрыта очень глубоко и с примерами. Не лишним будет узнать, как работает Event Loop. Если бы я это сделал немного раньше, было бы легче двигаться вперед.
Пробуйте различные источники и форматы обучения
В какой-то момент мне стало сложнее получать новую информацию из книг, я стал их пролистывать. Тогда финальным рывком в моём обучении стал видеокурс от Кайла Симпсона Deep JavaScript Foundations. С некоторыми взглядами Кайла я не согласен, но нельзя отрицать, что он один из самых мощных JavaScript-разработчиков, которые занимаются обучением.
В конце концов у меня сложилась целостная картинка мира языка и инфраструктуры, нашёл много ответов на важные вопросы и систематизировал информацию, которую получил ранее из книг.
Итого
Если бы я мог дать совет себе в прошлом и составить список книг, то он был бы такой (порядок имеет значение):
1. Eloquent JavaScript
Написана простым и понятным языком, читается на одном дыхании — отличный кандидат для первой книги.
2. Secrets Of The JavaScript Ninja
Здесь уже можно найти больше интересных деталей и подробностей. Очень хорошие примеры.
3. You Don’t Know JS
Поможет закрепить, углубить и систематизировать полученные знания.
Ну и десерт для самых пытливых умов: видеокурс Кайла Симпсона Deep JavaScript Foundations. После этого этапа, если вы всё ещё настроены нырять вглубь, практически единственным источником становится спецификация, где можно найти ответы на любые вопросы.
Удачи в погружении!
С нуля до разработчика. Возвращаем деньги, если не удалось найти работу.
Лайфхак: в какой последовательности изучать JavaScript
Огромный инструментарий JS и тонны материалов по нему. С чего начать? Расскажем, как изучать JavaScript, и предоставим полезные ссылки.
Сперва следует понять, для чего вам нужен JavaScript
JavaScript (JS) – нативный язык, база, а библиотеки и JavaScript фреймворки – все то, что уже «накладывается» сверху. Язык программирования JavaScript клиентский и выполняется на стороне браузера. Грубо говоря, вся нагрузка ложится именно на ПК пользователя, а не на сервер, как было бы в случае с PHP. Поэтому кривой скрипт также будет затрагивать напрямую клиента, а не сервер: хорошо для вас, да плохо для пользователя.
Подробнее о том, что такое JavaScript, вы сможете узнать из данного видео:
Определиться со стеком
Не упускайте из виду JavaScript фреймворки, библиотеки и прочие инструменты.
Теперь давайте условимся: идеальной последовательности не существует. Все напрямую зависит от того, чем вы занимаетесь и на что ориентированы: фронтенд или full-stack. Если первое, делайте меньший упор на взаимодействие с серверной частью, а если второе – напротив. Изучать JavaScript вы можете и по своему плану. Наш – лишь одна из возможных вариаций, которая, тем не менее, имеет право на существование.
Выстраиваем последовательность
1. JavaScript основы
Книги по JavaScript для начинающих и аналогичные видеоуроки, которые разбудят в вас веб-разработчика. Массивы, коллекции, строки и прочий базис обязательны к изучению на старте. Список литературы солидный, поэтому в первую очередь загляните сюда:
И еще много чего интересного в нашей статье 16 бесплатных книг по JavaScript.
2. jQuery
Рекомендуем ознакомиться с серией видео «Уроки jQuery» от Web Developer Blog. Вы узнаете все о jQuery, начиная синтаксисом и заканчивая практической реализацией того, что может потребоваться.
3. JavaScript: углубленное изучение
Начинаем изучать JavaScript более серьезно.
В этом поможет неплохой видеокурс от loftblog под названием «Продвинутый JavaScript»:
4. Node.js
И вот мы переходим к самому «вкусному». В сети немало материалов по Node.js, но мы предлагаем сперва ознакомиться с нашими статьями:
Далее посмотрите серию уроков Node.js от ITVDN:
Ребята излагают материал максимально доступно, так что никто не уйдет «обиженным» 😉
5. npm
Менеджер пакетов, который входит в Node.js. Нужен, важен и нередко украшает требования вакансий. У Дмитрия Лаврика есть хорошее видео, разбирающее по косточкам npm в рамках основ:
Захотите узнать больше – обязательно найдете на его канале дополнительные видео, посвященные данному менеджеру.
6. Gulp
Исчерпывающий ответ на вопрос «Что это такое» дает Современный учебник JavaScript: Скринкаст по Gulp. Все выпуски скринкаста собраны в одном месте, что безумно удобно.
7. Webpack
За основой по Webpack вам на канал WebForMySelf:
8. Angular/Vue/React
Выше уже упоминалось, что можно выбрать что-то одно, но все зависит от конкретного проекта и соответствующих требований к нему. Хоть Vue.js сейчас по обсуждениям впереди планеты всей, затронем каждый из трех инструментов.
Angular курс
Vue.js
Знакомство с React
Надеемся, вам помог наш лайфхак. Если же вы знаете более эффективный способ изучить JS – поделитесь в комментариях 🙂
Вас также могут заинтересовать другие материалы по теме:
Не могу понять JavaScript [закрыт]
Хотите улучшить этот вопрос? Переформулируйте вопрос так, чтобы на него можно было дать ответ, основанный на фактах и цитатах.
Начинаю осваивать JavaScript, и у меня ничего практически не получается. Иду по основам, после теории дается задание, которое я не могу выполнить. Читаю задание и впадаю в ступор. Как писать код, что должно быть в функции, чтобы она заработала, с чего начать, как должен выглядеть код, чтобы он был рабочим, как его оформить — мне абсолютно непонятно.
Например, вот такое задание:
Реализуйте функцию printJaimesLine, которая принимает один аргумент — строку, и выводит реплику на экран в формате JAIME: переданная_строка.
Как назвать переменную, которая будет аргументом — решайте сами.
Наша система содержит код, скрытый от вас. В этом упражнении скрыт вызов функции printJaimesLine. Так мы проверяем ваше решение.
Вам не нужно самостоятельно вызывать функцию, только определить её.
Мой вопрос заключается не в решении данного задания, а как научиться писать код самой? Потому что сейчас я испытываю только беспомощность, как только нужно написать код.
4 ответа 4
Подобные вопросы из категории «ни о чем», надо удалять, а не поощрять плюсами. Изучите в первую очередь синтаксис и не будут возникать подобные вопросы, на которые нет ответа.
В психологии есть такое понятие как «проклятие знания» (curse of knowledge), это когнитивное искажение в мышлении человека, суть которого заключается в том, что более информированному человеку крайне сложно рассматривать какую-либо проблему с точки зрения менее информированных людей. За счет того, что у более информированного человека за годы и тысячи часов практики сложились устойчивые нейронные связи и нейронные контуры в головном мозге, позволяющие ему успешно решать рабочие задачи, ему трудно понять проблемы начинающих, он думает: писать код это так легко и просто, что там сложного, изучи синтаксис и у тебя исчезнут все проблемы. Но это иллюзия.
Дело не только в программировании. На самом деле научить любого человека какому-нибудь навыку или профессии — это сложнейшая проблема. Это проблема методологии. Если бы существовала универсальная и успешная методология по преподаванию программирования, то не было бы проблем с нехваткой тех же middl’ов во фронтенде, но их по-прежнему не хватает, несмотря на обилие оффлайн и онлайн-школ.
Те же самые проблемы с кодом у начинающих в других странах:
Подытоживая, пришла к мысли, что надо больше работать с готовым кодом, повторять за другими — из урока в урок идти по плейлисту готового проекта, печатать готовый код из книг.
7 ошибок, из-за которых вы отстаете в изучении JavaScript
Хочешь проверить свои знания по фронтенду?
Подпишись на наш канал с тестами по HTML/CSS/JS в Telegram!
Перевод статьи «7 Mistakes That Keep You Behind».
Не всем нравится процесс изучения JavaScript, особенно он не по душе людям нетерпеливым. Иногда дело доходит до того, что человек начинает спрашивать себя, правильный ли карьерный путь он выбрал.
Так ведь никто и не обещал, что изучение JavaScript будет легким и приятным, как прогулка по парку!
Но есть и хорошие новости. Учебный процесс можно улучшить при помощи правильных подходов. В этой статье мы разберем семь ошибок, допускаемых разработчиками при изучении JavaScript. Это именно те ошибки, которые тормозят ваше продвижение вперед.
1. Вы слишком торопитесь при изучении концепций
Когда до вас начинает доходить суть таких концепций как замыкания и функции высшего порядка, не стоит сразу же переходить к следующему уроку, не закрепив свои знания на практике. Такая спешка практически никогда не бывает хорошей идеей.
Перейти к следующей теме это большой соблазн, я знаю. Это со всеми случается. Но поверьте мне, если вы сделаете паузу между темами и используете ее для тренировки в написании кода, это очень поможет вам в будущем: вам будет легче, когда дело дойдет до создания проектов. Зачастую все эти концепции лучше всего усваиваются и надолго запоминаются именно в процессе написания кода.
Спешка при изучении основных концепций приведет лишь к тому, что вы быстро их забудете и вам придется возвращаться к старым материалам в попытках освежить память. Такие случаи очень обескураживают, ведь вы теряете ценное время на изучение того, что уже «усвоили» ранее. А все эти негативные мысли впоследствии накапливаются у вас в голове.
Продвигайтесь вперед только когда чувствуете, что текущая тема вам уже совершенно понятна и легка.
2. Вы не владеете своим кодом
В последнее время люди становятся очень зависимы от работы других людей. Они копируют файлы, созданные авторами учебных курсов или, например, используют lodash-библиотеку буквально для всего.
В использовании lodash для многих ваших задач нет абсолютно ничего плохого. Однако, если вы еще не отработали на практике все изученные концепции, использование библиотеки замедлит вас в долгосрочной перспективе. Концепции это то, что будет применяться со многими инструментами, фреймворками и языками. В программировании концепции это подходы к мыслительному процессу.
Именно по этой причине на многих собеседованиях по-прежнему дают задачи на программирование. Интервьюеры хотят увидеть, как вы мыслите, как вы применяете все эти концепции для решения распространенных задач. Можно использовать библиотеки компонентов для создания красивого пользовательского интерфейса, а lodash – для применения алгоритмов, но если возникнут проблемы, вы должны суметь применить свои знания основных концепций, чтобы разобраться с ними. Библиотеки не будут искать и устанавливать другую библиотеку или пакет для решения задачи. Для этого нужны вы.
Вы заинтересованы в умении применять изученные вами концепции. Поэтому в целом будет хорошей идеей потратить немного времени на то, чтобы попрактиковаться. Вы должны владеть вашим кодом!
3. Вы проводите слишком много времени за обдумыванием и планированием
Сегодня можно найти массу обучающих ресурсов онлайн. И, конечно, перед тем как перейти к изучению новой темы, у вас может появиться желание сначала собрать все необходимые ресурсы.
Мне не встречались люди, которым удалось бы таким образом быстрее и лучше научиться чему-либо. Тем не менее, нас просто тянет к такому подходу, нам хочется иметь перед глазами всю имеющуюся информацию, чтобы распланировать все до конца года.
Но это лишь игры вашего разума.
Не увлекайтесь процессом сбора 80 руководств, 6 книг и коллекции из 50 закладок в браузере. Не пытайтесь охватить все это одновременно, следуя своему желанию почувствовать себя королем веб-разработки.
Если вы изучаете JavaScript, учитесь на практике. Просто начните писать что-нибудь. Используйте то, что изучили за прошлый час, и напишите маленький пример кода чисто для себя. Это принесет вам больше пользы, чем марафонское чтение всех собранных вами материалов.
4. Вы перегружаете себя лишней информацией
Когда вы проводите большую часть своего времени, потребляя информацию (вместо того чтобы почаще прерываться на написание кода), вы наверняка забудете большую ее часть и вам придется постоянно возвращаться к пройденному материалу.
Проводить все время за учебой это страшная ловушка, потому что при этом вам кажется, что вы учитесь. Но что будет через пару месяцев, когда вы начнете все это забывать? Вы обнаружите, что вы почему-то неспособны применить на практике концепции и материалы, изученные совсем недавно.
Могу посоветовать проводить за написанием кода хотя бы 15 минут на каждый час усвоения информации.
5. Вы сравниваете себя с более опытными разработчиками
Когда вы сравниваете себя с другими, вы не думаете о том, как они достигли такого уровня, вы думаете лишь о самом этом уровне.
Люди смотрят на успешных программистов вроде Дэна Абрамова и автоматически предполагают, что те изначально писали чистый код.
Просто фокусируйтесь на том, что изучаете, и по мере продвижения вперед ваш уровень будет постоянно повышаться. И тогда (довольно скоро) уже другие новички будут думать о том, как вам удалось достичь таких высот.
6. Изучение инструментов и фреймворков, созданных поверх JavaScript
То есть, вам нужно изучить JavaScript, но вместо этого вы сразу переходите к изучению React/jQuery/Angular/Vue. Но что будет, когда выйдет новый революционный инструмент и вам придется переключиться на него? Вы будете вынуждены обращаться к кому-нибудь, чтобы разобраться в различных тонкостях, и надеяться, что этот человек поделится с вами своими знаниями, потому что он изучил JavaScript, а вы – нет!
Если вы не приложили достаточно усилий для изучения «ванильного» JavaScript, я настоятельно советую действительно изучить этот язык. Потому что, сделав это, вы сможете понимать инструменты, построенные на его основе, понимать, зачем они были созданы и какие задачи они решают. Изучение всех «почему?» также поможет вам избежать неудачных решений при проектировании кода.
В свое время я начал изучать jQuery до того, как освоил JavaScript, и это стало одной из самых прискорбных моих ошибок за всю карьеру. Когда появился React, я поддался повальному увлечению и тоже начал его изучать. Однако, после того как я осознал, что вообще не знаю, зачем мне использовать React и почему другие люди его используют, мой учебный процесс стал весьма тяжелым. Он внезапно превратился в простое запоминание react-кода.
В инструментах и фреймворках JavaScript есть много важных и при этом скрытых частей, которые вам нужно увидеть, но без хорошего знания языка это сделать невозможно.
7. Вы не делите концепции на меньшие кусочки
Изучение JavaScript подобно изучению математики в школе. Вы сможете перейти к сравнению чисел, основам алгебры и т. д. только когда научитесь складывать, вычитать, делить и умножать. Если вы обнаруживаете, что вам сложно что-то понять, зачастую это означает, что вы где-то что-то «перепрыгнули» вместо того чтобы продвигаться маленькими шажками. Но перейти к изучению алгебры без знания основ математики просто невозможно.
Если вы продвигаетесь постепенно, но все равно сталкиваетесь с проблемами при изучении более сложной концепции, вам будет гораздо проще получить помощь, ведь вы будете знать весь предыдущий материал по этой теме.
Как изучить JavaScript в 2021 — [Пошаговое руководство] 🔥
Вступление
Преимущества JavaScript
JavaScript полностью изменил взгляд мира на браузеры. Это дало возможность создавать сложные веб-сайты и делать весь бизнес-процесс цифровым! Некоторые преимущества JavaScript:
Перспективы работы
JavaScript твердо стоит на ногах, и почему бы и нет; веб-приложения — это настоящее и будущее этого меняющегося цифрового мира. Каждый день добавляются новые веб-сайты с множеством интерактивных элементов, а это значит, что разработчикам JavaScript всегда будет чем заняться. Вот почему он входит в пятерку лучших языков программирования 2020 года. Для JS-разработчиков существует около 24000 вакансий, и в среднем им платят около 118 тысяч долларов в год.
Предпосылки
Чтобы изучить JavaScript, вы должны знать основы HTML и CSS, которые чрезвычайно просты для изучения. Для практического знания JavaScript и большинства веб-проектов этих знаний будет достаточно. Для более продвинутых проектов и навыков рекомендуется знать основные концепции ООП и язык программирования на основе ООП (например, Java).
Вы можете установить IDE или использовать редакторы кода, или даже использовать блокнот или текстовую панель для написания кода JS. IDE и редакторы обеспечивают интуитивно понятный опыт программирования и более быстрые результаты, чем программирование с помощью таких редакторов, как блокнот, где вам нужно вводить все с нуля.
IDE
Хотя вы можете набирать и запускать JS-программу с помощью блокнота, IDE упрощает отладку кода и обеспечивает поддержку систем ALM (Application Lifecycle Management). Вот 3 лучших редактора IDE / исходного кода:
Онлайн-среда разработки Javascript:
AWS Cloud9 : помимо JS, AWS Cloud9 также поддерживает разработку для C, C ++, Perl, Python, Node.js и т. Д. Оно полностью написано на JS, а серверная часть находится на Node.js. Это онлайн-среда с открытым исходным кодом, и для получения доступа требуется учетная запись AWS. Некоторые функции включают подсветку синтаксиса, поддержку npm и основных команд UNIX, одновременное редактирование, анализ языка в реальном времени и настраиваемые привязки клавиш.
Как выучить JavaScript
Ниже приведены 5 лучших руководств по JavaScript:
Руководства по Javascript:
Бесплатные ресурсы:
Помимо платных и бесплатных руководств, упомянутых выше, вот еще несколько бесплатных ссылок на видео и блоги, которые помогут вам начать работу:
Официальная документация:
Проекты Javascript
Начать работу над проектами JavaScript несложно, так как настройка не требуется. Вариантов множество — от простого калькулятора до сложной игры с прыжками с мячом. Затем вы можете заняться другими проектами, такими как дизайн анимации, системы управления классом (для этого вам может понадобиться node.js), веб-помощники, которые помогают в парсинге и обобщении контента веб-сайта, игре на запоминание, игре в тетрис и т. д.
Сертификация
Сертификаты помогут вам повысить уверенность в себе и подать заявку на более сложные и плодотворные рабочие места. Вы также получите преимущество перед другими кандидатами с такими же навыками и опытом, если у вас есть сертификаты. Большинство сертификатов предназначены для начинающих и начинаются с общих принципов программирования, прежде чем переходить к более сложным темам, таким как проверка формы, анимация, связь с базой данных и т. д.
Вопросы на собеседовании
Теперь, когда вы достаточно уверены в себе, вам следует пойти на собеседование своей мечты. Чтобы хорошо подготовиться, ознакомьтесь с полным списком вопросов на собеседовании по JavaScript на Hackr.io, которые задаются почти во всех собеседованиях. Вот несколько важных вопросов:
Атрибуты находятся не в DOM, а в HTML. Они похожи на свойства, но не настолько эффективны. Рекомендуется работать со свойствами, а не с атрибутами, если первые доступны. В отличие от свойства, атрибут имеет строковый тип данных.
Повышенная интерактивность — JavaScript позволяет создавать интерфейсы, которые реагируют, когда пользователь активирует их с помощью клавиатуры или просто наводит на них курсор.
Немедленная обратная связь — посетителям не нужно ждать перезагрузки страницы, чтобы увидеть, не забыли ли они ввести некоторые важные детали.
Низкое взаимодействие с сервером — JS позволяет проверять вводимые пользователем данные перед отправкой веб-страницы на сервер. Это означает меньший трафик сервера и, следовательно, меньшую нагрузку на сервер.
Богатые интерфейсы — JS имеет такие элементы, как компоненты перетаскивания и ползунки, чтобы предоставить посетителям веб-сайта более богатый интерфейс.
Определение — функция, объявленная как отдельный оператор в основном потоке кода, называется объявлением функции. Когда функция создается внутри выражения или другой синтаксической конструкции, она называется функциональным выражением.
Строгий режим — когда объявление функции находится внутри блока кода в строгом режиме, оно видно везде внутри этого блока, но не за его пределами. Это не относится к выражению функции.
Время использования — выражение функции создается, когда выполнение достигает его. Функциональное выражение можно использовать только с этого момента. С другой стороны, объявление функции можно вызвать до того, как она будет определена.
Когда использовать — объявление функции обеспечивает лучшую читаемость и большую свободу в организации кода. Функциональные выражения обычно ограничиваются использованием, когда есть необходимость в условном объявлении.
Добавление его между тегами Из внешнего файла, указанного в атрибуте src тега. Старые браузеры рассматривают этот JS-код как длинный HTML-комментарий.
Обычно JS-код скрыт от старых браузеров для решения проблем совместимости и пользовательского интерфейса. Интересно, что браузеры, поддерживающие JavaScript, будут воспринимать комментарии как однострочные.
Использование отложенных сценариев приводит к задержке выполнения сценария при запуске анализатора HTML. Следовательно, это приводит к сокращению времени загрузки веб-страницы.
В JavaScript также доступны шесть дополнительных escape-символов:
\ b — Backspace
\ f — Подача формы
\ n — Новая строка
\ r — возврат каретки
\ t — горизонтальный табулятор
\ v — Вертикальный табулятор
Они никоим образом не выполняются в коде HTML или JS. Первоначально они были разработаны для управления факсимильными аппаратами, телетайпами и пишущими машинками.