Peaks tegema kiire kokkuvõtte enne kui asjad ununema hakkavad. Järgemööda täiendan, nii kuidas asjad meenuvad. Sel semestril sai tehtud 4 ainet. 2 neist kohustuslikud, 2 valikained. Kokku 24 EAPd.
Ütleme nii, et nii palju tööd ma ei ole vist kunagi teinud kui sel semestril. Selle hea illustratsioon on mu kooli Gitlabi aktiivuse punktistik.
Ehk siis sisuliselt iga päev tegelesin asjaga. Mai alguse auk oli ilmselt see aeg, kui ma koroonat põdesin, mistõttu jäi 3 päeva pausi sisse 🙂
Tõe huvides peab ütlema, et Gitlab oli sel semestril kasutuses kahe aine jaoks (hajusüsteemid ja JavaScript). Eelmisel semestril tegin samuti palju tööd, kuid siis oli kooli Gitlab kasutusel ainult C# jaoks. Kaks teist ainet tuli commitida Bitbucketisse.
Väike ülevaade tehtud ainetest.
Hajussüsteemide ehitamine (ICD0009, 6EAP) – progemise aine, kohustuslik
Õppejõud Andres Käver. Järgmisest aastast on see aine 9EAP, kui õppekavast õigesti aru saan. Väga mahukas, väga kasulik ja mitmekesine aine. Kuna nii palju on toimunud, siis väga keeruline on kõike üldse kokku võtta.
…
Mulle tundub, et natuke hinnati ka suhtumist. Et kui on sul on fun, siis nagu seda (hindamisel) arvestati.
…
Tööde deploy osas tundin end VPSis palju mugavamalt kui Azure’is. Nii .NET backendi, MSSQL serveri ja nginx (JS jaoks) osas. Mul on kasutusel Hetzneri CX21 purk (2 vCPU, 4GB RAM, ~6 euri kuu). Käsurida on nii palju mõnusam kui Azure’i menüüdes kolada. Ainuke asi, mida ma tööle ei saanud oli webhooks, et pärast Docker image tegemist see automaatselt VPSis uuendataks.
Ülesannete kõige viimane kaitsmine muidugi oli Windowsi eripärade tõttu päris kohmakas mul (natuke kirjutasin sellest siin). Nimelt WSLis npm install
ja npm start
võtsid terve igaviku. Lisaks mingil imelikul põhjusel, päris viimasel kaitsmisel mul Rideris tehtud muudatused ei kajastunud Postmanis. Täiesti ajuvaba errorite hulk täpselt kaitsmise ajaks 😀 Aga noh, sain käima enamvähem. Hiljem vaatasin et oleks võinud Windowsis otse käivitada (pärast Node ja npmi uuendamist).
Kui sa seda ainet võtad, siis soovitan:
- Tee enda kodutöö projektiks midagi, mis on sulle huvitav. Sa teed seda pisikeste loogiliste tükkide kaupa terve semestri. Kui see pole huvitav, siis sa lihtsalt pead ennast väga palju sundima (tõenäoliselt).
- Tee enda kodutöö projekt nii lihtne (või nii lihtsaks), kui vähegi oskad. See on õppimise protsess. Kui sa ise valid nii keerulise teema (mingi äriloogiliselt väga keerulise probleemi lahendada) või kavandad ülimalt keerulise implementatsiooni (näiteks mingid keerulised andmebaasitabelite vahelised seosed), siis sa teed ise enda töö raskeks. Arvesta, et sa ju ei oska veel neid asju teha. Kui sulle tundub, et mingi koht võib olla keeruline teostada, siis tee see kohe lihtsamaks (või püüa see välja võtta).
- Vähemalt minu puhul aitas see, et kuigi oli nõue, et töö peab olema “minimum 10 functional entities“, siis kursuse alguses ma tegin oma kodutöid 5 andmebaasitabeliga. Lihtsalt viiest käis mõte veel üle. Saad aru, mis toimub ja mis info kust-kuhu liigub. Kui arusaamine muutus paremaks (umbes 9 nädala paiku), siis tegin 10 ja sealt edasi opereerisin juba 10ga. Kusjuures ühe keerulise koha (asutuse lahtiolekuajad) võtsin selle koha peal veel plaanist maha.
- Võta endale VPS ja pane oma MSSQL server sinna, mida saad kursuse jooksul kasutada. Selle käigus õpid veidi Dockerit juba kasutama. Hiljem on sul lihtsam oma rakendust deploy’da. VPS + käsurida on niiiii palju lihtsam kui Azure’i menüüdes kolada. Ja sa ei pea barreli 500 andmebaasi hulgast enda oma otsima 🙂
- Tegele oma projekti ja kursusega läbi terve semestri. Kui sa milleski aru ei saa, siis mine jõuga (ehk siis pane töötunde sisse). Aitab alati. Kui oled Lorentsi hulgateooria ainet võtnud, siis tuleta meelde süsteemide selitamise osa 🙂 Alguses tundub, et ei ole mingit süsteemi aga kui piisavalt kaua töötad, siis selgub, et süsteem on täitsa olemas.
- Töö tegemise käigus sa jõuad kohtadesse, kus sa pead otsustama, kas teha mingi fancy asi (mis võib mitte õnnestuda ja siis oled ajahädas) või teha bare minimum (mis tõenäoliselt õnnestub aga ei ole huvitav). Soovitan teha mõlemat 🙂 Kui bare minimum (näiteks kõige algelisem CRUD) töötab, siis proovi enda lõbuks fancy asju ka teha.
- Sulle hakkavad Rideri veateated meeldima mingi hetk, kuigi alguses on nad harjumatult mittemidagiütlevad. Veelgi veidram on see mõnus tunne, mis tekib siis, kui näed veateadet ja sa oled selle lahendamisega juba varem tegelenud (ehk siis sa tead, mis sa tegema pead).
- Ubuntus scaffold ei tööta. Api controllerite puhul ei tööta, web controllerite puhul ei tööta. Ja scaffoldit on sul vaja! Sorry 🙁 Kuigi ma progen Ubuntus, siis scaffoldimas käisin Windowsis 🙂
- Kursuse jooksul sa teed valmis kõik, mida eksamil on vaja (ja pisut rohkem). Tänu sellele saad väga suure osa eksami tööst tegelikult enne eksamit ära teha.
- Eksami töös oli mul vaja 4 andmebaasitabelit. Ehk siis ei ole pisike 2 andmebaasitabeli töö. Ikka natuke suurem. Et arvesta siis sellega. .NET osa ma tegin mingi 5-6 tundi, millest umbes 1h oli ERDi väljamõtlemine ja kõige suurem osa vist api controllerite tegemisele (PublicApiDto ja mappimine, et andmed oleks ilusad). Ülejäänud aeg läks Reactis kliendi tegemisele.
JavaScript (ICD0006, 6EAP) – progemise aine, valikaine
Soovitan kindlasti. Õppejõud Andres Käver. Õpitakse loogilises järjestuses JavaScript, TypeScript ja seejärel raamistikud Aurelia2, Vue3 ja React.
Kohustuslik kodutöö seisneb selles, et teed oma hajussüsteemide ainele kliendi (ise valid raamistiku). Eksami praktiline osa seisneb selles, et teed oma hajussüsteemide eksami ülesandele kliendi (24h jooksul). Raamistiku (Aurelia, Vue või React) saad eksamil loosiga (kaks korda saad tõmmata, kui esimene raamistik nt ei meeldi).
Ma sain esimese korraga loosis Aurelia. Kuna mul oli Reactis juba klient tehtud (hajussüsteemide eksami jaoks), siis mõtlesin veel loteriid teha. Teise pileti lasin tõmmata elukaaslasel ja ta tõmbas hästi. Sain Reacti ja seega oli JavaScripti eksami praktiline ülesanne ka kohe tehtud.
Võimalus on muidugi hajussüsteemide ja JS eksamipiletid korraga avada (siis on kokku aega 48h nende lahendamiseks) aga ma tahtsin hajussüsteemide ärevuse maha saada enne kui JSiga tegelema hakkan
Tarkvara testimise alused (ICD0012, 6EAP) – teooria aine, valikaine
Aine eestvedaja on Maili Markvardt (ASA Quality Services partner). 40% ainest oli grupitöö, mille tegemine võttis päris palju aega. Igal nädalal olid meie grupil sellised 3-4 tunnised Teamsi kõned pärast loengut.
Seejärel jätkus õppejõud Raido Martinson (ka ASA Quality Services) osa, mis oli peamiselt iseseisvad tööd (mitte enam rühmatööd) ja moodustas 60% hindest. Midagi väga rasket ei olnud.
Aines eksamit ega arvestust ei olnud. Hinne kujunes semestri jooksul tehtud tööde põhjal.
Tarkvaratehnika (ICD0010, 6EAP) – teooria aine, kohustuslik
Õppejõud Paul Leis. 1 rühmatöö, kaks rühmatöö seminari, mõned tavalised seminarid loengu teemade peale (kuhu ma ühte kogemata sattusin, olles üks viiest tudengist), ~30 tundi videot ja 1300 slaidi.
Eksam koosnes 14 valikvastusega (1 õige) küsimusest, mille vastamiseks oli 15 minutit.
Mis seis hetkel on?
Õppekava näeb ette 180 EAP jagu õppekoormust. Mul on 116 EAP nüüd tehtud.
Niimoodi on ehk kõige selgem, mis veel teha on jäänud.
- Üldõppe moodulis tulevad sügissemestril kaks kohustuslikku ainet: Keskkonnakaitse ja säästev areng (3 EAP, YTG0060) ja Füüsika mittefüüsikutele (3 EAP, NSO0160).
- Põhiõppe moodulisse tuleb sügissemestril kohustuslik Programmeerimine C# keeles (6 EAP, ICD0008).
- Programmeerimise moodulisse tuleb sügissemestril kohustuslik Veebirakendused Java baasil (6 EAP, ICD0011). 3 EAP jagu vaja sinna ise midagi juurde valida. Huvitavaid ained hetkel veel jätkub (automaattestimine, mobiilirakendused).
- Toetavate ainete mooduliga on natuke keerulisem. Seal on peamiselt “pehmed” ained ja nende vahel keerulisem otsustada 🙂
- Lõputöö moodul (6 EAP) ja praktika (24 EAP) on need, mis nimi ütleb ja mõlemad tulevad 6. semestril ehk kevadel, kui eeldusained on tehtud.
Tere,
Kas Hajussüsteemide ainet saab teha ilma, et C# oleks läbitud?
Parimat,
Taavi
Jah. Ma nii tegingi. Käver ei seadnud mingeid piiranguid ainel osalemisele.