Kirjautuminen

Haku

Tehtävät

Keskustelu: Yleinen keskustelu: Miten yhdistää projektioppiminen ja teoriaoppiminen?

Sivun loppuun

mavavilj [12.07.2025 22:03:23]

#

Miten yhdistää projektioppiminen ja teoriaoppiminen?

Esimerkiksi, jos teen GitHub:iin projekteja, niin miten voin yhdistää niissä sitä, että demonstroin samalla järkevästi sitä, että hallitsen teorian? Sen sijaan, että demonstroisin teoriaosaamista jollain sertifikaateilla ja teoriakokeilla?

Voihan ne tietysti yhdistää omassa päässä, mutta oleellinen kysymys on, että miten yhdistää ne siten, että muutkin näkevät niiden yhdistyvän?

Metabolix [13.07.2025 08:09:05]

#

Jos pelkkä koodi ei kerro, miksi jotain tehdään juuri tietyllä tavalla, koodiin kirjoitetaan kommentteja tai erillistä dokumentaatiota, jossa koodin tarkoitus tai siihen liittyvä teoria selitetään sopivan tarkasti. Voisitko antaa selvän esimerkin, jossa tämä ei mielestäsi riitä? Mitä teoriaosaamista ja mille kohderyhmälle haluaisit tällöin tuoda enemmän esiin?

mavavilj [13.07.2025 15:45:53]

#

Metabolix kirjoitti:

(13.07.2025 08:09:05): Jos pelkkä koodi ei kerro, miksi jotain tehdään...

Ajattelin vaan, että mikä on tehokas tapa demonstroida tuota portfoliossa tms. Useimmiten lukijoilla ei ole kuitenkaan tuhottomasti kiinnostusta tai aikaa lukea kaikenlaista detailia. Kurssisuoritus tai sertifikaatti on nopea lukea, mutta se ei oikeastaan kerro koko totuutta. Olen esimerkiksi opiskellut jotain ainakin 10 op eli n. 266 tuntia Java:a enkä siltikään osaa Java:aa kovin hyvin. Sen sijaan, jos tekisin vaikka 60 tunnissa Java-projektin, niin voisin ainakin selittää, että mitä konsepteja sovelsin onnistuneesti.

Teoriakokeet eivät ole sama asia kuin sovellusosaaminen.

Metabolix [13.07.2025 16:24:45]

#

mavavilj kirjoitti:

Sen sijaan, jos tekisin vaikka 60 tunnissa Java-projektin, niin voisin ainakin selittää, että mitä konsepteja sovelsin onnistuneesti.

Tämä sopii GitHubissa hyvin projektin README-tiedostoon. Jos jostain syystä näitä konsepteja olisi niin paljon, että niiden kuvailu README:ssa vie liikaa tilaa tärkeämmältä tiedolta (kuten käyttöohjeilta), voisi mainita README:ssa jotain tärkeimpiä ja linkittää toiseen dokumenttiin, jossa on lisää yksityiskohtia.

mavavilj [13.07.2025 17:00:24]

#

Metabolix kirjoitti:

(13.07.2025 16:24:45): ”– –” Tämä sopii GitHubissa hyvin projektin README...

Kyllä, mutta tämä on vain mekaaninen vastaus kysymykseen.

Metabolix [13.07.2025 19:12:19]

#

Mielestäni se on täysin hyvä vastaus. Jos kaipaat jotain muuta vastausta, sinun pitää ensin selittää asiasi todella paljon paremmin. Selvästi Java-projektia koskeva esimerkkisi ei ollut tarpeeksi kuvaava.

mavavilj [13.07.2025 23:56:11]

#

Metabolix kirjoitti:

Mielestäni se on täysin hyvä vastaus. Jos kaipaat jotain muuta vastausta, sinun pitää ensin selittää asiasi todella paljon paremmin. Selvästi Java-projektia koskeva esimerkkisi ei ollut tarpeeksi kuvaava.

Esimerkissä on tietysti oleellista, että teoriassa Java:sta ei voi tietää alle 266 tunnissa tms., mutta käytännössä voi tehdä 60 tunnissa Java-projektin, joka käyttää kehittyneitä konsepteja. Teoria ei kuitenkaan ole käytäntö, ja projekti ei ole kuin ne kurssit. Miten voi välittää 60 tunnin Java-projektissa samat asiat kuin 266 tunnin kursseilla + tentillä?

Olisiko mahdollinen tapa vain kirjoittaa README:een, että mitä teoriakonsepteja oli tarkoitus harjoituttaa ja missä ne näkyvät?

Metabolix [14.07.2025 07:12:57]

#

Tuossa nyt koko perusolettamus on outo. Ihan kuin kuvittelisit, että rekrytointi tapahtuu yksityiskohtaisilla ja osoitettavilla kriteereillä kuin koulussa arviointi. Mainitsee luokkahierarkian, 1p. Käyttää perintää koodissa, 1p.

Jokainen ymmärtää, että 266 h tai 10 op Javan alkeita on todellakin alkeita ihmisille ilman aiempaa ohjelmointitaitoa. Kurssitodistuksen osoittama osaaminen on työelämän kannalta edelleen nolla. Melkein mikä tahansa hyödyllinen Java-ohjelma osoittaa käytännössä vastaavan taitotason ja usein enemmänkin. Tätä tietoa ei tarvitse erikseen "välittää" omassa projektissa, kunhan teet 10 op kurssien isointa tehtävää isomman ja vaikeamman ohjelman.

