Számítástechnika VS szoftverfejlesztés - melyik szak a legjobb az Ön számára?

Hello mindenki! A nevem YK, és jelenleg a CS Dojo-t működtetem, egy programozási oktatási YouTube-csatornát, 200 000+ előfizetővel. Korábban a Google szoftverfejlesztője is voltam.

A közönség által feltett két leggyakoribb kérdés:

"Mi a különbség a számítástechnika és a szoftvermérnöki szakok között?"

És…

"Válasszam a Számítástudományt vagy a Szoftvertechnikát, ha szoftvermérnökké akarok válni?"

Ebben a cikkben erre válaszolok, és átadom a saját gyors elemzésemet ezekről a szakokról.

Gyors áttekintés erről a két szakról

  • A Computer Science a számítógépek működésének tanulmányozása, főként elméleti és matematikai szempontból.
  • Ha a matematikát, a logikát kedveli, vagy ha egy speciális szakterületre szeretne jutni a CS-ben, mint például a mesterséges intelligencia, a gépi tanulás, a biztonság vagy a grafika, akkor válassza a Számítástudomány lehetőséget.
  • A szoftvertervezés a szoftverrendszerek felépítésének tanulmányozása, ideértve a projektmenedzsmentet, a minőségbiztosítást és a szoftvertesztelést.
  • Akkor válassza a Szoftvertechnikát, ha jobban érdekli a gyakorlati megközelítés, és ha meg akarja tanulni a szoftver felépítésének és karbantartásának általános életciklusát.
  • A Számítástechnika és a Szoftvertechnika egyaránt a programozás és a számítástudomány alapjait tanítja, így bármelyiket választhatja szoftverfejlesztővé.

Ahhoz, hogy megértsük a különbséget a számítástechnika és a szoftvermérnöki szakok között, vessünk egy pillantást a tanterveikre a kanadai Waterloo Egyetemen.

Azért választottam erre a University of Waterloo-t, mert Észak-Amerikában az egyik legjobb informatikai programmal rendelkezik.

Álláslehetőségek

Először hasonlítsuk össze az egyes programok során megszerezhető munkákat és szakmai gyakorlatokat.

Szerencsére a Waterloo Egyetem honlapja számos példát tartalmaz.

Az egyes szakok esetében az alábbiakban felsoroljuk az öregdiákok címét, és ahol dolgoznak:

Számítástechnika

  • Webfejlesztő / építész, The Steele Group
  • Programozó, Harry Rosen Inc.
  • Mobil / felhő fejlesztő, Clearbridge Associates Limited
  • Szoftvertechnika, General Dynamics Canada
  • Szoftverfejlesztés, Microsoft
  • Agilis mérnök, Pivotal Labs
  • Üzleti elemző, Canadian Tire Corporation
  • Fejlesztői ügyvéd, Google
  • Termékmenedzser, Dropbox

Szoftverfejlesztés

  • Szoftverfejlesztő, Tagged Inc.
  • Szoftverfejlesztő, IBM Kanada
  • Szoftver menedzser, Arius Software Corporation
  • Szoftvermérnök, VistaPrint USA
  • Szoftvermérnök, Harris Corporation
  • Szoftverfejlesztő, Accenture Inc.
  • Műszaki termékmenedzser - Szoftvertervezés és fejlesztés, NexJ Systems Inc.
  • Tanácsadó, PureFacts Financial Solutions
  • Végrehajtási tanácsadó, Desire2Learn

Amint láthatja, nincs hatalmas különbség a megszerezhető munkahelyek között.

A leggyakrabban végzett diplomások számítástechnikai vagy szoftvermérnöki végzettségük után a szoftverfejlesztők vagy a szoftvermérnökök.

Vannak más kapcsolódó lehetőségek is, például a termékmenedzser, a minőségbiztosítási elemző és a technológiai tanácsadó. A lehetőségek az adott készségtől függenek.

Első éves tanfolyamok:

Most vessünk egy pillantást az egyes programok szükséges tanfolyamaira. Először hasonlítsuk össze azokat a tanfolyamokat, amelyeket az első évben el kell végeznie.

Számítástechnika

  • CS 135 - Funkcionális programok tervezése
  • CS 136 - Algoritmus tervezése és absztrakció
  • MATH 135 - Algebra
  • MATH 136 - Lineáris algebra 1
  • 137. MATH - 1. számológép
  • 138. MATH - 2. számológép
  • Plusz néhány választható

