Tere, Habr!
Kelle õpingutele tulla? Kas õppida arvutiteadust või omandada tarkvarainseneri oskusi? Need küsimused on tänapäeval väga aktuaalsed.
Aga mida valite teie?
Inimesed, kes alles alustavad oma teed IT-valdkonnas ja plaanivad astuda mõnda tehnilisse kõrgkooli või otsivad lihtsalt programmeerimiskursusi, satuvad sageli tohutu hulga erialade otsa. Probleem on selles, et igas neist erialadest on ained sarnased, eriti esimesel ja teisel aastal.
Selguse huvides jagame kõik erialad kaheks rühmaks — Computer Science ja Software Engineering. Peamine erinevus seisneb selles, et esimene suund on paindlikum ja seal õpitakse paremini põhialuseid, samas kui teine keskendub rohkem praktilistele oskustele programmide loomisel turule. Millise suuna te ka ei valiks, lõppkokkuvõttes saategi te programmeerijaks. Tõenäoliselt lähete pärast või õppimise ajal tööle ja just see, millises arendussektorisse teid lastakse ja millele teil on võimalik pretendeerida, sõltub sellest, millise suuna valite.
Mõlemas suunas õpitakse esimesel 2-4 semestril sarnaseid aineid, nagu lineaarne algebra, matemaatiline analüüs, diskreetne matemaatika ja diferentsiaalvõrrandid. Kogu seda matemaatikat õppivad tavaliselt mõlemad suunad, kuid Computer Science suunas lisandub veel üks kursus diskreetse matemaatika ja diferentsiaalvõrrandite kohta. Ühise õpikogumina on kõigile suundadele sissejuhatus üldisesse Computer Science, kuid siin algavad juba erinevused. Computer Science suunas räägitakse arvutite arhitektuurist, arvutusteooriast, andmestruktuuridest ja nende analüüsist, sellest, kuidas programmid töötavad ja kuidas neid saab kirjutada, kasutades klassikalisi konstruktsioone, operatsioonisüsteeme, kompilaatoreid jne. See tähendab, et katab suuremat baasi. Omakorda räägitakse Software Engineering suunas OOP disainist, tarkvara testimisest, operatsioonisüsteemide põhialustest jne. Teisisõnu, katab õppetehnikaid, mis võimaldavad üliõpilasel õppida kasutama juba olemasolevaid lahendusi ning nende abil lahendada laiemat spektrit ärilisi probleeme. Kõike seda õpitakse tavaliselt esimesel õppeaastal.
Teisel kursusel alustavad mõlemad erialad aineid, nagu arvutite arhitektuur ja operatsioonisüsteemide struktuur, kuid tarkvaratehnika uurib neid teemasid vähem süvitsi. See on tingitud sellest, et seal koolitatakse inimesi, kellel on nendega vähem sidet. Alates teise õppeaasta algusest paneb arvutiteadus rohkem rõhku mikroarhitektuuri ja operatsioonisüsteemide tuumade tööle, samas kui tarkvaraarenduses keskendutakse rohkem kasutajaliidesele, testimisele, tarkvara analüüsile, erinevatele juhtimismeetoditele jne. Eriti objektorienteeritud programmeerimist uuritakse mõlemas suunas piisavalt süvitsi, kuna see programmeerimise paradigma on tänapäeval väga populaarne ja sellest tuleb lihtsalt teadlik olla.
Kolmandal aastal keskendub arvutiteadus kombinatoorika, krüptograafia, tehisintellekti, tarkvaraarenduse aluste, 3D-graafika ja kompilaatorite teooria õppimisele. Samas uurib tarkvaratehnika süsteemset turvalisust, võrke ja internetti, tarkvarajuhtimist ja üldist juhtimist. Kuid sõltuvalt kõrgkoolist võivad nende ainete sisu ja süvenemine varieeruda.
Küsimus, kuhu minna, jääb selle artikli kesksemaks teemaks. See sõltub teie eelistustest. Kui soovite olla väga paindlik ja universaalne insener, siis peaksite valima arvutiteaduse. Ja kui soovite seostada oma elu tarkvaraarendusega ning luua kasulikku tarkvara lõppkasutajatele, siis on tarkvarainseneri tee just teile.

Kokkuvõtteks tasub öelda, et arvutiteaduses õpetatakse teid probleemide lahendamiseks ja elegantsete lahenduste leidmiseks, samas kui tarkvarainseneeria teeb teist äriprogrammeerija, kes suudab hallata projekte, inimesi ja luua asjakohast tarkvara.
Allikas: habr.com
