Berufschancen mit C++ Konsolenprogrammierung



  • Ich bin ein halbes Jahr vor meinem Informatik Studium und habe mir über ein Jahr ein Bild von verschiedenen Frameworks und Programmiersprachen gemacht. Dabei habe ich mich entschieden für Spiele Unity, für Desktopprogramme C# mit WPF und für Konsolenprogramme C++ zu verwenden, da sich diese Optionen in den 3 Bereichen für mich als am besten herausgestellt haben.

    Da aber C++ meine Lieblingprogrammiersprache ist, möchte ich am ehesten mit C++ beruflich arbeiten. Ist das realistisch oder sollte ich beruflich auf WPF gehen? Ich habe mir vorgenommen in allen 3 Bereichen gut zu sein.



  • Dieser Thread wurde von Moderator/in SeppJ aus dem Forum C++ (alle ISO-Standards) in das Forum Beruf und Ausbildung verschoben.

    Im Zweifelsfall bitte auch folgende Hinweise beachten:
    C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?

    Dieses Posting wurde automatisch erzeugt.



  • Hallo,

    im Grunde ist es gut wenn du mehrere Programmiersprachen "kannst". Ich würde mich aber auf keine Technologien versteifen, bei der Frage wann welche Programmiersprache verwendet wird.

    Anwendungen schreibt man ja nicht um eine Technologie zu verwenden, sondern um ein Problem so effizient wie möglich zu lösen. Daher würde ich auch nur auf Problemebene eine Entscheidung für die Programmiersprache und Technologie treffen.

    Außerdem sei noch gesagt, dass es auch Unternehmen gibt in denen eine Programmiersprache und entsprechende Technologien vorgeschrieben sind. - Bei uns bspw. ist C# die Standard-Programmiersprache (eignet sich schließlich für fast alles und Programme sind schnell erstellt [im Vergleich zu anderen Sprachen]). Abweichungen gibt es nur selten und wenn dann auf speziellen Kundenwunsch oder wenn es eine Performance-Anforderung gibt die mit C# nicht abgebildet werden kann.

    Versteif dich nicht zu sehr darauf, auf welche Technologien du setzt. Wenn du C++ und C# ausreichend beherschst kannst du dich ja auf dem Markt nach entsprechenden Arbeitgebern umsehen. - Die werden dir schon mitteilen, welche Programmiersprache Standard ist bzw. in welchen du programmieren darfst.

    Bzgl. der Technologien findet man meist auf den Websiten der Unternehmen, welche gern gesehen werden und eingesetzt werden.



  • Solix0x schrieb:

    Da aber C++ meine Lieblingprogrammiersprache ist, möchte ich am ehesten mit C++ beruflich arbeiten. Ist das realistisch ...

    Solche Entscheidungen noch vor dem 1. Semester treffen zu wollen halte ich für sehr unrealistisch. Dafür fehlt dir ziemlich sicher noch die Grundlage, und notwendig ist es zu diesem Zeitpunkt auch nicht.

    Fang erst mal an zu studieren, und wenn es nicht gerade einen harten finanziellen Zwang gibt, in Regelstudienzeit fertig zu werden, dann schau ruhig ein bisschen über den Tellerrand des Curriculums hinaus. Wer weiß schon, welche überraschenden Wendungen dich noch erwarten.



  • Ach so, eins noch zur Titelfrage "Konsolenprogrammierung": Das hat sich zu einem sehr eingeschränkten Arbeitsfeld entwickelt. Ich kenne eigentlich nur einen Bereich (*), in dem das noch einigermaßen verbreitet ist, und das sind Buchungssysteme (Kassen, Lagerhaltung usw.). Ich glaube, auf den Kassen bei Galeria habe ich sowas kürzlich noch gesehen. Vermutlich läuft die Applikation auf einem zentralen Server und die Kassencomputer sind nur dumme Terminals.

    Jedenfalls ist das ganz sicher nichts, worauf ich mich geplant spezialisieren würde.

    (*) Damit meine ich kommerziell relevante Bereiche. Auf meinem Entwicklungsrechner sind auch jede Menge Konsolenfenster offen, aber mit dem, was da drin läuft, ist kein Geld zu verdienen.



  • Printe schrieb:

    Ach so, eins noch zur Titelfrage "Konsolenprogrammierung": Das hat sich zu einem sehr eingeschränkten Arbeitsfeld entwickelt. Ich kenne eigentlich nur einen Bereich (*), in dem das noch einigermaßen verbreitet ist, und das sind Buchungssysteme (Kassen, Lagerhaltung usw.). Ich glaube, auf den Kassen bei Galeria habe ich sowas kürzlich noch gesehen. Vermutlich läuft die Applikation auf einem zentralen Server und die Kassencomputer sind nur dumme Terminals.

    Jedenfalls ist das ganz sicher nichts, worauf ich mich geplant spezialisieren würde.

    (*) Damit meine ich kommerziell relevante Bereiche. Auf meinem Entwicklungsrechner sind auch jede Menge Konsolenfenster offen, aber mit dem, was da drin läuft, ist kein Geld zu verdienen.

    Ist eine Frage, was man unter Konsolenentwicklung versteht. Für mich deckt das den gesamten Bereich ab, der keine eigene GUI hat. Und das ist jede Menge.
    Auf jedem OS laufen viele Prozesse ohne GUI, so gut wie jedes elektronische Gerät hat inzwischen irgendwo eine CPU und entsprechende Software. Der ganze IoT Bereich als ein weiteres Beispiel.
    Selbst in einer Anwendung mit GUI gibt es genug Teile, in denen man nichts damit zu tun hat.
    Der Großteil und der interessante Teil an Software sind meiner Meinung nach eher "Konsolenprogrammierung".



  • Das sollte man dann aber nicht "Konsolenprogrammierung" nennen, sondern "Application Business Logic" (auf deutsch Geschäftslogik), "Backend programming" (s.a. Front-End und Back-End) o.ä.



  • Ist doch die gleiche sinnlose Frage, die er schon vor paar Wochen gestellt hatte. Ihm fehlt einfach noch komplett das Verständnis, was es so für Software gibt, und wie man sie entwickelt, deswegen wieder diese seltsame Fragestellung.
    Außerdem braucht man sich am Anfang vom Studium da noch keine Gedanken drüber zu machen.



  • Hallo,

    ich kann deine Freude an C# und C++ verstehen. Was C++ angeht muss man sagen, dass es nur noch ziemlich selten verwendet wird. Wenn ich C++-Entwickler treffe, werde ich sofort gefragt wie schwer es ist Java zu lernen, weil sie sehen, dass die Luft in der C++-Welt dünn wird. Es gibt schon immer noch C++-Stellen, aber sie sind vereinzelt. Ich habe manchmal mein Interesse an C++ durchblicken lassenund es wurde immer abgewunken, weil kaum noch damit gearbeitet wird. C++ hat in den letzten Jahren eine kleine Wiederbelebung erfahren. Aber generell ist es ein Spezialgebiet geworden. Damit will ich dir den Spaß an C++ nicht vermiesen. Man lernt sehr viel und je mehr man weiß, desto besser. Und bevor das Studium rum ist, geht es ja eh ums Lernen und um die Freud ;-).

    Für C# gibt es erheblich mehr Nachfrage als für C++, aber es es ist eine eher kleine Welt im Vergleich zur Java-Welt (auch stellenmäßig) und das Denken der C#-Leute ist manchmal für Java-Leute ungewohnt ("Wenn es das von M$ nicht gibt, braucht man es nicht", "Wenn es nicht von M$ ist, kann es nichts sein", etc.). Java ist sprachlich nicht auf dem Niveau von C# und wird wohl nie so richtig zu C# aufholen (aber es gibt für die JVM die Alternativen Kotlin und Scala, v.a. Kotlin ist im Kommen). Aber das Ökosystem von Java ist gewaltig und es gibt überhaupt nichts vergleichbares. Die Sprache ist zwar eher hausbacken, aber was es an Systemen, Tools, Frameworks, Libraries in Java gibt ist einfach unübertroffen. Die meisten der großen Innovationen der letzten 10 Jahre sind in der Java-Welt passiert (Big Data, Hadoop, Spark, Cassandra, teilweise NoSQL, uvm.). Für nichts davon gibt es in der .NET-Welt eine Entsprechung.

    Ich würde machen was dir Spaß macht, aber mich im Kopf nicht so sehr auf eine Sprache festlegen. Einfach nur lernen, lernen und für Bewerbungen später was zeigen können ist wichtig.

    Grüße, Saxo



  • Saxo schrieb:

    Was C++ angeht muss man sagen, dass es nur noch ziemlich selten verwendet wird.

    Halte ich für eine kühne Behauptung.

    Saxo schrieb:

    Für C# gibt es erheblich mehr Nachfrage als für C++

    Das ebenfalls. Das belegen sogar immer noch Statistiken, dass das nicht stimmt. entsprechend des Rankings von Stackoverflow und Github liegen C++ und C# fast gleich auf in der Verbreitung.

    Saxo schrieb:

    und das Denken der C#-Leute ist manchmal für Java-Leute ungewohnt ("Wenn es das von M$ nicht gibt, braucht man es nicht", "Wenn es nicht von M$ ist, kann es nichts sein", etc.).

    Kannst du das belegen? Ich programmiere seit 2009 beruflich in C# / .NET. Ich habe noch nie, wirklich noch nie von jemanden derartige Aussagen Aussagen gehört / gelesen.

    Ansonsten habe ich erstmal nichts weiter beizutragen.



  • Solix0x schrieb:

    ...für Desktopprogramme C# mit WPF und für Konsolenprogramme C++ zu verwenden, da sich diese Optionen in den 3 Bereichen für mich als am besten herausgestellt haben.

    Da aber C++ meine Lieblingprogrammiersprache ist, möchte ich am ehesten mit C++ beruflich arbeiten. Ist das realistisch oder sollte ich beruflich auf WPF gehen? Ich habe mir vorgenommen in allen 3 Bereichen gut zu sein.

    Ich lese hier, dass C++ nur noch selten verwendet wird. Den Eindruck habe ich nicht - im Gegenteil. C++-Entwickler werden wie ich das mitbekomme händeringend gesucht. Ich kann jedenfalls durchs Telefon sehen, wie mein Chef die Augen verdreht, wenn mal wieder ein "Paketdienst" oder ein "ehemaliger Studienkollege" anruft, um mich zu sprechen. Ich persönlich finde solche Guerilla-Anwerbeversuche ja schön. So muss ich meinem Chef nicht erklären, warum er mein Gehalt zahlt. Da fänden sich auch andere und es nie verkehrt, wenn der Chef die eigene Anwesenheit zu schätzen weiß. 🙂

    "Konsolenprogramme" sind eher selten.

    Ich bin offiziell C# und C++ Entwickler. Wir machen alles Interessante in C++, die GUI kommt von C#. In der Firma wo ich vorher war, war ich Java-Entwickler. Die machten alles Interessante in C++ und die GUI in Java. Mich haben sie eingestellt, weil ich C++ kann und - Zitat - "C++-Entwickler wissen, was sie tun". Das machte auch Gehaltstechnisch einen Unterschied. Sie waren mit meiner Gehaltsvorstellung nicht einverstanden und meinten, einen Java-Entwickler bekommt man auch billiger. Dem habe ich zugestimmt. Dann haben wir kurs geschwiegen und man meinte, an ein paar tausend Euro soll es nun auch nicht scheitern.
    Ich habe da also vorrangig Java debuggt und mein Ziel war in die C++-Abteilung zu wechseln, aber so lange habe ich Java nicht ertragen.

    Auch hier habe ich mit C# seit Jahren nichts mehr am Hut. Als C++-Entwickler wärst Du viel zu wertvoll, als dass man Dich Buttons hin und her schieben lässt. Das kann auch ein Praktikant machen oder halt ein gehaltsmäßig günstigerer Entwickler.
    Ich habe mal GUIs per Reflection gebastelt und konfigurierbare Dialoge geschrieben, die sich also auf unterschiedliche Probleme anpassen lassen, weil ich keinen Bock hatte Buttons hin und her zu schieben.
    So habe ich vielleicht zwei, drei primitiven Dialoge gebastelt als ich eingestellt wurde und die waren deutlich komplexer als das, was hier sonst gemacht wurde. Die Software hat wohl um die 300 Dialoge. In jedem Fall: Zu viele.

    Ich arbeite vorrangig an Libraries, die dann von C# aus aufgerufen werden.
    Konsolenprogramme, wie grep oder ähnliches werden in der Firma eher gar nicht programmiert. Sowas landet dann eher in einem Pythonskript. Wir haben vielleicht 10 Konsolenprogrämmchen, beispielsweise um die Unit-Tests anzuwerfen.

    C# ist bei uns eigentlich nur für die Knöpfchen da. Ansonsten brauchen wir die GUI für 3D Darstellungen. Dafür wird der Kontext des C#-Fensters an C++ überreicht und das Rendern passiert dann wieder in C++.

    Bzgl Konsolenprogramm in C++ - Ich arbeite an einem Compiler. Aber das ist quasi Hobby, dafür bezahlt mich halt keiner.
    Auch wenn Libraries wie NCurses durchaus Spaß machen können, schon alleine weil man hier GUIs auch sehr schnell und ohne VNC/RD/Spice über das Netz übertragen kann, sind Konsolenprogramme auf Mac und Windows nicht mehr so richtig in Mode. 😉



  • Xin schrieb:

    Ich lese hier, dass C++ nur noch selten verwendet wird. Den Eindruck habe ich nicht - im Gegenteil.

    Die Anzahl Stellenausschreibungen für C++ ist sehr viel geringer als Für C# oder für Java. Mal in jobworld.de oder andere Meta-Suchmaschine schauen wieviele Stellen für C++, C# und Java rauskommen. Das sieht man einen Unterschied, der einen ganzzahligen Faktor ausmacht.



  • Saxo schrieb:

    Xin schrieb:

    Ich lese hier, dass C++ nur noch selten verwendet wird. Den Eindruck habe ich nicht - im Gegenteil.

    Die Anzahl Stellenausschreibungen für C++ ist sehr viel geringer als Für C# oder für Java. Mal in jobworld.de oder andere Meta-Suchmaschine schauen wieviele Stellen für C++, C# und Java rauskommen. Das sieht man einen Unterschied, der einen ganzzahligen Faktor ausmacht.

    Und?

    Das ist eine andere Aussage als dass C++ nur noch selten verwendet wird.

    Wer C++ auf einem brauchbaren Niveau kann und/oder C++ bei Xing oder Linkedin als Qualifikation angegeben hat, muss regelmäßig Jobofferten ablehnen.
    Das ist nicht meine Definition für selten.

    Ich bin mit einem jungen Kollegen in der Probezeit zu einem C++-Usertreffen gegangen, das erste was er davon sah war ein Plakat "Wir suchen Dich!" und den freundlichen Hinweis, falls er mal einen neuen Job sucht, er sich gerne melden kann.

    Die Anzahl der Stellen ist relevant wenn man wissen will, wo viel Konkurrenz ist. Aber definitiv nicht, wo sich gute Chancen für einen Entwickler ergeben. Als Java-only oder C#-only Entwickler kann man jederzeit ersetzt werden.
    Als C++-Entwickler will ich im Bewerbungsgespräch auch umworben werden.
    Das ist meine Definition für gefragt.

    Als C++-Entwickler ist die aktuelle Job-Situation von Vorteil.
    Bei meinem letzten Jobwechsel vergingen von "Ich will einen Job" bis "Ich habe ein sehr interessantes Angebot und einen unterschriebenen Arbeitsvertrag" 9 Tage. Ich habe nur die Hand gehoben und gesagt "Ich wäre dann frei".

    Die Anzahl der Stellen für Java und C# sind hoch, weil die Kompetenz, das Verständnis zur Maschine, das C++ verlangt, und die möglichen Softwarearchitekturen, die C++ ermöglicht, zu selten ist.
    Java und C# kann man auch so programmieren, die Leute sind in den Basics von OOP ausgebildet und das war's häufig. Den Rest erledigt StackOverflow. Ich durfte es oft genug debuggen... Aber Leute auf dem Niveau sind verfügbar.
    Wer ein Projekt also mit Java oder C# umsetzen kann, wird das tun, selbst dann, wenn er lieber C++ nehmen würde, weil er für C++ zu schlecht an Entwickler kommt.
    Und als C++-Entwickler kann ich mich genauso auf C# oder Java-Stellen bewerben. Wenn mich etwas interessiert, kann ich genauso dort wildern.

    Die Situation für C++-Entwickler ist optimal. Die Situation für Firmen, die in C++ entwickeln müssen ist schwierig.
    Der Threadstarter will programmieren, keine Firma gründen.



  • Ich seh das ähnlich wie Xin. Außerdem gibts noch genügend Stellen. Wenn ich einfach nur nach C++ Stellen bei mir in der Nähe suche, finde ich durchaus einige. Bei C#/Java sind es nicht unbedingt deutlich mehr. Dafür meist deutlich langweiligere. Ich will keine 0815 Webseiten oder Vertreterprovisionierungen in einer 5-Mann Klitsche mehr programmieren.



  • Xin++

    Die Anzahl der Stellenausschreibungen sollte eigentlich Inverse zur Qualitaet des Berufs sein, denn wenn X ein besserer beruf als Y waere (bessere bezahlung, erfuellende aufgaben, angesehener usw.), dann wuerden die leute die Y machen zu X abwandern/migrieren.

    In meiner branche (Spieleentwicklung) gibt es vermutlich viel mehr c# angebote als c++, und es gibt sehr viel mehr c# programmierer (weil es sich viele nach ein paar unity tutorials zutrauen), jedoch sind das low cost bereiche (z.b. mobile games) in denen $2000/Monat schon weit ueber median ist. C++ angebote sind seltener, dort wollen auch die meisten rein (z.B. um AAA games zu machen), entsprechend ist das anfangsgehalt auch das mehrfache.

    wenn die c#/unity stellenangebote die besseren wären, gebe es in meiner branche zuhauf freie c++ stellen.
    Deswegen denke ich, wenn es grundsaetzlich genug arbeitnehmer gibt, sind in jeder branche eigentlich die meisten stellen dort offen wo niemand sein will.



  • rapso schrieb:

    in denen $2000/Monat schon weit ueber median ist.

    Was ist das für ein Gehalt? In den USA? Für Fachinformatiker?



  • Mechanics schrieb:

    rapso schrieb:

    in denen $2000/Monat schon weit ueber median ist.

    Was ist das für ein Gehalt?

    das was dir oft als unity dev (unter)geboten wird.

    In den USA?

    standort ist dabei oft egal, da das "studio" "virtuel" ist. Vor ort arbeiten zu koennen ist schon gehobener status, dann muss das eine firma sein die ihre nieche gefunden hat. da kannst du ein wenig mehr abraeumen. (vergiss nicht auf US zu stellen)

    Für Fachinformatiker?

    fuer "unity developer" und desgleichen. wenn die auswahl ausreichend ist, ist der titel und abschluss nicht wichtig, du wirst bezahlt wenn du lieferst und da reicht der, der am wenigsten verlangt.
    Deswegen die vielen vielen angebote.

    wenn du dich ueberzeugen willst -> unity connect. da kannst du eine festanstellung fuer $5/h bekommen. (Und bitte sprechen wir dabei nicht ueber ueberstunden 🙄 )



  • Mechanics schrieb:

    rapso schrieb:

    in denen $2000/Monat schon weit ueber median ist.

    Was ist das für ein Gehalt? In den USA? Für Fachinformatiker?

    Bis in die USA muss man dafür nicht. Dafür brauche ich mir nur mein Gehalt anzusehen.



  • inflames2k schrieb:

    Mechanics schrieb:

    rapso schrieb:

    in denen $2000/Monat schon weit ueber median ist.

    Was ist das für ein Gehalt? In den USA? Für Fachinformatiker?

    Bis in die USA muss man dafür nicht. Dafür brauche ich mir nur mein Gehalt anzusehen.

    was spricht gegen wechseln? Wenn du was drauf hast sollte da schon deutlich mehr drinnen sein.



  • Ich meinte vor allem wegen $. Mir ist noch nie untergekommen, dass hier jemand sein Gehalt in $ angeben würde.