Informatik VS Software Engineering - Welches Hauptfach ist das Beste für Sie?

Hallo alle miteinander! Mein Name ist YK und ich leite derzeit CS Dojo, einen YouTube-Kanal für Programmierausbildung mit mehr als 200.000 Abonnenten. Ich war früher auch Softwareentwickler bei Google.

Zwei der häufigsten Fragen, die mir mein Publikum stellt, sind:

"Was ist der Unterschied zwischen den Hauptfächern Informatik und Softwaretechnik?"

Und…

"Sollte ich mich für Informatik oder Software-Engineering entscheiden, wenn ich Software-Ingenieur werden möchte?"

In diesem Artikel werde ich darauf antworten und Ihnen meine eigene schnelle Analyse dieser Hauptfächer geben.

Ein kurzer Überblick über diese beiden Hauptfächer

  • In der Informatik wird untersucht, wie Computer funktionieren, hauptsächlich aus theoretischer und mathematischer Sicht.
  • Sie sollten sich für Informatik entscheiden, wenn Sie Mathematik oder Logik mögen oder wenn Sie in ein Spezialgebiet für CS wie künstliche Intelligenz, maschinelles Lernen, Sicherheit oder Grafik einsteigen möchten.
  • Software Engineering ist die Untersuchung, wie Softwaresysteme erstellt werden, einschließlich Themen wie Projektmanagement, Qualitätssicherung und Softwaretests.
  • Sie sollten sich für Software Engineering entscheiden, wenn Sie mehr an dem praktischen Ansatz interessiert sind und wenn Sie den gesamten Lebenszyklus der Erstellung und Wartung von Software kennenlernen möchten.
  • Sowohl in der Informatik als auch in der Softwaretechnik werden Grundlagen der Programmierung und der Informatik vermittelt. Sie können also eine auswählen, um Softwareentwickler zu werden.

Um den Unterschied zwischen den Hauptfächern Informatik und Softwaretechnik zu verstehen, werfen wir einen Blick auf ihren jeweiligen Lehrplan an der University of Waterloo in Kanada.

Ich habe mich dafür für die University of Waterloo entschieden, weil sie eines der besten Informatikprogramme in Nordamerika hat.

Berufsaussichten

Vergleichen wir zunächst die Arten von Jobs und Praktika, die Sie durch jedes Programm bekommen können.

Zum Glück bietet die Website der University of Waterloo mehrere Beispiele.

Hier sind für jeden Hauptfach einige der Titel, die Alumni halten, und wo sie arbeiten:

Computerwissenschaften

  • Webentwickler / Architekt, The Steele Group
  • Programmierer, Harry Rosen Inc.
  • Mobil- / Cloud-Entwickler, Clearbridge Associates Limited
  • Software Engineering, General Dynamics Kanada
  • Softwareentwicklungstechnik, Microsoft
  • Agiler Ingenieur, Pivotal Labs
  • Geschäftsanalyst, Canadian Tire Corporation
  • Entwickleranwalt, Google
  • Produktmanager, Dropbox

Softwareentwicklung

  • Softwareentwickler, Tagged Inc.
  • Softwareentwickler, IBM Kanada
  • Software Manager, Arius Software Corporation
  • Software Engineer, VistaPrint USA
  • Software-Ingenieur, Harris Corporation
  • Softwareentwickler, Accenture Inc.
  • Technischer Produktmanager - Software-Design und -Entwicklung, NexJ Systems Inc.
  • Berater, PureFacts Financial Solutions
  • Implementierungsberater, Desire2Learn

Wie Sie sehen, gibt es keinen großen Unterschied zwischen den Arten von Jobs, die Sie bekommen können.

Die häufigsten Berufsabsolventen nach ihrem Abschluss in Informatik oder Software-Engineering sind Software-Entwickler oder Software-Ingenieur.

Es gibt auch andere verwandte Optionen, z. B. Produktmanager, QS-Analyst und Technologieberater. Ihre Optionen hängen von Ihren spezifischen Fähigkeiten ab.

Kurse im ersten Jahr:

Schauen wir uns nun die erforderlichen Kurse für jedes Programm an. Vergleichen wir zunächst einige der Kurse, die Sie in Ihrem ersten Jahr belegen müssen.

Computerwissenschaften

  • CS 135 - Entwerfen von Funktionsprogrammen
  • CS 136 - Algorithmusdesign und Datenabstraktion
  • MATH 135 - Algebra
  • MATH 136 - Lineare Algebra 1
  • MATH 137 - Kalkül 1
  • MATH 138 - Kalkül 2
  • Plus ein paar Wahlfächer

