Unabhängig von den verwendeten Programmiersprachen oder Betriebssystemen oder der Umgebung, für die sie entwickelt wurden, was sollte jeder Programmierer wissen?
Einige Hintergrundinformationen:
Ich bin daran interessiert, der beste Programmierer zu werden, den ich kann. Als Teil dieses Prozesses versuche ich zu verstehen, was ich nicht weiß und würde mir sehr helfen, wenn ich es täte. Obwohl es Unmengen von Listen gibt, die "n Dinge, die jeder Entwickler von [Programmiersprache einfügen] wissen sollte", muss ich noch etwas Ähnliches finden, das nicht auf eine bestimmte Sprache beschränkt ist.
Ich erwarte auch, dass diese Informationen für andere von Interesse und von Nutzen sind.
quelle
Wie man wie ein Benutzer denkt und nicht wie ein Techie-Geek-Programmierer.
quelle
Wann um Hilfe zu bitten und wann NICHT um Hilfe zu bitten.
quelle
Wie man den Code anderer Leute liest.
quelle
Vertrautheit mit Versionskontrollsystemen. Es muss nicht jeder sein, aber die grundlegenden Konzepte, die auf alle angewendet werden können, sollten bekannt sein.
quelle
Hier sind meine 10 Bits:
quelle
Vielleicht ist es zu subtil, aber ich betrachte es als "zu wissen, welches Problem zu lösen ist". Viele Programmierer (und normale Leute) geben sich große Mühe, Dinge zu lösen, die einfach nicht sehr wichtig sind. oder sie schaffen eine Lösung mit viel zusätzlicher Arbeit, die nicht ganz das ist, was benötigt wird.
quelle
Wie man sich entspannt. Es ist das Geheimnis der Produktivität.
Schließlich sind Willenskraft und Koffein nicht genug. Diese ständige Kontraktion ist sehr schädlich.
Das ist eine große Sache.
quelle
Grundlegende Datentyp- und Algorithmus-Theorie. Dinge wie Big O-Notation, Arrays, Warteschlangen usw.
quelle
Wie man das richtige Werkzeug für die richtige Aufgabe auswählt und nicht an dummen Flammenkriegen um seine Lieblingsprogrammierwerkzeuge teilnimmt.
quelle
Nun, hier ist meine .02 $:
quelle
Sie können die Qualität eines Produkts nicht testen.
quelle
Jeder Programmierer sollte Designmuster verstehen .
quelle
Ich bin ein bisschen spät dran, aber ich gehe mit dem Wissen von Edsger Dijkstra:
Wenn Sie keinen guten Absatz schreiben können, können Sie wahrscheinlich auch keinen guten Code schreiben.
quelle
if (BlowUpTheSystem = 1)
. Zugegeben, bei einem ordnungsgemäßen Komponententest sparen Sie wahrscheinlich nur Zeit. Aber dann ist die Zeit ziemlich wichtig.Lassen Sie sich nicht zu emotional von einer bestimmten Technologie, einem bestimmten Betriebssystem oder einer bestimmten Sprache anstecken. Keine davon ist perfekt. Auf lange Sicht werden Sie sich wahrscheinlich wünschen, Sie könnten sich Ihre eigene Speisekarte daraus zusammenstellen wie über jeden anderen.
Stellen Sie sich das wie ein Auto vor - Sie haben vielleicht noch nie ein bestimmtes Auto gefahren, aber alle haben Schlüssel, Lenkräder, Gaspedale und Bremsen - Sie sollten in ein Auto einsteigen und schnell losfahren können, wenn Sie wissen, was wo ist. Behandeln Sie Betriebssysteme und Sprachen gleich und konzentrieren Sie sich darauf, die grundlegenden Konzepte zu erlernen, die ihnen zugrunde liegen, selbst wenn Sie sich in den Schwierigkeiten befinden, die mit den Besonderheiten einer bestimmten Instanz verbunden sind.
Und versuchen Sie im Laufe der Zeit, die Herkunft, das Erbe und die Gemeinsamkeiten der verschiedenen Technologien zu verstehen und zu schätzen, die Ihnen dabei helfen, den Überblick zu behalten. Stellen Sie zum Beispiel fest, dass sich die Technologie im Laufe der Zeit immer wieder um „Best Practices“ und „Economies of Scale“ (Skaleneffekte) dreht, während sich der Evolutionsbaum aktiv verzweigt und voller Sackgassen ist PC unter der Haube in diesen Tagen ...).
Denken Sie auch daran, egal wie viel Spaß Sie damit haben, Technologie ist im Wesentlichen eine unvollkommene Linse zwischen dem, was Ihr Verstand sich vorstellen kann, und dem, was Sie tatsächlich produzieren. Gib dein Bestes, lerne zu lernen und bleibe anpassungsfähig ...
quelle
Wie programmiere ich in C.
quelle
Dass der Tag, an dem Sie aufhören zu lernen, der Tag sein sollte, an dem Sie kein Programmierer mehr sind.
quelle
Unit Testing und Debugging.
quelle
Es wurde bereits erwähnt, aber ich denke, es verdient seine eigene Antwort.
quelle
Niemand möchte Software benutzen. Sie wollen, dass Probleme gelöst werden.
quelle
Kaffee und IntelliSense sind Ihre besten Freunde aller Zeiten.
quelle
Wie man ein großes, kompliziertes Objekt beobachtet und in kleine, einfache Objekte zerlegt, die beim Zusammensetzen immer noch die gleiche Aufgabe erfüllen.
quelle
Vertraue niemals einem Benutzer ( besonders wenn die App öffentlich ist!), Er wird oft alles in seiner Macht Stehende tun, um deine App auf die eine oder andere Weise zu beschädigen.
Machen Sie es zukunftssicher und erweiterbar - Sie wissen nie, wann Sie es in ein paar Jahren erweitern möchten, und erkennen, wie viel Aufwand es kosten würde, schlecht erstellten Code neu zu codieren.
quelle
Dass der Programmierer nicht alles weiß und immer versuchen sollte, neue Sprachen / Technologien usw. zu lernen.
quelle
Die Grundlagen für gutes UI-Design und Kommunikationsdesign (auch bekannt als Grafikdesign) .
Ich sehe so viele Apps und Projekte, die durch schlechtes Design oder schlechte Bedienbarkeit ruiniert wurden. Schon das Erlernen der Grundlagen kann einen großen Unterschied machen. Darüber hinaus sind die visuellen Problemlösungstechniken (z. B. die visuelle Kommunikation eines Konzepts) eine anregende Herausforderung, die Ihre Augen für neue Sichtweisen öffnen sollte, die sich wiederum auf Ihren Code auswirken sollten.
Ein empfohlenes Buch ist The Non-Designer's Design Book von Robin Williams
Das sagt Joel Spolsky dazu :
quelle
Jeder Programmierer sollte schnell lernen können. Oftmals werden Sie aufgefordert, eine Technologie zu entwickeln, die Sie noch nie verwendet haben. Möglicherweise haben Sie eine Woche Zeit, um auf die Beine zu kommen (wenn Sie Glück haben), bevor Sie aufgefordert werden, Code in Produktionsqualität zu schreiben.
quelle
Versionskontrolle. Und um meine Freundin zu zitieren: "Ich möchte nicht, dass du den Abwasch machst, ich möchte, dass du es magst !"
quelle
Die Anforderungen ändern sich, Ihr Code muss angepasst werden, und Sie müssen ihn möglicherweise anpassen.
Es gab mehrere Fragen hier zu Themen im Zusammenhang , die davon betroffen sind.
quelle
Aus meinem Kopf:
Sehr wenige Programmierprobleme erfordern neben Addition, Subtraktion, Multiplikation und Division auch Mathematik. Wenn Sie Kalkül verwenden möchten, um ein Problem zu lösen, prüfen Sie die Alternativen ausführlich, bevor Sie dies tun.
Jedes Mal, wenn Sie erraten, wie etwas funktionieren soll, machen Sie es falsch. Es ist nicht deine Aufgabe, telepathisch zu sein.
Die Person, die Ihnen die Spezifikation gibt, weiß selten alles, was sie will, bis Sie es herausgefunden haben.
Mehr als die Hälfte davon, ein großartiger Programmierer zu sein, kommt aus dem Umgang mit Menschen. Die Interaktion mit Ihrem Team, die Verwaltung Ihres Managers und die Feinabstimmung des Endbenutzers sind die halbe Miete.
Guter Code ist so geschrieben, dass er von anderen gelesen werden kann, wie er von Ihrem Compiler gelesen werden muss.
Best Practice und praktische Realität werden mehr in Konflikt geraten als der Programmierer denkt, aber weniger als der Manager. Wenn sie sich in einem Konflikt zu befinden scheinen, liegt es an Ihnen, den Konflikt abzugrenzen und zu verstehen und sich dann dem Praktischen hinzugeben. Die subtile und clevere Lösung ist nur dann besser als die hässliche, brutale, wenn sie auf lange Sicht kostengünstiger ist.
Gute Tools können keine guten Programmierer sein, aber schlechte Tools machen uns genauso schrecklich.
Schauen Sie niemals auf eine Technologie herab, sondern suchen Sie immer nach der besten Alternative.
Je mehr Sprachen Sie kennen, desto besser sind Sie in der Sprache, die Sie verwenden.
Lassen Sie sich nicht durch das langsame Hineinkriechen von programmierorientierten Gedanken in Ihren Alltag stören. Selbst wenn wir nicht an einem Computer sitzen, leiden wir alle unter Bandbreitenbeschränkungen, haben Leistungseinbußen durch Taskwechsel und müssen Dinge aus dem Backup-Speicher laden. Computer sollen menschliches Denken imitieren und die Analoga sind überall.
quelle
Das Lesen des Codes anderer Leute wird Ihr Gehirn nicht verderben, sondern herausfinden, warum Sie es nicht so gemacht hätten (ob besser oder nicht, ist eine andere Frage).
So können Sie gedankenexperimente programmieren und gelegentlich finden Sie jemanden, der etwas Besseres umsetzt! Wie in viel besser.
Diese Antwort erweitert sich natürlich auf das Lesen Ihres eigenen Codes und erweitert sich daher auf die Verwendung der Versionskontrolle und von DIFF und damit auf 42.
quelle