Kniha
Algoritmy a programovaci techniky - Pavel Topfer
Je to kniha pre zacinajucich programatorov, ktory maju seriozny zaujem.
Dnes su knihy zamerane alebo na jazyk alebo na uz nejake advanced algoritmy. Taky stredoskolak sa moze naucit algoritmy iba z
KSP. Vsetka ina dostupna literatura sa zaobera priamo programovacim jazykom alebo algoritmami ale z takeho hladiska, ze aj nadany stredoskolak ma velmi velke problemy z toho vyjst a este ak su tam aj matematicke dokazy, tak uz je uplne v ....
Tato kniha vyplna presne tu medzeru. Sice sa predpoklada, ze uz mate aspon nejake zaklady programovania v niecom rozumnom. Kniha rozobera aj s kodom zakladne programatorske algoritmy, ktore dnes vela ludi nazyvajucich sa programatormi nevie...
Hlavne rozvija algoritme myslenie a velmi rozsiruje abstraktne myslenie. Sice je to hlupe dvojrozmerne pole, ale reprezentuje to uplne nieco ine (nad polom sa spravi abstrakcia, je vlastne reprezentuje toto a toto).
Velke plus tej knihy, riesi aj rovnake ulohy ale inym sposobom a porovava efektivu algoritmov a ich reprezentaciu. Hned na zaciaku sa na intuitivnej urovni preberie zlozitost a efektivnost algoritmu + intuitivne sa definuju zakladne matematice pojmy potrebne pre algoritmy. O tych zakladnych matematickych pojmoch stredoskolak nema sajnu...
Jasne pre vitazov olympiad a najlepsich z KSP, im ta kniha asi nema co dat, ale je velke mnozstvo ludi, ktorym vie dat naozaj vela.
Programy v nej su pisane v Pascale. Ale vy mozete programy pisat v comkolvek + Pascal je velmi lahko cita a chape. Teda aspon pasivne precita Pascal skoro hocikto.
Je vela pripadov, ked jeden znak v kode navyse , zvysi efektivitu algoritmu o polovicu.
Ak zacinate a chcete byt skutocnymi programatormi, je ta kniha pre Vas asi najlepsie co je. Ak ste uplni zaciatocnici, tak sa odporuca aj s nejakou ucebnicou Pascalu s tym, ze najprv zvladnite zaklady jazyka Pascal.
Za zaklad sa sa povazovat znalost konstant (const), premennych (var), zakladnych vstupno-vystupnych funkcii (read/write), podmieneny prikaz (if then else), cykly (for, while, repeat until), procedury funkcie (procedure, funcion). Samozrezrejme celkova struktura programu a struktura bloku prikazov (begin end) a
SMERNIKY (pointre)
Dozviete sa vela zaujimavych veci tykajucich sa napriklad: vyhladavanie ( zoznamy, stromy ...), prehladavanie do hlby a sirky, pracu s grafmi, rekurzia, triedenie, dynamicke programovanie
Vsetkeho klady a zapory.
Vsetko je vysvetlovane formou pre samostatneho stredoskolaka.
Zdoraznujem, vsetky tieto znalosti patria k zakladom programovania, teda kazdy, kto si hovori programator, by mal ich ovladat. Samozrejme aj kopu inych veci, ale to je taky zaklad.
Bohuzial, skusenosti a pohovory ukazuju, ze 90% ludi nazyvajucimi sa programatormi o tychto veciach nema ponatie.
Sice je pravda, ze dnes vela ludi co programuje, tie veci nevyuzije v praxi, v resp. beznej firme. No je mnoho firiem, kde bez tych znalosti sa s Vami nikto nebude bavit a kde na pohode s Vami zacnu hovorit o automatoch (ak neviete co to je, nerieste to zatial).
Naozaj drviva vacsina ludi dnes programuje lahke veci, kde su Vam tieto veci nanic, resp. stiahnete nejaku kniznicu z internetu. Ak Vam to ku spokojnosti staci, v poriadku.
Ak Vam tom nahodou ku spokojnosti nestaci, resp. chceli by ste programovat advacned veci (letecke riadiace systemy, simulatory, umelu inteligenciu, jadra operacnych systemov, kompilatory atd...), tak bez znalosti tychto zakladnych veci a este mnoho dalsich s Vami nikto ani neprehovori.
A prave na take veci skoro v kazdom pripade treba aj vysoku skolu (resp. znalosti z nej). Na tych zvysnych 90% (mozno aj viac) tieto ani vysokoskolske znalosti netreba...