it-swarm-eu.dev

Wie werde ich ein "schnellerer" Programmierer?

Meine letzte Jobbewertung enthielt nur eine Schwachstelle: Aktualität. Ich bin mir bereits einiger Dinge bewusst, die ich tun kann, um dies zu verbessern, aber ich suche noch mehr.

Hat jemand Tipps oder Ratschläge, wie er die Geschwindigkeit seiner Ausgabe erhöhen kann, ohne die Qualität zu beeinträchtigen?

Wie schätzen Sie Zeitpläne ein und halten sich daran? Was tun Sie, um in kürzeren Zeiträumen mehr zu erreichen?

Jedes Feedback wird sehr geschätzt, danke,

142
Nick Gotch

Schalte den Computer aus. Nimm einen Bleistift und etwas Papier. Skizzieren Sie Ihr Design. Überprüfen Sie es mit Ihren Kollegen. Dann schreiben Sie den Code.

190
gatorfax

Einige Ideen...

  • Vermeiden Sie Vergoldungen - tun Sie nur das, was von Ihnen verlangt wird (in Bezug auf die Anforderungen).
  • Verstehen Sie die Geschäftsanforderungen und machen Sie es gleich beim ersten Mal richtig
  • Verstehen Sie Ihre Umgebung und Ihre Tools gründlich
  • Werden Sie ein fantastischer Schreibkraft, verwenden Sie Tastaturkürzel anstelle der Maus
  • Gehen Sie iterativ vor und bauen Sie Sanity Checks ein, um sicherzustellen, dass Sie auf dem richtigen Weg sind
  • Erfinden Sie das Rad nicht neu, sondern erwägen Sie, frühere Arbeiten und die Arbeit anderer wiederzuverwenden
  • Beseitigen Sie Ablenkungen, überprüfen Sie keine E-Mails, schauen Sie nicht nach draußen, sprechen Sie nicht mit Kollegen usw.
  • Überarbeiten Sie sich nicht - erkennen Sie, wann Sie Pausen einlegen müssen
149
Mayo

Ihr Wunsch, selbst ein "schnellerer" Programmierer zu sein, ist lobenswert. Wenn Sie jedoch nicht rechtzeitig liefern, bedeutet dies nicht, dass Sie langsam sind. Dies bedeutet, dass das Projekt schlecht geplant wurde. Ein "schnellerer" Programmierer zu sein, hilft nicht. Es bedeutet nur, dass Sie die Frist schneller überschreiten.

Sie (und Ihr Team) machen einen der folgenden Fehler (oder alle):

  • nterschätzt die Arbeit, die erledigt werden muss;
  • fehlt eine große Anforderung oder ein Architekturstück während der Planung;
  • verwirrend Arbeitsschätzungen mit Kalenderschätzungen und ohne Berücksichtigung von Besprechungen/Telefon/anderen Gemeinkosten;

Es gibt mehrere Möglichkeiten, wie Sie eine der drei oben genannten Möglichkeiten ansprechen können. Aber bevor Sie eines davon verbessern können, müssen Sie wissen, warum die Dinge so laufen, wie sie sind. Machen Sie ein Postmortem bei den letzten zwei oder drei Projektschätzungen im Vergleich zur tatsächlich benötigten Zeit und finden Sie heraus, wo die zusätzliche Zeit hingegangen ist.

Ich werde es noch einmal wiederholen - wenn Sie langsam Code schreiben, wird die Frist nicht verpasst, wenn Sie es richtig geplant haben, um diese Tatsache zu berücksichtigen.

132
Franci Penov

Lernen Sie wirklich Ihren Editor. Wenn Sie ein IDE) verwenden, stellen Sie sicher, dass Sie alle darin enthaltenen Funktionen verwenden. Holen Sie sich einen Spickzettel, um die Tastaturkürzel für den Editor Ihrer Wahl zu lernen. Wenn Sie ein Shell-Setup verwenden Verknüpfungen für häufig verwendete Verzeichnisse

89
slashnick

"Hat jemand Tipps oder Ratschläge, wie er die Geschwindigkeit seiner Ausgabe erhöhen kann, ohne die Qualität zu beeinträchtigen?"

Viele, viele Menschen streben nach "ultimativer" Qualität auf Kosten von etwas, das (a) einfach, (b) zuverlässig und (c) korrekt ist.

Der wichtigste Weg, um Ihre Entwicklung zu beschleunigen, ist vereinfachen was Sie tun, damit es absolut so einfach wie möglich ist.

Die meisten Leute, die Probleme mit der pünktlichen Lieferung haben, liefern viel zu viel. Und die angegebenen Gründe sind oft albern. Sie sind oft nur wahrgenommene Anforderungen, keine tatsächlichen Anforderungen.

Ich habe viele Leute gehört, die mir sagten, was der Kunde "erwartet". Dies ist eine schlechte Politik.

Bauen Sie das Einfachste. Wenn der Kunde mehr benötigt, bauen Sie mehr. Aber bauen Sie zuerst das Einfachste.

38
S.Lott

Vermeiden Sie es, Ihren Code perfekt zu polieren. Lassen Sie ihn einfach funktionieren. Das erwartet das Unternehmen.

Eine Erhöhung der Geschwindigkeit bedeutet jedoch häufig Qualitätseinbußen.

32
user8685

Wiederverwendung - Ich versuche, alle cleveren Teile aus früheren Projekten herauszufiltern, damit ich sie in zukünftigen Projekten wieder verwenden kann. Es lohnt sich immer, sich zu fragen: "Könnte ich das eines Tages wieder benutzen?"

29
Phil Jenkins

Halte es einfach.

Wenn Sie TDD verwenden, sollten Sie "rot, grün, Refaktor" folgen:

  1. Schreiben Sie einen fehlgeschlagenen Test (rot). (Oft hat Ihr Code aus Gründen der Funktionalität noch nicht.)
  2. Begehen Sie schreckliche Codierungsverbrechen, um Ihre Tests zu bestehen (grün). Hardcode falls erforderlich.
  3. Refactor, wahrscheinlich für kurze Zeit Tests abgebrochen, aber insgesamt das Design verbessert.
24
bryanbcook

Laden Sie alle Ihre Sprachen/Bibliotheken lokal auf Ihren Computer herunter und ziehen Sie dann das Netzwerkkabel ab/schalten Sie Wi-Fi aus.

Ich versuche hier nicht lustig zu sein. Das hilft mir wirklich!

22
mcjabberz

Beachten Sie, wenn Sie den Stapelüberlauf zu lange gelesen haben. Die Entschuldigung "Kompilieren" funktioniert nur so lange. :) :)

20
Matthew Jones

Vermeiden Sie es, Aufgaben zu oft zu wechseln. Ablenkungen und Aufgabenwechsel können einen Tag töten, selbst wenn Sie Tools wie Mylyn verwenden, um Ihre Aufgaben zu verwalten.

Finden Sie eine Granularität heraus (z. B. 30 Minuten) und arbeiten Sie nur an Dingen, die mit der vorliegenden Aufgabe zusammenhängen. Alles andere (neue Fehlerberichte, E-Mails zu anderen Problemen, nicht zusammenhängende Verfahrensfragen) wird mindestens bis zum "nächsten Kontrollpunkt" verzögert. Stellen Sie sicher, dass das Aufrufen von E-Mail-Benachrichtigungen deaktiviert ist, damit Sie nicht angesaugt werden.

Es ist besonders effektiv, wenn Sie einen Kumpel in Ihrem Team haben, der Sie wissen lässt, ob die Dinge wirklich zusammenbrechen und Ihre sofortige Aufmerksamkeit erfordern.

20
Uri

Mach es richtig, am besten beim ersten Mal. Wenn das bedeutet, dass Sie eine Weile innehalten und darüber nachdenken müssen, bevor Sie beginnen, dann tun Sie es. Funktioniert 90% der Zeit.

14
ck01
14
AJ Johnson

Ich mach es morgen .

Getting Things Done ist auch sehr hilfreich.

Ich habe sowieso eine kurze Aufmerksamkeitsspanne, also helfen mir diese Bücher, meinen Fokus zu behalten ... was habe ich wieder gemacht?

12
Matthew Jones

Übung und harte Arbeit.

Sie müssen Zeit und Mühe investieren. Wenn Sie sich mit den von Ihnen verwendeten Tools wohler und sicherer fühlen, sollten Geschwindigkeit und Kreativität folgen.

Wenn Sie eine bestimmte Fähigkeit verbessern möchten, kann es auch hilfreich sein, Übungen zu entwerfen, mit denen Sie gezielt daran arbeiten können. Wenn sich Ihre Langsamkeit in der Entwurfsphase befindet, versuchen Sie, Entwurfsprobleme zu finden, an denen Sie online arbeiten können. Wenn Sie dieselbe Übung wiederholen, können Sie sie schneller ausführen und schneller üben. Ich persönlich mag TopCoders Algorithmusübungen , um reine Programmiergeschwindigkeit zu üben. Sie haben auch Designherausforderungen, aber ich habe sie nicht ausprobiert.

