Onko Vanilla JavaScript oppimisen arvoinen? Ehdottomasti.

Tämän viestin tarkoituksena on korostaa JavaScript-perusteiden merkitystä jokaiselle käyttöliittymäkehittäjälle. Kerron sinulle, miksi sinun pitäisi tuntea puhdas (vanilja) JavaScript. Tämä tarkoittaa JavaScriptiä ilman muita kehyksiä tai kirjastoja.

Mainitsen myös muutaman resurssin, jotka auttoivat minua oppimaan nämä perusteet.

Toinen syy tähän viestiin on, että monet hakevat web-kehittäjät pyrkivät ohittamaan JavaScriptiä koskevien keskeisten käsitteiden, kuten nostamisen, sulkemisten tai prototyyppien, oppimisen. He menevät suoraan kuumimpiin kehyksiin, kuten React tai Angular 2. Näytän sinulle, miksi tämä lähestymistapa ei ole mukavin.

Kaikki haluavat kehittäjiä, jotka tuntevat $ {addTheHotFramework}…

Joten, onko mitään syytä, miksi sinun pitäisi vaivautua oppimaan Vanilla JavaScript?

On vaikea tulla vahvaksi kehittäjäksi tietämättä itse kielen ydintä. Aivan kuten sinun on ymmärrettävä lain perusperiaatteet, ennen kuin voit siirtyä tietylle oikeuden alalle. Tämä vertailu on puhtaasti vahingossa. ?

Ymmärrän, että suurin osa hakevista web-kehittäjistä haluaa palkattua mahdollisimman pian. Halusin myös tämän.

Vaikuttaa paljon helpommalta tehdä kaatumiskurssi JavaScript-perusteista, hypätä hienoon kehykseen, tehdä ToDo-luettelo (anna pentun kuolla), ladata se GitHubiin ja sitten alkaa etsiä työtä.

… Mutta sijoittamalla aika Vanilla JavaScriptiin kannattaa pitkällä aikavälillä

Älä ymmärrä minua väärässä täällä. En ole millään tavalla puolueellinen JavaScript-kehyksiä vastaan. Se on täsmälleen päinvastoin. Monet niistä auttavat sinua kirjoittamaan helpommin luettavissa olevan ja ylläpidettävän koodin. Niiden avulla voit kirjoittaa abstraktimman koodin, jonka virheenkorjaus on usein helpompaa.

Mutta JavaScript-ekosysteemi kehittyy melko nopeasti. Uusia kehyksiä ollaan luomassa. Uusia toimintoja lisätään olemassa oleviin. Ja mikä tärkeintä, monet nykypäivän kuumimmista kehyksistä, kuten Angular 1, lopulta korvataan.

Luuletko edelleen tällaisissa olosuhteissa, että tietyn JavaScript-kehyksen tuntemus riittää web-kehittäjälle?

Vai onko parempi ymmärtää, miten kieli, johon kaikki nämä kirjastot ja kehykset perustuvat, toimii hupun alla?

Jos sinulla on vankka tietämys JavaScriptin perustekijöistä,Ainoa asia, jonka sinun on perehdyttävä aloittaessasi uuden kehyksen käyttöä, on sen syntaksit . Perussäännöt ovat samat, koska kaikissa abstraktiokerroksissa. Se on edelleen pelkkä JavaScript.

Jos tietosi rajoittuvat vain yhteen JavaScript-kehykseen, sinun on vaikea oppia uutta. Eri kehykset perustuvat usein erilaisiin JavaScript-periaatteisiin. Pitkällä aikavälillä vietät enemmän aikaa yrittäessäsi ymmärtää erilaisia ​​kehyksiä ja korjaamalla niihin kirjoittamasi koodin.

Kaikki JavaScript-kehykset ja kirjastot perustuvat väistämättä sen Vanilla-ytimeen.

Tämän pitäisi vakuuttaa kuka tahansa siitä, että puhtaan JavaScriptin tuntemus on välttämätöntä pitkällä aikavälillä. Se on edellytys menestyvälle kehittäjälle, erityisesti sellaiselle, joka työskentelee pääasiassa JavaScript-ekosysteemissä.

Henkilökohtainen kokemus

Ei kauan sitten katsoin takaisin matkalle lakimiehestä web-kehittäjään. Ensimmäisen JavaScript-toiminnon kirjoittamisesta on kulunut jo 18 kuukautta, ja kymmenes kuukausi työskenteli ammattimaisena etupään kehittäjänä.

Muistan edelleen, kuinka haastavaa oli löytää oikea tapa oppia JavaScript, koska minulla ei ollut aikaisempaa ohjelmointikokemusta. Olen kokeillut (ja yritän edelleen) monia eri tapoja tulla tehokkaaksi oppijaksi. Jotkut heistä olivat palkitsevampia, toiset vähemmän.

Mikä tärkeintä, en voi tarpeeksi korostaa, kuinka hyödyllistä minulle oli, että korostin puhtaan JavaScriptin oppimista alusta alkaen. Kehykset tulivat myöhemmin.

Tällä hetkellä työskentelen React-Redux -pinon kanssa. Siitä huolimatta törmään usein ongelmaan, jonka voin ratkaista Vanilla JavaScript -tietoni ansiosta. Nämä virheet olisivat paljon haastavampia ratkaista vain tietyn kehyksen tuntemuksella.

