- Koodaamisen oppimisesta on hyvä tietää kaksi tärkeää asiaa:
- Ensimmäisen kohdan olen nähnyt kerta toisensa jälkeen. Ihmiset, jotka sanovat minulle, että he aikovat opetella koodaamaan, sitten he alkavat opetella ja pitävät sitä helvetin tylsänä.
- Sitä pääsen kohtaan numero kaksi. Koodaamaan oppiminen ei enää tarkoita samaa asiaa.
- Ongelma on, että se ei ole sitä, mitä ihmiset haluavat. He haluavat rakentaa jotain. Eikä meidän pitäisi enää pitää itsestäänselvyytenä sitä, että rakentaakseen jotain on opittava kaikki tietokoneista tai edes koodauksesta yleensä.
- Opettajina meidän on tunnustettava, että kun ihmiset sanovat haluavansa oppia koodaamaan, he usein todella tarkoittavat, että he haluavat rakentaa verkko- tai mobiilisovelluksen.
- Oppilaana: opi, mitä haluat oppia.
- Kuinka kauan koodaamaan oppiminen kestää?
Koodaamisen oppimisesta on hyvä tietää kaksi tärkeää asiaa:
- Suuri osa ihmisistä ei oikeastaan halua ”oppia koodaamaan”
- Koodaamaan oppiminen ei enää tarkoita yhtä asiaa
On tärkeää tietää nämä kaksi asiaa, koska muuten tapa, jolla opetamme ihmisille koodaamista, on väärä, eivätkä ihmiset opi.
Ensimmäisen kohdan olen nähnyt kerta toisensa jälkeen. Ihmiset, jotka sanovat minulle, että he aikovat opetella koodaamaan, sitten he alkavat opetella ja pitävät sitä helvetin tylsänä.
Kutsun sitä koodausharhaluuloksi. Ihmiset luulevat haluavansa oppia koodaamaan, mutta todellisuudessa he haluavat rakentaa tuotteen.
Kun ajattelemme asiaa, tämän pitäisi olla melko selvää. Koodin osaaminen itsessään ei ole arvokasta, jos sillä ei voi tehdä mitään. Niinpä suurimmalle osalle ihmisistä suurin motivaatio koodaamisen oppimiseen on rakentaa jotain (vaikka toiseksi suurin motivaatio on saada paremmin palkattua työtä).
Sitä pääsen kohtaan numero kaksi. Koodaamaan oppiminen ei enää tarkoita samaa asiaa.
Ennen oli niin, että koodaamaan oppiakseen täytyi tietää lähes kaikki tietokoneista (siksi termi ”Computer Science”). Sitten asioita abstrahoitiin siihen pisteeseen, että tiettyihin aiheisiin ei tarvinnut syventyä, ellei ollut todella pakko. Esimerkiksi web-sovelluskehittäjänä minun tarvitsee tässä vaiheessa tietää hyvin vähän järjestelmänhallinnasta, koska sen tekevät puolestani enimmäkseen Herokun ja Amazon Web Servicesin kaltaiset työkalut.
Siten kun ihmiset sanovat haluavansa oppia koodaamaan, useimmat opettajat aloittavat siitä, mistä heidän oletetaan aloittavan (mistä he ovat aina aloittaneetkin), tietotyypeistä ja kielen eri rakenteista, ja auttavat oppilaita kehittämään syvällisempää ymmärrystä tietokoneista.
Ongelma on, että se ei ole sitä, mitä ihmiset haluavat. He haluavat rakentaa jotain. Eikä meidän pitäisi enää pitää itsestäänselvyytenä sitä, että rakentaakseen jotain on opittava kaikki tietokoneista tai edes koodauksesta yleensä.
Jos joku esimerkiksi työskentelee jo loistavan back-end-kehittäjän kanssa, olisi järkevää opettaa hänelle vain front-end, koska se on hänelle kaikkein hyödyllisin asia. He saavat oikeasti nopeammin tehtyä sen, mitä haluavat, ja he voivat oppia back-endin myöhemmin. Näin vähennämme opiskelijan kognitiivista kuormitusta ja annamme hänelle mahdollisuuden oppia nopeammin.
Kun kehität verkkoon, joudut erityisesti käsittelemään:
- HTML
- CSS
- JavaScriptiä
- Back-end-ohjelmointia
- tietokantoja
- Hosting/DNS
Tässä on paljon opittavaa. Ja suurin osa siitä on melko epäolennaista muulle kuin web-kehitykselle (paitsi tietysti tietokannat ja sovellusrakenne).
Minä näen sen niin, että suurin osa koodauskoulutuksesta sisältää syöttiä ja vaihtoa. Se menee näin:
Opiskelija: ”Haluan oppia koodaamaan”. (Mutta mitä he oikeasti – mutta eivät tiedä tarpeeksi kysyäkseen – on, että haluan rakentaa web- tai mobiilisovelluksen.)
Opettaja: ”Okei, aloitetaan tietotyypeistä.”
Opiskelija: ”…”
(2 viikkoa myöhemmin)
Opettaja: ”Nyt voimme suunnitella tehokkaita algoritmeja.”
Opiskelija: ”
Opettajina meidän on tunnustettava, että kun ihmiset sanovat haluavansa oppia koodaamaan, he usein todella tarkoittavat, että he haluavat rakentaa verkko- tai mobiilisovelluksen.
Se johtuu siitä, että heille koodaaminen ON sitä. Se on kaikki, mitä he ovat koskaan saaneet kuulla koodaamisesta. Ongelma on se, että he eivät osaa kysyä sitä! Meidän ei siis pitäisi ottaa kaikkea mitä he sanovat todesta. Meidän tehtävämme kasvattajina on lukea rivien välistä.
Muistan katsoneeni muutama vuosi sitten näytelmän, jossa pappi sanoo, että on puhuttava totta vaikeissakin olosuhteissa. Henkilö, jolle hän puhuu, kysyy: ”mutta entä jos joku kysyy sinulta kysymyksen ja tiedät, että totuus satuttaa häntä?” Pappi vastaa: ”
Myös koulutuksessa on luettava rivien välistä, jotta saadaan selville, mitä ihmiset todella haluavat. Jos he kysyvät jotain tiettyä asiaa, sinun on ohjattava ihmistä kohti sitä, mikä vie hänet kohti ihanteellista oppimiskokemusta.”
Meidän tehtävämme on siis kasvattajina ja asiantuntijoina ohjata ihmisiä oikeaan suuntaan emmekä vain antaa heidän ajelehtia. Jos pystymme tähän, voimme antaa paljon useammalle ihmiselle mahdollisuuden tehdä uskomattomia asioita.
Oppilaana: opi, mitä haluat oppia.
Yksi parhaista asioista, joita voit tehdä omissa oppimisseikkailuissasi, on se, että opit vähän monista asioista – niin tiedät, mihin haluat myöhemmin sukeltaa syvemmälle.
Täällä One Monthissa, kun sanomme, että voit ”oppia koodaamaan 30 päivässä”, tarkoitamme sitä, että vain 30 päivässä voit oppia tarpeeksi HTML:ää (JavaScriptiä tai Pythonia) ollaksesi keskustelunhaluinen koodissa ja tarpeeksi varma, jotta voit erottua työmarkkinoilla.
Kuinka kauan koodaamaan oppiminen kestää?
Meidät on kutsuttu ”One Monthiksi”, joten tarkoittaako se sitä, että 30 päivän koodaamisen jälkeen oppilaamme ovat lopettaneet oppimisen? Ei suinkaan! Olen koodannut jo yli 15 vuotta, ja vieläkin on niin paljon asioita, joita en osaa – mutta se ei ole asian ydin. ”Koodaamaan oppimisessa” ei ole kyse siitä, että osaat kaikki kielen asiat, vaan siitä, että osaat tarpeeksi ollaksesi keskusteleva ja voidaksesi vaikuttaa maailmaan käyttämällä mieltäsi ja luovia taitojasi.