16
Studium a uplatnění / Re:Základy programování
« kdy: 30. 05. 2020, 10:58:58 »A jak to těm prvokům jde? To se ptám se vší vážností, je nějaký feedback?Těm pomalejším jsem to zvýraznil.Například na FI se teď učí v prvním semestru Haskell vedle Pythonu. Pro samouka je to ale poněkud hůře realizovatelné...Na FI se Haskell učil odjakživa.
Záleží. Je potřeba odfiltrovat ty, kteří na to nemají nebo zjistili, že informatika není úplně pro ně. Každopádně můj dojem byl spíše pozitivní. Zvlášť u prváků, kteří předtím moc neprogramovali, mi přišlo, že do toho lépe vpluli. Naopak někteří druháci nebo prváci, kteří už programovali (nebo dokonce i mají nějakou práci/brigádu), mají někdy problém s absencí cyklů, neměnností, rekurze bývá problém atp. Feedback byl spíše pozitivní, problém je, že navazující semestr teď byl zabit jistým virem, takže se hůř posuzuje, jací lidé z těch předmětů vyšli (typicky v druhém semestru byl problém v algoritmech -- při implementaci).
Funkcionální programování jako první paradigma má spoustu výhod.Jakých?
Řekl bych, že (a teď to vztahuji k tomu doporučenému Haskellu)
* zlepší chápání typů (ať už to, že by funkce nemusela vracet z každého ifu něco jiného, nebo i to, že místo "spešl stringů" by nebyl od věci enum atd.); obecně se někteří na typy začnou dívat jako na kamarády, ne nepřátele
* odnaučí (resp. nenaučí) zneužívat stav / "globální" proměnné
* vede k lepší dekompozici na podproblémy
* naučí rekurzi (zvlášť v aplikaci na datové typy)
* lidé se odnaučí (spíš nenaučí, když s ním začnou) brát funkce jako něco speciálního, takže jim třeba nepřijde divné předávat funkci jako parametr
* vzory
* naučí polymorfismus
( * výjimečně i lidi donutí přemýšlet nad vyhodnocováním; takovou klasikou bývá null xs vs. length xs == 0, kde je xs je nekonečný )
Neříkám, že toho nelze dosáhnout i jinak, resp. že se to týká jen a pouze Haskellu/FP, ale tohle je takový opakující se pattern. (A ano, některé body závisí na učiteli/materiálech.)