ÕPI MIDAGI UUT: Koodimiseks ehk programmeerimiseks ei pea olema doktorikraadi. Miks mitte kasutada kriisis tekkinud vaba aega uue oskuse õppimiseks? Shutterstock

IT õppimine tundub väga põnev. Kui soov on tõesti tõsine, siis kust ikkagi alustada?

Võib end registreerida koolitustele. Aga arvutikoolide kodulehti külastades ja nende kursuste hindu vaadates võib ehmatusest toolilt maha kukkuda. Hinnad jäävad vahemikku 1000-3000 eurot. Tegelikult on aga koodikirjutamist võimalik õppida kodust lahkumata ja täiesti tasuta.

Kuna praeguses kriisiolukorras on inimestel tekkinud palju vaba aega, tundub igati mõistlik juhust kasutada seda oma oskustepagasi täiendamisse investeerida. Miks mitte alustada lausa uut karjääri?

Õppekeskkondi võib netiavarustest leida hulganisti – alates veebiõppe platvormidest kuni Youtube’i õpetusvideoteni.

Kõigepealt püüa selgusele jõuda, milline valdkond sind huvitab. Kas tahaksid „ehitadada“ veebilehtede visuaalset poolt ehk olla front-end-arendaja? Või hoopis hoolitseda kõige selle eest, mis toimub „tagatubades“ ehk olla back-end-arendaja? Äkki on sul huvi hoopis arvutimänge luua? Või tegeleda tehisintellekti ja andmeteadusega?

Järgnevalt soovitusi igast valdkonnast.

NB! Vajalik on inglise keele oskus.

1. Front-end-veebiarendus (Front-end web development)

Front-end võiks siinses kontekstis tõlkida kui esikülg. See viitab kõigele, mida näeme, kui läheme veebilehele ja millega veebilehe kasutaja tulevikus kokku puutub.

Kaunis visuaalne kujundus luuakse koodiga. Selleks kasutatakse peamiselt kolme programmeerimiskeelt: HTML, CSS ja JavaScript.

Veebiküljed ja õpetused, mida saab õppimiseks kasutada:

1) w3schools.com

Väga populaarne sait, mida kasutavad tihti ka elukutselised arendajad.

2) Udacity

- Tasuta kursus HTMLi ja CSSi algtõdedest

- Tasuta kursus JavaScripti õppimiseks

- Tasuta kursus HTML5 Canvase õppimiseks

Seda keelt kasutatakse sageli veebimängude loomiseks.

- Tasuta kursus ES6 ehk Javascripti järgmine tase

Udacityl on veel hulganisti tasuta kursusi, kokku lausa 192. Head avastamist!

3) Humoorikaid videoõpetusi Youtube’ist:

HTMList:

CSSist:

Järgmine tase: front-end-arendus edasijõudnutele

Kui veebilehe programmeerimise baastõed selged, võib minna üle front-end framework’ide peale ehk õppida, mis on Javascripti framework ehk raamistik.

Tänapäeval ei kasutata IT-süsteemide ehitamiseks enamasti puhast programmeerimiskeelt, vaid tarkvararaamistikku, mis koosneb juba valmis komponentidest. Need on koodijupid, millel on juba mingi oskus olemas. Süsteeme ehitavad arendajad mängiksid justkui legoklotsidega.

Kasutusel mitu raamistikku, kuid tegelikult piisab täiesti, kui neist üks selgeks õppida – juba sel juhul on tööturg päris lai nii Eestis kui ka mujal maailmas. Neid on lihtne nullist õppima hakata juhul, kui „kõneled“ juba HTMLi, CSSi ja JavaScripti.

Kolm kõige populaarsemat raamistikku on:

1) Angular js (Google’i loodud)

3) React js (Facebooki loodud)

4) Vue js (autor Evan You)

Hoopis teine suund front-end’is ‒ Wordpress

Kui tunned, et ei soovi järgida klassikalist rada, võib hoopis õppida keelt nimega PHP, millega saab asju ehitada WordPressi platvormil. WordPress on avatud lähtekoodiga blogide haldamise platvorm. WordPressi saab lihtsalt muuta sisuhalduse süsteemiks, aga tal on ka väga palju muid lisasid.

Tegelikult on WordPressi platvormil võimalik kodulehti ehitada ka koodi oskamata. Aga koodi (PHP) tundmine annab palju rohkem võimalusi.

