Aktueller Arbeitsmarkt im Bereich Softwareentweicklung und Anwendungsprogrammierung C++



  • win8789 schrieb:

    @Xin ps. Ist der Kurs, welcher du verlinkt hast kostenlos? (ich glaube zwar schon, will aber sicher gehen)

    Ja. Ist IMO die beste Einführung, die es in den Themenbereich gibt.



  • win8789 schrieb:

    Xin schrieb:

    KI ist ein breites Thema. Vieles, was unter KI läuft, sind einfache Algorithmen.
    Bei KI würde ich mich mal nach neuronalen Netzen und maschinelles Lernen.

    Teilweise gibt es Vorlesungen auf Youtube, diverse Universitäten bieten freie Kurse im Netz an. Englisch ist hier von Vorteil.

    Maschinelles Lernen

    Ich hab mich bei einer KI bis jetzt nur über zwei Fuktionsweise auseinader gesetzt. Erstens das Klassische, "wenn das dann das" Prinzip (obwohl ich glaube, dass das bei größere Projekten extrem ineffizent ist) und dann noch der Minimax-Algorithmus.

    Was beides Algorithmische Lösungen sind.

    Ein neuronales Netz würdest Du beispielsweise anlernen. Spielt Du zum Beispiel TicTacToe mit ihm, würde es gar nicht wissen, wie das Spiel selbst funktioniert und statt zwischen Deine zwei X sein O irgendwo andershin setzen, weil es gar nicht wüsste, wie es das Spiel gewinnen kann. Mit jedem Spiel wird es für Dich aber schwerer werden.

    "Intelligenz" ist das auch nicht, es bleibt ein Algorithmus. Aber der entwickelt sich halt beim Spiel und nicht durch den Entwickler.

    win8789 schrieb:

    @Xin ps. Ist der Kurs, welcher du verlinkt hast kostenlos? (ich glaube zwar schon, will aber sicher gehen)

    Als ich ihn mir vor drei Jahren angeguckt habe, war er es.



  • win8789 schrieb:

    Xin schrieb:

    KI ist ein breites Thema. Vieles, was unter KI läuft, sind einfache Algorithmen.
    Bei KI würde ich mich mal nach neuronalen Netzen und maschinelles Lernen.

    Teilweise gibt es Vorlesungen auf Youtube, diverse Universitäten bieten freie Kurse im Netz an. Englisch ist hier von Vorteil.

    Maschinelles Lernen

    Ich hab mich bei einer KI bis jetzt nur über zwei Fuktionsweise auseinader gesetzt. Erstens das Klassische, "wenn das dann das" Prinzip (obwohl ich glaube, dass das bei größere Projekten extrem ineffizent ist) und dann noch der Minimax-Algorithmus.

    @Xin ps. Ist der Kurs, welcher du verlinkt hast kostenlos? (ich glaube zwar schon, will aber sicher gehen)

    Ich glaube, Xin hat Dich missverstanden. Bei mir ist es zumindest so angekommen, als ob Du den Computergegner in irgendwelchen Spielen bauen willst. Xin hat wohl eher verstanden, dass Du Dich mit Kuenstlicher Intelligenz auseinandersetzen moechtest. Das ist nicht das gleiche. Also: Willst Du Computerspiele programmieren oder selbstfahrende Autos?



  • Gregor schrieb:

    Ich glaube, Xin hat Dich missverstanden. Bei mir ist es zumindest so angekommen, als ob Du den Computergegner in irgendwelchen Spielen bauen willst. Xin hat wohl eher verstanden, dass Du Dich mit Kuenstlicher Intelligenz auseinandersetzen moechtest. Das ist nicht das gleiche. Also: Willst Du Computerspiele programmieren oder selbstfahrende Autos?

    Ich will Grundlegende dinge im Bereich KI lernen. Also auch so Dinge wie neuronales Netz oder andere Algorithmen. Ich will prizipel mich mehr mit Mathe Formel und Algrithmen befassen und das Thema KI interresiert mich halt und hat viel mit Algrithmen zu tuhen. Außerdem muss ich für den Bundesweiteninformatiker-Wettbewerb KIs entwickeln, die verschiedenes leisten müssen.
    Um deinen Frage zu beantworten, erst Computerspiele KIs und später mit einiger Erfahrung selbstfahrende Autos 😉



  • Wenn Du Dich ernsthaft mit KI auseinandersetzen moechtest, dann lies mal das Buch da:

    The Elements of Statistical Learning | ISBN: 0387848576

    Das ist ein sehr haeufig zitierter Klassiker in dem Bereich.



  • Xin schrieb:

    Aber in einer kleinen Firma hast Du gute Chancen als C++-Entwickler mehr Geld zu bekommen als ein Java-Entwickler - ganz einfacher, weil Java-Entwickler im Vergleich zu C++-Entwicklern wie Sand am Meer zu finden sind.

    Ich weiß es nicht. Wirklich nicht. Ich seh das zwar auch so wie du, dass es viel mehr 0815 Java Programmierer als fähige C++ Programmierer gibt (und als unfähiger C++ Programmierer kann man ganz schlecht C++ programmieren). Aber andererseits kommt es vor allem drauf an, wie gut es der Firma geht und wie gut sie sich verkaufen kann. Und wenn eine kleine Firma irgendwie die Webpräsenz für einen TV Konzern in Java bastelt, wird sie mehr Geld haben, als eine Firma, die embedded Code für irgendwelche Messgeräte schreibt, die keinen interessieren. Keine Ahnung, was häufiger vorkommt.



  • Aber andererseits kommt es vor allem drauf an, wie gut es der Firma geht und wie gut sie sich verkaufen kann.

    Genau das ist der Aspekt der den Arbeitnehmer doch zumindest auch intressiert.

    Hier ist meist die Wahl zwischen "Freiheit" und "stetiger firmeninterner Entwicklung" zu treffen. Wobei man, wenn einem 1teres wichtiger ist, eh Selbstständigkeit erwägen wird ...

    Und auch der Standort ist manchmal ned ganz unwichtig. Wenn ich mal intresse halber mich nach C++ Stellenangebote umsehe, sind die aehm eher sehr auf paar wenige Punkte konzentriert.

    dass es viel mehr 0815 Java Programmierer als fähige C++ Programmierer gibt

    Ich würd jetzt aber auch nicht sagen, das es keine unfähigen C++ Programmierer gibt. ^^
    Wie gesagt ich durft mal nen ganz kurzen Ausflug in die Java Welt machen ...
    Und ich hatte arge Probleme, die Fähigkeit der Leute wirklich einzuschätzen, weil "Die" teilweise komplett anders arbeiten und denken 😃
    Da kannst nach ner Runde Schach mehr zur Fähigkeit aussagen als sich mit einem stundenlang über Java Prinzipien zu unterhalten ^^

    Also ich würd sagen, es gibt viel mehr Java Programmierer, das ist klar. Aber denk die sind im Querschnitt genau so fähig wie wir ^^

    Ciao ...



  • RHBaum schrieb:

    Wie gesagt ich durft mal nen ganz kurzen Ausflug in die Java Welt machen ...
    Und ich hatte arge Probleme, die Fähigkeit der Leute wirklich einzuschätzen, weil "Die" teilweise komplett anders arbeiten und denken 😃

    Ich habe ebenfalls einen Abstecher in die Java-Welt hinter mir.

    Und da sind wirklich fähige Leute dabei. Aber der Durchschnitt erschien mir... durchschnittlich. Das Bewerbungsgespräch verlief so, dass ich mehr Geld wollte, als die zahlen wollten und mir auch sagten, dass sie einen Java-Entwickler brauchen und billiger bekommen als mich - wo ich schlussendlich auch über kaum Java-Erfahrung verfüge. Und so stockte das Gespräch kurz... und dann hieß es, dass man sich über ein paar Tausend im Jahr nicht streiten muss.

    Ich hatte den Job. Später fragte ich den Projektleiter, wieso man eigentlich einen C++-Entwickler eine Java-Stelle gegeben hat. Die Antwort war: "C++ Entwickler wissen, was sie tun." Fand ich interessant.

    Die Software selbst schrieb Protokolle. Etwa einmal in der Stunde stand da eine abgefangene Exception drin. Ich fragte, was es damit auf sich hat. Die Antwort war, dass die Exception normal ist, man aber nicht weiß, was da passiert, nur wenn das Programm keine Exception wirft, dann ist irgendwas kaputt.

    Dass Java-Entwickler anders denken, kann ich diesbezüglich bestätigen. Ich habe in der Zeit in der Firma vorrangig debuggt und mich durch viele Schichten Code gearbeitet. Und die Probleme waren eigentlich allgegenwärtig, aber jetzt nicht unvermeidbar. Mein "Lieblingsproblem" war das Exception-Ping-Pong, wo jemand eine Exception gefangen hat, für okay erklärt hat und das kaputte Objekt dann unbehandelt in das Programm entlassen hat, was dann anderswo wieder eine Exception warf - zum Beispiel beim Erzeugen eines anderen Objektes, was dann ebenfalls nicht behandelt wurde. Nach drei, vier dieser unbehandelten Exceptions kam dann so ein Zombie-Objekt bei mir an und es gab keinen Hinweis auf den ursprünglichen Fehler.

    Als C++-Entwickler muss ich mehr wissen, um ein durchschnittlicher C++-Entwickler zu werden, als ich wissen muss, um ein durchschnittlicher Java-Entwickler zu werden.

    C++ besitzt mehr Mittel, um ein aufwendige Software-Architektur stabil zu halten. In Java baut man eine aufwendige Architektur, ohne sich der Probleme bewusst zu werden, für die C++ bereits Lösungen mitbringt. Wie oft ich schon über Const-Correctness diskutieren musste... das kann ein durchschnittlicher Java-Entwickler sich gar nicht vorstellen, entsprechend kann er auch nicht das Problem formulieren, was damit gelöst wird.

    Ich denke, dass man sich als durchschnittlicher C++-Programmierer auch selbstbewusst vom Gehalt eines durchschnittlichen Java-Entwicklers distanzieren kann. Und zwar nach oben.



  • Xin schrieb:

    Und da sind wirklich fähige Leute dabei. Aber der Durchschnitt erschien mir... durchschnittlich. Das Bewerbungsgespräch verlief so, dass ich mehr Geld wollte, als die zahlen wollten und mir auch sagten, dass sie einen Java-Entwickler brauchen und billiger bekommen als mich - wo ich schlussendlich auch über kaum Java-Erfahrung verfüge. Und so stockte das Gespräch kurz... und dann hieß es, dass man sich über ein paar Tausend im Jahr nicht streiten muss.

    Ich hatte den Job. Später fragte ich den Projektleiter, wieso man eigentlich einen C++-Entwickler eine Java-Stelle gegeben hat. Die Antwort war: "C++ Entwickler wissen, was sie tun." Fand ich interessant.

    Die Software selbst schrieb Protokolle. Etwa einmal in der Stunde stand da eine abgefangene Exception drin. Ich fragte, was es damit auf sich hat. Die Antwort war, dass die Exception normal ist, man aber nicht weiß, was da passiert, nur wenn das Programm keine Exception wirft, dann ist irgendwas kaputt.

    Dass Java-Entwickler anders denken, kann ich diesbezüglich bestätigen. Ich habe in der Zeit in der Firma vorrangig debuggt und mich durch viele Schichten Code gearbeitet. Und die Probleme waren eigentlich allgegenwärtig, aber jetzt nicht unvermeidbar. Mein "Lieblingsproblem" war das Exception-Ping-Pong, wo jemand eine Exception gefangen hat, für okay erklärt hat und das kaputte Objekt dann unbehandelt in das Programm entlassen hat, was dann anderswo wieder eine Exception warf - zum Beispiel beim Erzeugen eines anderen Objektes, was dann ebenfalls nicht behandelt wurde. Nach drei, vier dieser unbehandelten Exceptions kam dann so ein Zombie-Objekt bei mir an und es gab keinen Hinweis auf den ursprünglichen Fehler.

    Als C++-Entwickler muss ich mehr wissen, um ein durchschnittlicher C++-Entwickler zu werden, als ich wissen muss, um ein durchschnittlicher Java-Entwickler zu werden.

    C++ besitzt mehr Mittel, um ein aufwendige Software-Architektur stabil zu halten. In Java baut man eine aufwendige Architektur, ohne sich der Probleme bewusst zu werden, für die C++ bereits Lösungen mitbringt. Wie oft ich schon über Const-Correctness diskutieren musste... das kann ein durchschnittlicher Java-Entwickler sich gar nicht vorstellen, entsprechend kann er auch nicht das Problem formulieren, was damit gelöst wird.

    Ich denke, dass man sich als durchschnittlicher C++-Programmierer auch selbstbewusst vom Gehalt eines durchschnittlichen Java-Entwicklers distanzieren kann. Und zwar nach oben.

    @ Xin jetzt weiß ich woher ich dich kenn.
    https://www.proggen.org/doku.php?id=start:cppjava



  • win8789 schrieb:

    @ Xin jetzt weiß ich woher ich dich kenn.
    https://www.proggen.org/doku.php?id=start:cppjava

    Auf proggen.org bist Du noch als wing unterwegs, hm? ^^



  • Xin schrieb:

    win8789 schrieb:

    @ Xin jetzt weiß ich woher ich dich kenn.
    https://www.proggen.org/doku.php?id=start:cppjava

    Auf proggen.org bist Du noch als wing unterwegs, hm? ^^

    Eigentlich nicht. Ich habe nur mal nach unterschieden zwischen Java und c++ gogooglet (weil ich in der Schule nun Java lernen muss und ich wissen wollte wie ich am besten mein wissen aus c++ in java einsetzten kann(in meinen zweiten Programmier-Kurs lerne ich dazu noch HTML (ja ich habe am Anfang des Schulejahres sowohl ein 11 Kurs, als auch ein 12 Kurs gewählt, obwohl ich noch nie zwvor mit Java in berührung gekommen bin und generell erst seit 3 Monaten Programmiere))) und bin da auf deinen Artikel gestoßen. Dieses Forum hier ist das einzige Forum, welches ich eigentlich wirklich benutze.



  • win8789 schrieb:

    Xin schrieb:

    win8789 schrieb:

    @ Xin jetzt weiß ich woher ich dich kenn.
    https://www.proggen.org/doku.php?id=start:cppjava

    Auf proggen.org bist Du noch als wing unterwegs, hm? ^^

    Eigentlich nicht. Ich habe nur mal nach unterschieden zwischen Java und c++ gogooglet (weil ich in der Schule nun Java lernen muss und ich wissen wollte wie ich am besten mein wissen aus c++ in java einsetzten kann

    Java wird gerne auch häufiger scherzhaft als C++-- bezeichnet.

    Ich bin kein großer Freund von Java - was man in dem Artikel sicherlich auch erkennen kann - Java ist eine nette Sprache, man hätte mit dem Wissen von C++ und einer Firma wie Sun im Rücken sehr viel mehr daraus machen können.
    Und leider wurde Java sehr unkritisch betrachtet, während die Informatik gleichzeitig einen großen Boom erlebte. Das machte Java groß.

    Es gibt viel berechtigte Kritik an C++, aber die mangelnde Kritik an Java ist heute auch ein Geschäft. Davon leben heute Menschen. Ein Freund von mir macht die Ausbildung zum FIAE und die Schule hatte Besuch von Christian Ullenboom (Autor von 'Java ist auch eine Insel'), der dort Java über den Klee lobte. Ich empfahl dem Freund natürlich auch, sich auf C++ zu konzentrieren. So schrieb er mir eine Message, ob ich eine Frage an Herrn Ullenboom hätte. Und ich antworte, er solle Fragen, ob Java Möglichkeiten besitzt, um Const-Correctness zu gewährleisten. Java entwickelt sich ja auch weiter, ich kenne die Begründung von C#, weshalb C# kein Const-Correctness nutzt (sie ist idiotisch) und ich weiß, wieviel Aufwand Const-Correctness ist. Trotzdem könnte es ja sein, dass Java zwischenzeitlich nachgerüstet hat (und das wird irgendwann passieren).
    Die Antwort war wohl 10 Minuten verbales Rudern, anschließend wurde der Freund ignoriert. Der Freund ist noch in der Ausbildung, aber er meinte halt, dass dem Autor die Frage wohl sehr unangenehm war, ihm nicht ins Lobhudelei-Konzept passte und die Antwort war am Ende ein "Geht so nicht" in sehr viel Text verklausuliert.
    Wenn ich von Java lebe, wenn ich das verkaufen muss, ist es schwer kritisch zu sein.

    Ich kann von einem Lehrer nicht erwarten, dass er hinter die Lobhudelei blicken kann. Es gibt keine wirklich gute Sprache. Und auch meine wird Mängel haben - aber Const-Correctness. Darüber muss man halt sprechen. Und würde man das, so schätze ich, dass Java nicht da wäre, wo es einmal war.
    Java wirst Du in 10 Jahren noch in der Schule lernen, wie ich damals Pascal lernen musste. Wenn Du Glück hast, wirst Du später weder in C++, noch in Java programmieren, aber ich vermute, dass Du mit C++ zum einen die besseren Chancen hast und zum anderen bessere Chancen hast, die Konzepte einer nachfolgenden Sprache problemlos zu verstehen.

    Von C++ kommend wirst Du mit Java keine Probleme haben.

    win8789 schrieb:

    Dieses Forum hier ist das einzige Forum, welches ich eigentlich wirklich benutze.

    Es gab vor kurzem einen neuen User, der mit einem ähnlichen Namenmuster Einsteigerfragen stellte. Hätte ja sein können. 🙂



  • Als erstes Mal will ich mich nun bei allen die sich hier an diesem Thread beteiltigt habe bedanken.
    Ich werde jetzt erst einmal weiterhin mein eines Buch über C++ durcharbeiten und mich mit Mathe-algorithmen und mit etwas Physik befassen.
    Wenn mir das ganze moch in zwei Jahren spaß macht werde ich wohl studieren. Wobei ich noch nicht weiß ob ich Informatik oder Mathematik mit schwerpunkt Informatik nehmen soll, aber das hat ja noch Zeit.
    Des weitern versuche ich noch mein Glück im Bundesweiteninformatikerwettbewerb.

    p.s: Kennt jemand gute Bücher zu Mathe und Algorithmen, mit welchen ich mich mal beschäftigen könnte und gute Bücher zu C++, welche ich durcharbeiten könnte, nachdem ich das Buch: "c++ einführung und professionelle programmierung" von Ulrich breymann durchgearbeitet habe?



  • win8789 schrieb:

    p.s: Kennt jemand gute Bücher zu Mathe und Algorithmen, mit welchen ich mich mal beschäftigen könnte

    Sie sollten "Numerik" im Titel enthalten. Mathematik funktioniert mit Computern theoretisch genauso wie in jedem Mathematikbuch. Praktisch funktionieren sie aber halt anders. Rechner rechnen nicht, sie simulieren es nur.

    Beispiel:

    #include <stdio.h>
    
    int main( void )
    {
      float f, g = 0;
    
      do
      {
        f = g;
        g = f + 1;
      }
      while( f != g );
    
      printf( "%f ist gleich %f: %s\n", f, g, (f == g) ? "f = g" : "f != g" );
    
      return 0;
    }
    

    Was erwartest Du als Ausgabe? Und entspricht die Ausgabe Deiner Erwartung?

    win8789 schrieb:

    und gute Bücher zu C++, welche ich durcharbeiten könnte, nachdem ich das Buch: "c++ einführung und professionelle programmierung" von Ulrich breymann durchgearbeitet habe?

    Lern erstmal halbwegs aktuelles C++. Dann sammle Programmiererfahrung. Dann kümmere Dich um Bücher, die nicht "Einführung" im Titel tragen.



  • win8789 schrieb:

    p.s: Kennt jemand gute Bücher zu Mathe und Algorithmen, mit welchen ich mich mal beschäftigen könnte und gute Bücher zu C++, welche ich durcharbeiten könnte, nachdem ich das Buch: "c++ einführung und professionelle programmierung" von Ulrich breymann durchgearbeitet habe?

    zu C++: mit Breymann hast du eh schon mal eine gute Auswahl getroffen. Ansonsten: Praxis! Programmiere und lerne aus deinen Fehlern. Ansonsten ist "Effective C++" nicht schlecht, weil du damit gern gemachte Fehler von vorne herein vermeidest.

    zu Mathe und Algorithmen: "Cormen - Introduction to Algorithms" ist jetzt sicher ein Klassiker, aber ich weiß nicht, ob das auch Spaß macht.
    Nimm vielleicht dieses hier: "Algorithmen und Problemlösungen mit C++: Von der Diskreten Mathematik zum fertigen Programm". Im Gegensatz zum erstgenannten hab ich dieses zwar nicht daheim liegen, allerdings klingt es finde ich ganz interessant, da es die beiden Welten Programmieren und Mathe verbindet.


Anmelden zum Antworten