Jos nimeät osaamisena, että "int, class ja extend ovat tuttuja ja käytin niitä tässä projektissa, ja jäsenten näkyvyysalueet ovat ohjeiden mukaiset", näyttää siltä, että et osaa juuri mitään ja ohjelma on maksimisuoritus. Eli mitään alkeita ei ole varmasti syytä mainita. Paremman kuvan saa vaikka tekstistä "tarvitsin työkalun X ja koodasin sen huvikseni Javalla oikein yksikkötestien kanssa". Tärkein näyttö tällä tasolla on se, että koodia on tehty ja se toimii. On myös hyvä tilaisuus käyttää kaikenlaisia kirjastoja ja työkaluja ja näyttää, että pystyy omaksumaan ja yhdistämään niitä.

Kukaan ei tule pyytämään töihin sen perusteella, että "GitHubista huomasin, että osaat tehdä MVC-mallin mukaista koodia". Kukaan ei edes pudota rekrytointiprosessista pois siksi, että "tämä GitHub-projekti näyttää tosi hyvältä, mutta tässä ei nyt valitettavasti lue, onko MVC-mallin mukainen". Eli ei varmasti ole suurta merkitystä, mainitseeko tämän tason yleisesti tunnettuja ja käytettyjä konsepteja. Hieno projekti on varmasti edelleen tärkein näyttö.

Enemmän osaamista vaativissa asioissa voi olla parempi kuvailla sisältöä, esimerkiksi isomman projektin kokonaisrakennetta, suunnittelua, kryptografiaa, verkkoprotokollaa tms. Näissä ajatus ja periaate on kiinnostavampi kuin koodi.

Jos taas konsepti on ratkaista kauppamatkustajan ongelma polynomisessa ajassa, se on varmasti hyvä tuoda ilmi eikä vain todeta, että "palasin tämän vanhan ongelman pariin ja tässä taas yksi versio". Hyvä ehkä myös kirjoittaa lehteen.

Eli suhteellisuudentajua, mikä on oikeasti kiinnostavaa ja merkittävää.

Ja kyllä, mielestäni README on edelleen hyvä paikka kertoa näistä tiedoista.

Metabolix [14.07.2025 07:19:59]

#

Hyvä huomioida myös tekoäly nyt, kun tekoälyllä voi tuottaa tavallista koodia ja siis pelkkä koodin tuottaminen ei ole enää minkäänlainen ansio. Pitäisi varmaan yrittää erottua tekoälyn tasosta jotenkin tekemällä isompaa ja omaperäisempää tai esittelemällä jotenkin omia taitoja tekoälyn käytössä. Ehkä joku osaa sanoa, miten näihin hommiin nyt rekrypuolella suhtaudutaan?

Grez [14.07.2025 08:41:55]

#

mavavilj kirjoitti:

Ajattelin vaan, että mikä on tehokas tapa demonstroida tuota portfoliossa tms. Useimmiten lukijoilla ei ole kuitenkaan tuhottomasti kiinnostusta tai aikaa lukea kaikenlaista detailia. Kurssisuoritus tai sertifikaatti on nopea lukea

Tässähän tämä keskeinen ongelmasi piilee, eli sertifikaatissa tai kurssisuorituksessa joku luotettavaksi oletettu taho on tutkinut tekemistäsi ja arvioinut sen. Sillä että laitat projektin johonkin, niin se arviointityö siirtyy sille, jonka haluat arvostavan taitojasi.

mavavilj [14.07.2025 08:56:42]

#

Grez kirjoitti:

(14.07.2025 08:41:55): ”– –” Tässähän tämä keskeinen ongelmasi piilee, eli...

Kyllä, mutta näissä on myös ainakin IT-alalla vissi ero. Kokemukseni mukaan juuri kukaan ei palkkaa ainakaan tällä hetkellä pelkällä tutkinnolla, joten nyt teen sitten portfoliota.

Kysymys on, miten voin demonstroida sitä, että minulla on hyvää teoriaosaamista JA sovellusosaamista, kun pelkällä tutkinnolla voi demonstroida vain teoriaosaamista ja ilman tutkintoa voi demonstroida vain tietynlaista sovellusosaamista, mutta ei välttämättä asioiden yleistä ymmärrystä.

mavavilj [14.07.2025 09:03:40]

#

Lisäys:

Olen kyllä sitä mieltä, että joillain alueilla se, että sovellus toimii, riittää. Jos tekisin web-sivuja, niin niissä muut kuin tekniset osa-alueet ovat varmasti asiakkaille arvokkaampia. Näin ei kuitenkaan olisi vaikkapa sulautetuissa järjestelmissä tai algoritmeissa, joissa tehokkuus ja oikeellisuus ovat olennaisia. Myös suurien ohjelmistoprojektien kontekstissa pelkän toimivuuden lisäksi pitäisi osata kirjoittaa selkeää koodia, noudattaa annettuja ohjeita/standardeja, osata testata ja osata selittää asioita muille.


Sivun alkuun

Vastaus

Muista lukea kirjoitusohjeet.
Tietoa sivustosta