Автор : другие произведения.

С нуля до единицы или как я выучил Javascript

Самиздат: [Регистрация] [Найти] [Рейтинги] [Обсуждения] [Новинки] [Обзоры] [Помощь|Техвопросы]
Ссылки:
Школа кожевенного мастерства: сумки, ремни своими руками
Оценка: 8.00*3  Ваша оценка:

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

Немного истории

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

В 1996 году JavaScript был взять в ECMA для стандартной спецификации, которую другие браузеры могли бы реализовать на основе того, что было сделано. Это привело к первому выпуску ECMA-262. ECMAScript - это название официального стандарта, наиболее популярной реализацией которого является JavaScript.

Со временем было выпущено несколько версий ECMAScript и версия ECMAScript 3 была широко поддерживаемой версией во время восхождения JavaScript к вершинам в промежутке с 2001 по 2010 год. Каждый браузер поддерживал его и это сделало JavaScript языком веба.

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

Первые шаги

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

Мой план был прост:

1. Научиться процессу обучения и тому как легко запоминать
2. Изучить основы JavaScript
3. Погрузиться в глубину и изучить продвинутые вещи
4. Начать разрабатывать проекты
5. Создать поток информации обо всем новом в JavaScript
6. Учиться

Мне нравится называть это "бесконечным планом", и вы поймете почему. Я буду освещать эти темы одна за другой, но сначала хотел бы поделиться несколькими вещами. Знайте, что ваше путешествие может быть очень ухабистым временами, и у вас будут времена полного отчаяния, но не позволяйте этому пугать вас. Каждый прошел этот путь и даже самые яркие умы в программировании были новичками в свое время. Это часть процесса, и вы должны принять это как нечто нормальное.

Итак, без лишних слов перейдем к интересному

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

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

Техническое письмо как способ обучения

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

Практические тесты

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

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

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

Выбирайте верное время

Худшее время для обучения когда вы чувствуете усталость или демотивацию, так что не заставляйте себя. Сделайте перерыв на этот день или два, и возвращайтесь только тогда, когда почувствуете себя готовым и мотивированным. Я также настоятельно рекомендую использовать технику Pomodoro. Идея этого метода довольно проста - вы фокусируетесь на задаче в течение 25 минут и отдыхаете в течение 5, а затем повторяете снова.

Найдите наставника

Найдите кого-то, кто является экспертом в JavaScript и спросите у него, согласен ли он стать наставником. Поиск наставника может значительно увеличить время обучения и снизить разочарование.

Основы JavaScript

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

MDN's JavaScript Guide - после запуска MDN стал руководством по JavaScript, HTML и CSS. Их руководство емкое и отражает такие вещи как грамматика, типы, циклы, функции, выражения, числа и даты, форматирование текста и т.д.

You Don't Know JS - это серия книг Кайла Симпсона, где он погружается в более сложные части языка, рассказывая о том, что такое scope & closures, что такое прототип объекта и что такое "this" в JavaScript. Эта серия поднимет ваши навыки на уровень выше, давая вам полное понимание JavaScript - в том числе тех частей, которых многие опытные программисты просто избегают.

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

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


CodeCademy - еще одна платформа для JavaScript задач, ориентированная на новичков и простая в использовании.

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

Иногда вы можете испытывать беспокойство. Будут вещи, которые вы не понимаете или проблемы, которые вы не можете решить. Не бойтесь обращаться за помощью в таких ситуациях. Гуглите, ищите на Stack Overflow или просто спросите кого-либо. Всегда спрашивайте окружающих и самого себя "Почему мне нужно использовать цикл for, когда я могу использовать метод map?", "Зачем мне нужен jQuery, когда я могу использовать простой JavaScript?".

"Я изучил основы, что теперь?"

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

Мне помогло преодолеть эту фазу сохранение спокойствия и осознание того, что это часть процесса и это в конечном итоге пройдет. Наличие правильного мышления полезно. Если у вас возникнет ощущение, что все сложно и неизвестно, знайте, что вы готовы вывести свои навыки на новый уровень.

Учиться новому на этом этапе довольно сложно. Материал должен быть не таким простым, но и не таким продвинутым. Итак, я начал искать и нашел много книг о лучших практиках JavaScript, тестировании, шаблонах дизайна и структуре кода. Некоторые из них были хорошими, а некоторые нет. Вот список книг, которые я нахожу действительно интересными:

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

JavaScript - The Good Parts - хотя и старая, книга является отличным ресурсом для каждого среднего и продвинутого разработчика JavaScript. Написана известным Дугласом Крокфордом в далеком 2008 году. Эта книга показывает, что JavaScript может быть красивым, элегантным, легким и очень выразительным языком, который позволяет создавать эффективный код независимо от того, управляете ли вы библиотеками объектов или просто пытаетесь заставить ajax работать быстро.

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

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

Рутина хорошего разработчика

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

Подумайте о кузнеце. Он может знать каждую мелочь о своем мастерстве, но без практики это ничто не значит. То же самое относится к программированию. Если вы не практикуете и не создаете вещи, вы вероятно ничего не делаете. Итак, мой вам совет - учитесь и кодируйте одновременно. Не волнуйтесь, что ваш код будет сырым и не оптимизированным. Просто возьмите идею и начните над ней работать. Создайте учетную запись GitHub, делайте коммиты каждый день и сделайте это рутиной. Когда вы закончите проект, поделитесь им со всем миром и ищите обратную связь. Обратная связь - это самое чудесное, что может с вами случиться - вы узнаете о новой передовой практике, проверке кода, средствах сборки и приобретете навыки коммуникации, управления продуктами и проектной организации и т.д. Эти навыки и приемы уведут вас очень далеко и чем раньше вы их освоите, тем лучше.

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

Вооружитесь философией "никогда не останавливать обучение"

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

Я подписался на несколько информационных лент - JSK Daily, Frontend Buzz, JavaScript Weekly, JavaScript World, Hashnode Times и получаю каждый день новые статьи. Я читаю их после работы или когда делаю паузы. Я сохраняю самые интересные статьи и проекты в Trello или на Github. Если что-то завоевывает мой интерес (например, async await), то я начинаю играть с ним по выходным. Я читаю об этом, пробую простое демо и эскпериментирую дальше. Я не устанавливаю сроки, так что могу остановиться тогда, когда захочу. Это один из лучших способов изучить новую технологию или спецификацию. Строительство игрушечных проектов может предохранить вас от выгорания.

Как справиться с разочарованием и беспокойством

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

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

Что я узнал по пути

Есть три основные вещи, которые я узнал за время путешествия:

Научился искать

Это может показаться тривиальным, но на самом деле это очень важно. Знание того как задавать правильные вопросы может значительно оптимизировать рабочий процесс. Всегда старайтесь задавать прямые вопросы, такие как "получить расширение файла из строки javascript" иди "как работают JavaScript closures". Не доверяйте слепо первому решению, которое найдете. Сомневайтесь во всем. Исследуйте немного больше, найдите различные решения и сравните их.

Узнал как и когда спрашивать

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

О помощи другим

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

Вывод

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


Оценка: 8.00*3  Ваша оценка:

Связаться с программистом сайта.

Новые книги авторов СИ, вышедшие из печати:
О.Болдырева "Крадуш. Чужие души" М.Николаев "Вторжение на Землю"

Как попасть в этoт список

Кожевенное мастерство | Сайт "Художники" | Доска об'явлений "Книги"