React- tai Angular 2 -opetuksen opettaminen ei opeta, että objektit välitetään viitteenä tai miten sulkimet toimivat. Yritä ymmärtää näitä käsitteitä kehyksen tuomien abstraktioiden alla on paljon vaikeampi. Tämä vaikeuttaa yksinkertaisten JavaScript-käsitteiden ymmärtämistä.

Lisäksi, jos työskentelet JSX: n (React, Vue, Inferno) tai TypeScript: n (Angular 2) kanssa, sen päällä on toinen kerros abstraktiota.

Jos haluat ymmärtää, miten nämä kehykset toimivat konepellin alla, sinun on ensin tiedettävä, miten JavaScript itse toimii.

Voit testata tietosi puhtaasta JavaScriptistä lukemalla suosikkikehyksesi lähdekoodin.Paitsi että saat kuvan siitä, miten se toimii konepellin alla, se myös opettaa sinulle paljon sen logiikasta, jota voit käyttää omassa koodissasi. Näet, että kehyksen toiminnot, jotka näyttävät tekevän paljon taikaa sovelluksessasi, ovat vain koostumuksia JavaScriptin peruskäsitteistä.

Anna minulle jotain, mistä voin oppia

Kysymys, jonka saatat kysyä nyt, on "Mitkä ovat hyviä resursseja, jotka voivat auttaa minua hankkimaan kunnollista tietoa Vanilla JavaScriptista?".

JavaScriptistä ja sen puitteista on paljon kursseja ja kirjoja. Silti harvat heistä pyrkivät opettamaan sinulle Vanilla JavaScriptia kattavasti. Suurin osa heistä on erikoistunut tiettyyn JavaScript-tekniikkaan.

Mutta on vielä hyviä…

Eloquent JavaScript opettaa sinulle paitsi JavaScriptiä myös yleisesti ohjelmoinnin perusteita. Jos olet jo edistynyt kehittäjä, tämä kirja antaa sinulle uuden näkökulman JavaScriptiin ja sen perusperiaatteisiin.

Toinen suuri resurssi on Kyle Simpsonin teos sarja Et tiedä JavaScriptiä (YDKJS). Kyle todella osaa opettaa. Hänen selityksensä edistyneistä JavaScript-käsitteistä ovat aloittelijaystävällisiä ja hän käsittelee niitä perusteellisesti. Pelkät kirjojen otsikot antavat sinulle vihjeen siitä, mitä aiot oppia. "Ylös ja menossa", "Laajuus ja sulkemiset", "tämä ja objektin prototyypit", "tyypit ja kielioppi", "asynkronointi ja suorituskyky", "ES6 ja sen ulkopuolella". JavaScriptissä on myös uusi seitsemäs kirja toiminnallisesta ohjelmoinnista.

Yksi Eloquent JavaScriptin ja YDKJS: n hienoista asioista on, että saat ne ilmaiseksi (tarkista toimitetut linkit). Mutta jos pidät niistä todella hyödyllisinä, älä unohda tukea kirjoittajia ostamalla ne.

Jos olet enemmän videokurssihenkilö, voit katsella Kylen verkkokursseja. Parasta, mitä voit tehdä, on katsella heitä hänen kirjojensa kumppanina, koska aiheet ovat samat. Nämä kurssit ovat kuitenkin maksettuja.

Toinen mielestäni hyödyllinen videokurssi on Javascript: Understanding the Weird Parts, Anthony Alicea. Siinä selitetään, mitä tapahtuu JavaScript-konepellin alla lähestyttävällä tavalla. Se kattaa edistyneet käsitteet, kuten prototyyppinen perintö, toiminnallinen ohjelmointi ja laajuusketjut.

Opi Vanilla JavaScript nyt

Jos panostat arvokasta aikaa Vanilla JavaScriptin oppimiseen, et tule katumaan sitä. Sen lisäksi, että se sisältää sanan vanilja , sillä on myös myönteinen vaikutus ohjelmointitaitoihin.

Minulle paras kompromissi on, että puhtaan JavaScriptin oppiminen antaa sinulle pitkällä aikavälillä paljon enemmän kuin sijoittaa aikaa tiettyyn kehykseen. Kehykset ovat vain pikakuvakkeita. Hupun alla on kaikki JavaScript.

Näet itse tilanteessa, jossa käytetyllä kehyksellä on odottamatonta käyttäytymistä. Tällöin sinun on pakko tutkia tämä vika käymällä läpi lähdekoodi. Mainitsinko, että vaikka monilla kehyksillä ei ole kunnollista dokumentaatiota, niillä on melko monimutkainen koodi? Mutta hei, kakku, eikö? Olet varmasti viettänyt paljon aikaa Vanilla JavaScriptin oppimiseen. Tai ei vielä?

Pitäisikö muistaa vain yksi asia tästä viestistä:

Pidä aina mielessä, että Vanilla JavaScriptin tuntemus auttaa sinua tulemaan paljon paremmaksi kehittäjäksi. Aika.

Jos pidit tästä artikkelista, anna sille muutama taputus. Arvostan sitä suuresti.

Tämä viesti julkaistiin alun perin blogissani.

Nähdään Twitterissä?

David Kopal (@coding_lawyer) | Viserrys

Uusimmat twiitit David Kopalilta (@coding_lawyer). etupään kehittäjä @ataccama | entinen asianajaja bloggaaja… twitter.com