Přesně takoví fachidioti, jaké tu propaguješ, dělají takové blbosti, jako že si do databází ukládají IP adresy jako stringy, včetně teček, protože jim nedocvakne, že to je jen poněkud nezvykle zapsané číslo. Nebo pomocí cyklu počítají věci, na které si průměrný ajťák před 20 lety odvodil vzoreček. Nebo den bloumají nad tím, proč jim test na rovnost nule u FP čísla nikdy nevychází, aby si následně v diskusích stěžovali, že ten překladač je asi nějakej zabuggovanej.
Jen víc takových! To je přesně to, co naše branže potřebuje. Akorát ta představa, že podobný ekšpert psal firmware pro systémy letadla, v němž mám letět, nebo laseru, kterým mi mají operovat oči, a ještě o něco méně schopný ekšpert to testoval, mě poněkud znervózňuje.
Mohl bys konkrétně vysvětlit, která konkrétní větev Matematické analýzy, lineární algebry nebo teorie množin učí, že by se to takto nemělo dělat?
Já si osobně myslím, že by základy těchto oborů na CS měly být, myslím si, že dnešní studijní plány (ne ty před 10t lety...) to mají v docela rozumné míře, protože když má člověk VŠ, tak by se mohl považovat za vzdělaného člověka. Pro mě matematická analýza vůbec nebyla o té matematice, ale praktický trénink logického myšlení - to je asi specifikum MFF (a neměl bych se tím chlubit), ale já za ty 2 semestry matematiky nespočítal jediný integrál a provedl jsem 1 inverzi matice. Na druhou stranu důkazy jsem uměl a myslím, že jsem jim i rozuměl. Množství konkrétních věcí, které jsem v programování použil pocházející z těchto předmětů je: 0. Ale jako trénink myšlení to bylo k nezaplacení.
Žádná a přitom všechny dohromady. Protože ti to pomáhá přistupovat k problému analytickou cestou. Uvědomit si, že každá věc se dá abstraktně reprezentovat různě. Že problémy, které se na první pohled mohou zdát neřešitelné, mohou mít ve skutečnosti docela jednoduché řešení. A naopak. A tušit, jak a kde to řešení hledat. Kde čekat problémy a kde naopak asi problémy nebudou.
Vzpomínám si, jak nám kdysi jeden pán - takový nadšenec, bavilo ho programování v BASICu a sem tam dal i něco v Assembleru -, co vedl počítačový kroužek, ukazoval nějaký grafický algoritmus v Assembleru založený na nějakém čarování s čísly v pevné tečce - což tedy on nevěděl. Byl celý paf z toho, jak je to rychlé a krátké a komentoval to svým oblíbeným "někdo moc chytrej to vymyslel, nepokoušejte se pochopit, jak to funguje". Jenže ve skutečnosti na tom vůbec nic složitého nebylo - což jsem samozřejmě tenkrát ve svých deseti letech taky ještě nevěděl.
Počítač je holt od slova
počítat a programy jsou
matematické modely. I když pracuji třeba s řetězci nebo obrázky, můžu přemýšlet, jestli se na to nekoukat jako na nějaký prostor, na němž lze definovat nějakou metriku, pomocí níž si to můžu celé nějak uspořádat nebo klasifikovat, alespoň částečně. Jestli ten prostor nemá třeba nějakou bázi, která mi umožní nekonečný počet možností zdánlivě bez ladu a skladu nějak zorganizovat pomocí pár čísel. Že ze senzoru, který má nějakou nedostatečnou přesnost, ale přebytek rychlosti, mohu vhodným postupem získat informace s vyšší přesností než byla ta původní. A tak dále, a tak dále. Ale to jsou všechno věci, které člověka napadnou, pokud se s nimi už v životě v nějaké podobě setkal a ochmatal si je.
Je to samá matematika, ale přitom to není nic pro matematika-specialistu. Ten řeší třeba teoretické vlastnosti kvaziperiodických struktur, ale ne to, co jsem napsal výše. Zedník si taky dokáže z prken pomocí pilky, kladiva a hřebíků sbouchat bednění pro beton, skruže pro klenbu nebo nějaké lešeníčko sám, na to nepotřebuje angažovat uměleckého truhláře-nábytkáře. Pokud by to nedokázal, byl by asi dost nepoužitelný, nemyslíš? Ale asi by mu někdy někdo měl říct, jak zatlouct hřebík a neohnout ho, ani jím nerozštípnout prkno, že konstrukce určitých rozměrů už bude třeba nějak zavětrovat a jak se to dělá atd.
Ale jako trénink myšlení to bylo k nezaplacení.
...a představ si tu idylu, že by sis myšlení trénoval na něčem, kde by uplatnitelnost nebyla ta nula. To by byla paráda, co?
Nechceš doporučit muzikantům, aby čas, co trávěj cvičením stupnic, raději využili k něčemu, co budou předvádět posluchačům? Jistě tvé rady oceněj.
Napíšeš, protože tak jako tak nebudeš vymýšlet algoritmus, ale použiješ knihovnu pro rozpoznávání obrazu. Tu knihovnu napíše někdo, kdo se rozpoznáváním obrazu věnuje celej život. A piš si, že ji vymyslí líp, než ty.
Pokud nebudu aspoň tušit, jak to asi uvnitř funguje a kde to má své limity, bude to nepoužitelné. A naopak, nebudu potřebovat drahou velkou knihovnu, když budu vědět, že potřebuju akorát nějak zařadit třeba siluetu a dát na výběr z pár možností. Mimochodem, ještě před 20 lety se rozpoznávání koleček a křížků v bitmapě zadávalo jako soutěžní úkol středoškolákům soutěžícím v Pascalu v krajských kolech. To by mě zajímalo, co se tam asi řeší dnes.
90% informatiků na takovýto problém nenarazí, neboť bude vyvíjet webové informační systémy.
To nejsou informatici, ale lopaty. Ty žádnou specializovanou školu nepotřebují, podobně jako řidič autobusu nepotřebuje absolvovat dopravku.
a potřebují na to mít vysokoškolské vzdělání?
Ano, potřebují ho. Chcete mi snad říct, že by to zvládl středoškolák? A kdo? Gymplák? Nebo z nějaké prumky? To tam bude programovat tak leda html. Neříkám že musí být Ing., ale aspoň bakaláře to chce. A i na něm je dosti nesoustředěná výuka na účel, až přespříliž.
Nepotřebují. Otevři si třeba Techniky programování od Töpfera (schváleno MŠMT jako text vhodný pro střední školy). Úplně by stačilo, pokud by to měli zvládnuté na této úrovni. Jenže i to je pro mnohé nedostižný cíl.
Pokud to nedáváš, není to tím, že by toho bylo příliš, je to tím, že na to nemáš.