Moin, hab im E-Technik Studium und darüber hinaus intensiv die Sprache C gelernt und schaue mich jetzt nach einem Nachfolger um. C++ wäre ja sicher die sinnvollste Erweiterung, vor allem im Ingenieursbereich. Vor allem die ganze Pointer/Embedded Geschichte aus C fortzusetzen ist schon ziemlich reizvoll. Python interessiert mich jedoch am meisten, vielleicht auch wegen Deep Learning usw. Java fand ich immer uninteressant, könnte aber vielleicht auch wichtig sein? Kurzgefragt: Was könnt ihr mir empfehlen? Wenn man schon sehr gute Programmierkenntnisse in C besitzt...
C++ wäre ja sicher die sinnvollste Erweiterung, vor allem im Ingenieursbereich. Vor allem die ganze Pointer/Embedded Geschichte aus C fortzusetzen ist schon ziemlich reizvoll. da hast du dir die Antwort praktisch selbst gegeben....
Oft braucht man im Firmenalltag mehrere Sprachen. Unsere Firmware ist in C++, komplexere hausinterne Tools in C++ und C#, sowie hunderte Scripte und einfachere Tools in Python. Will man mithalten, muss man alle können oder sich zumindest schnell einarbeiten.
C++ erweitert C um typsicherheit und vor allem um Objektorientierung. OO können andere Sprachen auch, für embedded oder μC hat man aber noch die Maschinennähe. Mit all seinen Fallstricken. OO Programmierung ist genial wenn man es verstanden hat. Aber Programmiersprache ist hier Religion, keine gute Frage hier.
du wirst auch ohne Deep Learning python brauchen. Das ist die Sprache der Wahl für cicd-automatisierung. Kein größeres Softwareprojekt kommt heutzutage noch ohne aus. C++ ist stark, aber leider auch ein Molloch von einer Programmiersprache. Hier gut zu sein ist Arbeit, aber auch sehr gefragt, da viele Embeddedprojekte auf C++ wechseln. Java wird in meinem Freundeskreis ausschließlich von Informatikern gesprochen. Hierüber kann ich nicht viel sagen; hab nämlich selbst eine gewisse Verachtung gegenüber der Sprache. Ich habe das Gefühl, das wird meist für PC-Software verwendet, mit GUI, Datenbankanbindung, etc.
Hi Juergen, tja, würde mal sagen, das kommt darauf an, in welchen Bereichen Du unterwegs sein wirst. Ich mach ausser zuhause nichts im embbbed Bereich, auf Arbeit habe ich fast nur mit Python zu tun. Früher mal nur mit Java und C , hängt ebend auch von den Projekten ab.... Wenn Du Dich überall etwas umschaust kann es nicht schaden. ML ist halt eher auf der Python-Schiene angesagt ... Gruß Ingo
Juergen schrieb: > Was könnt ihr mir empfehlen? Wenn man schon sehr gute > Programmierkenntnisse in C besitzt... Ich würde dir Python empfehlen. Aber nicht als Nachfolger, sondern als Zusatzoption. Persönlich nutze ich beide recht viel, je nach Anwendungsfall. Wenn es grafisch oder textlastig (Parser) wird, wird mir C schnell zu anstrengend; für binäre Daten (YUV-Daten usw.) wird mir Python zu anstrengend. Das richtige Tool für den Job, und mit C und Python bist du gut aufgestellt.
deepy schrieb: > C++ wäre ja sicher die sinnvollste Erweiterung, vor allem im > Ingenieursbereich. Vor allem die ganze Pointer/Embedded Geschichte aus C > fortzusetzen ist schon ziemlich reizvoll. > da hast du dir die Antwort praktisch selbst gegeben.... Bin absolut der gleichen Meinung und danach vielleicht bisschen Linux (Konsolen Befehle) und SQL Bist dann gut bewaffnet für den Krieg ;) Java,PHP,Phyton,HTML,CSS,Assembler ... lass lieber die Finger weg bis diese von sich auf dich zukommen - viel ist nicht immer besser.
Juergen schrieb: > C++ wäre ja sicher die sinnvollste Erweiterung, vor allem im > Ingenieursbereich. > Python interessiert mich jedoch am meisten, vielleicht auch wegen Deep > Learning usw. Ich würde diese beiden empfehlen, und zwar in dieser Reihenfolge. C++ ist gut um Deine C-Kenntnisse zu erweitern und auf ein neues Niveau zu heben, Python ist gut um Dinge zu automatisieren, mal eben ein schnelles GUI oder ein Webinterface zu entwickeln, und natürlich für Aufgaben rund um Datenanalyse, -Visualisierung, Machine Learning und viele andere Anwendungsfälle. C++ und Python ergänzen sich auch deswegen sehr gut, weil es sehr einfach ist, sie ineinander einzubinden, also Python um eigene C- oder C++-Module zu erweitern oder, andersherum, Python als Scriptsprache innerhalb eines C++-Programms zu benutzen. Java habe ich noch nie gemocht -- sehr zum Leidwesen meines damaligen Arbeitgebers Sun Microsystems -- und sehe es zumindest im Moment auch eher auf dem absteigenden Ast, zumindest was neue Projekte angeht. Dafür sorgen schon Oracle mit den neuen Lizenzbedingungen, einem viel zu schnellen Releasezyklus und anderen Sprenzchen, die mittlerweile dazu führen, daß bereits viele Java-Programme jeweils ihre eigene Laufzeitumgebung mitbringen und damit die ganze Idee hinter der Sprache -- "write once, run anywhere" -- konterkarieren. Trotzdem werden wir Java sicherlich so bald nicht los, dafür ist die vorhandene Codebasis natürlich viel zu groß...
Juergen schrieb: > hab im E-Technik Studium und darüber hinaus intensiv die Sprache C > gelernt und schaue mich jetzt nach einem Nachfolger um. Schaue dich lieber nicht nach einem Nachfolger um, sondern nach Ergänzungen. Egal, was immer verzapft wird: C ist und bleibt sehr nützlich für viele Anwendungen. Gerade im Embedded-Bereich. Juergen schrieb: > C++ wäre ja sicher die sinnvollste Erweiterung, vor allem im > Ingenieursbereich. Vor allem die ganze Pointer/Embedded Geschichte aus C > fortzusetzen ist schon ziemlich reizvoll. C++ ist eine gute Wahl. Geschmacklich lässt sich streiten. Ich finde die Syntax teils abartig hässlich, aber die Sprache ist solide. Tu dir einen Gefallen und lerne "modernes" C++. Gerade in den letzten Sprachversionen sind viele Verbesserungen und nützliche Wege eingebaut worden, die einem das Leben leichter machen und auch Memory-Leaks etc. reduzieren (smart pointer, move syntax, etc.). Juergen schrieb: > Python interessiert mich jedoch am meisten, vielleicht auch wegen Deep > Learning usw. Python ist ebenfalls eine sehr nützliche Sprache. Mittlerweile vermutlich sogar absolut erforderlich. Der Anwendungszweck ist halt ganz anders als bei C++. Python ist nicht sonderlich schnell, aber dafür sehr schnell zu entwickeln mit einer unglaublich großen Anzahl an bereits erprobten Libraries. Ich mache eigentlich alles mit Python, vom kelien Skript, das etwas ausrechnet, oder kopiert, bis hinzu Testautomatisierung am Messstand. Juergen schrieb: > Java fand ich immer uninteressant, könnte aber vielleicht auch wichtig > sein? Ja. Java ist gerade im "Enterprise"-Bereich sehr nützlich. Es gibt da auch sehr viele Jobs für. Vorteile von Java: - Plattformunabhängig - Objektorientiert mit garbage Kollektor. Wenn du bspw. ein GUI Programm schreiben willst, das du einem Kunden geben willst, kann Java die optimale Lösung sein, da das unter Windows, Linux etc. einfach tut. Ich persönlich finde Java nicht besonders toll. Kann mich, falls erforderlich, aber trotzdem Durchwusteln. Sprachen, die da "ähnlich" sind: 1) C#: Quasi die Microsoft-Alternative zu Java. Auch einge nützliche features, aber eigentlich nur für Windows-Nutzung wirklich brauchbar. 2) Go: Auch eine objektorientierte Sprache mit garbage collection. Sehr gute Plattformunabhängigkeit. Eine weitere Sprache, die ich sehr interessant finde, ist Rust. Rust hat viele gute Ansätze, ist aber leider (noch) nicht so weit verbreitet. Aber es läuft schnell wie C und hat aber durch die richtigen Sprachfeatures es geschafft, Memory-Leaks nahezu komplett zu verhindern. In Summe sollte jeder Prorammierer was aus dem kompletten Fundus haben: 1) Sprache für Schlanke Embedded Sachen: C / C++ / Rust 2) Objektorientierte Sprache für aufwändigeres Zeug: C++ Go C# / Java / Rust 3) Rapid Prototyping Skriptsprache: Python etc. Wie du siehst, deckt man diese Felder bereits mit C/C++ und Python als generische hochflexible Skriptsprache bereits sehr gut ab. Kenntnisse in anderen Sprachen (zumindest Leseverständnis) ist aber nie ein Fehler.
Beitrag #6688402 wurde von einem Moderator gelöscht.
Ein guter Entwickler stellt zwei Fragen wie Kommentiere ich aus und wo kommt das Semikolon hin. Der Spruch, ist zwar etwas Flapsig formuliert, trifft im Kern aber ganz gut das tägliche Geschäft. Du wirst, wenn Du Dich mit Computer und Embedded beschäftigst, viele Sprachen kennenlernen und das eine oder andere Mal auch Programme in Sprachen ändern müssen, welche Dir nicht so liegen. Mit einem Guten theoretischen Grundlagen Wissen ist, das aber nicht so wild wie es vielleicht erscheint. C++ ist gut sich das ganze OOP zeug rauf zu schaffen, wenn Du bis jetzt nur C geschrieben hast, hast Du noch große Weiße Flächen auf Deiner theoretischen Grundlagen Landkarte. Eine andere OOP Sprache tut es aber auch. Python ist momentan sehr beliebt, gefühlt kann die Scriptsprache alles und sie zu können ist sicherlich eine gute Erweiterung Deiner Fähigkeiten. Da Python auch OOP kann, könntest das nötige Wissen auch hier erarbeiten. Als Letztes möchte ich Dir Rust, empfehlen. Wäre Rust eine Aktie, würde man das als Risiko Anlage bezeichnen. Ob sich Rust im Embedded Bereich durchsetzt ist nicht ganz klar, aber Rust hat viele Freunde und ist eine inhärent sichere Sprache, welche zurzeit auch auf Embedded und sogar im Linux Kernel ernsthaft diskutiert wird. Stark vereinfacht kann man sagen Rust ist das was C++ hätte sein können, und hilft eine Menge typischer Programmierfehler zu verhindern. Rust ist eine schöne moderne Programmiersprache, welche den Entwickler zu sauberen Arbeiten zwingt, nicht jeder mag diese und vielleicht bleibt Rust ein Nischen Produkt. Aber wenn Rust sich durchsetzt wärst Du vorne mit dabei und wenn nicht, schaden tut es sicher auch nicht das zu können.
Falls auch Web-Entwicklung für Dich mal relevant werden könnte, wäre auch Javascript (oder eine nach Javascript transpilierende Sprache, z.B. TypeScript) ein interessanter Kandidat. Denn bei Web-Entwicklung hat man serverseitig zwar die Wahl zwischen diversen Programmiersprachen - aber da man clientseitig eh zwingend Javascript benötigt, muss man mit Javascript nur eine einzige Sprache lernen, um gleich beide Seiten abzudecken. Ausserdem ist Javascript mittlerweile eine richtig nette Programmiersprache - der schlechte Ruf, den Javascript früher zurecht hatte, ist heutzutage nicht mehr gerechtfertigt. Wohl keine andere Programmiersprache hat sich seit ihren Anfängen dermassen drastisch verändert/weiterentwickelt.
Juergen schrieb: > Was könnt ihr mir empfehlen? Wenn man schon sehr gute > Programmierkenntnisse in C besitzt... Pascal, Oberon, Modula-2, Ada, ...
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.