Helló, Habr!
Kinek tanuljon az ember? Számítástechnikai tudományokat tanuljon, vagy szoftvermérnöki készségeket sajátítson el? Ezek a kérdések nagyon aktuálisak a mai világban.
De mit választ majd Ön?
Azok az emberek, akik most kezdik el az IT-szférában a pályájukat, és technikai főiskolára kívánnak beiratkozni, vagy egyszerűen csak programozási tanfolyamokat keresnek, gyakran találkoznak rendkívül sok irányzattal. A lényeg az, hogy ezekben az irányzatokban az ismeretek az első és a második évben hasonlóak.
A szemléltetés kedvéért osszuk fel az összes irányzatot két táborra - ez a Számítástechnikai Tudomány és a Szoftvermérnökség. A lényeges különbség az, hogy az első irányzat rugalmasabb, és itt jobban tanulmányozzák az alapvető dolgokat, míg a második a piaci szoftverek létrehozásának gyakorlati készségeire összpontosít. Bármelyik irányt is választja, végül programozóvá válik. Valószínűleg valahol dolgozni fog, amíg tanul, és hogy melyik fejlesztési területre engedik be, valamint hogy mit tud majd megpályázni, az az irányzattól függ, amelyet választ.
Mindkét táborban az első 2-4 szemeszterben hasonló tantárgyakat tanulmányoznak, mint a lineáris algebra, matematikai elemzés, diszkrét matematika és differenciálegyenletek. Ezt a matematikát általában mindkét táborban tanítják, de a Számítástechnikai Tudományban egy plusz diszkrét matematikai és egy differenciálegyenleteket érintő kurzust is hozzáadnak. A közös tantárgyak közé tartozik a számítástechnikai bevezetés, de itt kezdődnek a különbségek. A Számítástechnikai Tudomány területén az EVM architektúrájáról, az algoritmusok számítási elméletéről, az adatszerkezetekről és azok elemzéséről, a programok működéséről és írásáról tanulhatunk, klasszikus konstrukciók használatával, operációs rendszerekről, fordítókról és így tovább. Ez egy szélesebb alap lefedettségét jelenti. Ezzel szemben a Szoftvermérnökség az OOP dizájnról, a szoftver teszteléséről, az operációs rendszerek alapjairól és így tovább szólt. Más szóval, technikák tanulmányozására összpontosít, hogy a hallgató képes legyen használni a kész megoldásokat, és segítségükkel más üzleti problémákat oldjon meg. Mindezeket általában az első tanév során tanulják.
A második évtől mindkét szak tanulmányozni kezdi az olyan tantárgyakat, mint a számítógép-architektúra és az operációs rendszerek felépítése, de a Software Engineering ezeket a tantárgyakat felszínesebben tárgyalja. Ennek az az oka, hogy ott olyan embereket készítenek fel, akik kevésbé kapcsolódnak e tantárgyakhoz. A tanulmányok második évétől a Computer Science fokozottabb hangsúlyt fektet a mikroarchitektúrák és az operációs rendszerek magjának felépítésére, míg a szoftverfejlesztés terén a felhasználói felületek, tesztelés, szoftveranalízis, különböző menedzsment módszerek és így tovább áll a középpontban. Különösen az OOP-t mindkét területen elég mélyrehatóan tanulmányozzák, mivel ez a programozási paradigma manapság nagyon népszerű, és egyszerűen tudni kell róla.
A Computer Science harmadik évében a tantárgyak a kombinatorikára, kriptográfiára, mesterséges intelligenciára, a szoftverfejlesztés alapjaira, 3D grafika és a fordítók elméletére összpontosítanak. Ezzel szemben a Software Engineering a rendszerszintű biztonságról, hálózatokról és internetről, a szoftver menedzsmentről és általában a menedzsmentről tanít. Azonban az egyetemtől függően ezek a tantárgyak és az azokba való elmélyülés változhat.
Talán a legfőbb kérdés, amire a cikk keresi a választ, az, hogy hova érdemes menni. Ez már teljes mértékben az Ön preferenciáitól függ. Ha nagyon rugalmas és univerzális mérnök szeretne lenni, akkor a Computer Science-t válassza. Ha viszont szeretné az életét a szoftverfejlesztéshez kötni és képes legyen hasznos programokat létrehozni a végfelhasználók számára, akkor a Software Engineering az Ön számára való.

Összefoglalva, szeretném elmondani, hogy a Computer Science során megtanulják, hogyan oldják meg a problémákat és elegáns megoldásokat találjanak rájuk, míg a Software Engineering leszületik Önben egy üzleti programozó, aki képes projekteket irányítani, embereket menedzselni és aktuális szoftvereket létrehozni.
Forrás: habr.com