Szoftverfejlesztés

  • CS 137 - Programozási alapelvek
  • CS 138 - Adatgyűjtés és megvalósítás
  • MATH 115 - Lineáris algebra a mérnöki munkához
  • 117. MATH - 1. számítási technika
  • 119. MATH - 2. számítási technika
  • MATH 135 - Algebra a kitüntetésekért matematika
  • ECE 105 - Villamosmérnöki fizika 1
  • ECE 106 - Villamosság és mágnesesség
  • ECE 124 - Digitális áramkörök és rendszerek
  • ECE 140 - Lineáris áramkörök
  • SE 101 - A szoftverfejlesztés módszerei

Amint láthatja, az elsőéves tanfolyamok is meglehetősen hasonlóak. Mindkettő tartalmaz néhány alapvető számítástechnikai tanfolyamot, és néhány matematikai tanfolyamot lineáris algebra és számítás szerint.

Az egyetlen fő különbség az, hogy a Szoftvertechnikának vannak további fizikai és elektrotechnikai alkatrészei, míg a Számítástudománynak van még néhány választható eleme.

Tanfolyamok az első év után:

Mi a helyzet az első év után kötelező és választható kurzusokkal? Nézzünk meg itt néhány példát:

Számítástechnika:

  • MATH 239 Bevezetés a kombinatorikába
  • STAT 230 Valószínűség
  • STAT 231 Statisztika
  • CS 240 adatszerkezetek és adatkezelés
  • CS 241 A szekvenciális programok alapjai
  • CS 245 Logika és számítás
  • CS 246 Objektumorientált szoftverfejlesztés <- nem szükséges a szoftverfejlesztés szakterületein
  • CS 251 Számítógép-szervezés és -tervezés
  • CS 341 algoritmusok
  • CS 350 operációs rendszerek
  • Ráadásul több informatikai választék

Szoftverfejlesztés:

  • CHE 102 Kémia mérnököknek
  • ECE 222 digitális számítógépek (az összeállítási nyelvet is tartalmazza)
  • ECE 358 számítógépes hálózatok
  • MATH 213 Haladó matematika szoftvermérnököknek
  • MATH 239 Bevezetés a kombinatorikába
  • STAT 206 A szoftvertervezés statisztikája
  • MSCI 261 Mérnöki közgazdaságtan: Pénzügyi menedzsment mérnököknek
  • CS 241 A szekvenciális programok alapjai
  • CS 240 adatszerkezetek és adatkezelés
  • CS 247 Szoftvertechnikai alapelvek <- nem szükséges a számítástechnika szakon
  • CS 341 algoritmusok
  • CS 349 felhasználói interfészek <- nem szükséges a számítástechnika szakon
  • CS 343 Párhuzamos és párhuzamos programozás <- nem szükséges a számítástechnika szakon
  • CS 348 Bevezetés az adatbázis-kezelésbe
  • SE 212 Logika és számítás
  • SE 350 operációs rendszerek
  • SE 465 Szoftvertesztelés és minőségbiztosítás
  • SE 464 Szoftvertervezés és architektúra
  • SE 463 Szoftverkövetelmények specifikációja és elemzése
  • SE 490 tervezési projekt
  • Ráadásul néhány informatikai és elektrotechnikai választék

Rengeteg információt adtam neked itt megemészteni. De itt van az összefoglalóm:

Ami a matematika és a statisztika követelményeit illeti, a számítástechnika és a szoftvertervezés szinte azonos. Ezek a kombinatorikára, a valószínűségre és a statisztikákra vonatkoznak.

Az alapvető informatikai követelmények is hasonlóak, algoritmusokra, adatszerkezetekre és operációs rendszerekre terjednek ki.

A legfontosabb különbség a következő:

  • A szoftvertervezésnek több követelménye van az elektrotechnikában és a szoftvertervezés alapjaiban, például a szoftver tesztelésében, a tervezésben és a szoftver követelmények specifikációjában.
  • A számítástechnika több választhatót tesz lehetővé a magasabb szintű informatikai tanfolyamokon. A témák széles skálája közül választhat, például biztonság, szoftverfejlesztési alapismeretek, számítógépes látás, gépi tanulás és adatbázis-kezelés.

Tehát melyik szakot válassza?

