Чи варто вивчати ванільний JavaScript? Абсолютно.

Мета цього допису - наголосити на важливості основ JavaScript для кожного розробника, який працює з інтерфейсом. Я розповім вам, чому ви повинні добре знати чистий (ванільний) JavaScript. Це означає JavaScript без будь-яких додаткових фреймворків або бібліотек.

Я також згадаю пару джерел, які допомогли мені вивчити ці основи.

Ще однією причиною цієї публікації є те, що багато майбутніх веб-розробників, як правило, пропускають вивчення основних концепцій JavaScript, таких як підняття, закриття або прототипи. Вони переходять безпосередньо до найгарячіших фреймворків, таких як React або Angular 2. Я покажу вам, чому такий підхід не є найбільш зручним.

Усі хочуть розробників зі знанням $ {addTheHotFramework} ...

Отже, чи є якась причина, чому вам слід турбуватися про вивчення ванільного JavaScript?

Важко стати сильним розробником без знання сутності самої мови. Так само, як вам потрібно зрозуміти основоположні принципи права, перш ніж ви зможете перейти до певної галузі права. Це порівняння суто випадкове. ?

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

Здається, набагато простіше пройти аварійний курс з основ JavaScript, скочити в якийсь химерний фреймворк, скласти список завдань (нехай цуценя помре), завантажити його на GitHub, а потім почати шукати роботу.

... але інвестування часу у Vanilla JavaScript окупиться в довгостроковій перспективі

Не зрозумійте мене тут неправильно. Я ніяким чином не упереджую фреймворки JavaScript. Це якраз навпаки. Багато з них допомагають вам писати більш читабельний та ремонтопридатний код. Вони дозволяють писати більш абстрактний код, який часто легше налагодити.

Але екосистема JavaScript розвивається досить швидко. Створюються нові фреймворки. До існуючих додаються нові функціональні можливості. І найголовніше, що багато найгарячіших фреймворків сьогодні з часом будуть замінені, наприклад Angular 1.

За таких обставин, ви все ще вважаєте, що знання певного фреймворку JavaScript є достатнім для веб-розробника?

Або краще зрозуміти, як мова, на якій базуються всі ці бібліотеки та фреймворки, працює під капотом?

Якщо ви добре знаєте основи JavaScript,єдине, з чим потрібно ознайомитись, починаючи працювати з новим фреймворком, - це його синтаксис . Основні правила будуть однаковими, оскільки в усіх шарах абстракцій. Це все ще просто звичайний JavaScript.

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

Усі фреймворки та бібліотеки JavaScript неминуче базуються на його ядрі Vanilla.

Це повинно переконати кожного, що знання чистого JavaScript є необхідним у довгостроковій перспективі. Це обов’язкова умова для будь-якого успішного розробника, особливо для того, хто працює переважно в екосистемі JavaScript.

Особистий досвід

Не так давно я озирнувся на свою подорож від юриста до веб-розробника. Вже минуло 18 місяців з того часу, як я написав свою першу функцію JavaScript, і 10-й місяць працював професійним розробником інтерфейсу.

Я все ще пам’ятаю, наскільки складним для мене було виявити правильний спосіб вивчення JavaScript, оскільки я не мав попереднього досвіду програмування. Я випробував (і досі намагаюся) безліч різних способів стати ефективним учнем. Деякі з них були більш корисними, інші - менш.

Найголовніше, я не можу підкреслити, наскільки корисно для мене було те, що я зробив акцент на вивченні чистого JavaScript з самого початку. Рамки з’явилися пізніше.

На даний момент я працюю зі стеком React-Redux. Тим не менше, я часто стикаюся з проблемою, яку можу вирішити завдяки своїм знанням ванільного JavaScript. Ці помилки було б набагато складніше вирішити, лише знаючи певний фреймворк.

