Miten voisi parhaiten valmistautua marraskuussa 2023 alkavaan full stack -kehittäjän RekryKoulutukseen?
Hyvät pohjatiedot perusohjelmoinnista ennustavat hyvää menestystä kurssilla ja osa 2022 kurssin opiskelijoista tutkikin JavaScript-kieltä tosissaan, jo ennen kurssin alkua, vaikka varsin hyvin kieleen pääsivät sisään teoriaosuuden aikana myös jotain toista ohjelmointikieltä hallinneet opiskelijat.
Miten siis voisi parhaiten valmistautua kurssille hakemiseen ja erityisesti millaiset taidot auttavat kurssin pääsykokeen läpäisemisessä?
Koska kurssin tärkein ohjelmointityökalu on ECMAScript 6 -ohjelmointikieli (JavaScript) ja siksi tässä keskitytään vinkkeihin, jotka liittyvät lähinnä ECMAScriptin opiskeluun. Jäljempänä mainittuja aihepiirejä opiskelemme myös kurssilla – lähdemme opiskelemaan JavaScriptiä alusta asti.
Listat, listat ja listat
Kurssille hakijan kannattaa opetella ohjelmoinnin alkeet ECMAScript -kielellä(JavaScript) tai jollain muulla ei-oliokielellä. Erityisesti kannattaa panostaa listojen ja perustietorakenteiden opiskeluun.
JSON
JSON-on tärkeä asia, samoin listat ja listojen käsittelyyn liittyvät operaatiot, näistä tärkeimpänä map ja erilaiset listan läpikäyntiin liittyvät rakenteet, kuten forEach.
Merkkijonojen käsittely
ECMAScriptiä kannattaa opetella erityisesti tiedonkäsittelyn näkökulmasta – myös merkkijonojen käsittely on full stack -kehittäjälle tärkeä taito. Merkkijonojen yhdistäminen ja pilkkominen ovat hyödyllisiä taitoja lähes missä tahansa ohjelmointiympäristössä ei vain full stack -tekemisessä.
Kannattaako opetella prototyyppiperinnän (tai minkään perinnän erityisesti koskien ECMAScript 6 versiota) hienoudet etu- ja takaperin?
Prototyypin käsite on hyvä tunnistaa, mutta kovin syvällistä ymmärrystä käsitteestä kurssilla ei tarvita – asia tulee kyllä vastaan kurssin aikana ja sen merkitys on vähänlainen, koska kurssin aikana käsiteltävä data on lähes aina JSON-muotoista. JSON-tietorakenne voi olla puumainen, mutta oliohierarkioihin ei juuri kurssilla turvauduta.
Kannattaako opetella ECMAScriptin nuolifunktiot ja lambdat?
Ilman muuta kannattaa. Lambdat ja nuolifunktiot ovat tulleet jäädäkseen ja niitä käytetään paljon. Paikallaan määriteltyjä funktioita käytetään sekä asiakkaan että palvelimen päässä. Jos pitää valita laittaako paukkuja ECMAScriptin mukaiseen olio-ohjelmointiin vai käyttäisikö saman ajan nuolifunktioihin ja lambdan -käsitteen opetteluun, niin ilman muuta kannattaa panostaa jälkimmäiseen.
Mitä ECMAScript 6-versioon liittyviä asioita kannatta opetella?
Ehdottomasti jo mainittujen lambdojen ja nuolifunktioiden lisäksi kannattaa opetella destrukturointi eli datan pilkkominen. Asia on yksinkertainen ja helppo opetella. Asia tulee kurssilla vastaan moneen kertaan, joten sen ehtii hyvin oppia kurssin aikanakin.
Muuttujien näkyvyysalueet
Jos mahdollista, muuttujien näkyvyysalueen käsitteeseen kannattaa niin ikään tutustua jo ennen kurssille hakemista. Vaikkei päällekäyvää kätevyyttä asiasta vielä olisikaan, on hyvä, jos käsite on tullut tutuksi – kurssin aikana näkyvyysalueisiin (scope, scoping) tutustutaan tarkemmin, joten vaikka esitiedoista on hyötyä, käsitteen merkitys kirkastuu kyllä kurssin aikanakin.
Kannattaako opetella ECMAScriptin tukemaa olio-ohjelmointia tai auttaako olio-ohjelmoinnin hyvä osaaminen kurssilla ylipäänsä?
ECMAScript 6 versiossa voidaan käyttää luokkia (classes) hieman java-ohjelmoinnin tapaan. ECMAScriptin osaamisesta tai luokkiin liittyvistä perinnästä ja muusta olio-ohjelmointiin liittyvästä ei ole kurssilla sanottavasti hyötyä.
Kurssin aikana käsittelemme dataa usein rakenteilla, joihin ei liity perintää tai kantaluokkiin liittyviä ominaisuuksia tai metodeja lainkaan. Kurssilla käytämme pääasiassa ”flättejä” tietotyyppejä – käsittelemme lähes aina JSON-muotoista dataa, joten C/C++ kielestä tutulla ”structin” idealla tai vastaavalla pärjää hyvin.
Kurssilla opettelemme uudelleenkäyttämään koodia erityisesti funktiokomposition avulla, joten olio-ohjelmointitaitoja ei ainakaan uudelleenkäyttömielessä tarvita, joten perintähierarkiat ja metodien ylikuormittamisen voi huoletta jättää muiden huoleksi.
Mitä Reactista kannatta opetella ja miten React-komponentteja laaditaan kurssilla?
Jos on mahdollista alkaa tutustumaan Reactiin jo ennen kurssin alkamista, niin kannatta opetella tekemään komponentit funktioiden avulla (stateless components) ja käyttää tilan hallintaan vaikkapa Hooks-rajapintaa.
Vanhemmankin React-version osaamisesta on hyötyä ja kurssin aikana funktionaalisten komponenttien laatiminen tulee kyllä tutuksi kaikille. Käytämme kurssilla funktionaalisia komponentteja luokkasyntaksiin perustuvien komponenttien tilalla aina kun se on mahdollista – ja lähes aina se on. Jos on omaksunut funktionaalisten komponenttien toiminnan, on helppoa käyttää myös perinteisempiä, tilallisia komponentteja.
Mitä palvelinpuolelta (node.js) kannattaa opetella?
Kannattaa tutustua HTTP-protokollaan ja kommunikaatioprotokollan käsitteeseen yleensäkin. HTTP-protokollan primitiiveihin kannattaa tutustua niin ikään – GET, POST ja niin edelleen. Nämä käydään kurssilla läpi, mutta kommunikaatio-ohjelmoinnin ja hajautettujen tietojärjestelmien teoriaan kannattaa tutustua mahdollisuuksien mukaan jo ennen kurssin alkua, jos asiat ovat uusia tai jos asiat ovat vanhoja, niin hiukan kerrata. Kommunikaatio-ohjelmoinnin perusasioita opiskellaan kyllä kurssilla, mutta koska oppiminen on vuosien prosessi, ei ole koskaan liian aikaista tutustua käsitteisiin, vaikkei niistä sen syvällisempää otetta heti saisikaan. Suoritusmalliiin, säikeistykseen, asynkronisuuteen ja muuhun tutustumme kurssin aikana.
Mitä asiakaspuolelta (selain) kannattaa opetella?
Kannattaa tutustua HTTP-protokollaan myös selaimen näkökulmasta. Voi olla hyvä tutkia, miten selain ylipäänsä sisäisesti toimii. Miten selaimessa ajettava JavaScript-koodi suoritetaan. Miten selain lähettää pyyntöjä ja miten rinnakkaiset pyynnöt palvellaan. Näitä käydään kurssillakin läpi, mutta selaimen sielunelämään ei voi koskaan aloittaa tutustumista liian aikaisin.
Onko pakko opetella sekä asiakas -että palvelin puoli?
Ei ole. Full stack -kehittäjän rooli on vaativa ja vaikka opiskelemmekin asian molempia puolia, voit kurssin aikana tai viimeistään harjoittelussa keskittyä jompaankumpaan tai molempiin osa-alueisiin, vaikka alun teoriaosuuden aikana käsittelemmekin molempia. Kurssiltamme työllistyneet tekevät töitä niin taustapalvelinten (backend), selainsovellustenkin (frontend) tai vaikkapa testauksen parissa, joten JavaScript ei ole heille kaikki kaikessa. Esimerkiksi testausautomaatioon suuntautuvat opiskelijat opiskelevat hyvin todennäköisesti myös Python-kieltä.
Millainen lukujärjestys kurssilla on ja millaista oppiminen on?
Kurssilla opetellaan asiakas-palvelin -ohjelmiston idea ja tehdään referenssitoteutus ECMAScript -ohjelmointikielellä verkkoteknologioita hyödyntäen. Lukujärjestys on kaikille sama, jotta jokainen saavuttaa tietyn tieto- ja taitotason kurssin aikana. Jos jotkin tehtävät tuntuvat kurssilla liian helpoilta, annamme mielellämme haastavampia lisätehtäviä, joita voit harjoitusten purkutilaisuuksissa esittää koko ryhmälle. Päivärytmi sisältää teoriaa ja harjoituksia sekä harjoitusten läpikäymistä. Kurssi on täyspäivästä opiskelua.
Tyypillisesti maanantaina opiskellaan teoriaa ja harjoitellaan, tiistaina on etäpäivä, jolloin tehdään etätehtäviä, joita käydään keskiviikkona läpi. Etätehtävien läpikäynti kestää usein 2-3 tuntia eli lähipäivän aamupäivä kuluu yleensä tehtäviä läpikäydessä.
Iltapäivälle saatamme jatkaa uuden teorian parissa tai jatkaa tehtävien purkua vielä iltapäivällä. Lukujärjestys on hyvin koulumainen ja edellyttää aktiivista osallistumista lähipäiville, sillä uutta osaamista rakennetaan aiemmin opitun tiedon varaan. Kurssin ensimmäiset n. 2 kuukautta ovat hyvin intensiivisiä ja kolmas kuukausi on omaehtoisempaa erikoistumista.
Millainen pääsykoe on?
Pääsykoe on kirjallinen ohjelmointitehtävä, jonka voi toteuttaa sovitulla tavalla. Pääsykokeen vastauksen voi antaa millä tahansa ohjelmointikielellä tai ns. pseudokoodina. Kurssille voi hyvin päästä vaikkei osaisi mitään ohjelmointikieltä, mutta tuntee ohjelmoinnin peruslogiikan niin hyvin, että pystyy kirjoittamaan algoritmit pseudokoodilla.
Varsinkin hakijat, joille ei ole ohjelmointikokemusta, mutta hyvä ymmärrys ohjelmoinnin logiikasta ovat päässeet kurssille pseudokoodattujen vastausten avulla. Usein on kuitenkin niin, että ohjelmoinnin ideat oppii vasta, kun on käyttänyt jotain tunnetuista ohjelmointikielistä. Pääsykokeessa ideoiden ymmärtäminen kuitenkin ratkaisee pääsykokeesta saatavan pistemäärän, ei tietyn kielen syntaksin hallinta. Vastauksia pisteytettäessä on periaatteena asia ennen muotoa, joten pienistä syntaksivirheistä ei kannata murehtia. Perusohjelmointitaitoinen läpäisee kokeen suhteellisen helposti.
Onnea hakuun!