12
DisplacedAussie

Erfahren Sie mehr über die Zone, lernen Sie, wie Sie sich darauf einlassen und wie Sie erkennen, wenn Sie nicht in der Zone sind.

Sobald ich "in der Zone" bin, bin ich äußerst produktiv und Code fließt einfach aus mir heraus. Oft kann ich 2 oder 3 Tage Codierung in 1 Tag durchführen. Aber ich finde, dass es oft schwierig ist, an diesen Ort zu gelangen. Ich zögere und werde von anderen Dingen abgelenkt (z. B. Stapelüberlauf).

Zitat aus welche Tricks benutzt du, um dich in die Zone zu bringen

11
Dustin Getz

Ihre IDE und Ihr Framework gut zu kennen. Es braucht Zeit, sich für jede Kleinigkeit an Google zu wenden.

10
Mike Hall
9
ZeroCool

Bevor Sie mit der Entwicklung beginnen:

  • Melden Sie sich von Ihrer Mailbox ab
  • Schalten Sie alle IM Clients aus
  • Bitten Sie Kollegen höflich, Ihnen Zeit zu geben, sich zu konzentrieren
  • Hören Sie natürlich auf, im Internet zu surfen

Jedes Mal, wenn Sie unterbrochen werden, werden Sie langsamer, da Sie sich Zeit nehmen, um mit den Gedanken wieder auf den richtigen Weg zu kommen. Ich habe Zahlen gehört, dass der menschliche Verstand für jede Unterbrechung 5-10 Minuten benötigt, um zu dem Gedankenprozess zurückzukehren, den er vor der Unterbrechung hatte. Mit so viel Zeit pro Unterbrechung braucht es nicht viel, um den ganzen Tag zu verschwenden.

Die Mitarbeiter unseres Unternehmens haben es sich tatsächlich zur Aufgabe gemacht, die Zeit in ihren Kalendern zu blockieren und dann jeden Tag für ein paar Stunden in einen leeren Konferenzraum zu ziehen.

8
dhable

Lernen Sie Ihre Entwicklung IDE rein und raus. Lernen Sie die Tastenkombinationen. Lernen Sie, die Maus weniger zu benutzen. Ich finde, dass dies viel Zeit für mich spart.

7
D3vtr0n

Sind Sie langsamer als Ihre Kollegen oder sind Ihre Schätzungen zu optimistisch?

7
pjc50

Um Software schneller zu produzieren, habe ich festgestellt, dass es das Beste ist, Ihre Laufzeit-API so gut wie möglich zu lernen. Geben Sie keine Listenlogik ein, wenn eine LINQ-Erweiterung ausreicht. Erstellen Sie keine Gruppe von Ereignis-Listenern, wenn die Bindung funktioniert usw.

Soweit geschätzt, kommt das mit Erfahrung. Sie können Schätzungssoftware verwenden, um bessere Schätzungen zu erhalten.

Persönlich habe ich bei Nachwuchsentwicklern festgestellt, dass sie ihre anfängliche Schätzung nehmen und mit 2 multiplizieren und dann verdoppeln. Dies wird all das Lernen, die Besprechungen, die verschwendete Zeit usw. berücksichtigen. Die erfahreneren Entwickler arbeiten in der Regel mit einem Faktor 2 über ihren Schätzungen.

Oft ist die Frage nicht, ob Ihre Schätzung falsch war. Hat Ihre Schätzung die richtigen Dinge berücksichtigt? Geben Sie Ihre Schätzungen und Zeitpläne in Bezug auf den Codierungsaufwand oder in Bezug auf die Kalenderzeit an? Denken Sie an die ganze Zeit Ihres Tages und daran, wie viel davon tatsächlich ist, produktives Codieren im Vergleich zu Besprechungen, Lernen, Debuggen usw.

7
James Schek

Zwei Dinge, die impliziert sein könnten, aber ich habe unter den Antworten hier noch keine gesehen, die die Produktivität steigern:

  • Verwenden Sie Build- und Bereitstellungsskripts. Das Kompilieren, Bereitstellen, Neustarten des App-Servers und dergleichen, die weder Zeit noch Fokus beanspruchen, sollte mit einem Klick erledigt werden.

  • Haben Sie eine Art Versionskontrolle. Das Codieren, ohne eine Änderung rückgängig machen zu können, ist wie der Versuch, auf Eiern zu laufen

7
Buhb

Ein paar Ideen kommen in den Sinn:

  1. Erhalten Sie andere Meinungen zu Ihren Schätzungen - Gibt es andere Entwickler, die Sie fragen könnten wie "Hey, glauben Sie, dass Sie diese Art von Funktion in diesem Zeitraum ausführen können?" Die Idee ist, dass die Eingaben anderer Personen in einigen Fällen zur Genauigkeit beitragen können, da jemand eine Reihe von Dingen notiert, die Sie bei der Erstellung der Schätzung übersehen haben.

  2. Verbessern Sie Ihre Schätzfähigkeiten - Beginnen Sie zu verfolgen, wie schlecht Sie bei den Schätzungen sind und warum Sie nicht da sind: Verursachen andere Arbeitselemente, dass Fristen nicht eingehalten werden? Unterschätzen Sie immer wieder, wie kompliziert etwas ist? Geben Sie eine ganze Zeitleiste an, wenn dies nicht praktikabel ist, z. Was gefragt wird, ist vage genug, dass es Wochen dauern wird, nur einen Prototyp zu erstellen, und dann sollte eine Neubewertung dessen erfolgen, was noch zu tun ist. Dies kann am meisten dazu beitragen, diese Fähigkeit aufzubauen. Wenn Sie also sagen, dass etwas x Stunden dauert, können Sie darauf vertrauen, weil Sie es immer und immer wieder getan haben. Eine alternative Möglichkeit, dies auszudrücken, ist lediglich üben, üben, üben.

Zugegeben, Sie haben diese wahrscheinlich bereits in Betracht gezogen, aber ich dachte nur, dass es sich lohnt, dies für die anderen da draußen zu sagen, die diese Ideen möglicherweise nicht berücksichtigt haben.

7
JB King
  1. Kennen Sie die Technologie in- und auswendig.
  2. Halt! Überlegen! Gehen!
  3. Architekt für alles, was entstehen mag, aber implementieren Sie nur das, was wirklich verlangt wird.
  4. KISS - Halte es einfach dumm
  5. Wenn es zu komplex wird, ist es wahrscheinlich nicht gut durchdacht. (Zurück zu 2 und 4)
  6. Bleiben Sie nicht in 5 stecken. Es lohnt sich oft, von vorne zu beginnen (Zurück zu 2 und 4).
  7. Gehen Sie zurück zu 1.
7
Rui Craveiro

Ich denke, das Schlüsselwort hier ist "Aktualität". Sie sagten nicht, dass Sie zu langsam waren, sondern dass Sie nicht rechtzeitig waren.

Im Projektmanagement ist es wichtig, dass der Manager abschätzen kann, wann Ihre Arbeitselemente genau sind. Ich vermute, dass der Hauptgrund, warum Ihre Bemühungen nicht als rechtzeitig angesehen wurden, darin besteht, dass Sie häufig Artikel hatten, die nicht termingerecht geliefert wurden und viel später als geplant geliefert wurden.

Um Ihre Aktualität zu verbessern, möchten Sie möglicherweise mehr Zeit damit verbringen, zu verstehen, wie lange Sie aufgrund Ihrer Fähigkeiten, Erfahrungen und der Domäne benötigen, um ein bestimmtes Arbeitselement zu erledigen. Auf diese Weise können Sie Ihrem Projektmanager bessere Schätzungen geben. Der Schlüssel hier ist "besser" ... Sie könnten häufiger pünktlich liefern, indem Sie alles mit einem Fudge-Faktor auffüllen, aber was Sie wirklich anstreben möchten, ist eine genauere Schätzung.

Ich würde dies mit Ihrem Manager besprechen, um zu sehen, ob dies tatsächlich das Problem ist. Andernfalls programmieren Sie möglicherweise doppelt so schnell, versprechen in der Hälfte der Zeit vielversprechende Dinge und werden immer noch für Ihre Aktualität kritisiert, da Ihre Schätzungen immer noch den gleichen Fehlerfaktor aufweisen.

7
Larry Watanabe

Stabil werden, stabil bleiben.

Erstellen Sie etwas, das einen kleinen Teil der Funktionalität implementiert, und stellen Sie sicher, dass es Ende-zu-Ende funktioniert. Lassen Sie es dann weiter funktionieren, während Sie neue Funktionen hinzufügen. Ja, dies ist teilweise eine TDD-Praxis, aber es macht Sinn, auch wenn Sie kein TDD machen.

