Entscheidungshilfe von Berufserfahrene C++ und C# Programmierer.



  • Ich benötig eine Entscheidungshilfe. Welche Sprache C++ oder C# ist die Beste, um am schnellsten ins Geschäft zu kommen (freiberuflich) und Geld zu verdienen. Der Hintergrund ist der, dass ich mit 50 Jahren und jahrelanger VB/VBA Programmierung, mich wegen Arbeitslosigkeit neu orientieren muss und notgedrungen zu vieeel Zeit habe, eine neue Sprache zu erlernen. Beide Programmiersprachen habe ich mir angesehen und bin, obwohl VB-Programmierer durchaus in der Lage, beide zu erlernen. Sprüche über VP-Programmierer die lieber das oder jenes lernen sollen, bitte weg lassen. Mir geht er wirklich um die beiden Sprachen. Ich komme nicht aus der Technik, so dass man sagen könnte, Treiber etc. auch bin ich kein Buchhalter der eher Bürosoftware programmieren kann, sondern ganz bitte ganz neutral beide Sprachen vergleichen. Beim Lesen der Postings bin ich auf die Differenzierung bei C++ gestoßen, zwischen reinem C++, MFC, und NET mit WinForm. Vielleicht auch dazu, welche Richtung am meisten gefragt ist. Gruß Christian



  • CHR-Berger schrieb:

    Beide Programmiersprachen habe ich mir angesehen und bin, obwohl VB-Programmierer durchaus in der Lage, beide zu erlernen.

    LOL. Woher willst du das wissen? Professionelle Softwareenwicklung ist nicht ohne. Da gehört weit mehr dazu, als nur die jeweilige Programmiersprache zu können (die muss man aber trotzdem sehr gut können). Und ja, ohne Sprüche über VB gehts nicht. Das Problem an VB ist nicht so sehr die Sprache. Das Problem ist, dass das ganze Umfeld sehr weit von professioneller Softwareentwicklung entfernt ist. Richtige Softwareentwicklung mit VB ist extrem selten, von VBA will ich erst gar nicht anfangen. Und da mit 50 einzusteigen, wenn man schon gewissen Denkmuster entwickelt hat, ist nicht einfach.
    Nimm .NET. Es gibt VB.NET, vielleicht kommst du damit am schnellsten voran. Wenn man .NET kann, ist der Unterschied zwischen VB.NET und C# nicht so groß, dann kannst du imer noch umsteigen. C++ würd ich dir jetzt nicht empfehlen.



  • Mechanics, du könntest dir deine Runtermachsprüche auch mal sparen.

    Klar gehört zur SW Entwicklung was dazu, aber wenn jemand C++ lernen möchte so schafft er das. Denn Zeit ist ja offensichtlich genug vorhanden.

    @CHR-Berger:
    C++ ist jetzt sicher nicht einfach, und es gibt meist einen Grund, warum man es nimmt. In unserer Firma eben für die embedded Software, um möglichst performant zu sein (naja...).
    Für die Desktop Software verwenden wir einfachere Sprachen.
    Gibt aber auch noch andere Gründe, warum man C++ verwendet. Schau dich einfach um auf den Jobbörsen, dann siehst du bald mal wofür C++ verwendet wird.

    Ich bin nicht der große Fan von MS, und auch nicht der große Fan von C#/.NET, aber ich muss zugeben, die Sprache ist echt "schön". Schön im Sinne von wirklich gut durchdacht. Alles ist irgendwie logisch gelöst, es hat mir Spaß gemacht mit der Sprache zu programmieren! Und das obwohl ich MS gegenüber sehr skeptisch eingestellt bin.
    Soll heißen: investiere die Zeit lieber in C#. Die Lernkurve ist steiler, und Stellen gibts auch mehr als genug zur Zeit.

    Das Problem bei C++ Stellen ist halt auch, dass man oft einen technischen Background braucht, z.B. grundsätzliche Hardwarekenntnisse oder ähnliches. Nicht wegen der Sprache an sich, sondern aufgrund der Einsatzgebiete.

    P.S.: damit das nicht falsch rüberkommt - C++ wird natürlich nicht nur im embedded Bereich verwendet!



  • c++ progger schrieb:

    Mechanics, du könntest dir deine Runtermachsprüche auch mal sparen.

    Oder auch nicht. Ich muss nicht immer zu jedem nett sein. Ich sage offen meine Meinung, und das ist jetzt weder Offtopic noch extra beleidigend.



  • Mit C++ bist du flexibler, C# dürfte schneller zu lernen sein. Aber freiberuflich als Programmierer wirklich Geld zu verdienen, das also nicht nur nebenbei zu machen, ist schon eine Herausforderung so wie ich das sehe, auch wenn man sein Handwerk versteht. 😉



  • Das Posting von Mechanics passt schon. Natürlich gibt es neben dem Sprachlichen Problem noch das gesellschaftliche Problem, nämlich dass ein 50 jähriger "Berufsanfänger" kaum mehr große Möglichkeiten hat, sich einzubringen, aber mir macht die Softwareentwicklung einfach auch Spaß, falls es mit einem Job im IT-Bereich nichts mehr werden sollte.



  • CHR-Berger schrieb:

    Ich benötig eine Entscheidungshilfe. Welche Sprache C++ oder C# ist die Beste, um am schnellsten ins Geschäft zu kommen (freiberuflich) und Geld zu verdienen. Der Hintergrund ist der, dass ich mit 50 Jahren und jahrelanger VB/VBA Programmierung, mich wegen Arbeitslosigkeit neu orientieren muss ...

    Hallo Christian,

    um es kurz zu machen: lern C#.

    Warum?
    Du kommst aus der Windows Welt und Windows C++ Projekte sind wesentlich rarer. C/C++ spielt sich in vielen Umgebungen (Linux, embedded, u.v.m.) ab und da musst Du nicht nur die Sprache lernen, sondern auch das drum herum.

    Bei C# bist und bleibst Du bei .NET und vergleichbarem. Du ziehst aus Deinem Wissen viel heraus. Du wirst unter C#/.NET eine höhere Projektauslastung schaffen gegenüber "nur" C++ unter Windows, so ist die Lage in den letzten Jahren wenigstens. Und Du wirst eher ein Einsteigerprojet unter C# finden gegenüber C/C++ - da habe ich seit Jahren kaum 'Junior'-Positionen gesehen. (Du magst Denken: "ich bin kein Junior", aber ohne nachweisbare C# Projekte bist Du das für C#). Das ist keinesfalls eine Wertung Deiner Fähigkeiten.

    Zudem ist C# näher an VB und Du musst unter C++ Probleme lösen, die Du bisher nicht mal kennst. Dazu kommt, dass man bei C++ ein höheres Maß an professionalität erwartet (ich weiß, viele werden jetzt aufschreien), weil die Sprache im Prinzip anspruchsvoller ist (das heisst nicht: besser), der Entwickler muss disziplinierter sein. Dadurch, aufgrund Deiner Historie, wirst Du auch wesentlich schlechter Fuß fassen.

    Ich will hier weder C++ schlecht reden (ich verdiene in dem Bereich seit 25 Jahren meine Kohle), aber ich sehe das aus Deiner speziellen Situation und ich schreibe, was Entscheider denken...

    Ciao
    MM



  • Hallo MM,

    von Linux habe ich tatsächlich nur soviel Ahnung, als wie ich mit der Oberfläche machen kann, das ist nicht viel. In letzter Zeit war aber zu lesen, dass Microsoft das NET ersetzen wird durch WinRT und dann mit C++ verstärkt an die Entwicklung geht. Wenn tatsächlich C# spürbar reduziert werden würde, hätte ich nicht nur als Berufsanfänger zu kämpfen, sonder auch mit den zu erwartenden C# Entwickler. Vielleicht habe ich da auch etwas falsch gelesen oder verstanden. Nochmal in eine Sackgasse zu laufen, dass packe ich nicht.



  • Kurz zu meinem Hintergrund, ich arbeite als C#- und C++-Entwickler.

    CHR-Berger schrieb:

    Ich benötig eine Entscheidungshilfe. Welche Sprache C++ oder C# ist die Beste, um am schnellsten ins Geschäft zu kommen (freiberuflich) und Geld zu verdienen.

    Ich rate jedem jungen Menschen zu C++. Jeder, der beweisen will, dass er versteht, wie die Maschine funktioniert, der auch außergewöhnliches leisten und denken kann, rate ich ganz klar zu C++.

    Deine Frage ist aber, wie man am schnellsten ins Geschäft kommt. Du wirst Dich von VB vermutlich schnell an C# gewöhnen. C# ist an sich eine schöne Sprache, aber eben doch etwas eingeschränkter. Dafür hast Du den Vorteil, dass Du das .NET Framework, das Du mit VB.NET vielleicht schon kennengelernt hast, wieder zur Verfügung hast.

    Du kannst mit C# relativ nah an C++ rankommen über die "unsafe"-Anweisung. Auch kannst Du auf C++.NET wechseln und das kombinieren. Um auf das Level zu kommen, um C++ wirklich nutzen zu können, die Vorteile auszuspielen, die C++ vor C# hat, wirst Du auch einige Jahre Erfahrung sammeln müssen. Um aber schnell wieder produktiv und im Geschäft zu sein, würde ich Dir C# empfehlen.

    CHR-Berger schrieb:

    Beim Lesen der Postings bin ich auf die Differenzierung bei C++ gestoßen, zwischen reinem C++, MFC, und NET mit WinForm. Vielleicht auch dazu, welche Richtung am meisten gefragt ist. Gruß Christian

    C++ eignet sich für GUI-Programmierung - MFC nicht.
    Für GUIs mit C++ würde ich eher zu Qt oder wxWidgets als Zwischenstück raten, dann macht GUI unter Windows auch Spaß.

    WinForms ist ehrlich gesagt auch ein Griff ins Klo, damit darf ich mich hier gelegentlich auch rumschlagen. WPF scheint die erste brauchbare GUI für Windows zu sein.

    VB wird üblicherweise im Bereich der Anwendungsentwicklung verwendet, hier kann Dich C# durch .NET vermutlich schneller unterstützen, als C++, das in seiner Reinform (eben nicht C++.NET) erstmal ohne Framework daherkommt und Du Dir eben die gewünschten Erweiterungen selbst suchen musst (wie eben Qt der wxWidgets). Für C++ gibt's aber mehr. Wenn Du bisher aber mit VB gut klarkammst, dann wirst Du dieses mehr bisher auch nicht gebraucht haben.

    Du wirst Dich mit C# also schneller wieder "zu Hause" fühlen und daher würde ich sagen, dass Du mit C# auch schneller wieder finanziell Einnahmen machst.

    Ich wünsche Dir viel Erfolg. 🙂

    CHR-Berger schrieb:

    In letzter Zeit war aber zu lesen, dass Microsoft das NET ersetzen wird durch WinRT und dann mit C++ verstärkt an die Entwicklung geht. Wenn tatsächlich C# spürbar reduziert werden würde, hätte ich nicht nur als Berufsanfänger zu kämpfen, sonder auch mit den zu erwartenden C# Entwickler.

    Ähh... Du bist Du doch kein Berufsanfänger mehr...!?

    Zu dem Punkt höre ich in der letzten Zeit auch einiges, aber wenn man Java ersetzen könnte, hätte man diese Fehlentwicklung vermutlich auch längst gekillt. Geht aber nicht, zuviele Anwendungen existieren in Java und es gibt noch reichlich Leute, die Java für was tolles halten. Java stirbt, es stinkt, aber wird noch bestimmt ein Jahrzehnt brauchen, bis es verrottet. Und ganz ehrlich - wenn einer Geld verdienen will, warum sollte er nicht Java lernen, da gibt's reichlich Jobs.
    C# ist jetzt 10 Jahre lang am Markt. C# und .NET wird bestimmt nicht einfach ersetzt. Microsoft stößt in letzter Zeit öfter mal die Kunden vor den Kopf, wenn man so an Vista oder Win8 denkt, aber einer Vielzahl aktueller Software die Basis zu entziehen, das kann sich MS definitiv nicht leisten.

    Dazu auch der Hinweis, C# ist nicht C++, aber wenn Du die Konzepte von C# verstehst und dort Erfahrungen gesammelt hast, hast Du ein Drittel bis die Hälfte des Weges zu C++ bereits hinter Dir. Und damit kann man auch was anfangen.

    Keiner fängt mit 100% C++ an. Ich programmiere seit fast 20 Jahren C++, ich habe dieses Jahr etwas in C++ erstmals benutzt, was ich in der ganzen Zeit in C++ nie benutzt habe und auch nur vermutet habe, dass C++ das eventuell kann. Ich habe es bisher einfach nicht gebraucht. C++ ist ein Schweizer Taschenmesser - aber viele wissen auch nur, wie die Klinge und der Zahnstocher funktioniert. Und wenn Du C# anständig kannst, packst Du auch die Umgewöhnung zu C++.



  • Hallo CHR-Berger,

    wie die Entwicklung von .NET aussieht, kann man schwer vorhersagen, aber daß WinRT der alleinige Ersatz dafür wird, das bezweifle ich doch sehr stark.
    Ich halte aber C# (wie auch meine Vorredner) für dich als die bessere Wahl, da du dort schneller zu produktiven Ergebnissen kommst. Für C++ wirst du mindestens 3 bis 5 Jahre benötigen, um professionelle Anwendungen zu entwickeln.

    Als VB Umsteiger kannst du dir auch mal Kostenloses Buch – Aktualisieren von Microsoft Visual Basic 6.0 auf Microsoft Visual Basic .NET ansehen (von VB.NET auf C# ist es dann nur noch eine Syntaxänderung, wie z.B. "begin" -> "{", "end" -> "}" etc. - es gibt auch genügend VB.NET <-> C# Converter, da beide ja auf der .NET Common Language Infrastructure (CLI) beruhen).



  • Hallo cooky451
    Die VB.NET Syntax habe ich mir auch schon angesehen, hat aber mit VB6 nicht viel gemein. Das heißt, wenn ich etwas neues lerne, dann ist der Aufwand zu C# vielleicht unwesentlich größer, als wie zu VB.NET, daher würde ich das überspringen wollen, zum C#-Entwickler in mehr Projekten gefragt werden. Mit VB6 habe ich natürlich viel mit GUI's zu tun gehabt, was mir auch liegt un das vermisse ich halt doch etwas im C++. Aber verstehen kann ich nicht, dass man mit MFC doch fast alles Anwenderprogramme programmiert hat und heute soll oder ist es nicht mehr zeitgemäß. Ware das nicht eine Marktlücke mit MFC GUI-gestaltete Programm anbieten zu können, die ohne NET laufen?



  • Hallo,
    langsam bin ich doch überzeugt, dass C# die für mich besser Lösung ist. Wie ich gesehen habe,gibt es das WPF mit XAML. Wenn ich bei Stepstone o.ä. nach C# suche, bekomme ich ca. 40 Jobangebote für Freelancer, darunter etwa 3 mit WPF-Kenntnissen. Vielleicht könnte ich mich von den "alten" C# Entwickler, mit denen ich so schnell nicht konkurrieren kann, dadurch etwas abheben, wenn ich mich darauf spezialisieren würde. Das wäre ja auch C# mit XAML. Was denkt ihr darüber?



  • CHR-Berger schrieb:

    Hallo,
    langsam bin ich doch überzeugt, dass C# die für mich besser Lösung ist. Wie ich gesehen habe,gibt es das WPF mit XAML. Wenn ich bei Stepstone o.ä. nach C# suche, bekomme ich ca. 40 Jobangebote für Freelancer, darunter etwa 3 mit WPF-Kenntnissen. Vielleicht könnte ich mich von den "alten" C# Entwickler, mit denen ich so schnell nicht konkurrieren kann, dadurch etwas abheben, wenn ich mich darauf spezialisieren würde. Das wäre ja auch C# mit XAML. Was denkt ihr darüber?

    Lern zuerst mal vernünftig C# programmieren bevor du dich spezialisierst.



  • CHR-Berger schrieb:

    In letzter Zeit war aber zu lesen, dass Microsoft das NET ersetzen wird durch WinRT und dann mit C++ verstärkt an die Entwicklung geht.

    WinRT ist eine native Bibliothek die aber auch Bindings für .NET und sogar HTML5/JS besitzt. WinRT ist somit aus C# ebenso verwendbar (Ich finde sogar angenehmer als unter C++, habe mir mal die C++ WinRT-Programmierung kurz angeschaut).

    Das sie C++ wieder etwas forcieren liegt an einigen Entwicklerfirmen. Derzeit sehe ich aber nicht das C# darunter wirklich leiden wird. Ich würde dir eindeutig zu C# raten, gerade auch (und das soll nicht abwertend gemeint sein) im höheren Alter würde ich auch durchaus die Einarbeitungszeit mit bei der Auswahl berücksichtigen. Da wirst du sicherlich schneller zum Erfolg kommen.

    Was WPF angeht solltest du dir nur bewusst sein, das sich WPF (wie alle XAML-Basierten Ansätze) merklich von der altgewohnten UI-Entwicklung unterscheidet (Anderseits basiert sowohl Silverlight, WPF und WinRT auf ähnlichen Prinzipien, das wissen ist daher nicht umsonst).

    Wobei c++ progger schon recht hat. Lerne erst einmal C#. Anschließend hast du noch immer die Möglichkeit zu sehen was da kommt.

    P.S: Ich weiß nicht warum, aber bei dem Namen "CHR Berger" habe ich das Gefühl eines Deja-Vu.


Log in to reply