Ich habe darüber nachgedacht, was die großen Programmierer von den einfach guten Programmierern unterscheidet. Hier sind ein paar Gedanken dazu. Wenn Sie einige zusätzliche Gedanken haben, melden Sie sich bitte an und kommentieren Sie diesen Beitrag,
1. Es geht nicht um die Codierungsphase.
Sicher, die großen Programmierer sind auch große Coder. Aber es ist mehr als das. Ich denke, die großartigen Programmierer sind auch großartige Ingenieure. Ein Ingenieur kennt seine Werkzeuge. Ein Ingenieur weiß, wie er ein komplexes Problem in Teile zerlegen kann, die er lösen kann, und dann weiß er, wie er die Teile wieder zu einem Ganzen zusammensetzen kann. Ein Ingenieur kennt die Problemdomäne ganz genau. Im Zusammenhang mit der Programmierung bedeutet das, dass Sie das Problem verstehen, das Sie zu lösen versuchen; Sie verstehen, wie es in den größeren Rahmen passt; und Sie verstehen die Grenzen der Technologie.
2. Es handelt sich um die Kodierphase.
Das Lesen von gutem Code ist wie das Lesen eines gut geschriebenen Romans. Die Geschichte fließt einfach von der Seite. Die Datenstrukturen sind genau das, was zur Lösung des Problems benötigt wird. Der Code ist in Prozeduren aufgeteilt, deren Funktion aus ihrem Namen, ihrer Verwendung und ihrem Code klar hervorgeht. Die Namen sind aussagekräftig. Der Code ist konsequent eingerückt. Kommentare sind strategisch platziert, hilfreich, seriös und nicht redundant zum ausführbaren Code. Kommentare stellen das Verhalten des nahegelegenen Codes nicht in Frage (wenn Sie jemals versucht sind, dies zu tun, halten Sie inne und nehmen Sie sich stattdessen die Zeit, um herauszufinden, was vor sich geht!) Code wird niemals unnötig dupliziert; jede gegebene Aktion wird nur einmal implementiert. Funktionen erfüllen eine Aufgabe ohne unnötige Seiteneffekte. Offensichtliche zukünftige Erweiterungen wurden bedacht und in angemessener Weise im aktuellen Design vorweggenommen.
3. Sie sind furchtlos.
Ein Programmierer, der nicht an einem Stück Code arbeiten will, weil er ihn für zu kompliziert oder zu fragil hält, hat wahrscheinlich recht. Aber sie beziehen sich nicht auf den Code. Sie beziehen sich auf ihre eigenen Fähigkeiten! Die großartigen Programmierer wissen, wenn sie mit einem Schlamassel konfrontiert werden, wann und wie sie dem Management erklären können, dass es an der Zeit ist, den fraglichen, knorrigen Code neu zu implementieren. Die schlechtesten Programmierer stürzen sich einfach hinein und machen das Chaos noch schlimmer.
4. Die großen Programmierer denken immer an die Leistung.
Sie wissen, dass sie, wenn sie die richtige Datenstruktur für die jeweilige Aufgabe wählen, die meisten Leistungsprobleme bereits vermieden haben. Aber sie machen keine Annahmen über die Leistung. Wenn sie ihren Code debuggen lassen, nehmen sie sich die Zeit, Stresstests durchzuführen und ihn bei maximaler Leistung auszutesten. Sie wissen, dass ein Code, der bei 1 TPS funktioniert, nicht dasselbe ist wie ein Code, der bei 1000 TPS funktioniert. Sie wissen auch, dass es nicht dasselbe ist, einen Code 15 Minuten lang zum Laufen zu bringen, wie ihn über Tage und Wochen hinweg zum Laufen zu bringen.
5. Die großen Programmierer raten nicht.
Wenn sie zu etwas kommen, das sie wissen müssen und nicht wissen, finden sie heraus, wie sie sich das notwendige Wissen aneignen können, ohne zu raten und ohne viel Zeit zu verschwenden.
Ich hoffe, Sie finden diese Liste faszinierend und auch hilfreich.