Das Grundprinzip ist, dass jedes Mal, wenn ich jemanden mit 2 Wochen Code gesehen habe, der noch nie stabil war, es immer weitere 2 Wochen dauert, bis get es stabil ist.

Wenn Sie bleiben stabil sind, beseitigen Sie diese Unsicherheit und geben sich auch die Möglichkeit, bei Bedarf in der Nähe der Frist nach unten zu gehen.

Das offensichtliche Gegenargument ist, dass dies mehr Zeit in Anspruch nimmt als nur einmal zu schreiben, da Sie zusätzliche Arbeit leisten müssen, um nicht endgültigen Code zu stabilisieren. Ich kaufe das nicht für eine Sekunde. Wenn Sie Code haben, der funktioniert, ändern Sie 5 Zeilen, und etwas bricht, Sie wissen gena, wo der Bruch passiert sein muss.

Wenn Sie 10.000 Codezeilen haben, die nie funktioniert haben, und Sie eine Unterbrechung finden müssen, müssen Sie eine Menge Code durchsuchen.

Kleine, inkrementelle Änderungen an einem System mit konstant stabilem FTW. Gehen Sie langsam, um schnell zu gehen.

7
kyoryu

Gute Produktivität bedeutet für mich, eine klare Vorstellung davon zu haben, was Sie erreichen möchten und wie Sie dorthin gelangen.

7
mdma

Fast alle Antworten wurden hier und anderswo an zahlreichen Orten zu Tode gesagt. Oder zumindest habe ich es zu Tode gehört. Lernen Sie Ihre IDE, lernen Sie, schneller zu tippen, Frameworks zu verwenden, Code zu generieren usw. usw. Ja, natürlich helfen diese Dinge, und ich bezweifle, dass es viele Programmierer gibt, die sie alle beherrschen. Aber als Programmierer, der diese Fragen stellt und Websites wie Stack Overflow besucht Sie kannten diese Dinge bereits. Wollten Sie sie hier nur wiederholen oder wollten Sie nur ein wenig entlüften?

Aber was wäre, wenn wir in diesen Zustand gelangen könnten? Ich meine, all diese Vorschläge zu meistern? Was würde dann passieren? Gut. Ich würde vermuten, dass die Fristen noch weiter verkürzt werden. Und wieder kehren wir zu einer Wahrnehmung von Qualität zurück. Ich meine, unser Handwerk hat sich definitiv weiterentwickelt und ist im Laufe der Jahrzehnte immer produktiver geworden. Aber hat die Qualität in dieser Zeit zugenommen (natürlich ohne die ersten Jahre)?

Meine Antwort ist einfach: Qualitätssoftware braucht Zeit! Sie können nur eins gegen das andere tauschen (Qualität/Geschwindigkeit). Aber ja, wir alle wissen, dass wir nicht ehrlich sind, inwieweit dieser Kompromiss oft am Geschwindigkeitsende der Skala endet. Und wir sind schon früh in Projekten noch größere Lügner!

Ich sage , dass Sie hier nicht schuld sind. Das Problem ist die Wahrnehmung Menschen haben, wie lange Qualitätssoftware dauern sollte. Wir täuschen uns in der Überzeugung, dass wir in der Lage sind, Qualitätssoftware mit den Zeitplänen zu erstellen, die unsere Manager oder sogar wir schätzen. Wir machen keine Qualitätssoftware. Wir schreiben Software, die funktioniert, aber manchmal mit Qualitätsblitzen in bestimmten Ecken einer Anwendung.

Was können wir dagegen tun? Wir können unsere Chefs nicht einfach davon überzeugen, dass wir die Investition in jedes unserer Projekte verdoppeln oder verdreifachen müssen. Ich sage mit gutem Beispiel vorangehen. Erstellen Sie eine wirklich großartige Software als Nebenprojekt. Setzen Sie Ihre eigene Zeit ein und gehen Sie keine Kompromisse ein. Achten Sie die ganze Zeit darauf, wie Sie Fortschritte machen. Notieren Sie sich die scheinbar nicht zusammenhängenden Aufgaben, für die Sie unerwartet viel Zeit aufgewendet haben, und prüfen Sie, ob Sie dies rechtfertigen können. Vergleichen Sie dies mit allen anderen Projekten, an denen Sie gearbeitet haben. Sei brutal ehrlich mit dir selbst und allen Aspekten dieser Analyse. Können die zusätzlichen Dinge, die Sie mit Ihrer Qualitätssoftware getan haben, in "echten" Projekten bei der Arbeit vernachlässigt werden? Aber vielleicht ist Ihr Versuch fehlgeschlagen. Was war der Grund? Haben Sie sich gelangweilt und sind nur gehetzt, um die Kernfunktionen zu erledigen? Ich habe so etwas noch nicht selbst gemacht, weshalb ich diesen Gedanken mit einigen Zweifeln beende - aber ich beabsichtige, es wirklich zu versuchen. Ich werde Sie auf dem Laufenden halten :).

Schließlich denke ich, dass die meisten (wenn nicht alle) Leistungsbewertungen verdreht und außerordentlich manipulativ sind. Sie können Qualität und Geschwindigkeit nicht zu 100% drosseln. Ihr Chef sollte Sie anhand eines von der Organisation festgelegten Standards bewerten. Der Standard der Organisation für den Kompromiss zwischen Qualität und Geschwindigkeit. Stellen wir uns vor, OrangeSoft Inc. erwartet 33% Qualität und 66% Geschwindigkeit. Wenn Sie also Code schreiben, der vielleicht ein Drittel der Unit-Tests enthält, sollte dies der Fall sein. Wenn Sie ihn jedoch mit Geschwindigkeit und verkürzter Lieferzeit nachholen, sollten Sie bei Ihrer Bewertung nahezu 100% erzielen! (Dies sind ziemlich grobe Analogien, aber Sie verstehen es). Stattdessen schreibt Bob Code extrem schnell, ist aber notorisch fehlerhaft. Bei seiner Leistungsbeurteilung erhält er 3/5 für Qualität und 5/5 für Geschwindigkeit. Carol hingegen schreibt Code viel langsamer, erzeugt aber deutlich weniger Fehler. Sie erhält 5/5 für Qualität, aber 3/5 für Geschwindigkeit. So oder so werden Bob und Carol bei ihrer Gehaltserhöhung angedockt. Kann jeder Mitarbeiter eine perfekte Punktzahl erzielen? Ist das fair?

6
Thiru

Die Technik, die ich benutze, ist evolutionäres Prototyping

Sie können googeln, um weitere Informationen zu erhalten. Wenn Sie jedoch schnell etwas produzieren möchten, ist dies der einzige Weg. Außerdem hat es den Vorteil, dass Sie fertig sind, wenn der Benutzer sagt, dass er es mag (... und mit der Dokumentation beginnen können).

5
slashmais

Was sind Ihre Zeitengpässe? Ich finde, dass das Denken mein üblicher Engpass ist, daher würde eine Verbesserung meiner Schreibgeschwindigkeit (bereits gut) ungefähr nichts bewirken. Wenn das Tippen für Sie jedoch nicht schnell und natürlich ist, kann es Sie möglicherweise verlangsamen.

Versuchen Sie mehr zu tun, als erforderlich ist? Normalerweise möchte ein Unternehmen viel gute Arbeit von Ihnen, anstatt weniger, aber mehr polierte Arbeit, und das Hinzufügen von Funktionen, die nicht verwendet werden, verschwendet Zeit und Geld ohne geschäftliche Rendite.

Bist du zu voreilig? Unter Zeitdruck sparen die Leute häufig an Design und Planung im Voraus, in der Hoffnung, dass es trotzdem klappt. Das tut es häufig nicht.

Gehen Sie richtig mit der Zeit um? Die Entwicklung erfordert einige ununterbrochene Denkzeiten, oder Sie sind ineffizient und daher langsam.

5
David Thornley

Lesen Sie Neal Fords ausgezeichnetes Buch The Productive Programmer .

Es ist voller nützlicher Tipps.


Bearbeiten:

Lesen Sie, wie an anderer Stelle erwähnt, die Dokumente für Ihre Tools. Ich lerne immer neue Dinge für Vim, indem ich Vim-Wikis lese. Ebenso bietet das Lesen der Manpage für Bash oder Zsh immer neue Tricks.

4
Rob Wells

Ich habe vor langer Zeit etwas über Optimierung gelesen, das mir wirklich aufgefallen ist. Ich erinnere mich nicht an die Quelle oder die genauen Wörter, aber das Wesentliche war: "Der einzige Weg, ein Programm schneller laufen zu lassen, besteht darin, es weniger zu machen. Jeder andere Plan ist genau das." Das gilt auch für Menschen. Die Armee hat auch ein Sprichwort: "Eile macht Verschwendung." Wenn wir die gleichen Dinge tun, die wir jetzt tun, aber schneller, entstehen nur Probleme. Es gibt viele verschiedene Pläne, um produktiver zu werden, und ich sage nicht, dass sie nicht effektiv sind, aber sie werden nicht auf Ihre Bedürfnisse zugeschnitten. Sie sollten sich besser ansehen, was Sie tun, die Dinge finden, die Sie nicht produktiv machen, und diese herausschneiden. Jeder andere Plan ist nur eine verwässerte Version davon.

