Ahoj, Habr!
Kam se vydat na studium? Studovat informatiku nebo se naučit dovednost softwarového inženýra? Tyto otázky jsou dnes velmi aktuální.
Co si vyberete vy?
Lidé, kteří teprve začínají svou dráhu v oblasti IT a plánují se dostat na nějakou technickou vysokou školu nebo jen hledají vzdělávací programy v programování, se často setkávají s ohromným množstvím směrů. Podstata spočívá v tom, že předměty v těchto směrech jsou si podobné, zejména v 1. a 2. ročníku.
Pro přehlednost rozdělme všechny směry na dvě skupiny — Computer Science a Software Engineering. Zásadní rozdíl spočívá v tom, že první směr je flexibilnější a lépe se tam studují základní věci, zatímco druhý směr se zaměřuje na praktičtější dovednosti vytváření programů pro trh. Ať už si vyberete jakýkoli z těchto směrů, nakonec se stanete programátorem. Pravděpodobně v průběhu nebo po škole naleznete zaměstnání a to, do jakého sektoru vývoje vás pustí a na co budete moci žádat, určí směr, který zvolíte.
V obou skupinách se během prvních 2-4 semestrů učí podobné předměty, jako jsou lineární algebra, matematická analýza, diskrétní matematika a diferenciální rovnice. Celou tuto matematiku se obvykle učí v obou skupinách, ale v Computer Science se přidává ještě jeden kurz diskrétní matematiky a diferenciálních rovnic. Další společné pro všechny směry je úvod do Computer Science, ale zde začínají rozdíly. V Computer Science se vyučuje architektura počítačů, teorie výpočtových algoritmů, datové struktury a jejich analýza, to, jak fungují programy a jak je lze psát pomocí klasických konstrukcí, operačních systémů, překladačů a podobně. Tedy dojde k pokrytí širšího základu. Na druhou stranu se ve Software Engineering vyučuje návrh OOP, testování softwaru, základy operačních systémů atd. Jinými slovy se pokrývají techniky, aby se student mohl naučit používat již hotová řešení a s jejich pomocí řešit různé obchodní úkoly. To vše se obvykle studuje v prvním roce výuky.
Dále, již ve 2. ročníku se oba obory začínají zabývat předměty, jako je architektura počítačů a struktura operačních systémů, avšak Software Engineering tyto předměty studuje povrchněji. To je způsobeno tím, že připravují lidi, kteří s těmito předměty budou mít málo společného. Od 2. ročníku se na Computer Science více zaměřují na mikroarchitekturu a jádra operačních systémů, zatímco na vývoji softwaru kladou důraz na uživatelské rozhraní, testování, analýzu softwaru, různé metodiky managementu atd. Zvláště OOP se studuje v obou směrech dostatečně podrobně, protože tato programovací paradigma je v dnešní době velmi populární a je prostě nutné o ní mít znalosti.
Ve 3. ročníku studia na Computer Science se věnují studiu kombinatoriky, kryptografie, umělé inteligence, základům vývoje softwaru, 3D grafice a teorii kompilátorů. Na Software Engineering se studuje systémová bezpečnost, sítě a internet, management softwaru a management obecně. Ale v závislosti na vysoké škole se tyto předměty a jejich hloubka mohou lišit.
Snad hlavní otázkou tohoto článku zůstává otázka, na co se nejlépe zaměřit. To už záleží na vašich preferencích. Pokud chcete být velmi flexibilním a univerzálním inženýrem, měli byste se zaměřit na Computer Science. A pokud chcete spojit svůj život s vývojem softwaru a být schopni vytvářet užitečné programy pro koncové uživatele, pak je Software Engineering právě pro vás.

Na závěr bych chtěl říci, že vás na Computer Science naučí řešit problémy a vymýšlet elegantní způsoby jejich řešení, zatímco z vás v Software Engineering udělají business programátora, který bude schopen řídit projekty, lidi a vytvářet aktuální software.
Zdroj: habr.com