Softwareentwicklung

  • CS 137 - Programmierprinzipien
  • CS 138 - Datenabstraktion und -implementierung
  • MATH 115 - Lineare Algebra für das Ingenieurwesen
  • MATH 117 - Kalkül 1 für das Ingenieurwesen
  • MATH 119 - Kalkül 2 für das Ingenieurwesen
  • MATH 135 - Algebra für Ehrenmathematik
  • ECE 105 - Physik der Elektrotechnik 1
  • ECE 106 - Elektrizität und Magnetismus
  • ECE 124 - Digitale Schaltungen und Systeme
  • ECE 140 - Lineare Schaltungen
  • SE 101 - Methoden der Softwareentwicklung

Wie Sie sehen können, sind auch die Kurse im ersten Jahr ziemlich ähnlich. Beide decken einige grundlegende Informatikkurse und einige Mathematikkurse in linearer Algebra und Analysis ab.

Der einzige große Unterschied besteht darin, dass Software Engineering zusätzliche Komponenten für Physik und Elektrotechnik enthält, während Informatik einige weitere Wahlfächer hat.

Kurse nach dem ersten Jahr:

Wie wäre es mit den erforderlichen und Wahlfächern nach dem ersten Jahr? Schauen wir uns hier einige Beispiele an:

Computerwissenschaften:

  • MATH 239 Einführung in die Kombinatorik
  • STAT 230 Wahrscheinlichkeit
  • STAT 231 Statistik
  • CS 240 Datenstrukturen und Datenmanagement
  • CS 241 Grundlagen sequentieller Programme
  • CS 245 Logik und Berechnung
  • CS 246 Objektorientierte Softwareentwicklung <- nicht erforderlich für Software Engineering-Hauptfächer
  • CS 251 Computerorganisation und -design
  • CS 341-Algorithmen
  • CS 350 Betriebssysteme
  • Außerdem mehrere Wahlfächer in Informatik

Softwareentwicklung:

  • CHE 102 Chemie für Ingenieure
  • ECE 222 Digitalcomputer (einschließlich Assemblersprache)
  • ECE 358 Computernetzwerke
  • MATH 213 Fortgeschrittene Mathematik für Software-Ingenieure
  • MATH 239 Einführung in die Kombinatorik
  • STAT 206 Statistik für Software Engineering
  • MSCI 261 Engineering Economics: Finanzmanagement für Ingenieure
  • CS 241 Grundlagen sequentieller Programme
  • CS 240 Datenstrukturen und Datenmanagement
  • CS 247 Software Engineering Principles <- nicht erforderlich für Hauptfächer der Informatik
  • CS 341-Algorithmen
  • CS 349-Benutzeroberflächen <- nicht erforderlich für Hauptfächer der Informatik
  • CS 343 Concurrent and Parallel Programming <- nicht erforderlich für Hauptfächer der Informatik
  • CS 348 Einführung in die Datenbankverwaltung
  • SE 212 Logik und Berechnung
  • SE 350 Betriebssysteme
  • SE 465 Softwaretests und Qualitätssicherung
  • SE 464 Software Design und Architekturen
  • Spezifikation und Analyse der Softwareanforderungen nach SE 463
  • SE 490 Designprojekt
  • Außerdem einige Wahlfächer in Informatik und Elektrotechnik

Ich habe Ihnen eine Menge Informationen gegeben, die Sie hier verdauen können. Aber hier ist meine Zusammenfassung:

Wenn es um die Anforderungen in Mathematik und Statistik geht, sind Informatik und Software-Engineering nahezu identisch. Sie umfassen Kombinatorik, Wahrscheinlichkeit und Statistik.

Die grundlegenden Anforderungen der Informatik sind ebenfalls ähnlich und erstrecken sich über Algorithmen, Datenstrukturen und Betriebssysteme.

Der Hauptunterschied ist:

  • Software Engineering hat mehr Anforderungen an die Grundlagen der Elektrotechnik und Softwareentwicklung, wie z. B. Softwaretests, Design und Spezifikation der Softwareanforderungen.
  • Informatik ermöglicht mehr Wahlfächer in höheren Informatikkursen. Sie können aus einer Vielzahl von Themen wie Sicherheit, Grundlagen der Softwareentwicklung, Computer Vision, maschinelles Lernen und Datenbankverwaltung auswählen.

Also, welchen Hauptfach solltest du wählen?

