Software Engineering (MSc) ... Wird man in jede Branche aufgenommen?
-
Bei uns an der TU kann man Software Engineering (Master) studieren.
Schwerpunkte: Concepts of Object-Oriented Programming, Design of Parallel and High-Performance Computing, Software Verification
Wahlmodule: Machine Learning, KI, usw.Softwartechniker wissen wie Sprachen funktionieren und wie man damit etwas erschaffen kann. Das bedeutet doch, dass man heute eine Steuerungssoftware für Raumfahrzeuge schreiben und morgen die Branche wechselt und Algorithmen für die Börsen entwickeln kann?!
Geht das Hin- und Herhüpfen als Softwaretechniker wirklich so leicht oder kommt es schon mal vor, dass man in einer Firma landet, wo man sich richtig lange einarbeiten muss und so tief drin steckt, dass ein Unternehmen-/Branchenwechsel sich nicht lohnt?
Versteht mich nicht falsch: Ich möchte nicht ständig die Firma wechseln. Ich weiß nur nicht, wo ich später mal arbeiten will. Raumfahrtbranche interessiert mich genauso wie die Finanzbranche.
Aber es sind nicht die Triebwerke und Raketen oder Aktien und Risikiomanagement, die mich interessieren (sonst hätte ich ja Raumfahrttechnik oder Wirtschaftsinformatik studieren können), sondern die Software, die dort entwickelt wird. Da überall die Software Entwicklungsmethoden gleich sind, habe ich mir gedacht, Software Eng. zu wählen.
-
Dein Titel ist vielleicht etwas irreführend. Die Frage ist allgemeingültig in der IT Branche, ob du jetzt Fachinformatiker oder Master of Software Engineering bist.
Grundsätzlich solltest du als Informatiker ziemlich flexibel sein und in unterschiedlichen Branchen arbeiten können. Praktisch gesehen gibt es in jeder Branche natürlich sehr viel technisches und fachliches Know How.
Allein das technische Know How ist nicht zu unterschätzen. Wenn du Steuerungssoftware für Raumfahrzeuge schreiben willst, ist es Low Level Embedded Programmierung, wahrscheinlich in C. Das ist eine ganz andere Welt als Finanzbranche oder Enterprise Software, mit völlig anderen Konzepten und Anforderungen. Natürlich gibt es in beiden Branchen sehr viele gemeinsame Konzepte, schließlich machen das ja alles Informatiker. Aber man braucht in beiden Bereichen jahrelange praktische Erfahrung, deswegen ist der Umstieg nicht leicht und du würdest dann auf jeden Fall weniger Geld bekommen oder den Job evtl. auch gar nicht bekommen. Kann aber auch sein, dass der Personaler sich dann denkt, der hat hat zig Jahre Erfahrung in dem anderen Bereich, der ist bestimmt ganz schlau, lassen wir ihn doch ein halbes Jahr in Ruhe, dann wird er sich schon reinbeißen. Wahrscheinlicher ist aber, dass er das als Anlass sieht, dir nur ein halbes Gehalt zu zahlen.
So ähnlich ist es mit den falchlichen Kenntnissen. Ich hatte als Werkstudent hauptsächlich mit ERP/CRM Systemen zu tun. Da braucht man natürlich schon eine Weile, bis man reinkommt und die ganzen Fachbegriffe und Abläufe kennt. Und dann kommen natürlich die Spezialkenntnisse. Kennst du dich mit SAP aus, kannst du natürlich viel leichter einen entsprechenden Job bekommen, als jemand, der es nicht tut. Hat mir nach paar Jahren aber nicht mehr so wirklich Spass gemacht, jetzt bin ich mehr oder weniger in der CAD/PDM Branche. Natürlich ganz andere Fachbegriffe usw. Als Informatiker konnte ich da ganz gut einsteigen und auch recht schnell was sinnvolles machen, aber ich bin da auch als "Anfänger" gekommen, jetzt kenn ich mich natürlich viel besser aus.
-
prof_kai schrieb:
Softwartechniker wissen wie Sprachen funktionieren und wie man damit etwas erschaffen kann. Das bedeutet doch, dass man heute eine Steuerungssoftware für Raumfahrzeuge schreiben und morgen die Branche wechselt und Algorithmen für die Börsen entwickeln kann?!
Wie Mechanics schon beschrieben hat glaube ich nicht, dass es von heute auf morgen geht.
prof_kai schrieb:
Aber es sind nicht die Triebwerke und Raketen oder Aktien und Risikiomanagement, die mich interessieren (sonst hätte ich ja Raumfahrttechnik oder Wirtschaftsinformatik studieren können), sondern die Software, die dort entwickelt wird. Da überall die Software Entwicklungsmethoden gleich sind, habe ich mir gedacht, Software Eng. zu wählen.
Sind die Entwicklungsmethoden wirklich ueberall gleich?
Mechanics schrieb:
Grundsätzlich solltest du als Informatiker ziemlich flexibel sein und in unterschiedlichen Branchen arbeiten können.
Aus "Grundsaetzlich" wuerde ich dann doch eher "Theoretisch" machen.
Mechanics schrieb:
Praktisch gesehen gibt es in jeder Branche natürlich sehr viel technisches und fachliches Know How.
Allein das technische Know How ist nicht zu unterschätzen. Wenn du Steuerungssoftware für Raumfahrzeuge schreiben willst, ist es Low Level Embedded Programmierung, wahrscheinlich in C. Das ist eine ganz andere Welt als Finanzbranche oder Enterprise Software, mit völlig anderen Konzepten und Anforderungen.Stimme ich voll zu.
Mechanics schrieb:
Aber man braucht in beiden Bereichen jahrelange praktische Erfahrung, deswegen ist der Umstieg nicht leicht und du würdest dann auf jeden Fall weniger Geld bekommen oder den Job evtl. auch gar nicht bekommen.
Stimme ich auch noch zu.
Mechanics schrieb:
Natürlich gibt es in beiden Branchen sehr viele gemeinsame Konzepte,
Bei der Aussage wuerde ich weniger zustimmen.
Mechanics schrieb:
schließlich machen das ja alles Informatiker.
Hier stimme ich nicht mehr zu.
Ich kann natuerlich nur aus meinen Erfahrungsschatz berichten. Jedoch kann ich nicht allen Aussagen zustimmen und ich glaube auch nicht, dass so ein Wechsel wirklich moeglich ist.
Waehrend meines Bachelors habe ich angefangen in ein paar Industrieprojekten mit zu wirken. Bei der ersten Firma (Medizintechnik; > 2500 MA) arbeiteten Informatiker UND Elektroniker in der Softwareentwicklung fuer den embedded Bereich. Man verwendet dort die standard Konzepte, die ich auch aus den Informatikstudium kenne (Fachrichtung Technische Informatik). Man setzte also Git, gaengige Pattern und C++ (ohne Exceptions) auf Mikrocontrollern ein. In der Firma kann ein reiner SW-Entwickler vielleicht noch punkten. Er muss aber die Grundlagen der Elektrotechnik und der Digitaltechnik lernen (in embedded Umfeld nunmal das A und O).
Die naechste Firma, die ich mir nur anschaute (Automobil Industrie; > 1000 MA) sah wieder anders aus. Die embedded Software kam hauptsaechlich von den Elektrotechnikern und in dem Bereich musste man auch Schaltungen entwickeln. Informatiker waren dort mit anderen Aufgaben betreut (mehr Anwendungssoftware).
Danach durfte ich noch als Feuerloescher in einem Projekt mit einer anderen Firma aushelfen (Medizintechnik; < 10 MA). Software kommt nur von einem Elektrotechniker. Sie ist in C geschrieben, es gibt KEINE Pattern und von Versionsverwaltung oder Co. hat man noch nichts gehoert.
In der Firma, in der ich gerade unterwegs bin (Maschinenbau; > 7000 MA) sieht es aber genau so aus, wie bei der Firma davor. Die Software fuer den embedded Bereich kommt von Elektrotechniker, Pattern und Versionsverwaltung (also SVN, Git und Co. - man speichert schon Ordner mit alten Versionen ab) sind unbekannt.Der Bereich embedded ist natuerlich weitlaeufig und es gibt auch Industrie PCs, wo normale SW Entwicklung gefragt ist. Schnell arbeitet man aber auch mit der Hardware und auf Bare-Metal-Systemen. Wenn du an dem Punkt ankommst, dann hilft dir eine reine Ausbildung im Bereich Softwareentwicklung nichts mehr (ein Programm auf dem PC debuggt man komplett anders, als ein Programm auf einen Mikrocontroller).
Also ich halte die Geschichte mit dem Wechsel doch eher fuer ein Maerchen. Also zumindest in den embedded Bereich. Wie es mit den anderen Bereichen aussieht kann ich nicht sagen.
-
prof_kai schrieb:
Softwartechniker wissen wie Sprachen funktionieren und wie man damit etwas erschaffen kann. Das bedeutet doch, dass man heute eine Steuerungssoftware für Raumfahrzeuge schreiben und morgen die Branche wechselt und Algorithmen für die Börsen entwickeln kann?!
Naja, wie Sprachen funktionieren... das wissen teilweise die Software-Technik-Professoren nichtmals.
Software-Technik wurde mir eher als Management vermittelt. Methoden, wie man Software plant. Und dass der Großteil der entwickelten Software am Ende nicht funktioniert.
Und wenn Du dann in der Realität ankommst, musst Du verstehen, was ein Refactoring für Auswirkungen hat. Ich bin als Software-Architekt gestartet, aber Software-Archäologe geworden.
prof_kai schrieb:
Geht das Hin- und Herhüpfen als Softwaretechniker wirklich so leicht oder kommt es schon mal vor, dass man in einer Firma landet, wo man sich richtig lange einarbeiten muss und so tief drin steckt, dass ein Unternehmen-/Branchenwechsel sich nicht lohnt?
Kennst Du die Fedex-Werbung? Daran musste ich gerade denken.
Wenn Du ein Software-Projekt planen kannst, solltest Du im Idealfall auch verstehen, was Du da planen sollst, wofür das Programm genutzt wird, wer es benutzt und welche Aufgabe es eigentlich lösen soll. Software-Technik ist die Methodik, aber nicht die Lösung für irgendein Problem.
In jeder Firma wirst Du Dich einarbeiten müssen und Du wirst in gar keinem Fall einfach mal eben in ein anderes Unternehmen "hüpfen", sondern Du wirst Dich mehr und mehr in Deinem Bereich spezialisieren und dann auch bevorzugt von direkten Konkurrenten angesprochen werden oder von Herstellern von Software mit ähnlichen Problemen oder Interesse an passenden Kontakten.
Von der Finanzwirtschaft zur Raumfahrt... warum nicht... vielleicht sieht da jemand eine Verbindung, die ich... jetzt nicht so direkt sehe.
prof_kai schrieb:
Versteht mich nicht falsch: Ich möchte nicht ständig die Firma wechseln. Ich weiß nur nicht, wo ich später mal arbeiten will. Raumfahrtbranche interessiert mich genauso wie die Finanzbranche.
Aber es sind nicht die Triebwerke und Raketen oder Aktien und Risikiomanagement, die mich interessieren (sonst hätte ich ja Raumfahrttechnik oder Wirtschaftsinformatik studieren können), sondern die Software, die dort entwickelt wird. Da überall die Software Entwicklungsmethoden gleich sind, habe ich mir gedacht, Software Eng. zu wählen.Der Ausbildungsgang ist auch sicher nicht verkehrt. Aber wenn Du Dich mit den Problemen von Ingenieuren auseinandersetzt und erfolgreich geschafft hast, mit der rustikalen Art der Ingenieure umzugehen und dem Denken ebendieser vertraut, dann bist Du im der Kommunikation mit den Bänkern sicherlich in jeglicher denkbaren Art und Weise fehlqualifiziert.
Man sollte natürlich programmieren können, um Programmierung zu managen, um überhaupt die Probleme bei der Entwicklung nachvollziehen und einschätzen zu können.
Im Praktikum habe ich eine Datenbankabstraktion geschrieben, dann Software auf Performance getrimmt, mit 3D Rendering weitergemacht und anschließend über Suchmaschinen gestolpert. Privat interessiere ich mich für Compilerbau - schon wieder Performance. Und gelandet bin ich zuletzt in 3D-Konstruktion und Visualisierung, wo ich den CAD-Kern beackere. Aktuell schreibe ich einen Parser, um 3D-Daten aus einem umständlichen Datenformat zu extrahieren und den CAD-Kern entsprechend erweitere. Entsprechend "Core-Team": ich schaffe die Grundlagen, um die andere eine GUI bauen. Das letzte Bewerbungsgespräch war in einer Firma, die Datenbanken mit der Grafikkarte durchsuchen möchten.
Da ist schon ein roter Faden drin, den ich auch so will. Da wechselt man aber auch nicht so schnell, weil die Einarbeitung aufwendig ist. Das hat auch den Vorteil, dass man ungern ausgetauscht wird, weil dann ja wieder jemand eingearbeitet werden müsste...Und ich bezweifle ernsthaft, dass mich der rote Faden noch in die Welt der Finanzsoftware oder ins Weltall der Rakentenwissenschaft bringt. Ich werde wohl weiterhin Daten performant transformieren, filtern und persistieren. Das wird quasi überall gebraucht. Ich werde aber vermutlich keine Netzwerkprotokolle entwickeln, Hardwaretreiber, oder Webbrowser schreiben oder Web- oder GUI-Entwickler werden. Ein derart krasser Wechsel erscheint mir auch nicht sinnvoll. Ich habe ein Thema, was recht universell ist.
Es lohnt also durchaus, sich in eine Richtung zu spezialisieren, um dann auch in diesem Bereich interessant zu sein.
ArneMax schrieb:
Sind die Entwicklungsmethoden wirklich überall gleich?
Unwahrscheinlich.
Wir haben einen recht sauberen CAD-Kern. Wir rechnen in Millimetern und die 7. Stelle hinter'm Komma hat korrekt zu sein. Wir haben Numerik-Probleme zu lösen. Wenn jemand aus dem Bereich Datenbanken kommt und super Stored Procedures schreiben kann, wird mit Problemen der Numerik oder Embedded Systems nie in Kontakt kommen, also auch ganz anders an die Sache rangehen um in SQL abstrakte Probleme zu lösen.
Darum gibt es ja Leute, die sich in den einzelnen Bereichen spezialisieren.