Azt hiszem, ez leginkább az Ön preferenciáitól függ. Röviden:

  • Ha a matematikát, a logikát kedveli, vagy ha egy speciális szakterületre szeretne jutni a CS-ben, mint például a mesterséges intelligencia, a gépi tanulás, a biztonság vagy a grafika, válassza a Számítástudományt lehetőséget.
  • Akkor válassza a Szoftvertechnikát, ha jobban érdekli a gyakorlati megközelítés, és ha meg akarja ismerni a szoftver felépítésének és karbantartásának általános életciklusát.

De várj - melyik akkor? Melyik szak a jobb, ha szoftvermérnök akarsz lenni?

Itt a véleményem. Ebben a bizonyos egyetemen (University of Waterloo), a program követelményeinek e speciális halmazával a Computer Science egy jobb szak, ha szoftvermérnök akar lenni.

Csak az egyszerűség kedvéért tegyük fel, hogy egy legjobban fizető állást (~ 100 000 USD / év) szeretne szerezni szoftvermérnökként Észak-Amerikában. Ezek a munkák általában nagy szoftvercégeknél vannak (gondoljunk a Microsoftra, a Google-re, az Amazonra stb.), Vagy közepes méretű, gyorsan növekvő vállalatokra (gondoljuk a Dropbox, Lyft, Snapchat, Pinterest stb.).

Általában a szoftvermérnök-jelöltnél azt keresik, hogy képesek-e szilárd kódot írni és érdekes projekteket építeni, valamint számítástechnikai alapokat, beleértve az adatstruktúrákat és algoritmusokat.

Úgy gondolom, hogy a készségfejlesztés legjobb módja az, ha gyorsan megtanulja a számítástechnika alapjait, és a saját idejét azzal tölti, hogy problémákat old meg és kódot ír.

A szoftvertervezés tanterve alapján és annak alapján, hogy a mérnöki hallgatók általában mennyire vannak elfoglalva, azt gondolom, hogy ezt nehezebb lenne elvégezni a szoftverfejlesztéssel, mint a számítástechnikával.

Ennek a számítástechnikai programnak egy másik előnye, hogy több informatikai választékot tesz lehetővé. Ez azért is remek, mert attól függően, hogy mi a kereslet a munkaerőpiacon, képes lesz módosítani a tanfolyamokat. Például, ha a mobilalkalmazások fejlesztésére van igény, akkor ezt megtanulhatja. És ha a párhuzamos számításra van igény, akkor inkább erre koncentrálhat.

Biztos vagyok benne, hogy van néhány előnye a szoftvertervezés alapjainak elsajátításában (projektmenedzsment, tervezés, tesztelés stb.). De én személy szerint szívesebben venném át a rugalmasságot egy előre meghatározott készségek felett. Ezért gondolom, hogy a Számítástechnika jobb szakterület, hogy szoftvermérnökké válhasson ezzel a tantervvel.

Természetesen ez csak az én véleményem, és ez csak egy adott egyetem. Szívesen hallanék a véleményedről és arról, hogy milyen volt a tapasztalatod, ha számítástechnikai vagy szoftvermérnöki szakra specializálódnál. Kérjük, tudassa velem az alábbi megjegyzésben.

Néhány megjegyzés

1. megjegyzés: A különböző egyetemeknek eltérő követelményei vannak erre a két szakra. Ennek a cikknek jó kiindulópontnak kell lennie, de mégis át kell néznie az egyetem programkövetelményeit, amelyekre érdeklődik.

2. megjegyzés: Egyes egyetemeken még nincs szoftvermérnöki szak. Például a Vancouveri Brit Columbia Egyetemen számítástechnikai és számítástechnikai végzettség van, de nem szoftvermérnök. De számítástechnikai programjukban, valamint a számítástechnikában van egy szoftvertechnikai koncentráció.

Ha az egyetem, amelybe érdeklődik, nem rendelkezik szoftvermérnöki szakkal, akkor a Számítástudomány szakra járnék, ha szoftverfejlesztőként szeretne lenni. A számítástechnika inkább a hardverre összpontosít, mint a számítástechnikára vagy a szoftvertervezésre, így kevésbé kapcsolódik közvetlenül egy tipikus szoftverfejlesztői munkához.

És itt vannak a főbb források, amelyeket használtam:

  • Számítástudomány a Waterloóban
  • Szoftvertechnika a Waterloóban

Köszönjük, hogy elolvastad, és sok sikert az egyetem és a szak kiválasztásához! ?