Ich denke, es hängt hauptsächlich von Ihren Vorlieben ab. Zusamenfassend:

  • Sie sollten sich für Informatik entscheiden, wenn Sie Mathematik oder Logik mögen oder wenn Sie in ein Spezialgebiet für CS wie künstliche Intelligenz, maschinelles Lernen, Sicherheit oder Grafik einsteigen möchten.
  • Sie sollten sich für Software Engineering entscheiden, wenn Sie sich mehr für den praktischen Ansatz interessieren und den gesamten Lebenszyklus der Erstellung und Wartung von Software kennenlernen möchten.

Aber warte - was ist es dann? Welches Hauptfach ist besser, wenn Sie Softwareentwickler werden möchten?

Hier ist meine Meinung. An dieser speziellen Universität (University of Waterloo) mit diesen speziellen Programmanforderungen ist Informatik ein besseres Hauptfach, wenn Sie Software-Ingenieur werden möchten.

Nehmen wir der Einfachheit halber an, Sie hoffen, einen der bestbezahlten Jobs (~ 100.000 USD / Jahr) als Software-Ingenieur in Nordamerika zu bekommen. Diese Jobs sind in der Regel bei großen Softwareunternehmen (z. B. Microsoft, Google, Amazon usw.) oder bei mittelgroßen, wachstumsstarken Unternehmen (z. B. Dropbox, Lyft, Snapchat, Pinterest usw.).

In der Regel suchen sie bei einem Kandidaten für Softwareentwickler nach der Fähigkeit, soliden Code zu schreiben und interessante Projekte zu erstellen, sowie nach Grundlagen der Informatik, einschließlich Datenstrukturen und Algorithmen.

Ich denke, der beste Weg, diese Fähigkeiten zu entwickeln, besteht darin, schnell die Grundlagen der Informatik zu erlernen und Ihre eigene Zeit damit zu verbringen, das Lösen von Problemen und das Schreiben von Code zu üben.

Basierend auf dem Lehrplan für Software Engineering und basierend darauf, wie beschäftigt Ingenieurstudenten im Allgemeinen sind, denke ich, dass es schwieriger ist, dies mit Software Engineering als mit Informatik zu tun.

Ein weiterer Vorteil dieses speziellen Informatikprogramms besteht darin, dass es mehr Wahlfächer für Informatik ermöglicht. Das ist auch großartig, denn je nachdem, was auf dem Arbeitsmarkt gefragt ist, können Sie Ihre Kurse anpassen. Wenn beispielsweise die Entwicklung mobiler Apps gefragt ist, können Sie dies lernen. Und wenn paralleles Rechnen gefragt ist, können Sie sich stattdessen darauf konzentrieren.

Ich bin sicher, dass das Erlernen der Grundlagen des Software-Engineerings (Projektmanagement, Design, Testen usw.) einige Vorteile bietet. Aber ich persönlich würde lieber Flexibilität in Bezug auf vordefinierte Fähigkeiten übernehmen. Aus diesem Grund denke ich, dass Informatik ein besseres Hauptfach ist, um Software-Ingenieur mit diesem speziellen Lehrplan zu werden.

Das ist natürlich nur meine Meinung, und dies ist nur eine bestimmte Universität. Ich würde gerne etwas über Ihre Meinung und Ihre Erfahrungen erfahren, wenn Sie entweder Informatik oder Softwaretechnik studiert haben. Bitte lassen Sie es mich in einem Kommentar unten wissen.

Ein paar Notizen

Anmerkung 1: Unterschiedliche Universitäten haben unterschiedliche Anforderungen an diese beiden Hauptfächer. Dieser Artikel sollte ein guter Ausgangspunkt sein, aber Sie sollten sich trotzdem die Programmanforderungen an der Universität ansehen, an der Sie interessiert sind.

Anmerkung 2: Einige Universitäten haben nicht einmal einen Hauptfach Software Engineering. Zum Beispiel hat die Universität von British Columbia in Vancouver einen Abschluss in Informatik und Computertechnik, nicht jedoch in Software Engineering. Sie haben jedoch eine Konzentration auf Softwareentwicklung sowohl in ihrem Informatikprogramm als auch in der Computertechnik.

Wenn die Universität, an der Sie interessiert sind, kein Hauptfach Software Engineering hat, würde ich mich für Informatik entscheiden, wenn Sie Softwareentwickler werden möchten. Computer Engineering konzentriert sich mehr auf Hardware als Computer Science oder Software Engineering, daher hängt es weniger direkt mit dem Job eines typischen Softwareentwicklers zusammen.

Und hier sind die Hauptquellen, die ich verwendet habe:

  • Informatik bei Waterloo
  • Software Engineering bei Waterloo

Vielen Dank fürs Lesen und viel Glück bei der Auswahl einer Universität und Ihres Hauptfachs! ?