Antworten:
Es gibt immer eine bessere Möglichkeit, Ihren Code zu schreiben.
Egal wie gut Sie den Code finden, den Sie schreiben, Sie werden überrascht sein, wie schlecht es ist, wenn Sie ihn in ein paar Jahren überprüfen. Nur weil Sie vor ein paar Jahren einige Muster, die Sie heute kennen, oder einige Sprachfunktionen, die Sie in der Zwischenzeit gelernt haben, nicht kannten, usw.
Überlegen Sie, bevor Sie mit dem Codieren beginnen.
Es gibt nichts Bleibenderes als temporäre Lösungen :)
Wenn es furchtbar schwer ist, ein Problem zu lösen, ist das Problem höchstwahrscheinlich von Anfang an schlecht gestellt.
Ihre Software hält erheblich länger als Sie denken, zum Zeitpunkt des Schreibens.
Ich habe meine Karriere in den 80ern begonnen. Ich begann mit Software, die in den 70er Jahren entstand und noch in den 90er Jahren verwendet wurde (vielleicht länger, ich weiß nicht genau, wie es weiterging). Ein Teil meines eigenen Open Source Codes ist in der Mitte seines zweiten Jahrzehnts.
Es ist sehr wichtig, gut mit anderen zusammenzuarbeiten.
"Zeig mir deinen 'Go to guy' und ich zeige dir dein Problem"
Slapdash Hero Coders - diejenigen, die einfach Code ohne Rücksicht auf Konvention, Lesbarkeit oder was auch immer jemand anderes entwickelt - können mehr Schaden als Nutzen anrichten.
Nicht zu sagen, dass die Leute, die Tonnen guten Qualitätscodes schreiben können, schlecht sind. Nur selten.
Das Erlernen neuer Sprachen gehört zum Beruf
Ich habe in den 80ern vier Programmiersprachen in der Schule gelernt, aber eine davon in einem Job benutzt. Ich hatte vier Jobs, bei denen ich nicht einmal die Sprache kannte, für die ich eingestellt worden war.
Insgesamt habe ich in meiner Karriere vielleicht ein Dutzend Sprachen professionell gelernt und verwendet, darunter FORTRAN, C, C ++, C #, Java, Perl, Tcl, Ruby, Groovy, Awk, Python, Sh, Batch, DCL, Javascript und a paar kleine DSLs. Wenn ich ein bisschen rechne, scheine ich alle paar Jahre eine neue Sprache zu bilden, obwohl es viele Überschneidungen gibt.
Wenn etwas eine Konstante in meiner Karriere war, ist es Veränderung.
Software ist niemals vollständig.
Es gibt immer einige Änderungen in den Anforderungen, Verbesserungen und Fehlerbehebungen, auf die Sie vorbereitet sein müssen. Seien Sie also flexibel und akzeptieren Sie, dass "software is never complete"
und immer Raum für Verbesserungen besteht.
Lerne jeden Tag weiter. Das Wissen von heute ist morgen überholt.
Ironischerweise sollte diese Antwort auch morgen überholt sein. Aber wirklich, lerne ein oder zwei Dinge gründlich und lass dich zertifizieren, wenn es möglich ist, sei der Gott dieser Dinge (vielleicht Programmiersprachen oder System- / Netzwerk- / Datenbankverwaltung) und achte immer auf andere Kleinigkeiten, wie andere Sprachen, die keine Bedeutung haben Sie.
Ich meine zum Beispiel, ich bin ein großartiger Fachmann für Java- und Oracle-DB-Administration, aber ich lerne ein bisschen Python, PHP, C ++, HTML5 und Javascript, obwohl ich kein Zertifikat habe. Studieren Sie jedes vorhandene Web- oder Sprachframework. Studieren Sie oder versuchen Sie, einige (grundlegende) Erfahrungen mit jeder vorhandenen Datenbank wie SQL Server, MySQL, Cassandra, HBase, PostgreSQL und der gesamten No-SQL-Welt wie MongoDB und CouchDB zu sammeln. Versuchen Sie etwas Erfahrung mit Linux-Administration und -Virtualisierung zu haben.
Das ist die größte Lektion, die ich aus meinen 16 Jahren Erfahrung gelernt habe. Ich war fast 10 Jahre lang ein einsprachiger Programmierer mit Pascal in seiner Zeit und Visual Basic 6 zu Beginn des Jahrtausends und seit 9 Jahren PHP-Entwickler. Aber dann lerne ich, dass Entwickler zumindest ein bisschen von allem wissen müssen.
Ich habe gelernt, dass das beste Designprinzip KISS ist (Mach es einfach, Dummkopf!) .
Ich habe gelernt, dass das Hauptanliegen darin bestehen sollte, Ihren Code einfach und sauber zu halten, und dass jedes Teammitglied verstehen sollte, über welchen Code Sie verfügen. The KISS principle
gibt an, dass die meisten Systeme am besten funktionieren, wenn sie einfach gehalten und nicht komplex gestaltet werden. Einfachheit sollte daher ein Hauptziel beim Entwurf sein, und unnötige Komplexität sollte vermieden werden.
Es gibt keinen Versuch
Nehmen wir an, Sie haben eine Aufgabe oder eine Reihe von Aufgaben, die voraussichtlich 4 Tage dauern. Dann fragt Ihr Chef oder Projektmanager, ob Sie aus irgendeinem wichtigen Grund versuchen könnten, dies in zwei Tagen zu erledigen. Wenn Sie ein guter, flexibler Mitarbeiter sein möchten, könnten Sie versucht sein zu sagen: Sie können es versuchen. Die wahrscheinlichste Folge davon ist, dass Sie entweder die Frist verpassen oder einen halbherzigen Hack durchführen, um dies zu erreichen. Und es ist nicht die Schuld Ihres Chefs, dass Sie darum gebeten haben, das zu tun, das ist seine Aufgabe. Es ist deine Schuld, nicht nein zu sagen, was deine Aufgabe ist.
Mit der Zeit kann man nicht verhandeln. Sie können mit dem Umfang verhandeln. Seien Sie professionell und verkaufen Sie sich nicht zu kurz.
"Das wird niemals passieren" heißt eigentlich "Das wird niemals passieren bis zum ersten Tag in der Produktion"
Das Schreiben von Code ist einfach. Das Lesen von Code ist schwierig. Auch wenn der Code Ihnen gehört. Gehen Sie also, wann immer möglich, lesbar vor.
Sie sind nicht schlauer als andere. Denken Sie niemals, dass Ihre Herangehensweise die beste ist, nur weil es Ihre ist.
Achten Sie darauf, WAS gesagt wird, nicht DURCH WEN es gesagt wird. Brillante Ideen könnten für die unerwartetsten Quellen kommen.
Sei nicht faul. Nehmen Sie sich Zeit, um guten Code zu schreiben. Sie müssen es trotzdem zu einem höheren Preis reparieren.
Verwenden Sie keine ausgefallenen OOP-Funktionen, nur weil Sie es können! - YAGNI (Du wirst es nicht brauchen)
Use fancy OOP features
weil sie einen spezifischen, nachweisbaren Nutzen für das Problem haben, das Sie zu lösen versuchen . Du lachst, aber ich sehe das die ganze Zeit. Die meisten Programmierer haben nie ein Objekt getroffen, das sie nicht mochten. Ich denke, es sollte umgekehrt sein: Diese Techniken sind schuldig, bis sie sich vor dem Gericht von KISS als unschuldig erwiesen haben .