4
Imagist

Folgendes funktioniert bei mir:

  1. Teilen Sie Ihre Arbeit in kleine Aufgaben auf, die (1) in Umfang (2) kurz definiert sind - z. 2 Stunden.
  2. Beginnen Sie den Tag, indem Sie sie der Reihe nach auf ein Blatt Papier schreiben. Zeichnen Sie einige Linien durch - Dinge, die Sie voraussichtlich vor dem Mittagessen erledigen werden, Dinge, die Sie bis zum Ende des Tages erledigen werden usw.
  3. Bearbeiten Sie Ihre Liste und kreuzen Sie die Elemente an.
  4. Zeitfenster - Wenn sich etwas in die Länge zieht, geben Sie sich ein Zeitlimit für die Recherche, bevor Sie um Hilfe bitten, oder lösen Sie es auf einfachere Weise.
  5. Wenn möglich, strukturieren Sie Ihre Arbeit so, dass Sie sich öffentlich zu diesen Zeitrahmen verpflichten - geben Sie Schätzungen in die Fehlerverfolgung ein usw.
  6. Wenn Sie sich dabei ertappen, Zeit mit Nachforschungen, Lesen usw. zu verbringen, kehren Sie die Reihenfolge um. Gönnen Sie sich beispielsweise eine Belohnung von 10 Minuten, wenn Sie eine 1-stündige Aufgabe termingerecht erfolgreich abgeschlossen haben.

Ich habe mehrere Kommentare gesehen, dass Sie weniger Zeit mit Stapelüberlauf verbringen sollten. Wenn Sie es richtig verwenden, sollte Stack Overflow Sie effizienter machen, nicht weniger. Vermeiden Sie Diskussionen und konzentrieren Sie sich darauf, damit Ihre Arbeit zu erledigen.

3
Jon Galloway

Wiederhole dich nicht

Alte Projektressourcen wiederverwenden.

Nehmen Sie sich einen Tag Zeit, um Ihre IDE zu lernen. Wenn es keine Tools wie Snipets, automatische Code-Vervollständigung bietet, sollten Sie ein neues erwerben.

Fügen Sie an wichtigen Stellen Verknüpfungen zu allem ein, damit Sie schneller auf Dinge zugreifen können.

Holen Sie sich einen zweiten Bildschirm, falls dies nicht bereits der Fall ist.

Überprüfen Sie Ihre E-Mails nicht zu oft.

Konzentrieren Sie sich jeweils nur auf eine Aufgabe. Wenn dies nicht möglich ist, behalten Sie genau im Auge, was Sie tun, und verlieren Sie sich nicht zwischen 15 nicht verwandten Aufgaben.

Verwenden Sie Papier. Wenn ich arbeite, habe ich immer eine gedruckte Version meiner Aufgaben, zu der ich Notizen machen, abkreuzen und so weiter kann. Es ist viel schneller als auf einem anderen Bildschirm etwas zu lesen oder zu schreiben. Am Ende des Tages nehme ich mir 10 Minuten Zeit, um alles in das System zu kopieren. Mir wurde klar, dass es mir jeden Tag Zeit sparte.

3
marcgg
  1. Entwickeln Sie sich jeden Tag mehr und mehr als Programmierer ... Lernen Sie Designmuster!
  2. Verwenden Sie TDD, aber auf die richtige Weise sind die Fehler, die Sie in Ihrem Code haben können, die zeitaufwändigste Sache.
  3. ReSharper verwenden :)
3
Denis Biondic

Da viele der anderen Antworten sich mit Designarbeiten befassen, werde ich mich nur an den rein mechanischen Aspekt des schnelleren Codierens halten. Das meiste davon ist wahrscheinlich offensichtlich, aber ich werde es trotzdem sagen, da ich bemerke, dass viele meiner Mitarbeiter einige dieser Dinge nicht tun.

Ordnen Sie Ihre IDE Tastaturkürzel) neu zu, damit Sie die meisten davon mit Ihrer linken Hand ausführen können. Dadurch wird Ihre Maushand für schnelles und wütendes Umreißen/Umgestalten von Code frei.

Erfahren Sie, wie Sie mit dem Cursor navigieren und Text mit einer Kombination aus auswählen CtrlShift, Pfeiltasten, Home und End.

Unten ist mein C++ - Setup (Visual Studio mit Visual Assist X). Ich habe eine norwegische Tastatur. Bitte nehmen Sie Folgendes mit:

Alt-Z: Wechseln Sie zwischen .h und .cpp

Strg-Umschalt- <: Kontextsensitives Springen durch Referenzen. (<für mich ist der Schlüssel links von Z, ihr Engländer habt keinen davon. Ordnen Sie ihn dann Strg-Umschalt-Z zu.)

Alt- | : Methode implementieren. Schreiben Sie zuerst den Header und drücken Sie einfach Alt- | Sie können die gesamte Klasse in wenigen Sekunden umreißen. (| ist für mich der Schlüssel unter Escape.) Dies gilt insbesondere dann, wenn Sie die CPP- und Header-Dateien im Texteditor nebeneinander platzieren, sodass der Header nicht angezeigt wird Sie werden nicht jedes Mal verdeckt, wenn Sie die Aktion ausführen.

Alt-R: Benennt das Symbol unter meinem Caret um.

Alt-D: Fügt eine Dokumentationsvorlage für die ausgewählte Funktion hinzu.

Dies ermöglicht zusätzlich zur blitzschnellen Code-Vervollständigung das Refactoring für die linke Hand.

3
Nailer

Code-Schnipsel, Erfahrung und unaufhörliche Begeisterung. Lesen Sie immer Dinge: Programmierer-Blogs, Bücher, Literatur, den schlechten Code anderer Leute. Sie werden schneller, wenn Sie eine breitere Sicht auf Dinge bekommen. Wenn Sie sich alle Arten komplexer Hintergrundprozesse vorstellen können und die gesamte Komplexität des Zielsystems wirklich kennen.

Das Pragmatic Programmer's Handbook ist ziemlich beeindruckend: Es handelt von Best Practices und großen Fallstricken vieler verschiedener Aspekte der Softwareentwicklung. Gummi ducken und so klingt krass nerdig und dumm. Die meisten Programmierprobleme sind jedoch so, dass wir dazu neigen, viel zu komplex zu denken. Ich bin ein großer Fan von einfachen und einfachen Lösungen: keine großartigen Tricks, keine supereleganten Hacks: nur die einfachsten Lösungen verwenden.

Wenn Ihr Team gut ist, können Sie versuchen, zusammenzuarbeiten: Bespin und einige andere Frameworks ermöglichen heutzutage das gemeinsame Bearbeiten einer Datei. Das ist großartig, wenn du wirklich darauf stehst und siehst, wie dein Kollege die Magie macht;).

3
wishi

Versuchen Sie, Ihre E-Mails in längeren Abständen zu lesen, und verwenden Sie keine sozialen Online-Tools wie Twitter, Facebook usw. mehr.

Verwenden Sie dieses Hintergrundbild .

Versuchen Sie, mit offener Vorderansicht zu arbeiten. Normalerweise benutze ich den Konferenzraum, wenn er kostenlos ist. Er hilft mir, mich zu konzentrieren!

Versuchen Sie, mit anderen Programmierern in Ihrer Nähe zusammenzuarbeiten.

3
Adnan Memon

Der Trick besteht nicht darin, Code schneller zu schreiben, sondern Arbeitscode schneller zu schreiben.

Je früher Sie einen Fehler erkennen, desto weniger Aufwand ist erforderlich, um ihn zu beheben. Dies ist die Hauptsache, die sich auf die Leistung des Programmierers auswirkt.

Es geht nicht darum, wie schnell Sie tippen oder wie schnell Ihr Compiler ist, sondern um die Geschwindigkeit, mit der Sie Fehler identifizieren und beheben können, während Sie fortfahren.

Daher würde ich Paarprogrammierung vorschlagen, um schneller zu sein - es vermeidet wirklich Fehler. Das und testgetriebene Entwicklung. Mit zwei Augenpaaren ist es für Insekten mehr als doppelt so schwer, durchzukommen (ich denke jedenfalls).

Andere Tipps wären

  • Versuchen Sie, die Bearbeitungszeit für Codetests auf ein Minimum zu reduzieren - dies hängt natürlich von Ihrer Plattform und den Tools ab. Wenn Sie an einem albernen eingebetteten System mit lahmen Tools arbeiten, kann die Bearbeitungszeit erheblich sein (z. B. wenn Sie ein System-Image neu erstellen und das Gerät neu starten müssen). Hier können VMs oder Simulatoren hilfreich sein.
  • Wenn Sie keine Paarprogrammierung durchführen, bitten Sie andere gelegentlich um informelle Codeüberprüfungen, jedoch nur bei logischen Unterbrechungen Ihres (und hoffentlich ihres) Ablaufs. Tun Sie dies zusätzlich zu Ihrem formellen Codeüberprüfungsprozess, den Sie zweifellos haben.
  • Halten Sie es einfach - nicht zu viel Ingenieur. Du wirst es nicht brauchen.
