Začnem tým, že sa ospravedlním. Chcel som položiť pár jednoduchých otázok, ale nakoniec som napísal celý román, aby som ozrejmil (asi aj sám sebe), ako som sa ku nim dostal.
Tak si občas pozriem forum tu na root-e. Otázky ohľadne programovania sú relatívne časté. Ako začať, ktorý jazyk, aký hardware, aká literatúra, aké licencie, dá sa z toho vyžiť, do akého veku sa oplatí začať a tak podobne.
Odpovede sú všelijaké. Od reálnych pohľadov na problematiku, snahy pomôcť, až po extrémne veci ako výsmech či hádky o tom "jedinom správnom" IDE/jazyku/OS/whatever_you_want. Žiaľ nekompetentné a arogantné vyjadrenia prevažujú. Často mám pocit že radia ľudia, ktorí sa práve tento semester dostali ku tomu či onomu jazyku. Minulý semester ich uchvátil jeden, tento semester je to druhý a s veľkou pravdepodobnosťou to bude za polrok tretí. Túžba prezentovať sa a ukázať sa ako cool geek je veľmi silná, hoci staré Si tacuisses, philosophus mansisses platí stále.
Osobne už dlhší čas neprogramujem a nikdy som sa tým naozaj neživil. Občas upravím voľajaký webshop, zbastlím nieco v php, naskriptujem niečo bashi, sed, awk, ale nepovažujem sa za odborníka na programovanie. Keby moje "produkty" videl odborník, asi by zalamoval rukami. V mojom najbližšom okolí ale mám ľudí, ktorý sa programovaniu venujú. Ako pedagógovia, ako študenti i ako freelanceri či zamestnanci v softvérových domoch. Pri rozhovoroch s nimi sa snažím dopátrať, ako taká výuka programovania dnes prebieha.
Keďže považujem programovanie za veľmi tvorivú činnosť, prekvapuje ma, že nič o tomto aspekte nepočujem. Analýze problémov sa venuje minimálne množstvo času. Predpokladal by som, že sa začne vývojovými diagramami, ukážkami ako previesť problém zo života do matematicko-logickej postupnosti. Že sa poukáže na to, ako dokáže dobrá analýza X-násobne urýchliť výpočet, ako ani najrýchlejší počítač nedokáže vyriešiť koncovku šachovej partie, ktorá je aj pre priemerného šachistu evidentná, ak nemá k dispozícii tabuľky koncových pozícií.
Začína sa inštaláciou voľajakého megamonštra (dosaďte si IDE podľa ľubovôle) a po obligátnom "hello world" nasledujú nijako nesúvisiace ukážky kódu v tom-ktorom jazyku. Triedenia, výpisy, súborový systém..... všetko bez toho PREČO?
A potom dostane študent voľajakú úlohu, ktorá bola už 1k krát na internete či inde riešená (s malou obmenou, v inom jazyku), veď nech si minuloročný druháci zarobia na pivečko.
Nerozumiem tomu. Ak ide naozaj o to pripraviť ľudí pre prax, trval by som na tímových projektoch, kde sa jeden študent môže prejaviť ako grafik, iný ako schopný analytik, tretí ako výkonný kóder, štvrtý dorobí dokumentáciu..... Tak ako v živote, každý má silnejšie a slabšie stránky a podstatné je to dať dokopy.
Ak ste dočítali až sem gratulujem. Tu sú moje otázky:
- Možete mi napísať akou genézou programovania ste prešli?
- V ktorej etape je podľa vás podstatný výber jazyka?
- V ktorej etape je podľa vás podstatné zapojenie a využívanie kooperácie a CVS?
- V ktorej etape je podľa vás podstatný výber IDE?
- Zažili ste / trvali vyučujúci na voľajakej "štábnej kultúre" kódu? Na komentovaní, na dodržiavaní konvencií pri pomenovávaní?
- Viete si predstaviť / zažili ste na školách využívanie niečoho ako codenvy, čo by viacej tlačilo na tímovosť, nevyžadovalo silný hardware na strojoch študentov (furt čítam že pre programovanie treba SSD s 8+ GB RAM)? Používajú školy niečo takéto?
- Majú študenti prístup ku voľajakým výpočtovým farmám (povedzme 128 jadrová pračka v pivnici) na ktorých si môžu spúšťať svoje projekty a testovať "multiprocesorovosť"?
- Viete si predstaviť / zažili ste na školách prácu hoci aj v konzole (ssh na školský server, vim alebo niečo iné, git)?
- Viete si predstaviť / zažili ste na školách niečo ako, že na jednom predmete sa niečo postaví (hardware), na druhom sa to naprogramuje, na treťom sa spraví dokumentácia/manuál/propagačný materiál/web/marketing/prezentácia?
- Viete si predstaviť / zažili ste na školách orientáciu na tímovú prácu? Výuku toho ako bude človek neskôr v praxi pracovať?
Všetkým, ktorý sa dostali až sem, za odmenu
http://www.youtube.com/watch?v=pGFGD5pj03M.