Počítačová věda je často nepochopena. Lidé slyší tento termín a představují si osamělého programátora, jak zuřivě píše v temné místnosti. Ve skutečnosti to není pravda. Jedná se o studium samotných počítačů. Pokrývá jejich návrh, použití pro výpočetní techniku, zpracování dat a správu systémů.
Zahrnuje hardware i software. Zahrnuje také programování, díky kterému to celé funguje. Pokud si ale myslíte, že jde jen o vytváření aplikací nebo webových stránek, uniká vám smysl této disciplíny.
Matematika za strojem
Informatika je v jádru založena na matematice. Není to jen o psaní kódu. Jde o navrhování a analýzu algoritmů. Jedná se o postupné postupy řešení problémů. Musíte se také podívat na problémy s výkonem. Jak rychlý je systém? Kolik energie spotřebuje?
Velká pozornost je také věnována spolehlivosti. Jak si můžeme být jisti, že systém neselže, když jej současně používají miliony lidí? K tomuto účelu se používají pravděpodobnostní metody. Hodnotíte dostupnost. Analyzujete míru selhání. Toto je statistická práce. Zajišťuje, že při stisknutí tlačítka dojde k nějaké akci.
“Protože počítačové systémy jsou často příliš velké a složité na to, aby předpověděly selhání nebo úspěch návrhu bez testování, experimentování je součástí vývojového cyklu.”
Proč nemůžeme jen hádat
Možná se divíte, proč nemůžeme jen předpovědět, zda bude návrh fungovat. Odpověď je měřítko. Počítačové systémy jsou příliš velké. Jsou příliš složité.
V minulosti mohli inženýři modelovat vše. Dnes je proměnných příliš mnoho. Už se nemůžete spoléhat jen na teorii. Bez reálných dat nelze předvídat úspěch složité architektury. Zde přichází na pomoc experimentování.
Testování je nutností
Experimentování není promyšlené. Je zabudován do vývojového cyklu. Vytvoříte komponentu. Ty to otestuj. Můžete vidět, jak se chová při zátěži. Poté provedete úpravy. Tento cyklus pokračuje, dokud systém nedosáhne svých cílů spolehlivosti.
To platí pro všechno. Od nejmenších mikročipů až po rozsáhlou cloudovou infrastrukturu. Proces je iterativní. Je to chaotické. Vyžaduje neustálé úpravy na základě skutečných údajů o výkonu, nikoli pouze teoretických modelů.
Co to pro vás znamená?
Pokud jste student, znamená to, že potřebujete více než jen programovací dovednosti. Musíte rozumět algoritmům. Musíte pochopit pravděpodobnost. Při testování si musíte být jisti.
Pokud jste rodič, vězte, že vaše dítě se učí víc než jen psaní. Učí se řídit složité systémy. Učí se předvídat neúspěchy. Učí se vytvářet věci, které dlouho vydrží.
Tato oblast se rozvíjí. Objeví se nové vybavení. Požadavky na nový software se mění. Základ ale zůstává stejný. Jde o řešení problémů pomocí logiky, matematiky a přísného testování. Není to magie. To je strojírenství.
A právě toto inženýrství udržuje digitální svět v chodu.