3
MarkR

Schreiben Sie Ihre eigenen Produktivitätswerkzeuge. Das Schreiben kann zunächst einige Zeit in Anspruch nehmen, aber die Auszahlung kann im Laufe der Zeit hoch sein.

Einige Tools, die ich geschrieben habe und die ich ständig benutze:

  • Ein SQL-Formatierer.
  • Ein automatischer SQL-Generator: Wählen Sie einfach die Tabellen aus.
  • Ein einfacher Aufgabenpriorisierer, mit dem ich alle meine Aufgaben auf einmal sehen kann.
  • Eine Aufgabenerinnerung, die mich regelmäßig nervt.
  • Eine App, die begrenzten Text verwendet und es Ihnen ermöglicht, ihn wie eine Tabelle und wie Text zu behandeln.
  • Ein PHP/Javascript/HTML-Seitenformatierer. Ein Glücksfall bei der Arbeit mit dem Code anderer.

Ich habe in meiner Zeit viele andere kleine Werkzeuge geschrieben, die auf der Strecke geblieben sind, aber die Mühe hat sich trotzdem gelohnt.

3
Jonathan Swift
  1. Ich höre sehr gerne Musik, während ich programmiere, weil ich das Gefühl habe, dass sie mich entspannt und ich mich konzentrieren kann.

  2. Ein bequemer Stuhl. Ich benutze nie die Computerlabore meiner Schule zum Programmieren, weil die Bürostühle unglaublich unbequem sind.

  3. Iss vorher etwas, denn nichts tötet meine Motivation so sehr wie quälender Hunger.

3
Matt Phillips

Trainieren. Das und Produktivitätswerkzeuge, mit denen Sie schneller arbeiten können.

In der .NET-Umgebung gibt es beispielsweise Resharper (Sie haben die Plattform, auf der Sie arbeiten, nicht erwähnt).

2
Randolph West

Verhandeln Sie die Schätzungen und Zeitpläne neu. Stellen Sie sicher, dass Sie derjenige sind, der sagt, wie lange etwas dauern wird, und erliegen Sie keinem "Nun, wir müssen es früher erledigen" oder "Wie wäre es mit einem Stretch-Ziel" -Vorschlägen.

Lesen Sie Joel Spolskys Artikel über Schätzungen, in dem grundsätzlich empfohlen wird, das Werk in kleine Stücke zu zerlegen, und schätzen Sie jeden einzelnen. Wenn einer von ihnen in Tagen gezählt wird, teilen Sie ihn weiter auf, bis Sie alles in Stunden geschätzt haben.

2
harriyott

Sie und Ihr Chef/Bewerter müssen bestimmen, wie viel Zeit Sie tatsächlich programmieren müssen. Nehmen Sie die Besprechungen, E-Mails, Dokumentationen, Tests und anderen Unterbrechungen ab dem Zeitpunkt heraus, an dem Sie voraussichtlich arbeiten werden, und sehen Sie, was noch übrig ist.

Versuchen Sie, Ihre Zeit zu überwachen, um einen Benchmark zu erhalten, wie lange bestimmte Aufgaben dauern. Es wird produktive Zeiten (für mich früh am Tag oder jede Zeitspanne, in der ich ohne Unterbrechungen bei der Arbeit bin) und unproduktive Zeiten geben. Finde einen Durchschnitt.

Sie können feststellen, dass das Programmieren einer bestimmten Aufgabe 8 Stunden dauert, aber ich bezweifle, dass Sie dies an einem Tag erledigen werden.

Ich würde auch versuchen, sich mit anderen zu vergleichen. Die Unternehmenskultur kann darin bestehen, viele Stunden einzuplanen.

2
JeffO

Nun, ich denke, ich bin nicht langsam, aber die Arbeit, die mir gegeben wird, füllt tendenziell die verfügbare Zeit.

Unabhängig davon höre ich oft "Gee, du hast das schnell gemacht", aber es liegt nicht daran, ein schneller Codierer zu sein, sondern daran, weniger zu codieren.

Ich denke, der Hauptweg, weniger zu codieren, besteht darin, wie ein DSL zu denken. Wenn Sie den Code nicht von einem Präprozessor für Sie generieren lassen können, schreiben Sie einen Codegenerator. Es muss nicht schick sein. Wenn Sie eine einzelne eigenständige Anforderung erhalten, besteht das Ziel darin, die Anzahl der Quellcodeunterschiede zu minimieren, die zur Implementierung dieser Anforderung erforderlich sind. Im Idealfall ist diese Zahl 1. Wenn Sie sie im Durchschnitt um 3-6 senken können, ist das ziemlich gut. (Es ist nicht nur so, dass Sie weniger schreiben. Je kleiner diese Zahl ist, desto kleiner ist die Anzahl der Fehler, die Sie eingeben, und das wirklich spart Zeit.)

Zu diesem Zweck empfehle ich Leistungsoptimierung , da Sie dann herausfinden, welche Codierungspraktiken zu den größten Verlangsamungen führen und sie auch zu aufgeblähtem Code führen. Insbesondere übermäßige Datenstruktur und Programmierung im Ereignis-/Benachrichtigungsstil. Diese Dinge allein tragen massiv zum Codevolumen bei.

Heutzutage ist ein Großteil des Codevolumens auf die Benutzeroberfläche zurückzuführen, insbesondere wenn diese dynamisch flexibel ist. Ich bin auf einen Weg gestoßen, diesen Teil namens Dynamic Dialogs zu erledigen, der eine schwierige Lernkurve hat, aber den UI-Code um ungefähr eine Größenordnung verkleinert.

Ich fürchte, Sie müssen Ihren eigenen Weg finden, aber viel Glück.

2
Mike Dunlavey

Halte dein persönliches Leben in Ordnung. Holen Sie sich viel Schlaf, essen Sie gesund und nehmen Sie Vitamine - besonders wenn Sie einen Eisenmangel haben. Halte dich von "dem Getränk" fern - wenn du weißt, was ich meine. Und denken Sie daran: "Sowohl Wein als auch Frauen können einen weisen Mann in die Irre führen."

Erstellen Sie außerdem Vorlagen für Ihren Code und einen "Codegenerator", der mit Mustern für reguläre Ausdrücke arbeitet. Wenn Sie feststellen, dass Sie ähnliche Klassen kopieren und einfügen, suchen und ersetzen, automatisieren Sie diesen Vorgang. Ich habe dies für meine PHP -Projekte getan, in denen ich eine CRUD-Anwendung mit allen grundlegenden MVC-Komponenten basierend auf meinen Datentabellen erstellen kann - die Datenmodelle sehen bis auf die alle gleich aus Da sie Datentabellen darstellen, werden diese in Vorlagen eingerichtet und zum Generieren meines ursprünglichen Codes verwendet. Spart Stunden beim Tippen.

Sagen Sie abschließend allen am Projekt beteiligten Personen, dass der Code 1/4 bis 1/2 Mal länger dauern wird, als SIE denken. Verhandeln Sie frühzeitig mehr Raum zum Atmen. "Spät" ist ein relativer Begriff. Wenn Änderungen im Projekt während des Streams auftreten, teilen Sie allen im Voraus mit, dass 8 weitere Arbeitsstunden hinzugefügt wurden. Ein Tracking-System, wie es in "FogBugz" angeboten wird, kann für Sie und Ihre Manager hilfreich sein, um anhand vorheriger Erfahrungen vorauszusehen, wie lange es dauern wird, bis etwas erledigt ist. Ich versuche zu verstehen: "Es war nicht spät - ich habe die richtige Zeit verwendet, um diese Funktion abzuschließen - es hat nur länger gedauert, als wir erwartet hatten."

Ein anderer Programmierer könnte sagen: "Nun, ich hätte es schneller machen können ..." Vielleicht, vielleicht auch nicht, das ist kein Punkt, über den es sich zu diskutieren oder zu verprügeln lohnt - es wird immer einen "klugen" Kerl geben, der versucht, diesen Knopf zu drücken. Er wird dich verlangsamen, wenn du darüber nachdenkst! Es ist immer eine schlechte Situation, wenn es Ihr Chef ist. An diesem Punkt würde ich in Betracht ziehen, nach einem anderen Job zu suchen, weil diese Art von Chef in meinem Buch ein arroganter JERK ist.

2
JasonMichael

F: Was tun Sie, um in kürzeren Zeiträumen mehr zu erreichen?