WordPressi õpetusvideo:

2. Back-end-veebiarendus (Back-end web development)

Inglise keelest võiks back-end otse tõlkida kui tagumine ots. Nimi viitab sisule: selles arenduse valdkonnas tegeletakse kõigega, mis toimub süsteemi tagumisel ehk serverite ja andmebaaside poolel.

Serveri poole ehitamiseks on taas mitmeid programeerimiskeeli ja raamistikke.

1) Javascript

2) Java

3) Python

Neid võibki loetlema jääda, aga alustuseks piisab ka kolmest. Kõigilt neilt kodulehtedelt leiate vajalikud juhendid edasiseks.

3. Arvutimängud

Kellele ei meeldiks minna vahel tagasi lapsepõlve ja mängida mänge. Eriti magus on veel ise mänge luua!

1) Unity

Suurepärane keskkond arvutimängude tegemiseks on Unity. See on videomängude, arhitektuursete visualisatsioonide ja ka animatsioonide loomiseks. Unity arenduskeskkond töötab Microsofti Windowsi ja Mac OS X (Apple) operatsioonisüsteemidel ning temaga saab luua mänge Windowsile, Macile, Xbox 360-le, Playstation 3-le, Wiile, iPadile, iPhone’ile ja Androidi platvormidele.

2) Halite & Terminal AI Competition

Kes end veel enam proovile panna tahab, võib katsetada tehisintellekti (AI) koodil põhinevaid mänge luues. Või siis lausa neis võisteldes. Seni on võistlustel osalenud vaid üksikud eestlased.

Halite on tehisintellektivõistlus, milles saab harjutada erinevate programmeerimiskeelte kasutamist. Võistlejad peavad looma bot'i ehk n-ö veebiroboti, mis võistleks veebis teiste võistlejatega.

Terminal on samuti AI programmeerimismäng. Seda mängivad maailma parimad tarkvarainsenerid ja andmeteadlased.

4. Tehisintellekt ja andmeteadus

Viirusepuhangu ajal oleme ilmselt sageli näinud hulka andmeid ning nende põhjal loodud mudeleid näiteks koroonaviiruse leviku või intensiivsuse kohta. Kuidas selliseid mudeleid luuakse?

Hea sissejuhatuse annab Google’i loodud masinõppe (machine learning) juhend, mis annab teemast hea ja kiire tehnilise ülevaate.

Masinõpe:

Veel selle valdkonna populaarseid juutuubereid:

1) Sentdex;

2) Siraj Raval;

3) The Coding Train

5. Appi!

Koodi õppimine meenutab natuke uue võõrkeele õppimist. See nõuab aega ja pühendumust, aga kindlasti mitte arvutiteaduste doktorikraadi. Õppimise puhul kehtib kuldreegel: endalt kohe liiga palju nõudes tuleb kiiresti tüdimus. Seevastu pisitasa õppides ja harjutades saavad vajalikud oskused selgeks. Need on keeled, mida räägitakse sõltumata riigist, rahvusest ja ajavööndist.

Kas uuest infost on tekkinud peas lühis või mõni koodimise probleem? Sapole kaugelt esimene ja kindlasti ka mitte viimane. Siin on paar lehekülge, kust võib leida vastuseid sagedamini esilekerkivatele küsimustele:

1) List of ACM-ICPC questions;

2) List of Codejam questions.

6. Avastasid, et oled koodimises nii hea, et tahaks suisa Google’isse tööle kandideerida?

Aga palun! Siin on Google’i antud nimekiri neist oskustest, mida nad soovitavad õppida enne tööintervjuule minekut.

1) Läbi töötada algoritmide/andmestruktuuride teooria õpikud

2) Teha selgeks Google'i stiilijuhend eri koodikeeltes ja süsteemides (C++, Python, Java; Android, Javascript)

3) Coursera - Algoritmid, esimene osa

4) Coursera - Algoritmid, teine osa

5) Udacity - Sissejuhatus algoritmidesse

6) MIT Open courseware - Sissejuhatus algoritmidesse

7. Veel häid õppekeskkondi

1) HackerRank

2) Topcoder

3) Codeforces

4) Leetcode

5) InterviewBit

6) Kattis

8. Lõpetuseks ka üks raamatusoovitus: „Problems from Cracking the Coding Interview Book

Jõudu!