Gibt es immer weniger Leute, die sich mit C++ auskennen?



  • Juhu, endlich mal wieder ein Flame War gegen die echt unnötigen Informatiker Akademiker. 👍

    Es war von Anwendungssoftware die rede...

    Ja und es ist die berechtigte Rede das Informatiker Akademiker unnütz sind.

    Ich habe ja auch noch nie erlebt dass mir auf der Arbeit ein Integral über'n weg gesprungen wäre, oder ich einem Bäumchen die Blätter stutzen musste, oder ich ein Zustandsdiagramm zeichen musste oder ich eine Definition/Satz/Beweis Aussage sah.

    Die Argumentation hat so ungefähr den sittlichen Nährwert als würde ein Lehrlingsgeselle behaupten er könnte die Arbeit seines Meisters machen.



  • Ich werfe mal Spieleprogrammierung ein ... GPU-Programmierung ... gibt es schon die C#/Java/Python/... VM fuer die Playstation 3? Es gibt so viel Anwendungssoftware.



  • Als gelernter Fachinformatiker (Anwendungsentwicklung) und mit M.Sc. in Informatik (anschließend studiert) und 3 Jahren Berufserfahrung kann ich sagen:

    Programmieren ist meistens Handwerk. Wissen welche Werkzeuge wann wo gebraucht werden können. Je mehr drumherum-Wissen man hat, desto besser. Also auf anhieb Wissen: Bildverarbeitung, ahhh OpenCv. Sortieren&Suchen? Die und die Algorithmen.
    Auch bei Mathe hört es doch meistens bei einfachen Summen oder Einheitenumrechnungen auf.

    Wobei man als studierter Informatiker häufig auch in so Misch-Masch-Projekten eingesetzt wird,wo dann auch mal mehr Mathe gefordert wird. Allerdings sage ich immer: Ich habe Informatik und nicht Mathe studiert. Und wenn da wirklich ein schwieriges mathematisches Problem zu lösen ist, dann soll die Firma einen Mathematiker rankarren, der das Problem in 2 Wochen löst wofür ich 2 Monate brauchen würde.

    Wenn bei vielen Stellenausschreibung ein Studium verlangt wird, kann ich nur mit dem Kopf schütteln. Die genannten Inhalte konnte ich bereits nach meiner Lehre abdecken.



  • Nun, man moechte den Bewerber vielleicht auch nach 1 Jahr bei anderen Projekten einsetzen.

    Also auf anhieb Wissen: Bildverarbeitung, ahhh OpenCv.

    Wenn es so einfach waere. Es ist ein Unterschied zwischen: Problem geloest und Arbeit fuer Teilschritte abnehmen.



  • In der Praxis ist es aber meist so einfach. Softwareentwickeln: Handwerk.

    Da werden keine super-duper umfangreichen Mathe/Physik/...-Kenntnisse gebraucht. Das sie je nach Projekt aber hilfreich sein können, ist auch klar.



  • StimmeZu schrieb:

    Programmieren ist meistens Handwerk. Wissen welche Werkzeuge wann wo gebraucht werden können. Je mehr drumherum-Wissen man hat, desto besser. Also auf anhieb Wissen: Bildverarbeitung, ahhh OpenCv. Sortieren&Suchen? Die und die Algorithmen.
    Auch bei Mathe hört es doch meistens bei einfachen Summen oder Einheitenumrechnungen auf.

    Wobei man als studierter Informatiker häufig auch in so Misch-Masch-Projekten eingesetzt wird,wo dann auch mal mehr Mathe gefordert wird. Allerdings sage ich immer: Ich habe Informatik und nicht Mathe studiert. Und wenn da wirklich ein schwieriges mathematisches Problem zu lösen ist, dann soll die Firma einen Mathematiker rankarren, der das Problem in 2 Wochen löst wofür ich 2 Monate brauchen würde.

    1. Um zu wissen, wann man wo was wie anwenden sollte, braucht man Hintergrundwissen. Gerade in Bereichen wie der Bildverarbeitung gibt es enorm viele Algorithmen und Datenstrukturen, die man einfach kennen muss. Sonst hilft auch eine Bibliothek nicht. Auch OpenCV bietet keine Methode "solveMyProblem".

    2. Informatiker sollten halbwegs fit in Mathe sein. Und das heisst, dass sie jedes mathematisch formulierte Problem loesen koennen muessen, fuer das sie im Studium die zugehoerigen Loesungsmethoden kennengelernt haben und, dass sie Probleme mathematisch modellieren koennen muessen. Wenn ein Informatiker mal eine einfache Differentialgleichung sieht, dann sollte das noch kein Problem sein. Er muss auch die Mathematik in Problemstellungen erkennen koennen. Wenn wir zum oberen Beispiel der Bildverarbeitung zurueckkehren, dann sollte sich der Informatiker zum Beispiel mit Fouriertransformationen auskennnen und er sollte moeglichst alle Zusammenhaenge zwischen Realraum und reziprokem Raum kennnen. Wenn er das nicht drauf hat, dann kann er Probleme in der Bildverarbeitung nur sehr bedingt systematisch angehen.



  • Mein Nickname sagt es doch: StimmeZu.

    Ihr ignoriert aber die Umstände, dass z.B. Leute aus der Bildverarbeitung vornehmlich hier sitzen:

    - Unis
    - Fraunhofer
    - DLR
    - Eine handvoll Unternehmen

    D.h. das ist ein sehr spezielles Thema wo sich meistens forschende Institute mit beschäftigen. Genau wie Robotik. In der Praxis und da kann man mir nicht widersprechen werden aber meist keine hochkomplizierten Programme entwickelt.

    Da will der Kunde nen Webshop, oder eine Uhr mit RS232 auf nem uc oder eine neue SAP-Eingabemaske für neue Bestandsdaten. Und das ist stumpfes Handwerk.



  • Skym0sh0 schrieb:

    Grad irgendwelche Geschäftsanwendungen werden gerne mit Java oder C# oder sowas zusammengeklickt. Wieso?

    Geschäftsanwendungen lassen sich mit dem Java und .Net Framework in der Regel wesentlich schneller (und in weniger Codezeilen) schreiben. Nur Frage ich mich wie du auf "zusammengeklickt" kommst, die meisten Java/C# Entwickler arbeiten nicht anders als ihre C++ Kollegen.

    Skym0sh0 schrieb:

    ...und meistens arbeiten da auch sehr viele Leute mit, die keine/kaum Ahnung von Software-Entwicklung haben.

    Merkwürdig nur, das dies bei C++ ebenso gilt 😉

    Skym0sh0 schrieb:

    ...z.B. Wirtschaftsinformatiekr doer BWL, die sich JAVA mal nebenbei beigebracht haben.

    Ich selbst habe noch keinen BWLer in der Softwareentwicklung gesehen, und Wirtschaftsinformatiker sind nicht per se schlechte Entwickler, es kommt aber zum einem auf die Hochschule als auch das Aufgabengebiet an. Wenn du schon den Begriff "Geschäftsanwendungen" nimmst, behaupte ich sogar das ein WiInf bei einem guten Studieninhalt in Teilen ein besserer Entwickler ist, als ein reiner Informatiker. Da gerade bei Geschäftsanwendungen, ins besondere wenn diese kaufmännische Aspekte haben, durchaus BWL-Kenntnisse auch bei der Entwicklung Sinn ergeben.

    Und was die Qualität der vermittelten Programmierkenntnisse angeht, kann ich nach eigener Erfahrung sagen, das die reinen "Kernbereiche" der Softwareentwicklung durchaus in einem WiInf-Studium mit einem Informatikstudium übereinstimmen können. Sowohl von der Menge als auch "Qualität*".

    * Wenn den Dozenten eine solche liefern. Auch im reinen Informatikbereich gibt es durchaus welche auf dem Niveau eines Wolf-Buches.

    Ich habe vor etwa 15 Jahren mein Informatikstudium abgebrochen, und jetzt neben der Arbeit ein Wirtschaftsinformatikstudium begonnen. Rein von den Grundlagen der Softwareentwicklung (inkl. Grundlagen von Rechneraufbau und Programmierung) unterscheiden sich die Lerninhalte (anteilig) nicht wesentlich. Von der reinen Entwicklungsseite her ist der Stoff der ersten Studiumhälfte laut Lehrplan durchaus mit dem eines Informatikstudiums vergleichbar.

    Anders sieht es in den mathematischen Teil aus, der nicht ganz so in die Tiefe geht, sowie das weitgehende Fehlen von den stark technisch geprägten Fächern (mit Ausnahme der Grundlagen) und den Vertiefungsrichtungen aus.

    Nur am Rande: Hier wird sowohl in dem prozeduralen als auch objektorientierten Teil C++ verwendet*, bei Skriptsprachen wird wohl Phyton kommen.

    * Und auch wenn es durchaus schon einige Anmerkungen von mir zu den Skripten gab, ist die Vorlesung wesentlich näher an der Qualität eines C++ Primers als an der eines Wolf-Buchs, wenn auch nicht so in die Tiefe gehend [Die Tiefe eines Programmierbuches wurde aber auch in meinem Informatikstudium nicht in den Vorlesungen erreicht, es ist ja auch nicht die Aufgabe der Programmiervorlesungen das man anschließend ein Guru in der Sprache wäre].



  • großbuchstaben schrieb:

    InformatikerkeinCoder schrieb:

    Zu 99,999999% hat man als Software-Entwickler nix mit dem zu tun was ein Informatiker gelehrt bekommt.

    hoffentlich muß ich niemals eine Software warten, die jemand entworfen hat, der von so etwas überzeugt ist.

    präzises Denken und die Fähigkeit zur Verallgemeinerung resp. Abstraktion dürften wichtige Voraussetzungen sein, um Software zu entwerfen, die korrekt, wartbar, erweiterbar, mit anderen Worten: gut ist.

    Und was haben diese Fähigkeiten mit einem Zettel zu tun, den man bekommt, wenn man Informatik studiert hat? Genau, gar nix.



  • lolhahahaha schrieb:

    großbuchstaben schrieb:

    InformatikerkeinCoder schrieb:

    Zu 99,999999% hat man als Software-Entwickler nix mit dem zu tun was ein Informatiker gelehrt bekommt.

    hoffentlich muß ich niemals eine Software warten, die jemand entworfen hat, der von so etwas überzeugt ist.

    präzises Denken und die Fähigkeit zur Verallgemeinerung resp. Abstraktion dürften wichtige Voraussetzungen sein, um Software zu entwerfen, die korrekt, wartbar, erweiterbar, mit anderen Worten: gut ist.

    Und was haben diese Fähigkeiten mit einem Zettel zu tun, den man bekommt, wenn man Informatik studiert hat? Genau, gar nix.

    Es sollte eine Menge damit zu tun haben. Die Faehigkeit zur Abstraktion impliziert, dass man die passenden abstrakten Konzepte kennt. Diese lernt man in einem Informatikstudium kennen.



  • So ein Unsinn, diese Fähigkeiten nur jemanden zuzuschreiben der ein Informatikstudium absolviert hat. Als wenn Fachinformatiker, Elektroniker oder Leute mit anderen Jobs, nicht diese Fähigkeiten haben können. Gut abstrahieren können, hat doch nichts mit einem Studium zu tun, das lernt man beim Entwickeln und das kann man lernen, wenn man auch Lesen kann und Interesse hat.

    Niemand muss Informatik studiert haben, um ein guter Software-Entwickler zu sein oder zu werden.



  • SoEinUnsinn schrieb:

    Niemand muss Informatik studiert haben, um ein guter Software-Entwickler zu sein oder zu werden.

    Nein, aber es kann helfen. Je nach Anwendungsbereich mehr oder weniger.



  • Niemand muss Informatik studiert haben, um ein guter Software-Entwickler zu sein oder zu werden.

    Klar, man kann sich alles selbst beibringen. Heute gibt es wesentlich mehr Moeglichkeiten als frueher. Das gilt fuer jeden Beruf. Und?



  • SoEinUnsinn schrieb:

    So ein Unsinn, diese Fähigkeiten nur jemanden zuzuschreiben der ein Informatikstudium absolviert hat. Als wenn Fachinformatiker, Elektroniker oder Leute mit anderen Jobs, nicht diese Fähigkeiten haben können. Gut abstrahieren können, hat doch nichts mit einem Studium zu tun, das lernt man beim Entwickeln und das kann man lernen, wenn man auch Lesen kann und Interesse hat.

    Niemand muss Informatik studiert haben, um ein guter Software-Entwickler zu sein oder zu werden.

    Es gibt einige Arten von Abstraktionen, auf die man relativ schnell und leicht von selbst kommt, andere erfordern ein gewisses Hintergrundwissen. Weiter vorne hat knivil zum Beispiel gesagt, dass er etwas als endlichen Automaten modelliert hat. Das ist eine Abstraktion von der konkreten Anwendung. Ob man diese Moeglichkeit sieht, haengt davon ab, ob man mit derartigen Strukturen vertraut ist oder nicht. Als Informatiker gehoert das Wissen ueber Automaten zum Standardwissen, deswegen muesste jeder Informatiker so eine Struktur in einer Anwendung schnell sehen. Ich denke, eine derartige Struktur kann man sich auch noch selbst erschliessen, vermutlich sieht man es aber nicht ganz so schnell wie jemand, der endliche Automaten einfach kennt. Aber man muss nur ein bisschen weiter gehen, um zu Strukturen zu kommen, die man sich nicht mehr so schnell selbst erschliessen kann. Stell Dir vor, Du musst ein nebenlaeufiges System bauen, in der jede Menge Prozesse mit einander interagieren. Wie designst Du so ein System so, dass es keine Deadlocks gibt? Ein Informatiker wird Dir das System ruck-zuck als Petrinetz modellieren und hat damit auch gleich eine formale Struktur, an der er solche Eigenschaften systematisch pruefen kann. Derartiges kann man sich nicht mehr so schnell selbst erschliessen.



  • SoEinUnsinn schrieb:

    Niemand muss Informatik studiert haben, um ein guter Software-Entwickler zu sein oder zu werden.

    Dem stimme ich als studierter Informatiker zu.

    Viele studierte Informatiker sind auch keine guten Software-Entwickler.

    Mit dem Wissen aus einem Informatik-Studium wird man aber eher ein guter Software-Entwickler, wenn man sich die Programmiersprachen und Frameworks aneignet, als wenn man nicht studiert hat.
    Ich für meinen Teil löse in der Regel Probleme für die es kein Framework gibt oder für die die Frameworks explizit nicht ausgelegt sind. Man hat einfach schon zu Beginn des Berufslebens mehr gesehen.

    Man stolpert man über einige Techniken und wenn man dann über nur über ein solides Halbwissen verfügt, gerät man sehr schnell ins Straucheln. Oftmals kommt dann noch die Realität ins Spiel und man stellt fest, dass das Framework Bugs hat oder dass es Performance-Probleme gibt, für die man jetzt "nebenher" auch noch Lösungen finden muss und plötzlich stellt man an einer anderen Ecke fest, dass man bei einem Problem auf dem Holzweg ist und noch mal eben über Nacht ganz neu anfangen muss. Das Ganze bitte bis Ende des Releasezyklus.

    Und da hat ein studierter Informatiker einfach zusätzliche Qualifikationen: Projekterfahrung. Jeder studierte Informatiker hat mindestens ein hochkomplexes Langzeitprojekt erfolgreich hinter sich gebracht und ein paar Kleinere.

    6 Profs wollen absolut unverständliche Dinge von ihm, in der Realität fehlt das Geld, das Auto geht kaputt und der Opa stirbt, gleichzeitig ist das Framework vom Prof buggy und die Aufgabe des anderen Profs ist mit einem aktuellen Computer in knapp 6 Stunden zu berechnen, man darf den Benutzer aber nur maximal 5 Minuten warten lassen und das Ganze bis Ende des Semesters. Und die Aufgabe, die für den anderen Prof soweit vorbereitet hat, war die vom letzten Semester, dieses Semester schreibe man bitte einen Linux-PCI-Treiber.

    Das sind Ausschnitte eines Semesters aus meinem Studium.

    Die Scheine habe ich bekommen, für's Geld habe ich nebenher Tutorien gegeben und bin arbeiten gegangen, das Auto habe ich selbst mit Teilen vom Schrottplatz repariert, den Opa beerdigt, die benötigten Teile aus dem Framework vom Prof neu geschrieben und die Berechnung lief am Ende binnen 10-20 Sekunden. Sie war nicht 100%ig exakt, aber immer so nah dran, dass es mehr kostete den Arbeiter 10 Sekunden länger warten zu lassen. Abends entdeckt, dass ich bei der richtigen Aufgabe bei 0 stehe, erstmal zurück ins Wohnheim, Bierchen, Runde Kicker spielen... von PCI-Treibern verstand ich nichts. Nutzt aber ja nix... so habe ich mich kurz nach Mitternacht in der FH einschließen lassen und als der Prof morgens um 8 Uhr ins Büro kam, kam ich aus dem Labor, sagte den Prof, dass ich heute mit dem Treiber angefangen habe und noch eine Frage hätte, ob ich die Aufgabenstellung richtig verstanden habe. Er grinst mich mitleidig an und bestätigt: Richtig verstanden. Ich sag: "Gut, dann möchte ich gerne abgeben." Das Grinsen verschwindet und für das Gesicht hätte ich mir einen Fotoapparat gewünscht. 🙂

    Und deswegen habe ich ein Diplom.

    Das hochkomplexe Langzeitprojekt ist das Studium. Egal, was man studiert hat.
    Das Diplom habe ich nicht, weil ich besonders toll programmieren könnte, sondern weil ein Studium bedeutet, dass laufend rund um einen alles zusammenbricht und reihenweise Leute der Meinung sind, dass sie als einzige Priorität 1 haben. Das ist im Studium Normalzustand. Das ist im Beruf Alltag, nur dass es normalerweise weniger Projektmanager als Professoren gibt, die Prioritäten mit Vorzeichen versehen. Im Job bin ich nie über Priorität -3 rausgekommen.

    Die Pappe am Ende sagt nur aus, dass man den Scheiß irgendwie gemanagt bekommt, während der Scheiß immer mal wieder irgendwie mit Informatik zu tun hat. Deswegen bekommt man eine Informatik-Pappe. Man erlernt ein paar Standardverfahren in seinem Bereich. Die kann man auch aus einem Buch erlernen, aber wer das studiert hat, hat sie entweder angewendet oder vermutlich keine Pappe bekommen.

    Ich habe mir viel Scheiß vom Hals gehalten, in dem ich z.B. über die Enigma eine Ausarbeitung zum Thema Datenschutz gemacht habe, für einen Java Kurs die Enigma in Java implementiert habe und später in einem anderen Kurs darüber referiert habe. Ähnlich im Compilerbau. Wiederverwertbarkeit von Informationen, um das Pensum schaffen zu können. Ein Standardverfahren.
    Und sich schon mal auf was zu spezialisieren: Compilerbau, noch ein Standardverfahren für viele Probleme - nicht nur für Compiler.

    Und weil Compilerbau auch irgendwas mit programmieren zu tun und ich mit 13 Jahren Programmiererfahrung ins Studium ging, kann ich halbwegs passabel programmieren. Ich würde mich nichtmals als "sehr gut" bezeichnen. Aber auch "passabel" ist eher Zufall, weil sich die Themen günstig ergeben haben, und hatte weniger mit dem Studium zu tun.



  • @Xin: Ich habe im Studium andere Erfahrungen gemacht. Fuer mich persoenlich war das Thema des Studiums der zentrale Punkt und die fachlichen Dinge, die ich gelernt habe, sehe ich durchaus als Hauptqualifikation an. Klar, das Studium ist auch ein grosses Projekt, mit dem man erstmal klar kommen muss und die Bewaeltigung dieses Projekts erfordert eine ganze Menge Softskills bzw. bringt die Aneignung vieler Softskills mit sich, aber der Hauptpunkt ist aus meiner Sicht dann doch das fachliche. Allerdings vielleicht auf einer abstrakteren Ebene.



  • ein thread in dme mal wieder die ganze scheiße gequirlt wird, hatten wir ja schon lange nicht mehr



  • Um gute Software zu entwickeln, braucht es kein Studium. Auch nach fünf Jahre harter Berufserfahrung, kann man zeigen, wie man mit schwierigsten Situationen zurecht kommt.

    Es ist nur leider so, dass ein Software-Entwickler von überall herkommen kann und nicht zwingend ein Studium absolviert haben muss. Hingegen sieht es bei den anderen Studiengängen da schon anders aus.

    Oder kennt ihr Ärzte, Anwälte, Architekten oder Ingenieure, die sich mit Quereinsteigern als gute Konkurrenz herumschlagen müssen und eventuell sogar den kürzeren ziehen?

    Die Grundlagen der Informatik kann ich mir heute auch durch Onlinevorlesungen und Fachbücher beibringen, das ist keine Kunst. Berufserfahrung sammle ich durch Praktika und fertig ist die Laube. Selbstständiges Lernen und Probleme lösen können auch Menschen die nicht studiert haben.

    Ich arbeite selbst seit 15 Jahren als Software-Entwickler und bin noch nie schlechter bezahlt worden als studierte Kollegen. Geschweige denn sind mir Aufgaben zu getragen worden, die man nicht mit ein wenig Grips und Recherche und/oder guter Zusammenarbeit lösen konnte.

    Vielleicht wird es ja irgendwann auch mal so schwer, das ich unbedingt ein Studium brauche...ich denke eher nicht.

    Zumal ich auch schon Leute gesehen habe, die sich durch so ein Studium gemogelt haben und hinterher so gut wie nicht einsetzbar waren. So ein Schein sagt fast gar nichts über eine Qualifikation als Software-Entwickler aus, sondern nur dass man Prüfungen irgendwann mal bestanden hat. So etwas ist doch für die Katz, jedenfalls in der Informatik-Branche.



  • InformatikStudiumQuatsch schrieb:

    Oder kennt ihr Ärzte, Anwälte, Architekten oder Ingenieure, die sich mit Quereinsteigern als gute Konkurrenz herumschlagen müssen und eventuell sogar den kürzeren ziehen?

    Würde sicher auch gehen. Anwälte haben Konkurrenz wahrscheinlich gesetzlich verboten und bei Ärzten wird es auch so sein. So ein Landarztwissen, um Husten, Fieber usw. zu diagnostizieren kann man sich auch schnell anlesen, gibt ja auch immer mal wieder solche Betrüger.
    Gebäudestatik oder Maschienenbaukram kann man sich auch anlesen. Bei Elektrotechnik kann ich mir gut vorstellen, dass es einige Informatiker gibt, die Schaltungen entwerfen.



  • Man sieht auch immer wieder, dass die Stellen nicht nur für studierte Informatiker, sondern auch für Mathematiker, Physiker und vergleichbare Abschlüsse angeboten werden.

    Das widerlegt schonmal das Argument, dass es hauptsächlich ums Wissen geht.


Anmelden zum Antworten