A: Kommen Sie jeden Tag ins Büro und schreiben Sie alles, was Sie dazu beenden möchten, in (Haftnotizen) Outlook-Notizen. Beginnen Sie mit der Arbeit an dieser Reihenfolge der Artikel. Glauben Sie mir am Ende des Tages, Sie würden das Gefühl haben, getan zu haben, was Sie geplant hatten, und das ist ein großartiges Gefühl.

2
Cshah

Paarprogramm - das hat alle möglichen Vorteile:

  • zwingt Sie, Ihr Denken zu artikulieren/zu klären
  • gibt Ihnen Einblick in die Arbeitsweise eines anderen, viele Ideen, die Sie übernehmen/ausprobieren können
  • lernen Sie neue Technologien direkt von jemand anderem, der sie kennt
  • holen Sie sich kleine Produktivitätstipps von anderen. Sie sehen immer, dass jemand einen Menübefehl verwendet, den Sie vorher nicht verstanden haben, oder einen nützlichen Unix-Befehl.
2
ndp

Schreibe weniger Code.

Verbannen Sie Not-Invented-Here und nutzen Sie vorhandene Bibliotheken/Frameworks/Toolkits, um gemeinsame (und im Allgemeinen nicht definierende) Funktionen bereitzustellen, sodass Sie nur schreiben müssen, was neu ist. Erstellen Sie die Teile, die Sie selbst schreiben müssen, unter Berücksichtigung der Wiederverwendung, damit Sie sie für das nächste Projekt nicht erneut schreiben müssen.

Selbst wenn Sie die Anzahl der Zeilen Code, die Sie pro Tag erstellen, nicht erhöhen, können Sie in kürzerer Zeit mehr erledigen, indem Sie jede Zeile mehr erledigen lassen.

2
Dave Sherohman

Das einzig klare, was ich gefunden habe, ist, frei von Ablenkung zu sein. Was in manchen Umgebungen unmöglich ist. Aber wenn Sie sich auf die spezifische Aufgabe konzentrieren können und NUR auf diese Aufgabe, überwiegen Sie wahrscheinlich alles andere. Diese Kontextwechsel sind wirklich große Zeitsenken.

2
Joe

Jonglieren während einer Pause

Juggling

2
Cornelius

Trinken Yerba Mate anstelle von Kaffee

Yerba Mate

2
Cornelius

Es ist immer die gleiche alleinige Entscheidung, schnelle Entwicklung vs. Qualität, Lesbarkeit, Erweiterbarkeit. Drag & Drop von Steuerelementen und unendlichen Code-Behind-Dateien (schnell und schmutzig) oder Modularität, Muster und Praktiken (langfristige Investition)?

Meiner ehrlichen Meinung nach muss jeder in die langfristige Art der Codierung investieren. Mit der Zeit wird auch die schnelle Entwicklung von großer Qualität sein.

Falls ich Ihre Anfrage jedoch nicht verstanden habe und Sie nach Antworten in Bezug auf praktische Aspekte der schnellen Entwicklung suchen, wie Tools, Codegeneratoren und andere Dinge, ist meine Meinung, Resharper zu verwenden und so viel wie möglich über Ihr = zu lernen IDE :)

1

BENUTZEN SIE RAHMEN !! Kümmere dich nicht um Hardcodierung!

1
Koosha

Zunächst sollten Sie kein System entwerfen, das auf einigen Besprechungen mit Endbenutzern basiert. Tatsächlich sollten Sie nicht in die Anforderungsphase eines Projekts involviert sein, das müssen die Geschäftsanalysten und Endbenutzer ausarbeiten.

Die zweite Phase sollten Ihre technischen Anforderungen sein. Hier beginnen Sie mit den Geschäftsanalysten zusammenzuarbeiten, um eine Lösung für die angeforderte Spezifikation zu finden.

Jetzt ist der wichtige Teil. Stellen Sie sicher, dass Sie sowohl die Endbenutzeranforderungen als auch die funktionalen Anforderungen verstehen. Es hat keinen Sinn, etwas anzufangen, nur um festzustellen, dass es nicht den Erwartungen der Benutzer entspricht. Sprechen Sie, wenn Sie etwas nicht verstehen.

Jetzt ist es Zeit, den Editor zu treffen. Aber mein Ansatz ist es, niemals echten Code zu schreiben, immer zuerst einen absoluten Stapel von Kommentaren zu schreiben und dies in Pseudocode zu tun, wenn dies für Sie einfach ist, was auch immer es nicht wichtig ist, solange es klar und leicht zu lesen/zu verstehen ist.

Sobald Sie Ihre Kommentare abgegeben haben, können Sie entweder a) Ihre Testfälle schreiben, b) die Implementierung schreiben.

Abhängig von Ihrer Umgebung beginnen Sie am besten mit (a), aber leider beginnen die meisten mit (b) und versuchen dann, die Tests zu erzwingen, um die Implementierung zu erfüllen. Ehrlich gesagt, wenn Sie Teil eines großen Unternehmens wären, würde eine Abteilung die Testfälle für Sie schreiben, bevor Sie überhaupt anfangen, etwas zu tun.

1
Brett Ryan

Jeder sagt "E-Mail abrufen", aber bedenken Sie die Zeit, die Sie mit dem Schreiben hochtechnischer E-Mails verbringen. Ich kann leicht eine Stunde damit verbringen, eine einzelne E-Mail zu schreiben. Um das Problem zu beheben, konnte ich entweder 1) nicht so viel schreiben oder 2) das technische Material (und das Material, bei dem ich Code lesen muss, um zu antworten) verschieben, bis es absolut notwendig ist.

1
Shin

Wenn Sie tatsächlich Code schreiben, hilft CodeRush ziemlich viel, besonders wenn Sie die Verknüpfungen beherrschen. Außerdem ist es kostenlos: D.

1
GaiusSensei

Ich verbringe jede Woche ein bisschen Zeit damit, nach neuen kreativen Wegen zu suchen, um Dinge zu tun, die möglicherweise in direktem Zusammenhang mit dem stehen, woran ich gerade arbeite. Oft finde ich neue Tricks oder Tools, von denen ich nie wusste, dass sie meinen Workflow beschleunigen.

1
fscmj

Machen Sie sich mit Ihrer IDE vertraut.

Wenn Ihr IDE Visual Studio ist, dann empfehle ich Sara Fords Buch .

1
Jim G.
  • designmuster lernen. Sie helfen Ihnen, Probleme zu verstehen, machen Sie zu einem besseren Programmierer -> lassen Sie viel schneller programmieren, da Sie bereits Lösungen für verschiedene Probleme vorbereitet haben
  • extrahieren Sie sich wiederholende Teile in Ihrem Programm. Wenn es eine Logik gibt, die sich in mehreren von Ihnen geschriebenen Programmen wiederholt, sollten Sie sie verallgemeinern und in eine Klassenbibliothek extrahieren, die Sie dann für neue Anwendungen, die Sie schreiben, wiederverwenden können. Standardisieren Dinge: Investieren Sie etwas Zeit, um herauszufinden, wie bestimmte sich wiederholende Aufgaben am besten erledigt werden. Dokumentieren Sie die Schritte zum Erreichen. Das nächste Mal werden Sie genau wissen, wie Sie sie lösen/anwenden können.
  • KISS-Prinzip
  • Die Codegenerierung ist hilfreich (sobald ein nützliches Tool verfügbar ist). Generatoren werden in letzter Zeit immer beliebter.

Anmerkung : Nur Dinge zum Laufen zu bringen ist schlimmer !! Wie einige erwähnen, werden Sie nur für den Moment schneller, wenn Sie Dinge hacken, bis sie funktionieren. Es treten jedoch Fehler auf, die auch in Bezug auf die Programmiergeschwindigkeit zählen. Wenn ich ein Stück Funktionalität schreiben muss und in gutes Schreiben investiere, ein gutes Design habe, möglicherweise gut getestet (mit Unit-Tests) und sage, ich brauche einen halben Tag. Aber nehmen Sie an, das war es und Ihre Funktion funktioniert und Sie müssen sie nicht erneut berühren. Ein anderer Programmierer, der sich nur auf die schnelle Erreichung seines Ziels konzentriert, wird (möglicherweise) ein schlechtes Design erstellen, da fehlende Tests fehlen, um Grenzfälle und Ausnahmefälle nicht zu berücksichtigen. Er braucht 2 Stunden (sagen wir mal). Es werden Fehler auftreten, er muss den Code erneut berühren, beheben, möglicherweise verlängern (Stunden werden erneut investiert). Code wird schwer zu pflegen sein etc ... Resümee: Am Ende wird er viel Erzzeit verbringen und die Frustration wird höher sein.

1
Juri

Verwenden Sie ein ergonomisch optimiertes Tastaturlayout . Einige richten sich sogar an Programmierer durch leicht zugängliche Sonderzeichen.

1
knittl

