Mikä on oikea tapa oppia JavaScriptiä? Miten ja missä voi oppia JS:n perusteet?
Ei ole olemassa yhtä universaalia tapaa oppia JavaScriptiä, joka toimisi kaikille. Ihmisillä on erilaisia taustoja lähteä opettelemaan ohjelmointikieltä ja erilaiset oppimistavat toimivat eri ihmisille.
Jos olet jo kokenut ohjelmoija ja haluat vain oppia JavaScriptin uutena kielenä, suosittelen tutustumaan Learn javascript in Y Minutes-sivustoon, johon on kerätty kielen perussyntaksi. Sinun on myös hyvä tietää MDN Web Docs-sivustosta, koska se on loistava resurssi JavaScriptin toiminnallisuuksien ja syntaksin yksityiskohtien selvittämiseen.
Jos olet aloittelija, joka ei ole ikinä ohjelmoinut mitään, oppimisen lähtökohdaksi kannattaa ottaa ohjelmointilogiikan opettelu pelkän JavaScriptin toimintojen sijaan. Tässä tapauksessa suosittelen etsimään netistä kurssit, jotka opettavat HTML:n, CSS:n ja JavaScriptin perusteet. Netti on pullollaan tällaisia kursseja ja suuri osa niistä on ilmaisia tai halpoja. Löydät tällaisia kursseja esimerkiksi Youtubesta, Udemysta sekä Courserasta. Lisäksi the Odin Project, freeCodeCamp ja W3Schools sivustot tarjoavat laajoja ilmaisia kursseja web-ohjelmoinnin opetteluun itsenäisesti. (Vinkki: Udemy kurssit ovat käytännössä aina alennuksessa. Jos satut löytämään kurssin, joka ei ole alennuksessa, odota muutama päivä ja alennus alkaa uudelleen.)
Opit edellisessä kappaleessa mainittujen kurssien avulla olennaisimmat perusteet. Tämän jälkeen kannattaa lopettaa kurssien avulla opettelun, koska suoraan jonkun toisen opastuksen perusteella koodia kirjoittamalla ei opi ohjelmoimaan vaan olennaista olisi oppia itse miettimään, miten ohjelmointi toimii.
Hyvä lähtökohta on tehdä yksinkertaiset nettisivut. Anna itsellesi armoa. Ohjelmoinnin opettelu tyhjästä on aluksi todella vaikeaa ja vaatii pitkäjänteisyyttä. Palaa takaisin aiemmin läpikäymiesi kurssien materiaaleihin kun jäät jumiin, mutta älä kuitenkaan kopioi mitään suoraan kursseilta. Kun nettisivut toimivat, tee niistä responsiiviset. Jos et tiedä mitä se tarkoittaa, selvitä se jonkin hakukoneen avulla. Kyky löytää vastauksia ja ratkoa ongelmia hakukoneiden avulla on erittäin olennainen taito ohjelmoidessa, jopa vuosikymmeniä ohjelmointia ammatikseen tehneet ohjelmoijat joutuvat lähes päivittäin palauttamaan mieleen ja opettelemaan netin avulla, miten eri asioita tehdään.
Kun olet saanut responsiiviset nettisivut valmiiksi, on aika tehdä päätös siitä, mitä haluat opetella seuraavaksi. JavaScriptillä voi tehdä nettisivuja, palvelimia sekä työpöytä- ja kännykkäsovelluksia. Alla on lista termeistä joihin kannattaa syventyä riippuen siitä, mitä haluat JavaScriptillä tehdä.
- Jos haluat tehdä nettisivuja: React, Vue, Angular tai Svelte
- Jos haluat tehdä palvelimia: Node.js, Express, tietoverkkojen toiminta, REST, tietokannat
- Jos haluat tehdä kännykkäsovelluksia: React Native
- Jos haluat tehdä työpöytäsovelluksia: Electron
Suosittelen jatkamaan opettelua tästä eteenpäin harjoitusprojektien avulla. Päätä mitä haluat osata ohjelmoida, selvitä, mitä se vaatii ja tee niistä asioista lista ja ala opetella niitä yksi kerrallaan.
Jonkin ajan päästä saat projektisi valmiiksi. Sen koodi tulee olemaan niin epäselvästi kirjoitettua, että hädin tuskin itse ymmärrät, miten se toimii ja se todennäköisesti toimii vain silloin, kun itse käytät sitä ja joku toinen löytää siitä varmasti asioita, jotka eivät toimi oikein.
Tämä on täysin normaalia. Ohjelmoit huonon ohjelman, mutta opit sitä tehdessä todella paljon. Seuraava ohjelmasi on jo huomattavasti parempi. Kun olet ohjelmoinut muutaman sovelluksen, koodisi alkaa jo näyttää ihan hyvältä ja ohjelmointiin sekä siihen liittyvään tiedon etsintään kuluu huomattavasti vähemmän aikaa kuin ensimmäistä projektiasi ohjelmoidessasi. Tämä lisää itseluottamustasi ja huomaat yhtäkkiä, että ohjelmoinnista on tullut kivaa!
Jos jäät jossain kohtaa pahasti jumiin, lopeta harjoittelu ja käy vaikka ulkona lyhyellä kävelyllä tai tee jotain muuta, mikä ei millään tavalla liity ohjelmointiin. Kun palaat harjoittelun pariin, löydät todennäköisesti ongelman syyn helposti. Jos tästä huolimatta tuntuu, että olet täysin jumissa, laita minulle viestiä, niin yritän auttaa. En ehdi opettaa ketään ohjelmoimaan, mutta autan mielelläni eteenpäin jumitilanteista, jos sitä tarvitset.
Viimeiseksi annan vielä yhden ylimääräisen vinkin projektien suunnitteluun, koska opin sen itse kantapään kautta: Suunnittele sovelluksesi etukäteen. Mieti, mitkä ovat sovelluksen olennaisimmat ominaisuudet, joihin sen koko toiminta perustuu. Kun päätoiminnot toimivat, voit ohjelmaan lisää ominaisuuksia niin paljon kuin haluat, mutta sinulla on siinä kohtaa jo edessäsi täysin käyttökelpoinen sovellus. Olen luovuttanut monen projektin kanssa tuhlattuani niihin paljon aikaa vain siksi, että keksin kokoajan uusia toimintoja ja lisäsin niitä koodiin, kunnes lopulta tuntui siltä, ettei sovellus tule koskaan valmiiksi.
Mietitään esimerkiksi, että päätät ohjelmoida Redditin. Tee ensin sovellus, jossa käyttäjät voivat jakaa tekstijulkaisuja ja kommentoida niitä. Unohda kuvat, videot, ylä- ja alaäänet, subredditit, käyttäjien väliset viestit, premium-tilaukset ja kaikki muut ylimääräiset asiat. Keskity olennaisiin toimintoihin ensin ja lisää kivat lisäominaisuudet myöhemmin.