Ano. K vyuce. Zakladu. Ale ja k tomu dodavam, ze jde o zaklady tak male, ze samy o sobe jeste nestaci k tomu, aby po teto vyuce techto zakladu vznilo neco, co by se dalo oznacit alespon jako "programator-zacatecnik". A nez z tohoto embrya vytvorite programatorskeho novorozence, budete mu muset do hlavy nalit prave to, jak veci funguji. Protoze jen tak bude schopen je efektivne a bezpecne pouzivat. Vcetne zakladu vedomosti o tom toho, co vlastne prekladac a interpret s jeho kodem dela a zakladu toho jak funguje vlastne cely ten pocitac.
A az do nej natlacite tohle, muzete ho poprve pustit k prakticke cinnosti. Pokud dalsi vzdelavani nevzda, mohl by z takoveho programatora-zacatecnika za nejaky cas byt docela dobry programator ...
Samozrejme, na "Hello world" zadne takove detaily nepotrebujete. Ale o nekom, jehoz schopnosti a znalosti staci prave na bezpecne a efektivni napsani funkcniho "Hello world" preci jeste nebudeme mluvit jako o programatorovi ...
char X=-1; while(x==-1) ...
" musim vedet, ze char je v dane situaci znamenkovy (jinak se do te podminky nedostanu). U for(i=10000;i<300000;i++)
take musim vedet, zda se mi do toho typu, co je i ta cisla vejdou (jinak ten cyklus take muze byt nekonecny).Nikdo nepolemizuje o tom. ze spisovatele musi nekdo zatezovat vetnym rozporem v dobe, kdy se teprve uci Ema ma maso. V te dobe to take jeste neni spisovatel. A nestane se jim, dokud ten matersky jazyk nezvladne - a v te dobe uz nejaka ty slohova cviceni za sebou mit bude. Stejne tak clovek, ktery umi napsat "hello world" nemusi znat zpusob reprezentace cisel a omezeni typu - vsak to take ani nahodou v te dobe jeste neni programator. Ale driv nez na oznaceni "programator" (natozpak "dobry programator") bude mit narok, tyto veci znat bude muset. Bez toho je to totiz nejvys bastlir.
Mozna to vzniklo z toho, ze ty interaktivni komunikaci s uzivatelem prisuzujes jiny vyznam nez ja. Moje programy s uzivatelem prakticky nikdy nekomunikuji - nejen interaktivne, ale radeji vubec. Proto mi tebou naznacene omezeni nijak zvlast nevadilo a takovou vahu jako ty mu zdaleka neprikladam. To uz jsme ale znovu u toho, ze pro ruzne problemy jsou vhodne ci pouzitelne ruzne nastroje a u toho, ze ne kazdy nastroj je vhodny na vsechno ...
Způsoby reprezentace čísel v počítači a omezení jednotlivých typů rozhodně patří k základům. Já ale tvrdím, že dobrým spisovatelem se stane člověk může stát i bez toho, aby ho v době, kdy se učí napsat Ema má maso, zatěžoval někdo větným rozborem a chtěl po něm slohová cvičení skoro na úrovni maturanta.
No ja se obavam, ze znalost toho, jake maji konkretni datove typy omezeni, je primo esencialni pro opravdoveho programatora. Samozrejme pojidaci kolacu, ke kterym se uz nejaky ten rok radim, to nedoceni.
Druhou kategorii by ucitele nezatezovali teorii jakehokoliv druhu (treba tim, jak vypada prehledne, bezpecne a efektivni programovani aj.) a naucili by je pouze zaklady kodovani vcetne par jednoduchych pravidel jak alespon trochu snizit vyskyt zavaznych programatorskych chyb (treba neosetrovani vstupu, coz vede ke zminenemu buffer-overflow). Takovi lide vam rychle a levne nabastli program, ktery, pokud se vam podari dodrzet vstupni podminky, ktere koder pri psani predpokladal a budete mit trochu stesti bude v naproste vetsine pripadu uspokojive fungovat. Znacna cast soucasnych "programatoru" jsou prave tito koderi a i poptavka pro prave takovych je pomerne silna., protoze v kratkodobem horizontu maji vyborny pomer ceny a vykonu.
Prvni kategorii "skutecnych programatoru" je ale predevsim nutne vzdelat po teoreticke strance. Samozrejme, ze nelze zanedbat i veci prakticke, ale nemusite s nimi vyslovene probirat kazde konkretni nebezpeci, ktere pri programovani hrozi - pokud se nauci programatorskemu mysleni, pak s trochou praktickych zkusenosti se dokazou vyhnout nejen tem chybam, o kterych se mluvi ve vecernich Zpravach, ale pravdepodobne se dokazou vyhnout i tem, o kterych jste se jim pri prakticke casti vyuky zapomel zminit. Taci programatori vam budou program psat dele nez ti prvni, budou o dost drazsi, ale jejich program bude pravdepodobne fungovat i za situaci, na ktere jste v zadani primo nepomyslel - a nebudou-li v takove situaci fungovat primo, pak spis nez to, ze by udelaly neco nahodneho a nesmyslneho, odmitnou vydat vysledek vubec. Ano - poptavka po prave takovem programatorovi je daleko mensi nez v prvnim pripade - ale - ono je takovych programatoru take o dost mene. A neda se rict, ze jedni jsou lepsi nez druzi - svym zpusobem jde o dve dost odlisne profese a je jen nestesti, ze se obe oznacuji stejnym nazvem - programator. A stejne nestesti je, ze obe skupiny se nekteri pedagogove snazi vyucovat stejnym zpusobem.
Jinak si ale myslim, ze pravdepodobnost, ze nekdo, kdo je "koder" se (pote, co ziska zminenou minimalni sebeduveru) preskoli na programatora je miziva. Zahodit totiz chybne programatorske navyky a naucit se jine je totiz obtiznejsi nez vse zapomenout (coz nikdo ael nedokaze) a zacit uplne od zacatku. A ten, kdo to dokaze by si mel rozmyslet, zda chce ztracet cas ucenim se tech spatnych ...
PS: My jsme meli jeden projekt na ten "oficialni" pascal - pak se to pres p2c prohanelo ceckem...:-) - fakt posusnanicko...
Dalsi experti (zdravim Ing. Gadorka) zadavali ukoly, ktere sice meli vice reseni (rekneme 5), ale kdyz mate 150 lidi, tak kolik asi stejnych reseni se sejde? A pak si to obhajovat, byt narcen z plagiatorstvi apod. - je logicky, ze kdyz jsme na koleji "pracovali", ze ty reseni byly podobny... Samozrejme, ze jsme delali i plagiaty od starsich, kdyz ony ty projekty nekdy byly ujety - perdmetu deset a kazdy projekt by zabral akorat ten semestr (i vyucujici rekl, ze by to zvladl treba za 30 hodin - to mate 300 hodin, kdy ve volnu musite plne makat za predpokladu, ze jsme 100% guru - neucili jsme se to nahodou teprve? - tak to vynasobne treba i 10x a kde vzit tolik casu) - pro predstavu - prijde Vam, ze implementace zakladniho java prekladace do zas. kodu je otazka projektu na semestr a jeden predmet? Chudakum o rok mladsim to totiz prohodil, takze nemeli od nas co ziskat...
Neveril byste, v jakych letech byla na nekterych kolejich vybudovana lokalni sit (treba jen v ramci jedne bunky) :-)
To, co Ivo ceskemu Internetu prinesl a za co mu ma byt ceska internetova komunita vdecna, je poznani, ze princip financovani provozu serveru z prodeje prouzkove reklamy je v CR pouzitelny. A pak samozrejme take to, ze se na tom da vybudovat firma.