Von zuhause aus arbeiten. Wenn ich eine schwierige Frist habe und mich ganz auf ein Problem konzentrieren muss, sage ich meinem Chef, dass ich von zu Hause aus arbeite. Auf diese Weise kann ich meine Umgebung optimal einrichten, Unterbrechungen reduzieren und mich wie ein Laserstrahl auf das Problem konzentrieren.

1
Pedro Estrada

Mit der Erfahrung werden Sie schneller und können sich die API viel mehr merken.

Meine Tage, in denen ich im Internet nach Codefragmenten gesucht habe, sind viel kürzer, da ich gelernt habe, besser zu codieren.

Oh, vielleicht möchten Sie auch versuchen, funktionale Programmierkonzepte und Lamda zu verwenden, um Ihren Code zu reduzieren :)

1
Vince

Aufgeregt zu sein, was Sie tun, ist eine großartige Möglichkeit, die Effizienz zu steigern. Stellen Sie sicher, dass es Spaß macht!

1
Jakob

Ich denke, dass das Skizzieren Ihrer Idee auf Papier, denken Sie daran, eine großartige Möglichkeit ist, einige Ideen zu konkretisieren. Als Programmierer, egal ob Profi oder Hobbyist, verbringen wir so viel Zeit damit, auf den Bildschirm zu starren, dass es gut ist, eine andere Möglichkeit zu haben, Ihre Ideen einzubringen. Ich finde, dass das Auskratzen von Dingen, das Zeichnen hastiger Linien, die Ideen verbinden, Dinge umkreisen, unterstreichen usw. die Betonung einer Idee erhöhen und Ihnen wirklich helfen können, eine Idee viel schneller zu sortieren, als zu versuchen, sie sofort oder von Anfang an zu strukturieren eine computergestützte Form.

Eine andere Sache, die hilft, ist das Prototyping von Kleinteilen. Habe gestern Abend einen TED-Audio-Podcast gehört, in dem der Redner über den Bau kleiner Strukturen aus Spaghettisticks und Marshmallow diskutierte. Anscheinend ist dies eine ziemlich weit verbreitete Studie, um die sozialen Konstruktionsfähigkeiten kleiner Gruppen zu testen ... jedenfalls die Gruppen, die dies immer getan haben Besser, abgesehen davon, dass Architekten, die Bewehrung und Hochbau verstanden, Kinder waren, weil sie einen Strom ständiger Rückmeldungen verwendeten, um Ergebnisse zu erzielen. Ich denke, Sie können dies auch in eine Programmieridee einfließen lassen, bei der Sie sehen, dass kleine Dinge zu tun und Ergebnisse zu erzielen nicht nur produktiver, sondern auch viel lustiger und nützlicher ist, als ein riesiges Konstrukt zu erstellen und dann Tage damit zu verbringen, es zu debuggen ... das ist getötet einige meiner "lustigen" Ideen in der Vergangenheit sicher.

1
dscher

Wenn ich im Büro bin und meinen Fokus behalten muss, schließe ich meinen E-Mail-Client. Nichts zerstört die Effizienz für mich schneller als die ständige Versuchung, einen kurzen Blick auf die gerade eingetroffene Nachricht zu werfen. Ich habe auch mit der Pomodoro-Technik gespielt, um Störungen zu bewältigen und den Fokus aufrechtzuerhalten.

1
Tim Trout

Verwenden Sie nach Möglichkeit Codegeneratoren. Manchmal erweist sich sogar Microsoft Excel (oder OpenOffice Calc) als leistungsstarkes Tool zur Codegenerierung.

0
Canavar

Einfach ausgedrückt, Whiteboard -> Aufteilung in überprüfbare Anforderungen in Aufgaben (Ich habe Team Foundation verwendet, um jede Aufgabe zu verfolgen und wie lange sie dauern sollte.)

Verwenden Sie Tests, um sicherzustellen, dass Sie das erledigen, was erforderlich ist, nicht mehr und nicht weniger. (Mach dir noch keine Sorgen um die Leistung.)

Gehen Sie von Anforderung zu Anforderung und testen Sie nach jedem Abschluss. Nach Abschluss jeder Aufgabe sollten Sie eine genaue Schätzung der verbleibenden Zeit haben.

Wenn alle Anforderungen erfüllt sind, gehen Sie zurück und "polieren" Sie es.

Wenn man zuerst die Beinarbeit macht, muss man alle Anforderungen ausbügeln, was Zeit spart, indem man die Dinge gleich beim ersten Mal richtig macht.

Wenn dies richtig gemacht wird, sollte mehr Zeit für den Stapelüberlauf aufgewendet werden können :)

Viel Glück

0
Brad8118

Hier gibt es eine Menge großartiger Ideen. Um in die 'Zone' zu gelangen, verwende ich einen Timer, der in Intervallen von 27 Minuten eingestellt wird. Ich finde, wenn ich einmal im Arbeitsmodus bin, ist es einfach, weit über den Summer hinaus zu arbeiten, und das Arbeiten mit Flow ist schmerzlos. Es ist allerdings schwierig, dorthin zu gelangen.

0
Daver

Das einzige, was mir am meisten aufgefallen ist, ist Motivation und Spaß. Das mag verschwommen erscheinen, aber wenn ich motiviert bin und etwas tue, das mir Spaß macht, kann ich äußerst effektiv sein. Auf der anderen Seite, wenn ich keiner bin, fühlt es sich wirklich so an, als müsste ich jede einzelne Codezeile aus mir herausdrücken.

Finden Sie Ihre Sweet Spots, was motiviert Sie wirklich und welche Aufgaben erledigen Sie wirklich gerne? Und können Sie Ihre Planung beeinflussen, damit Sie dies tun können? Für mich ist es, wenn ich Probleme und Designprobleme lösen kann und wenn ich das Gefühl habe, einen Teil des Projekts zu haben.

Vor einigen Monaten hatten wir ein kleines Projekt, für das unser kleines Team zuständig war, und es war eine wirklich wichtige und sehr unrealistische Frist dafür. Wir waren jedoch alle sehr motiviert und hatten großen Spaß dabei und haben es rechtzeitig mit einem zufriedenen Kunden geschafft. Der Grund für meine Motivation war, dass wir sehr in das Projekt involviert waren und kreative Ideen dafür entwickeln mussten. Ich muss auch die Teile machen, die mir wirklich Spaß machen.

Vor kurzem war ich jedoch an einem Projekt beteiligt, bei dem ich im Grunde genommen ein Code-Affe bin, nur nervenaufreibende und frustrierende Aufgaben erledige oder einfach schnellstmögliche Probleme auf dem schnellstmöglichen Weg habe, von dem ich weiß, dass er irgendwann zurückkommt und mich hart beißt eine nahe Zukunft, und es war schmerzlich langsam.

Also, was sind deine Sweet Spots?

0
Runeborg
  1. Wissen Sie, was Sie tun möchten und interessieren Sie sich dafür
  2. Verbringen Sie ein paar Stunden damit, nach Code zu suchen
  3. Kopieren Sie den Code und fügen Sie ihn ein, um das Endergebnis zu erzielen
  4. Arbeiten Sie an einer einfachen Benutzeroberfläche, um die Arbeit zu erledigen. Verbringen Sie keine Zeit damit, sie hübsch aussehen zu lassen
  5. Testen und debuggen
  6. Arbeite an einer hübschen GUI
0
Matt S.

"Aktualität" ist nicht dasselbe wie "schnell". Wenn das das Problem war, hätte Ihre Bewertung nur "langsam" sagen sollen. Bevor Sie den von Ihnen vorgeschlagenen Weg einschlagen, stellen Sie sicher, dass Sie wissen, was von Ihnen erwartet wird.

Es könnte alles bedeuten; Es kann sogar bedeuten, dass Sie erst 20 Minuten nach Ihren Kollegen ins Büro kommen oder dass Sie ein schlechtes Zeitmanagement haben. Das hat möglicherweise nichts mit Ihrer 'Programmiergeschwindigkeit' zu tun.

Ich verbringe wahrscheinlich die meiste Zeit mit Entwerfen und Planen. Es ist einfacher, Aufgaben anhand einer guten Analyse und eines guten Entwurfs zu planen, und Sie erhalten dann bessere Schätzungen, die angenommen werden. Darüber hinaus wird das Codieren durch ein gutes Design zu einem viel einfacheren und gezielteren Prozess. Es ermöglicht auch, eine Aufgabe aufzuteilen und unter anderen Entwicklern zu verteilen.

0
Clifford

Ich habe meine C-Codierungsgeschwindigkeit mit VIM praktisch verdreifacht.

0
Liran Orevi

CodeRush! Kapiert! Liebe es!

0
Bobby Ortiz

