Freitag, 1. April 2011, 14:05
16 Jahre jung und gute C++-Erfahrungen
Gestern hat sich hier ein neuer Schulpraktikant vorgestellt. Bemerkenswert war, dass er gute C++-Kenntnisse hat, und das nicht nur auf dem Papier, sondern reell.
Daher hat er noch am Ende des Vorstellungsgesprächs eine Zusage und heute seinen Praktikumsvertrag per Post bekommen.
Ich bin sehr gespannt!
Daher hat er noch am Ende des Vorstellungsgesprächs eine Zusage und heute seinen Praktikumsvertrag per Post bekommen.
Ich bin sehr gespannt!
Kommentare
Ansicht der Kommentare: Linear | Verschachtelt
Kai
Andreas
Mit 15 angefangen kann man da mit 16 schon verdammt fit sein.
Man lernt einfach viel schneller in so jungen Jahren.
Deswegen beeindrucken mich auch diese ganzen "Wunderkinder" die irgendwelche Instrumente nicht mehr im geringsten.
Theodore
1. Programmieren
2. Programmieren, dass es funktioniert
3. Programmieren, dass es funktioniert und gut lesbar ist
4. Programmieren, dass es funktioniert, gut lesbar und effizient ist
5. Programmieren, dass es funktioniert, gut lesbar, effizient und wieder verwertbar ist.
Wie sonst könnte man erklären, dass sich Konstrukte wie
for (int i = 1; i < X.length; i++) {
...
}
so beharrlich halten.
hardwarefuzzi
Was genau macht dein Codeschnipsel - und wie wäre es besser (und warum)?
Tetja Rediske
tyler
=>Die Variable sagt unter Umständen schon genug über sich aus wenn sie ansonsten nicht benötigt wird.
Grundsätzlich zu "16 Jahre jung und gute C++-Erfahrungen":
So jung und schon so verdorben!
Theodore
hans
Christoph
Theodore
Kleine Ursache große Wirkung: Je nachdem wie oft man diese Schleife durchläuft kann es eine signifikante Laufzeitverbesserung bewirken.
Beispielsweise bei Iteratoren: http://www.digitalpeer.com/id/where
Wenn der Compiler es erkennt, optimiert er es weg, aber man sollte sich generell angewöhnen effizient zu programmieren. Bei Embedded Systems ist das manchmal ein wichtiges Kriterium.
Christoph
Ich würde mal vermuten das in den meisten Fällen der Compiler den Unterschied erkennt - und das bei dem von dir verlinkten Beispiel der unnötige ständige Aufruf der Methoden v.begin() sowie v.end() wesentlich größeren Einfluss auf die Laufzeit hat
Jens
Christoph
Jens
Theodore
Peter
http://psankar.blogspot.com/2011/03/pre-vs-post-increment-performance.html
Post- und Preinkrement spielt beim Ueberladen der Operatoren in C++ eine Rolle im Bezug auf die Performance! Ansonsten hat sich die Situation durch Aenderungen am GCC beim Inkrementoperator fuer die einfachen Basisdatentypen (hier int) wohl geaendert.
Zitat:
/*Earlier, gcc used to generate sub-optimal code for post-increment and that is why pre-increment was used then. Compilers have come a long way and programmers don't need to think in weird way to outsmart the compilers anymore. */
Okay. Akzeptiert.
Etwas vorsichtig bin ich beim Genuss der Messergebnisse, laut dem Autor ist der Postinkrementoperator in C++ jetzt schneller als der Preinkrementoperator, bei Basisdatentypen. Und bei dem was Mono/C# da anstellt...
Bei Gelegenheit mache ich da selber mal ein paar Tests, ich will ja nicht einfach alles glauben ohne es ueberprueft zu haben.
Der Fetzen hier koennte auch zum Verstaendnis helfen (Ueberladener Inkrementoperator bei Objekten):
http://www.willemer.de/informatik/cpp/cppovrld.htm (runterscrollen bis zum Ueberladen des Inkrementoperators...)
Theodore
Carsten
for ( i=X.length-1; i>=0 ;--i)
zu schreiben.
Was die Bezichner angeht: Für kurze Schleifen ok. Aber wenn die Schleife nicht mehr auf den Bildschirm passt, eine zweite Schleife dazukommt, dann hilft es den Kollegen schon, wenn sie der Variablen ansehen, wie das Objekt dazu heisst.
Theodore
Bezeichner sind wichtig, ja. Man sollte sich daher einen eigenen Stil angewöhnen (oder sich an Teamvorgaben halten). Eindeutig Namen sparen oft eine Menge ärger. Bei sind Zählvariablen immer i oder j. Punkte im Koordinatensystem heißen x oder y... usw...
Anonym
Anonym
LordOfVisualC
- Vorgaben machen, wie alle beteiligten Programmierer zu arbeiten haben, damit es funktioniert, gut lesbar, effizient und wieder verwertbar ist.
- Reviews durchführen, ob sich alle dran halten
- Prozesse so aufstellen, dass die lessons learned wieder in die Vorgaben münden
- Prozesse so aufstellen, dass die lessons learned wieder in die Prozessgestaltung fliessen
- die Einhaltung dieser Prozesse auch dokumentieren
Hört sich wahrscheinlich für die meisten sehr kompliziert an, aber wenn man's mal kann, dann bringt's wirklich was.
Code-inchen
Man muss wohl nur das nötige Interesse mitbringen
JoDerBaer
Verwunderter
Irgend etwas sinnvolles hab ich jedenfalls dort nicht gelernt (meine Vorkenntnisse überstiegen seine um ein Vielfaches), außer seiner merkwürdigen Erkenntnis, alles was unter einer Million Dollar kostet ist kein Computer, sondern ein Rechner.
Arnim