C++ Automatisierung/ Bordcomputer -> was kann ich noch lernen?

elektro2

Cadet 4th Year
Registriert
Feb. 2014
Beiträge
67
Hallo zusammen :)

Ich studieren gerade Elektrotechnik und fühle mich immer mehr der Informationstechnologie hingezogen.
Beim rummstöbern im Internet habe ich rausgefunden, dass heutzutage sehr viele Produke , z.b Bordcomputer im Auto, also Navigation, Menü usw. und auch andere Steuerungen in c++ geschrieben werden. Außerdem kenne ich selber einen Ingenieur, der neue Steuerungen in der Energiebranche mit c++ entwirft, damit z.b Wärmepumpen energieeffizienter arbeiten.

Zum jetzigen Zeitpunkt beherrsche ich " ziemlich gut " Sachen wie Vererbung, Polymorphie, Templates und die STL, also sogesehen alles, was ich in OOP in der Uni gelernt habe.

Es gibt ja so viele Librarys für z.b Gaming, Audio Design.... usw.

Ich wollte Euch fragen, ob ihr mir irgendwelche Sachen empfehlen könntet, die ich auf jeden Fall noch beherrschen muss/soll.

Ich würde gerne später in diesem Bereich arbeiten und weiß, dass noch viel getan werden muss :)

Also lasst hören... Ich bin gespannt ! :)
 
Zuletzt bearbeitet:
Führ dir auf jeden Fall RAII zu Gemüte. Ist eigentlich kein sonderlich kompliziertes Konzept, ist aber in modernem C++ nicht mehr wegzudenken und wird trotzdem von tausenden Programmierern beständig ignoriert.

Wie schaut's mit Lambdas (anonymen Funktionen) aus? Und mit den Algorithmen, die die C++ standard library zur Verfügung stellt (von denen viele Hand in Hand mit Lambdas arbeiten).
 
Zuletzt bearbeitet:
Lambdas kenne ich auch ... ich kann mit Lambdas einfache Dinge, z.b einen Vector, der Integers enthält nach der Größe zu sortieren oder auch Namen alphabetisch.. Also sogesehen das, was ich in der Uni gelernt habe :)
 
elektro2 schrieb:
Zum jetzigen Zeitpunkt beherrsche ich " ziemlich gut " Sachen wie Vererbung, Polymorphie, Templates und die STL, also sogesehen alles, was ich in OOP in der Uni gelernt habe.

Das ist schon ziemlich gut.

Ich wollte Euch fragen, ob ihr mir irgendwelche Sachen empfehlen könntet, die ich auf jeden Fall noch beherrschen muss/soll.
Ich würde gerne später in diesem Bereich arbeiten und weiß, dass noch viel getan werden muss :)

Reguläre Ausdrücke. Wenn Du die nicht richtig kannst, wirst Du später nicht wirklich ernst genommen werden ;) Zunächst noch Boost, später dann die Regex-Funktionen in den Standardbibliotheken (wenn sie denn mal richtig funktionieren - die sind letztlich aus den Boost-Funktionen übernommen worden).
 
+1 fuer Boost.
Ansonsten dann nacher mehr Richtung Design Patterns und Best Practices.
 
elektro2 schrieb:
Lambdas kenne ich auch ... ich kann mit Lambdas einfache Dinge, z.b einen Vector, der Integers enthält nach der Größe zu sortieren oder auch Namen alphabetisch.. Also sogesehen das, was ich in der Uni gelernt habe :)
"Kannst du Lambdas" ist wieder ein Fall von Verwechslung des Werkzeugs mit der Arbeit, die man tut.
Lies zu dem Thema mal dies. Es ist kein C++, aber bespricht ein extrem mächtiges Instrument. "Lambdas" kommen ab 1.3.2 ins Spiel.
https://mitpress.mit.edu/sicp/full-text/book/book-Z-H-12.html#%_sec_1.3
 
Ihr habt mir schon echt coole Verfahren empfohlen. Ich habe mir mal kurz ein kleines Tutorial bei Youtube über Regular Expressions angeguckt und finde es sinnvoll, wenn ich das auf jeden Fall verinnerliche. Danach sind Lambdas dran :) :cool_alt:

Außerdem sind die Verfahren, die Ihr mir empfohlen habt, alle c++11 .. Vielleicht sollte ich mir einfach ein gutes C++ 11 Buch kaufen. Da steht bestimmt alles drin, was ich noch lernen möchte!
 
Wenn du allgemein C++ oder C++11 vertiefen willst kann ich diese Video-Reihe empfehlen:
https://www.youtube.com/user/BoQianTheProgrammer/playlists

Außerdem auch von mir boost+1 allerdings mit zwei Einschränkungen:
Boost bietet vieles, was nun in C++11 steckt. Sicher ist es oft das gleiche aber man wird in Zukunft immer die C++11 Lösung statt der Boost Lösung sehen. Dh von Boost bitte nur die Teile, die nicht schon durch C++11 erschlagen sind. Außerdem ist die Frage wie viel Sinn+Spaß es macht Boost zu lernen ohne Anwendung. Ich hab mir eher die Teile ergoogelt die ich gebraucht habe.
Die zweite Einschränkung: Ich halte von Qt viel mehr als von Boost. Dh Teile, die bereits in Qt enthalten sind würde ich immer lieber von dort verwenden. Der Punkt ist sicher geschmackssache, aber Qt ist bei weitem nicht nur ein Gui Toolkit und sollte (imho) in keinem größeren C++ Projekt fehlen - auch wenn es garkeine Gui hat.
 
Zuletzt bearbeitet:
Ich würde mich ja mal mit dem programmieren von microcontrollern und der Nutzung von Realzeitbetriebssystemen beschäftigen.
Programmierung mit mehreren Threads kannst du?
Entwurfsmuster sollte man kennen, aber nach meinem Gefühl finden die meisten davon bei eingebetteter C++ SW viel weniger Verwendung als bei Desktop/Server Applikationen.
 
Schnapp dir am besten ein Kompendium, da steht dann alles mögliche stark komprimiert drin.
Brauchst dann nur noch durchblättern. Regex sind allerdings definitiv Pflicht für ALLE Sprachen. Multithreading und Synchro per Mutex / Semaphor kannst du schon ?

Was du noch gebrauchen könntest ist alles in Richtung Verteilte Systeme - also Client/Server Kommunikation, auch zwischen verschiedenen Sprachen, z.B. C Server, Java Client. Echtzeit / Zeitkritische Programmierung sind Pflicht, also so Kram dass die Bremse sofort reagieren muss egal was da grade läuft - dafür musst du dich wieder mit Rechnerarchitekturen (was tut die CPU / RAM interen?) und Betriebssystem Programmierung auskennen (Priorisierung, Scheduling, Interupts usw.).

Ich wundere mich nur das Elektrotechniker so Zeug programmieren. Das machen wir im Prinzip in der Angewandten Informatik , also generell Embedded. Im Master macht man dann kaum was anderes wenn man die passenden Module wählt.
 
Zuletzt bearbeitet von einem Moderator:

Ähnliche Themen

Antworten
7
Aufrufe
1.140
BlackMonday
B
Zurück
Oben