Wählen Sie einen schnellen Editor, einen schnellen Compiler und schreiben Sie Software mit schneller Ausführungszeit. Auf diese Weise können Sie zehnmal so viele Fehler machen wie normale Programmierer und trotzdem besser als andere werden. Dies ist wahrscheinlich einer der Gründe, warum Google-Anwendungen so beliebt sind. Die Webentwicklung ist voller böser Fehler, und das Schreiben von mehr Software auf einer fehlerhaften Plattform ist schmerzhaft. Die Reaktionszeit zwischen dem Bearbeiten von Code und dem Anzeigen des Ergebnisses ist jedoch so schnell, dass es immer noch einfacher ist, diesen Müllberg zum Laufen zu bringen, als C++ - Programme zu erweitern. :) :)

0
AareP

Verbringen Sie mehr Zeit damit, Dinge in Ihrem Kopf zusammenzustellen als vor der IDE. Wenn Sie einen Plan haben, haben Sie bereits den größten Teil der Arbeit bereits erledigt. Die Implementierung macht nur die anderen 20% aus. Wenn Sie beim Schreiben von Code aufgrund plattformspezifischer Probleme nicht weiterkommen, halten Sie sich an den Plan und implementieren und testen Sie den Rest weiter. Am Ende packen Sie alle Stellen an, die Sie zurückgelassen haben, und lösen Sie sie nacheinander - es ist möglich, dass einige verwandt sind, und einige zu lösen, könnte ausreichen, um den Rest herauszufinden. Normalerweise verwende ich Problemumgehungen für solche Probleme, indem ich an den bestimmten Stellen im Code "// TO CHANGE" -Kommentare hinzufüge und diejenigen neu schreibe, die am Ende den größten Einfluss auf Qualität und Leistung haben, wenn ich nicht die Zeit habe, alle zu lösen von ihnen bis zum Stichtag.

0
luvieere

Erstellen Sie Ihre eigene Codebibliothek

Versuchen Sie jedes Mal, wenn Sie eine neue Funktion codieren, sie so allgemein wie möglich, aber nicht zu allgemein zu halten. Kurzfristig wird dies etwas langsamer sein, aber auf lange Sicht wird jedes neue Projekt schneller abgeschlossen, wenn Ihre Geschäftsbibliothek größer wird, da viele Geschäftsanwendungen ähnliche Anforderungen haben (nicht immer), aber nah genug, dass viele Code kann wiederverwendet werden.

0
Darknight

Schneller heißt nicht besser. Wenn Sie es schaffen, ein schnellerer und besserer Programmierer zu sein. Es kommt alles auf das Gleichgewicht an. Wie lange kannst du das machen? Denken, Geduld und Planung zahlen sich immer aus. Manchmal kann "schnell" in der Entwicklungswelt die schlechtesten Ergebnisse bringen.

0
Ryuken

Dekonstruieren. Teilen Sie alles, was Sie bauen, in kleinere Funktionen auf, die Sie schrittweise implementieren können. Wenn Sie dann eines dieser kleineren Teile fertig haben und getestet haben, um zu bestätigen, dass es nichts kaputt macht, setzen Sie es ein und zeigen Sie es den Powers That Be.

Die Verwendung kleiner Iterationen hilft Ihnen oft dabei, das größere Projekt schneller und besser abzuschließen, da Sie unterwegs Feedback erhalten und nicht so viel zurückverfolgen und wiederholen müssen. Aber selbst wenn dies nicht der Fall ist, zeigen Sie ständige Fortschritte, was einen soliden psychologischen Nutzen hat und das Vertrauen Ihres Managers oder Kunden wiederherstellt.

Testgetriebene Entwicklung hilft auch bei diesem Ansatz sehr. Auf den ersten Blick mag es so aussehen, als würde das Schreiben von Tests die Dinge zuerst verlangsamen - aber es gewinnt diese Zeit zurück in Form von Fehlern, die Sie vermeiden werden, und je nachdem, wie Sie sie schreiben, könnten die Tests selbst ein Ergebnis sein, das Sie den Powers That Be zeigen können und bestätigen Sie das Verhalten der App, noch bevor Sie alles schreiben.

0
SFEley

Wenn Sie in C programmieren, ist das Erlernen von Bit-Hacks ein Muss, um ein schnellerer Programmierer zu werden. Lesen Sie auch die Codierungspraktiken von Top-Rankern auf Topcoder.com. Ihr Code ist sehr klein und effizient.

0
avd

Werden Sie schneller Programmierer, indem Sie beim Entwerfen und Codieren langsamer werden.

  • Überlegen Sie, was Sie tun.
  • Berücksichtigen Sie die Auswirkungen Ihres Designs.
  • Machen Sie es gleich beim ersten Mal richtig (testen Sie Ihren eigenen Code gründlich).

Es könnte sich langsamer anfühlen , aber Ihr Durchsatz ist schneller als bei Code-Jockeys, die eine Iteration in 4 Stunden durchführen und dann 6 Runden QS vor ihrer benötigen Code wird übergeben.

0
mmc

Re: Wie man schätzt und dabei bleibt:

Denken Sie beim Schätzen an Hofstadter-Gesetz sowie an diesen Witz: "Alles dauert länger als es". Nehmen Sie eine vernünftige Vermutung an, wie lange etwas dauern sollte, und verdoppeln oder verdreifachen Sie es dann, bevor es aus Ihrem Mund kommt. Es wird Komplikationen, Rückschläge, Ablenkungen, Dinge geben, die Sie vergessen usw. Besser zu versprechen und zu viel zu liefern als umgekehrt.

Wenn Sie sich an Schätzungen halten, geben Sie Ihr Bestes, um Ihre Arbeit effizient abzuschließen. Wenn Probleme auftreten, teilen Sie die Verzögerungen frühzeitig mit. Dies gibt jedem Zeit, seine Erwartungen anzupassen. Wenn Ihre Erklärung vernünftig ist, erhalten Sie möglicherweise mehr Zeit oder Unterstützung oder können Ablenkungen (wie bei einem lauten Nachbarn) von Ihrem Weg entfernen.

0
steamer25

Die folgenden Praktiken sind bekannt, werden jedoch häufig aus verschiedenen Gründen vernachlässigt, häufig aufgrund enger Fristen. Daher sollten sie hier erwähnt werden (tatsächlich handelt es sich hierbei um einen Mechanismus, um Zeit im Voraus zu verbringen, um zu vermeiden, dass mehr Zeit aufgewendet wird später):

  • Do testgetriebene Entwicklung; Es hilft Ihnen, nur die Menge an Code zu schreiben, die tatsächlich benötigt wird, und hilft Ihnen, die Einführung von Fehlern beim Hinzufügen von Funktionen oder beim Refactoring zu vermeiden

  • Schreiben Sie Kommentare, aber nur dort, wo der Code komplex genug ist, um dies zu rechtfertigen

  • Refactor und vereinfachen Ihren Code oft

  • Verwenden Sie anständige Quellcodeverwaltungssoftware (wie Git oder Mercurial) - wenn Ihr Arbeitgeber etwas anderes verwendet, verwenden Sie Ihre eigene lokal-

  • Commit Code ändert sich häufig: Führen Sie für jede Funktion oder jedes Refactoring ein Commit durch, da das Zurücksetzen für Sie weniger kostspielig ist, wenn etwas schief geht

  • Hab keine Angst vor Zweig; Git hat insbesondere einen sehr schnellen und "sicheren" Verzweigungsmechanismus (zum Beispiel im Vergleich zu Subversion)

0
Nick Toumpelis

Ich persönlich denke, es geht nur um die Wiederverwendbarkeit von Code. Sofern Sie nicht jedes Mal vollständig benutzerdefinierte Aufgaben ausführen, sollten Sie über eine Bibliothek mit häufig verwendeten Funktionen verfügen, an die Sie sich wenden können. Ich habe eine utils.php, in der ich einen ganzen "Schrottplatz" von Funktionen habe, die ich in früheren Projekten verwendet habe. Spart eine Menge Zeit, wenn ich etwas Ähnliches tun muss.

Viel Glück und lass dich nicht entmutigen. Ich denke, wir haben uns alle manchmal langsam oder "dumm" gefühlt. Ich weiß ich habe!

0
Code Monkey

Verwenden Sie statische Analysewerkzeuge.

Sie helfen Ihnen dabei, zur Kompilierungszeit mehr Fehler zu finden, die Sie sonst zur Laufzeit aufspüren müssten.

Insbesondere beim Erstellen von Multithread-Anwendungen sind sie eine echte Hilfe.

0
Oliver Weiler

Das sind alles gute Vorschläge. Ich würde meine eigene Produktivitätstechnik hinzufügen, die darin besteht, zu wissen, wie man Dinge nicht nur mit minimalem Code, sondern auch mit minimalem Redundanzcode erledigt.

Im Allgemeinen bedeutet dies, je weniger Datenstruktur desto besser.

Um Code mit minimaler Redundanz zu erstellen, sind Kreativität und die Bereitschaft erforderlich, Dinge auf eine Weise zu tun, die eine Lernkurve auferlegen könnte. Das ist der Preis für die Produktivität. Hier ist ein Beispiel.

0
Mike Dunlavey