Ingenieure in der SW Entwicklung



  • Hallo,

    ich würde gerne ihre Meinung dazu hören. Ich bin Informatiker vom Beruf und arbeite im Automotiv Bereich, wo auch viele Ingenieure arbeiten. Mir ist eins aufgefallen, wo ich reine IT-Entwicklung gemacht habe z.B. Entwicklung von Tools, aber auch die Entwicklung von Applikationen für Embedded-Systeme ist mir leicht gefallen. Dann habe ich eine Tätigkeit gehabt im Bereich E-Fahrzeuge (Ladesysteme etc.), und hier als Informatiker war ich total überfordert, Begriffe wie: Impedanz, komplexe Ströme, PFC, H-Brücken, Resonatoren, duty cycle, Magnetismus, Induktionen etc. waren für mich eher fremd. Ich dachte, wenn E-Techniker, Maschinenbauer sich in die Software-Entwicklung einarbeiten können, kann ich es auch lernen. Tja, es war aber nicht der Fall, es war zu anstrengend und zu viele Grundlagen in Mathe und Physik haben mir gefehlt.
    Dann die Funktionsentwicklung z.B. von Regler, physikalische Modelle aufzubauen, Simulationen, sogar Maschinen Learning, wird von Ingenieuren gemacht. dort werden eigentlich nur Ingenieure gesucht, den Informatikern wird es nicht zugetraut, diese Algorithmen zu entwickeln.

    Ich frage mich, ist die Ausbildung im Studium von Informatikern richtig aufgebaut? ist der Informatiker nur für die Entwicklung von Business Software zuständig? Warum kann sich der Ingenieur schneller in IT einarbeiten als Informatiker in Ingenieur-Tätigkeiten?

    Grüße



  • Hi Robmir,

    das ist doch kein Widerspruch an sich. Informatik ist nur ein Beruf. Der ingenieurtechnische Background kann dagegen aus hunderten Berufen bestehen.
    Es ist ein Riesenunterschied, ob man Programme für pharmazeutische Anwendungen oder Maschinenbau schreibt. Es sind beides völlig unterschiedliche ingenieurtechnische Anwendungen mit überhaupt nicht vergleichbaren Anforderungen. Das Programm das die entsprechende Verarbeitung tätigt besteht aber in beiden Fällen aus den gleichen Sprachkonstrukten. Daher auch der Anschein, dass sich die Ingenieure leichter in die Programmierung reinfinden als umgekehrt.
    Letztlich ist die Programmentwicklung in ihrer einfachen Form dem menschlichen Denken recht nahe angesiedelt. Leis das lies jenes berechne das gib was aus...
    Wen es nur darum geht, ein paar Werte vom Nutzer abzufragen, daraus ein Ergebnis zu berechnen und das dann auszugeben sind wir als Softwareentwickler fast überflüssig. Das kann jeder Fachingenieur fast genau so gut.
    Aber ein Programm ist eben viel mehr, als nur das Entgegennehmen von Ausgangswerten, das Berechnen eines Ergebnisses und dann die Ausgabe desselben.
    Ich würde mal vermuten, das bei vielen Programmen über 90 % des Gesamtaufwandes auf den Kontakt mit dem Nutzer entfallen. Nutzer sind manchmal oberschlau und im schlimmsten Fall einfach dämlich, und der Durchschnitt liegt irgendwo dazwischen.
    Das Programm muss aber mit allen denen zurande kommen und den Nutzer jeweils entweder bremsen oder an die Hand nehmen, seine Eingaben verifizieren, seine Spielereien abfangen, möglichst auch nicht abstürzen, wenn gerade mal ein Buch auf der Tastatur liegt, ...
    Der andere Teil ist die Verwaltung und Abspeicherung der Daten. Für die meisten zwecke vermutlich in Datenbanken, in bestimmten Fällen aber auch als binäre Daten oder direkte Speicherabbilder...
    Da liegt insgesamt ein ziemlicher Abstraktionsaufwand, aber eben auch nutzerbegleitende und erzieherische Tätigkeit mit dahinter, Anpassung von Massendatenverarbeitung an die Ressourcen der Maschine, aber auch Softwareergonomie, ersetzen eines Rechenweges durch einen anderen genaueren oder effizienteren...
    Das alles ist wesentlich mehr, als der nebenbeiprogrammierende Ingenieur im allgemeinen gebacken bekommt. Meist entstehen bei denen Programme, mit denen sie selber sehr gut zurande kommen, aber die schon versagen wenn ein anderer Mitarbeiter damit arbeiten soll.
    Umgekehrt sind wir natürlich bei konkreten technischen Aufgaben überfordert. Sicher haben wir alle irgendwie das Rüstzeug um gestellte Aufgaben abzuarbeiten, aber wenn irgend ein Programmierer aus diesem Forum aus dem Hut ein Programm zur Berechnung von Maschinenteilen nach der Finite-Elemente-Methode schreiben sollte würden fast alle erst mal auf die Nase fallen.Man kann einfach nicht alles wissen und im Kopf haben.
    Unbeachtet davon sollte man natürlich versuchen, auf dem Bereich in dem man Tätig ist ein paar weiterführende Kenntnisse zu erwerben. Das ist ja das, was den guten erfahrenen Programmiere in den Betrieben ausmacht, das sie sich auch in die fachlichen Belange einarbeiten, und mit wenigen Hinweisen wissen worum es geht und dann zu weitgehend selbständigen Arbeiten in der Lage sind. Aber das fällt nicht vom Himmel sondern erfordert Monate bis Jahre, bis man da alles einigermaßen drauf hat.
    Besonders kennzeichnend finde ich da immer die Formulierung "Du machst doch mit Computern". Meist antworte ich dann, dass ich nicht so ein Schwen bin.
    Informatik ist einfach nur die Lehre, wie man einen gegebenen Sachverhalt mit den Mitteln der Programmiersprache abstrahiert und umsetzt. Drum müssen sich die Fachkollegen am Anfang auch mit den Softwareentwicklern zusammensetzen und genau beschreiben, was sie wollen, und nach welchem Algroritmus das zu berechnen ist. Unsere Aufgabe ist es dann, das so vorgegebene Gerippe in ne anständige Form zu bringen und mit Fleisch zu behängen.

    Gruß Mümmel



  • Also bei mir an der FH gibt es aus genau dem Grund bei Elektrotechnik den Schwerpunkt "Technische Informatik", bei dem du im 1. und 2. Semester die Grundlagenfächer der Elektroingenieure lernen musst und im 3. und 4. Semester die Grundlagenfächer der Informatiker.
    Es haben sich 34 Leute für Energietechnik, 28 Leute für Nachrichtentechnik und 8 (inklusive mir) für Technische Informatik eingeschrieben, wobei von den 8 noch einmal 5 abgesprungen sind und ich nicht weiß, was aus den anderen beiden geworden ist. Also nicht sehr beliebt. 😃

    Angeblich hat man diesen Studiengang aber eingeführt, weil da genau dieses Problem mit dem Umstieg auf Informatik bzw. Ingenieurswesen besteht und alle sind sie entsetzt darüber, dass das keiner machen möchte. 🙄



  • Hm, meine Erfahrung ist, dass Informatiker im mathematischen Bereich einen umfassenderen Background haben als die meisten Ingeneure. Immerhin ist die Informatik aus der Mathematik hervor gegangen. Wenn ich mich mit Freunden, die Mathematik studiert haben unterhalte, stelle ich auch immer wieder fest, das "angewandte Mathematik" und "theoretische Informatik" sich recht ähnlich sind.

    Ich hatte es immer als eine der Stärken von Informatikern angesehen sich eben in andere Fachbereiche soweit einzuarbeiten zu können um die Zusammenhänge in "guten" Code umzusetzen.

    Aber für mich ist auch Informatik != Softwareentwicklung ⚠



  • Meiner Meinung nach ist Informatik ein sehr breites Gebiet. Entsprechend kriegt man im Studium einen Einblick in viele Teilgebieten der Informatik, die untereinander aber nicht besonders stark verbunden sind. Physik ist demgegenüber ein Gebiet, bei dem es sehr in die Tiefe geht. Viele Teilbereiche bauen dort auf einander auf. Mathematik wird in allen Bereichen der Physik stark benötigt und es handelt sich nur teilweise um die gleiche Mathematik, die man im Informatikstudium lernt. Wenn ein Ingenieursgebiet dann nah an der Physik ist, wie zum Beispiel die E-Technik, dann haben die Leute dort auch einen entsprechend tiefen Einblick in die Materie. Da kommt man nicht einfach so rein, weil man, um Z zu lernen, erst mal X und Y lernen muss. Zum Programmieren ist das meistens nicht der Fall. Da braucht man entsprechende Querbezüge in der Informatik erst, wenn es sehr komplex wird. Für viele einfache Programmieraufgaben muss man nicht mal etwas von dynamischen Datenstrukturen wissen.

    Schlangenmensch schrieb:

    Hm, meine Erfahrung ist, dass Informatiker im mathematischen Bereich einen umfassenderen Background haben als die meisten Ingeneure. Immerhin ist die Informatik aus der Mathematik hervor gegangen. Wenn ich mich mit Freunden, die Mathematik studiert haben unterhalte, stelle ich auch immer wieder fest, das "angewandte Mathematik" und "theoretische Informatik" sich recht ähnlich sind.

    Ich hatte es immer als eine der Stärken von Informatikern angesehen sich eben in andere Fachbereiche soweit einzuarbeiten zu können um die Zusammenhänge in "guten" Code umzusetzen.

    Aber für mich ist auch Informatik != Softwareentwicklung ⚠

    Wie oben geschrieben: Ich habe da glaube ich einen etwas anderen Blick auf die Informatik entwickelt. Ich sehe auch nicht, dass Theoretische Informatik, also zum Beispiel Komplexitätstheorie, sehr viel mit Angewandter Mathematik zu tun hat (wobei die Betonung hier auf "angewandter" liegt). Es mag aber Bereiche der Theoretsichen Informatik geben, die man unter so einem Gesichtspunkt sehen kann.

    Wer ein Studium in der Informatik durchzieht, hat sicherlich gelernt, sich in viele unterschiedliche Gebiete einzuarbeiten. Es gibt aber auch Gebiete, die einfach aus sich heraus eine extrem hohe Einarbeitungshürde bieten. Insbesondere mathematisch sehr anspruchsvolle Gebiete. In so einem Fall ist es dann häufig naheligender, dass sich jemand aus diesem Gebiet die benötigten Informatikkenntnisse aneignet als andersherum. Die Fähigkeit, sich in andere Gebiete einzuarbeiten, haben Informatiker nicht exklusiv. Und kleinere Programmieraufgaben macht man überall (auch in Ingenieursstudiengängen), so dass sowieso jeder meint, er könne sehr gut programmieren und auch entsprechend auftritt.

    Unabhängig davon ob in einem bestimmten Fach viel oder wenig Mathematik benötigt wird: Man sollte davon ausgehen, dass die Leute, die in diesem Gebiet arbeiten, die benötigte Mathematik kennen. Wenn sich jemand neu in ein Gebiet einarbeitet, kann das auch der Fall sein, man muss aber nicht unbedingt davon ausgehen können.



  • muemmel schrieb:

    Informatik ist einfach nur die Lehre, wie man einen gegebenen Sachverhalt mit den Mitteln der Programmiersprache abstrahiert und umsetzt. Drum müssen sich die Fachkollegen am Anfang auch mit den Softwareentwicklern zusammensetzen und genau beschreiben, was sie wollen, ...

    Und hier sagen dann die Fachkollegen "nein danke, bis die Informatiker verstanden haben, was wir brauchen, haben wir es längst irgendwie selber programmiert."

    Wenn man von der praktischen Anwendung nichts versteht und auch nichts verstehen will (weil es angeblich Sache der Fachkollegen ist, einem das vorzukauen), ist man "Theoretischer Informatiker" und sollte Theorie treiben und von Softwareentwicklung die Finger lassen.

    Die Praktischen oder Technischen Informatiker sind von den Ingenieuren (mit Software-Fachgebiet) gar nicht so weit entfernt. Das Zeug zum Softwareentwickler haben beide.



  • HansKlaus schrieb:

    Also bei mir an der FH gibt es aus genau dem Grund bei Elektrotechnik den Schwerpunkt "Technische Informatik", ....
    Es haben sich ... 8 (inklusive mir) für Technische Informatik eingeschrieben, wobei von den 8 noch einmal 5 abgesprungen sind und ich nicht weiß, was aus den anderen beiden geworden ist. Also nicht sehr beliebt. 😃

    Angeblich hat man diesen Studiengang aber eingeführt, weil da genau dieses Problem mit dem Umstieg auf Informatik bzw. Ingenieurswesen besteht und alle sind sie entsetzt darüber, dass das keiner machen möchte. 🙄

    Keine Ahnung, warum das an deiner FH so ist. Es ist aber kein grundsätzliches Problem. An einer Hochschule, die ich kenne, ist TI ein florierender Studiengang, und die Absolventen sind gefragte Leute.



  • Printe schrieb:

    Wenn man von der praktischen Anwendung nichts versteht und auch nichts verstehen will (weil es angeblich Sache der Fachkollegen ist, einem das vorzukauen), ist man "Theoretischer Informatiker" und sollte Theorie treiben und von Softwareentwicklung die Finger lassen.

    Wie kommt man denn bitte sonst an Informationen zum Prozessablauf der einzelnen Kunden? - Woher soll der Softwareentwickler wissen, welche Abläufe er im Code abbilden muss, wenn er den Prozess nicht kennt?

    Natürlich muss ein Fachkundiger den Prozess erläutern. Sei es über Meetings oder über ein Lastenheft. - Fakt ist, es würde keine Software-Dienstleister geben, wenn man deiner Denke folgt. Denn dann würden alle ihr eigenes Brot backen, weil die die Softwareentwickler sein sollten deiner Ansicht nach theoretische Informatiker sind.



  • inflames2k schrieb:

    Printe schrieb:

    Wenn man von der praktischen Anwendung nichts versteht und auch nichts verstehen will (weil es angeblich Sache der Fachkollegen ist, einem das vorzukauen), ist man "Theoretischer Informatiker" und sollte Theorie treiben und von Softwareentwicklung die Finger lassen.

    Wie kommt man denn bitte sonst an Informationen zum Prozessablauf der einzelnen Kunden? - Woher soll der Softwareentwickler wissen, welche Abläufe er im Code abbilden muss, wenn er den Prozess nicht kennt?

    Er muss sich halt mit den Grundlagen vertraut machen. Oben ging es um Embedded-Software für Akku-Ladesysteme, und dass der Softwareentwickler selbst mit so Grundbegriffen wie Impedanz und Brückenschaltung überfordert war. Selbstverständlich muss man Ahnung von Leistungselektronik haben, wenn man solche Software entwickeln will. Nicht bis ins allerletzte, nicht so weit wie der, der die Elektronik baut, aber eben genug, um die Vorgänge verstehen und nachvollziehen zu können.

    Man kann nicht erwarten, dass der Elektronikingenieur ein "Akkus laden für Dummies"-Handbuch schreibt, nur weil der Softwerker meint, von Elektronik nichts verstehen zu müssen.

    Wenn ich eine Maschinensteuerung programmieren will, muss ich die Funktionen der Maschine kennen. Dann kann ich nicht dem Mechaniker sagen "sag mir, was hier passieren soll, sag mir, was da passieren soll" und das dann blind runterprogrammieren. Damit fahre ich die Maschine garantiert zu Klump.

    Natürlich muss ein Fachkundiger den Prozess erläutern.

    Natürlich. Aber er kann sich nicht in den Softwerker hineinversetzen (wenn er das könnte, könnte er die Software auch selber schreiben). Also muss der Softwerker dafür sorgen, dass er die Sprache des Fachkundigen spricht und genug von der Materie versteht, um die wichtigen Informationen zu erhalten.

    Fakt ist, es würde keine Software-Dienstleister geben, wenn man deiner Denke folgt.

    "Fakt ist", dass genau das oft der Grund ist, wenn der Auftraggeber mit der Software-Dienstleistungen am Ende unzufrieden ist: Wenn der Entwickler gemeint hat, er müsste die Aufgabe nicht verstehen, sondern nur abarbeiten.



  • Das Gespräch mit dem Fachkundigen (jetzt mal unabhängig vom Themengebiet) soll ja ganz klar Abgrenzen was umgesetzt wird und was nicht. - Natürlich muss sich der Softwareentwickler oder eher der Projektleiter / beauftragte mit der Materie beschäftigen. Grundlagen kann er selber erarbeiten. Details muss der Fachmann bereitstellen.



  • Gregor schrieb:

    Wie oben geschrieben: Ich habe da glaube ich einen etwas anderen Blick auf die Informatik entwickelt. Ich sehe auch nicht, dass Theoretische Informatik, also zum Beispiel Komplexitätstheorie, sehr viel mit Angewandter Mathematik zu tun hat (wobei die Betonung hier auf "angewandter" liegt). Es mag aber Bereiche der Theoretsichen Informatik geben, die man unter so einem Gesichtspunkt sehen kann.

    Mein Subjektiver Einblick ist da natürlich beschränkt, aber von den Inhalten, die befreundete Mathematiker an der Uni Bonn in angewandter Mathematik gemacht haben, und die ich in theoretischer Informatik gemacht haben, gibt es da eine recht große Ähnlichkeit.

    Um noch was zu der allgemeinen Diskussion beizutragen, ob und wie weit man als Informatiker die Prozesse verstehen muss, die man abbildet. Von mir aus, ein klares ja! Viele Softwaredienstleister, die ich kenne, bekommen ihre Aufträge meißtens auch aus ähnlichen Branchen.
    Und, ich muss Prozesse Verstehen um die algorithmisch optimieren zu können. Wenn ich nur vorgegebene Formeln runter programmiere, kann das wirklich fast jeder, der mal ein Programmier Buch gelesen hat.


  • Gesperrt

    Dieser Beitrag wurde gelöscht!