Das Alte Thema: C++ Lernen und wie anfangen
-
Hallo Leute,
Ich habe mich hier angemeldet, in der Hoffnung ein wenig Hilfe zu bekommen, C++ zu lernen. Ich bin Bastler und habe nicht vor, die Sprache beruflich einzusetzen, aber die Projekte werden immer komplexer, und es gibt langsam gerade jetzt wo Microcontroller immer mehr im Kommen sind keine Möglichkeit mehr, ums selbst programmieren rum zu kommen. Ich habe vom Programmieren selbst noch so gut wie keine Kenntnisse, weiß aber z.B. bereits wie ein Compiler funktioniert, und was er macht. Nun wollte ich euch mal fragen, was es alles zum durchwälzen gibt, was sinnvoll ist, und ob es für den Anfang gewisse Hardware (kits) gibt, mit der man sinnvoll üben kann z.B. Arduino?
Ich hoffe dass ihr mir helfen könnt, ich schiebe das Thema programmieren schon ewig vor mir her, aber wie geschrieben, jetzt werde ich so langsam nicht mehr drum rum kommen.
-
Meine empfehlung fuer soetwas waere ein SBC deiner wahl und eine script sprache, nicht C++.
-
ich würde dir C und den msp430 empfehlen. C ist einfach zu erlernen und der msp430 kostet ungefähr 35€. oder wenn es dir nur ums basteln geht: kauf dir einen raspberry pi, den kannst du auch mit C programmieren.
-
@Cardiac sagte in Das Alte Thema: C++ Lernen und wie anfangen:
Meine empfehlung fuer soetwas waere ein SBC deiner wahl und eine script sprache, nicht C++.
Ich weiß dass C++ eine schlechte Anfangssprache ist, aber da ich später mal dinge wie den STM32 usw. programmieren will, wird da kein Weg dran vorbei führen...
-
@M20001 die programmiert man aber auch mit C
-
@Wade1234 sagte in Das Alte Thema: C++ Lernen und wie anfangen:
C ist einfach zu erlernen
BrainFuck auch.
-
http://www.stroustrup.com/bs_faq.html#learning
https://www.c-plusplus.net/forum/topic/332880/linkliste
https://isocpp.org/get-startedFür C++ Embedded sind vielleicht die Vorträge von Dan Saks interessant wie z.B. Writing better embedded Software - Dan Saks - Keynote Meeting Embedded 2018
-
@manni66 ich mache es mir mal einfach und sage, dass man genug argumente für C bekommt, indem man einfach
linus torvalds c++
in die suchmaschine eingibt.
-
@Wade1234 sagte in Das Alte Thema: C++ Lernen und wie anfangen:
@manni66 ich mache es mir mal einfach und sage, dass man genug argumente für C bekommt, indem man einfach
linus torvalds c++
in die suchmaschine eingibt.Wenn man denn Mann für unfehlbar hält ...
-
@manni66 sagte in Das Alte Thema: C++ Lernen und wie anfangen:
@Wade1234 sagte in Das Alte Thema: C++ Lernen und wie anfangen:
@manni66 ich mache es mir mal einfach und sage, dass man genug argumente für C bekommt, indem man einfach
linus torvalds c++
in die suchmaschine eingibt.Wenn man denn Mann für unfehlbar hält ...
ja das ist eben so eine sache. was ist denn jetzt
richtig
und was istfalsch
?
-
@Wade1234 sagte in Das Alte Thema: C++ Lernen und wie anfangen:
@manni66 sagte in Das Alte Thema: C++ Lernen und wie anfangen:
@Wade1234 sagte in Das Alte Thema: C++ Lernen und wie anfangen:
@manni66 ich mache es mir mal einfach und sage, dass man genug argumente für C bekommt, indem man einfach
linus torvalds c++
in die suchmaschine eingibt.Wenn man denn Mann für unfehlbar hält ...
ja das ist eben so eine sache. was ist denn jetzt
richtig
und was istfalsch
?Ich habe viele Jahre in C (angefangen mit K&R) und noch mehr Jahre in C++ programmiert. Mein perönliche Meinung: Torvalds liegt falsch.
-
Die Sache ist ja die dass Linus darin viel weniger über C++ sagt als über C++ Programmierer. Bzw. genauer: die C++ Programmierer mit denen er so zu tun hatte die ihm Code für den Kernel unterjubeln wollten. Und das gefärbt/verstärkt durch Umstände wie z.B. dass er einfach C++ nicht mag.
Davon abgesehen mag es durchaus stimmen dass es weniger C Programmierer gibt die versuchen schrottigen Code im Kernel einzuchecken bzw. "grossartige" Vorschläge liefern wie etwas implementiert werden sollte als es C++ Programmierer gibt die das versuchen.
Nur daraus kann man mMn. keines der folgenden Dinge folgern:
- Dass C++ doof machen würde
- Dass C++ schlecht sei
- Dass es nur doofe C++ Programmierer gäbe
(Wobei er den letzten Punkt IIRC gar nicht behauptet, aber die ersten beiden schon irgendwie impliziert.)
-
Ahh... ist es mal wieder so weit? Ich geselle mich mal mit meinem Ölkanister zu eurem brennenden Schuppen
Für mich persönlich gäbe es 3 Gründe, auf C zu setzen:
- Historisch: Projekt ist bereits weit fortgeschrittenes C-Projekt
- Expertise: mehr C-Fachwissen im Team bzw. prävalentes "C-Mindset"
- Tools: schlechte Verfügbarkeit von C++-Compilern und Entwicklungswerkzeugen
Für alles andere gibt es eigentlich nichts, dass man mit C++ nicht mindestens genau so gut machen könnte. Vielzitierte Argumente wie Code-Bloat, weniger "Kontrolle" oder schlechtere Perfomance sind Vorurteile, die sich bei näherer Betrachtung schnell in Luft auflösen.
Was den berühmten Torvalds-Rant angeht, da finden sich eigentlich kaum Argumente gegen die Sprache selbst - das geht viel mehr gegen schlechte Programmierer und Designentscheidungen. Keine der kritisierten Features wie Exceptions, OOP oder nicht aufs letzte Bit optimierte Datenstrukturen der Standardbibliothek muss man verwenden, wenn es in dem Projekt keinen Sinn macht - das ist alles eine Frage eines guten Software-Designs - und das kann man in jeder Sprache verbocken.
Und wenn man die Features doch mal braucht, ist es gut, dass sie sauber und gut lesbar in die Sprache selbst integriert sind. Ich verwende lieber virtuelle Member-Funktionen anstatt mit Funktionspointer-Tabellen zu hantieren und C-OOP á la GLib zu machen oder benutze lieber
try
/throw
/catch
anstatt beispielsweise mit so einem Exception-Abklatsch zu arbeiten, den z.B. dielibjpeg
da mitsetjmp
/longjmp
veranstaltet.
-
@Finnegan sagte in Das Alte Thema: C++ Lernen und wie anfangen:
Ich verwende lieber virtuelle Member-Funktionen anstatt mit Funktionspointer-Tabellen zu hantieren und C-OOP á la GLib zu machen oder benutze lieber try/throw/catch anstatt beispielsweise mit so einem Exception-Abklatsch zu arbeiten, den die z.B. die libjpeg da mit setjmp/longjmp veranstaltet.
Japp. Vor allem finde ich es ein Armutszeugnis dass akzeptiert wird wenn sowas vielfach neu erfunden und neu implementiert wird, dabei viele Fehler gemacht, alles irgendwie ähnlich aber nix gleich... und man dann gleichzeitig auf C++ schimpft.
Wenn das alles for "fir die Wirscht" ist, dann verwendet man es halt nicht. Und wenns doch irgendwie gut ist, ... dann könnte man ja auch mal C erweitern (*hust* MSVC __try __finally *hust*). Oder nen schniekes Code-Generator/Precompiler Dingens bauen.
-
@hustbaer sagte in Das Alte Thema: C++ Lernen und wie anfangen:
Oder nen schniekes Code-Generator/Precompiler Dingens bauen.
Waren nicht die ersten C++-Compiler buchstäblich dies?
-
@SeppJ Keine Ahnung. Mir aber Wurst. Ich sag ja nur...
-
Also kurzum C wird für den Anfang wohl besser sein, weils wie ich gerade gesehen hab zwar für alle Prozessoren die ich mal Programmieren will (STM32, PIC, Atmega usw) C++ Compiler gibt, die aber alle ein schweine Geld kosten, wogegen die C Compiler kostenlos sind. Dazu kommt dass es wie ich gelesen habe schwirig sein soll ein Programm in C zu schreiben, wenn man nur C++ gelernt hat, weil man dann zwar C quasi mitgelernt hat, aber erstmal sehen muss, was es in C alles im vergleich zu C++ nicht gibt, um keine Probleme mit dem C Compiler zu kriegen.
-
-
Ja, Microchip z.B. bietet keine kostenlosen C++ Compiler an.
-
@M20001 sagte in Das Alte Thema: C++ Lernen und wie anfangen:
Ja, Microchip z.B. bietet keine kostenlosen C++ Compiler an.
So spontan finde ich https://www.microchip.com/xcdemo/xcpluspromo.aspx
Edit: jetzt geht der Link