Навчання React або Angular 2 не навчить вас, що об’єкти передаються за посиланням або як працює закриття. Намагатись зрозуміти ці концепції під абстракціями, запропонованими фреймворком, набагато складніше. Це ускладнює розуміння простих концепцій JavaScript.

Крім того, якщо ви працюєте з JSX (React, Vue, Inferno) або TypeScript (Angular 2), у вас є ще один шар абстракції поверх нього.

Якщо ви хочете зрозуміти, як ці фреймворки працюють під капотом, вам потрібно знати, як працює сам JavaScript.

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

Дайте мені щось, у чому я можу навчитися

Питання, яке ви можете задати зараз, це «Які хороші ресурси можуть допомогти мені отримати гідні знання про ванільний JavaScript?».

Існує маса курсів та книг про JavaScript та його основи. Проте мало хто з них прагне навчити вас ванільному JavaScript всебічно. Більшість із них спеціалізуються на певній технології JavaScript.

Але є все-таки хороші ...

Красномовний JavaScript навчить вас не лише основам JavaScript, але й основам програмування загалом. Якщо ви вже досвідчений розробник, ця книга запропонує вам новий погляд на JavaScript та його основні принципи.

Ще один чудовий ресурс - серія книг «Ви не знаєте JavaScript» (YDKJS) Кайла Сімпсона. Кайл справді вміє вчити. Його пояснення передових концепцій JavaScript придатні для початківців, і він детально висвітлює їх. Самі назви книг дадуть вам підказку про те, що ви збираєтесь дізнатися. “Up & Going”, “Scope & Closures”, “this & Object Prototypes”, “Types & Grammar”, “Async & Performance”, “ES6 & Beyond”. Також є нова 7-ма книга про функціональне програмування на JavaScript.

Однією з чудових речей промовистого JavaScript та YDKJS є те, що ви можете отримати їх безкоштовно (перевірте надані посилання). Але якщо ви дійсно вважаєте їх корисними, не забудьте підтримати авторів, купуючи їх.

Якщо ви більше любите відеокурсів, ви можете переглядати онлайн-курси Кайла. Я думаю, найкраще, що ви можете зробити, - це спостерігати за ними як за супутником своїх книг, оскільки теми однакові. Однак ці курси платні.

Ще одним відеокурсом, який я вважаю корисним, є Javascript: Розуміння дивних частин Ентоні Алісеї. Це пояснює, що відбувається під капотом JavaScript доступним чином. Він охоплює передові концепції, такі як прототипове успадкування, функціональне програмування та ланцюжки обсягу.

Вивчіть ванільний JavaScript, зараз

Якщо ви витратите свій дорогоцінний час на вивчення ванільного JavaScript, ви не пошкодуєте. Він не тільки містить слово ваніль , але це благотворно вплине на навички програмування.

Для мене найкращим компромісом є те, що вивчення чистого JavaScript дасть вам набагато більше в довгостроковій перспективі, ніж вкладання часу в певні рамки. Фреймворки - це просто ярлики. Під капотом - це все JavaScript.

Ви самі переконаєтесь у ситуації, коли фреймворк, який ви використовуєте, має якусь несподівану поведінку. У такому випадку ви будете змушені дослідити цю помилку, переглянувши вихідний код. Я згадав, що, хоча у багатьох фреймворках бракує гідної документації, у них досить складний код? Але ей, шматок пирога, так? Ви вже точно витратили багато часу на вивчення ванільного JavaScript. Чи ще ні?

Якщо ви пам’ятаєте лише одне з цього допису:

Завжди пам’ятайте, що знання Vanilla JavaScript допоможе вам стати набагато кращим розробником. Період.

Якщо вам сподобалась ця стаття, дайте їй кілька хлопань. Я був би дуже вдячний.

Ця публікація була спочатку опублікована в моєму блозі.

Побачимось у Twitter?

Девід Копал (@coding_lawyer) | Twitter

Останні твіти від Девіда Копала (@coding_lawyer). інтерфейсний розробник @ataccama | колишній юрист | блогер ... twitter.com