Möchten Sie wissen, wie Sie schneller programmieren, damit Sie Software schneller bereitstellen können? Klar, wer nicht? Das Internet ist voll von Tipps für Entwickler — Hunderte, Tausende, vielleicht sogar Millionen von ihnen. Das Problem ist, es gibt weit mehr da draußen, als irgendjemand Zeit zum Lesen hat, Also habe ich sie für Sie eingekocht.
Hier sind 53 Tipps, die den besten Rat darstellen, den ich da draußen gefunden habe. Aber bevor ich Ihnen sage, was ich gefunden habe, muss ich erklären, was ich mit „schneller programmieren“ und „Tipps“ meine.“
- Das Problem mit „schneller“
- Das Problem mit „Tipps“
- Was Sie wollen, ist flow
- Ihre Optionen können eingeschränkt sein
- Top-Tipps zum schnelleren Programmieren
- Reflexion ist der Schlüssel
- Objektiv messen
- Üben, üben, üben
- Design für den Erfolg
- Nageln Sie den Prozess
- Erstellen Sie die richtige Arbeitsumgebung
- Entdecken Sie außerhalb der Arbeit
- Halten Sie es gesund
- Gute Lerngewohnheiten entwickeln
- Qualität ist nicht konstant
- Soft Skills matter
- Gehen Sie weiter und codieren Sie
Das Problem mit „schneller“
Um schneller zu codieren, muss man effizient sein; das heißt, keine verschwendete Anstrengung oder Bewegung. Dies kann alles bedeuten, vom Tippen über Werkzeuge bis hin zum Denken. Aber der größte Teil unserer Arbeit als Programmierer besteht nicht darin, zu tippen oder zu kompilieren — es ist zu denken. Um schneller zu denken, müssen Sie mehr Muster und Beziehungen lernen. Dies ist das Wissen und die Weisheit, die Erfahrung aufbaut. Was Sie brauchen, um schneller zu gehen, wird sich im Laufe der Zeit ändern.
Das Problem mit „Tipps“
Die meisten Tipps, die ich lese, gelten nur an bestimmten Punkten auf meiner Reise und gelten nicht unbedingt für alle. Viele davon fallen in die Kategorien „persönliche Reise“ oder „Was für mich funktioniert hat“. Aber mein Weg ist wahrscheinlich nicht dein Weg. Während einige der mechanischen Dinge, die für mich funktionieren, wahrscheinlich für Sie funktionieren werden, sind viele der von mir getroffenen Domänen- und Musterentscheidungen möglicherweise nutzlos.
Das mechanische Zeug ist ziemlich einfach zu optimieren; Die Möglichkeiten sind begrenzt. Aber das Lernen hat keine Grenzen. Niemand wird jemals alles wissen. Sie müssen strategische und taktische Entscheidungen treffen und bereit sein, Chancen zu nutzen, wenn sie sich ergeben.
Der Nutzen von Spitzen fällt als Funktion der Spezifität ab. Die spezifischeren Tipps gelten nicht für alle, aber allgemeine Tipps sind auch, gut, allgemein. Sie sind viel schwieriger in die Tat umzusetzen. Also, was wollen Sie wirklich, wenn Sie sagen, Sie wollen „schneller gehen?“ Ich werde es dir sagen.
Was Sie wollen, ist flow
Was jeder Programmierer will, besonders im Zeitalter von DevOps, ist Flow. Flow State maximiert den Durchsatz und erhöht den Genuss, indem genau das richtige Maß an Herausforderung integriert wird; Man bleibt voll und ganz im Moment und in der Arbeit beschäftigt (dies ist nicht zu verwechseln mit dem Ballmer Peak). Die Aufrechterhaltung des Strömungszustands erfordert eine geeignete Umgebung und einen reibungslosen Prozess.
Flusszustand beim Pairing ist, als hätte jeder von euch ein zusätzliches Gehirn. Leider sind viele Entwicklerumgebungen, wie z. B. offene Büros, für Flow unfreundlich.
Ihre Optionen können eingeschränkt sein
Wenn Sie etwas Suboptimales an Ihrem Prozess oder an sich selbst finden, sind die Möglichkeiten, wie Sie solche Einschränkungen angehen können, begrenzt:
- Ignoriere es. Vielleicht wird es von alleine besser.
- Vermeiden Sie es. Ist es wirklich notwendig?
- Automatisieren Sie es. Lassen Sie die Maschine es tun.
- Delegieren Sie es. Selten möglich, das geht am Geld vorbei. Aber es ist eine legitime Option, wenn verfügbar.
- Zermahlen Sie es. Wir alle müssen dies von Zeit zu Zeit (täglich) tun. Einige Jobs sind größer als andere.
Wenn Ihre Eingabe langsamer ist, als Sie möchten, nehmen Sie sich etwas Zeit und steigen Sie auf. Wenn Ihre integrierte Entwicklungsumgebung verwirrend und nicht hilfreich (oder vielleicht zu hilfreich) ist, versuchen Sie etwas anderes oder Einfacheres. Wenn Sie nicht davon wegkommen können, erfahren Sie mehr darüber; Sie können einen anderen Weg finden oder zumindest die Grenzen lernen.
Es gibt zahlreiche Möglichkeiten zu lernen. Google ist dein Freund, ebenso wie Bücher, Videos, Blogbeiträge, Stack-Overflow-Fragen und natürlich andere Leute. Einige Dinge, die Sie lernen möchten, können verborgen sein; andere können größer sein, als sie erscheinen. Balancieren Sie Nutzen mit Anstrengung und seien Sie geduldig mit sich selbst. Feiern Sie jeden Erfolg und bleiben Sie in Bewegung.
Top-Tipps zum schnelleren Programmieren
Eine Möglichkeit, die folgenden Tipps zu gruppieren und zu betrachten, besteht darin, einige übergeordnete Kategorien anzuwenden, um interessante Verallgemeinerungen aus der Sammlung zu ziehen:
- Reflektieren. Was willst du, was machst du eigentlich; beinhaltet Messen und Optimieren.
- Fließen. Keine Reibung durch Werkzeuge, Prozesse, Umgebung oder Wissen; suche kontinuierliche Herausforderung, aber nicht zu viel.
- Lernen. Grundlegend: sprachen, Werkzeuge, Muster, Praktiken usw., von allen (besonders von denen, die bereit sind zu unterrichten); lerne, wie du lernst, und lerne kontinuierlich.
- Lehren. Lehre andere. Dinge erklären zu müssen, zwingt zur Vereinfachung, und die Umwandlung von Gedanken in verbale oder visuelle Ausdrücke erzeugt Einsichten.
- Express und erkunden. Schauen Sie außerhalb Ihrer normalen Aufgaben; zeichnen, schreiben, bloggen, zu Meetups gehen, teilnehmen und Präsentationen halten, Bei Bedarf mit Wilson the Volleyball sprechen.
Die folgenden Tipps sind einfach Datenpunkte, Dinge zum Nachdenken — kein Spickzettel für das Leben oder eine To-Do-Liste für Ihre Karriere als Programmierer. Ich begann mit einer Liste von 183 Tipps, gruppierte sie in Kategorien, ordnete eine Priorität basierend auf Wiederholung und persönlicher Voreingenommenheit zu und nahm die besten von jedem.
Das ist richtig, Voreingenommenheit. Ich weiß, was einen Entwickler zu einem guten oder schnellen Programmierer macht, also habe ich alles, was ich gelesen habe, durch meine Voreingenommenheit gefiltert. Insbesondere bin ich voreingenommen gegenüber:
- Agile Methoden.
- Domänengesteuertes Design.
- Automatisierte Tests.
- Kontinuierliche Verbesserung.
- Minimale Lösungen.
- Reibungslose Werkzeuge.
- Arbeiten in fluss zustand so viel wie möglich.
Und ich stimme Robert C. „Onkel Bob“ Martins Aussage über „vehemente Mittelmäßigkeit“ voll und ganz zu“:
“ Der einzige Weg, schnell zu gehen, ist gut zu gehen. Jedes Mal, wenn Sie der Versuchung nachgeben, Qualität gegen Geschwindigkeit einzutauschen, werden Sie langsamer. Jedesmal.“
Nehmen Sie die folgenden Tipps (und alles andere, was Sie im Internet lesen) mit einem Körnchen Salz. Behalten und anpassen, was funktioniert; verwerfen, was nutzlos ist.
Und hier ist mein Tipp, um schneller zu programmieren: Konzentrieren Sie sich auf Qualität, und die Geschwindigkeit wird folgen.
Reflexion ist der Schlüssel
Reflexion ist der Schlüssel zur Selbstverbesserung:
- Verbessern Sie kontinuierlich Ihren Entscheidungsprozess; Lernen Sie ohne Vorwurf aus Ihren Fehlern.
- Beseitigen Sie blinde Flecken in Ihrem Verständnis des gesamten Umfangs Ihrer Anwendung und ihrer Ausführungsumgebung.
- Verfolge deinen Schwanz nicht; Identifizieren und beseitigen Sie Zeitsenken.
Objektiv messen
Manchmal wissen Sie, was Ihre größte Einschränkung ist, und manchmal müssen Sie sie messen.
- Erwägen Sie, ein detailliertes Audit von sich selbst durchzuführen, während Sie ein paar Tage arbeiten.
- Es ist wie jedes Stück Code zu optimieren. Protokollieren Sie alles, identifizieren Sie Hotspots und verbessern Sie sie.
- Wohin geht deine Zeit? Viele Programmierer verbringen viel mehr Zeit damit, Code zu lesen als Code zu schreiben. Wie lernt man, Code schneller zu lesen?
Üben, üben, üben
Es führt kein Weg an einer gewissen Übung vorbei, an einer Vielzahl von Herausforderungen.
- Schreiben Sie viel Software.
- Größere Programme schreiben.
- Schreiben Sie von Anfang an bewertungsfähigen Code.
- Es gibt viele Orte zum Üben, darunter topcoder.com , projekt Euler, hackerrank.com . Wähle einen und mach dich auf den Weg.
Design für den Erfolg
Das Erlernen von Designtechniken sollte Teil der Beherrschung Ihrer Denkwerkzeuge sein. Zusätzlich:
- Den Benutzer verstehen; verstehe ihr Problem, das wahre Problem; und dann löse es. Die Kenntnis der Domäne hilft immens.
- Sprechen Sie mit Kollegen und Domänenexperten über das Problem, die Lösung und das Design.
- Reduzieren Sie die kognitive Belastung, indem Sie zeichnen oder schreiben, während Sie denken und programmieren.
- Denken Sie beim Entwerfen auf Langlebigkeit und Wartung daran, dass Daten Code überdauern.
- Wissen Sie, wann Sie das Rad neu erfinden müssen und wann nicht (normalerweise nicht).
- Benennen Sie die Dinge absichtlich; Dies ist der einzige Link vom Code zurück zur Domain.
Nageln Sie den Prozess
Wir verbringen viel Zeit in Prozessen unserer eigenen Konstruktion; Haben Sie keine Angst, sie zu ändern.
- Machen Sie Fehler durch Design unmöglich. Fail Fast, verwenden Sie Ausnahmen anstelle von Nullprüfungen, verwenden Sie das Typsystem, um Datenfehler zu vermeiden, und verwenden Sie automatisierte Tests.
- Wenn Sie nicht wissen, wo Sie anfangen sollen, beginnen Sie mit dem Teil, den Sie am besten verstehen.
- Schreiben Sie den Code, der ein Produkt zuerst erstellen würde, egal wie dumm oder klein dieses Produkt ist.
- Fehler nicht ignorieren; jeder Fehler bedeutet etwas.
- Verfolgen Sie einen agilen Entwicklungsansatz.
- Ziehen Sie Abstraktionen nur dann heraus, wenn sie sinnvoll sind und tatsächlich wiederverwendet werden.
- Stehen Sie auf den Schultern von Giganten; Verwenden Sie Open-Source-Bibliotheken, Lösungen von Drittanbietern und so weiter.
- Der Einfachheit halber optimieren; Der beste Code ist der Code, den Sie nicht schreiben müssen.
- Automatisieren Sie Tests und üben Sie testgetriebene Entwicklung (TDD)
- Verwenden Sie intelligente Tools wie IDEs, Dienstprogramme zur Codegenerierung usw., aber haben Sie keine Angst, herunterzuschalten, wenn sie Ihnen in die Quere kommen.
- Seien Sie sehr vertraut mit Ihrer Sprache und Standardbibliothek. Je weniger Zeit Sie damit verbringen, in der Dokumentation herumzukriechen, desto besser.
- Verwenden Sie die Quellcodeverwaltung – auch auf eigene Faust.
- Verwenden Sie einen Profiler. Optimieren Sie nur das, was notwendig ist
- Lernen Sie zu tippen. Programmierer tippen viel und nicht nur Code; Dies reduziert die kognitive Belastung durch das Tippen auf Null und verbessert die Geschwindigkeit und Genauigkeit
Erstellen Sie die richtige Arbeitsumgebung
Ständige Unterbrechungen, unangenehme Umstände und endlose Besprechungen entmutigen den Fluss.
- Stellen Sie sicher, dass Sie sich in einer Umgebung befinden, die Sie nicht ablenkt; Machen Sie es Ablenkungen unmöglich, Sie zu unterbrechen.
- Erkenne dich selbst und arbeite während deiner Hauptsaison — nicht während der von jemand anderem.
Entdecken Sie außerhalb der Arbeit
Nicht alles, was Sie wissen möchten, befindet sich in Ihrem Büro oder im Internet.
- Setzen Sie sich neuen Werkzeugen und Techniken aus. Behalten Sie, was funktioniert.
- Arbeiten Sie an Nebenprojekten und Open-Source-Projekten.
Halten Sie es gesund
Tote schreiben keinen Code. Kranke Menschen schreiben schlechten Code. Pass auf dich auf.
- Kennen Sie den Wert, wenn Sie sich von Ihrem Code entfernen.
- Schlafen Sie besser, essen Sie besser und arbeiten Sie weniger Stunden.
- Meditiere.
Gute Lerngewohnheiten entwickeln
Lernen ist ein lebenslanger Prozess für Programmierer, aber wir haben gewarnt: Das Internet ist voller glänzender Dinge.
- Beherrsche die Grundlagen: programmierparadigmen und -praktiken wie DRY (don’t repeat yourself) und SOLID (Single Responsibility, open-closed, Liskov-Substitution, Interface Segregation and Dependency Inversion)für OOP), Muster und Anti-Muster, Algorithmen, Datentheorie, Graphentheorie usw.
- Lernen durch Tun. Spielen Sie immer mit dem Code, während Sie lernen.
- Finde einen Mentor.
- Entdecken Sie verschiedene Arten des Lernens, um zu sehen, was für Sie funktioniert.
Qualität ist nicht konstant
Qualität deckt viele Bereiche ab, von der Lesbarkeit des Codes über seine modulare Struktur und Komplexität bis hin zum Ausdruck seiner Domain-Absichten.
- Fokus auf Qualität, nicht Geschwindigkeit.
- Akzeptieren Sie, dass Code „Qualität“ zu einem bestimmten Zeitpunkt „das Beste ist, was Sie mit dem tun können, was Sie haben und wissen.“
- Gib immer dein Bestes; es ist eine gute Praxis.
- Nur im Extremfall (z. prototyping / Exploring / Throw-Away-Code) und vorübergehende Umstände sollten Sie die Qualität Ihres Codes unter das Niveau von „das Beste, was Sie tun können“ fallen lassen (und Sie sollten sich ein wenig schämen, es zu tun.)
Soft Skills matter
Ich habe nicht viele Tipps zu People Skills gefunden, aber Leute sind ziemlich unvermeidlich; die, die ich fand, waren sehr hilfreich.
- Wenn Sie wissen, wie man mit Menschen umgeht, können Sie mit weniger Reibung und mehr Freude von Ihren Mitmenschen lernen und sie unterrichten.
- Wenn Sie lernen, klar zu schreiben und zu sprechen, können Sie Ihre Ideen schneller vermitteln.
Gehen Sie weiter und codieren Sie
Das war’s also, meine Zusammenfassung der besten Ratschläge zum schnelleren Programmieren. Befolgen Sie diese Tipps und Sie sind auf dem besten Weg, Ihre Programmierkenntnisse zu verbessern — und schneller zu codieren.