004
17.07.2008, 01:05 Uhr
0xdeadbeef
Gott (Operator)
|
Einfache Antwort: Je weniger der Code zu tun hat, desto schneller ist er tendenziell.
Komplexe Antwort:
Es gibt nen Haufen praktischer Dinge, die man im Studium nicht lernt, dazu zählt das "magische Auge". An der Universität neigen die Leute dazu, sehr theoretisch zu denken, ein bisschen wie Mathematiker halt. "Grob so geht's, der Rest ist trivial und wird sich schon finden." Für eine Lehranstalt ist das auch gar kein so schlechter Ansatz - die Theorie ist verdammt wichtig - aber Programmierung ist irgendwo eben auch ein Handwerk. Wenn du aus der Uni kommst, wurde dir das Fundament beigebracht, das du brauchst, um ein guter Programmierer zu werden, aber die erste Zeit danach wirst du trotzdem langsamen, schwerfälligen, aufgeblasenen und scheinbar funktionierenden, aber trotzdem kaputten Code schreiben - weil du halt nie mittelgroße Projekte in den Sand gesetzt und daran gesehen hast, wie sich Projekte in den Sand setzen. Auch, weil du die ganzen Tools nicht kennst, die einen bei der Analyse helfen können, und - sehen wir den Fakten ins Gesicht - man lernt im Studium zwar über Unit-Tests, aber schreiben tut man sie doch nicht, bis der Chef es verlangt. Nachdem es zum ersten mal verlangt wurde, tut man es freiwillig wieder, aber davor...
Worum es hier geht, ist im Grunde praktische Erfahrung. Das Problem mit praktischer Erfahrung ist, dass man sie nicht aus Büchern lernen kann. Was du willst sind 1. Projekte und 2. Programmierer, mit denen du dich kurzschließen kannst. Sehr hilfreich wäre hier z.B. ein Job in einer kleinen Firma während der Semesterferien oder etwas Vergleichbares. Wenn das nicht geht, schreib zunächst kleinere, dann größere Projekte in deiner Freizeit, und hab ein kritisches Auge darauf, wo du Probleme hast / dir das Design nicht so richtig gefällt, und komm hierher oder in ein Forum oder einen IRC-Kanal deiner Wahl und befrag andere Leute dazu, was sie davon halten.
Für den Moment kann ich dir nahelegen, dich mit den gängigen Debug-Tools vertraut zu machen (z.B. gdb, valgrind, gprof) und immer das KISS-Prinzip im Hinterkopf zu haben; ansonsten wirst du da das meiste aus deinen eigenen Fehlern lernen müssen. Und scheu dich nicht, eigenen Code hier zu zeigen und Verständnisfragen zu fragen, wir helfen gerne - sofern du uns nicht einfach deine Hausaufgaben auftischst, jedenfalls.
Nachtrag: In aller Regel deutlich kritischer als Performance ist Sicherheit. Zum Beispiel der potentielle Buffer-Overflow im obrigen Code - je nach Kontext kann sowas zu Einfalltoren für allerlei Schadsoftware werden. -- Einfachheit ist Voraussetzung für Zuverlässigkeit. -- Edsger Wybe Dijkstra Dieser Post wurde am 17.07.2008 um 01:10 Uhr von 0xdeadbeef editiert. |