Ich bin seit mehreren Jahren ein professioneller Programmierer. Die Kommentare zu meinem Code waren im Allgemeinen die gleichen: Schreibt tollen Code, ist gut getestet, könnte aber schneller sein .
So wie werde ich schneller Coder, ohne Abstriche an der Qualität? Um dieser Frage willen beschränke ich den Geltungsbereich auf C #, da ich hauptsächlich (aus Spaß) Code für dieses Programm verwende - oder Java, das in vielerlei Hinsicht ähnlich genug ist.
Dinge, die ich bereits mache:
- Schreiben Sie die minimale Lösung, mit der die Aufgabe erledigt wird
- Schreiben Sie eine Menge automatisierter Tests (verhindert Regressionen)
- Schreiben (und verwenden) Sie wiederverwendbare Bibliotheken für alle Arten von Dingen
- Verwenden Sie bekannte Technologien, bei denen sie gut funktionieren (z. B. Ruhezustand).
- Verwenden Sie Entwurfsmuster dort, wo sie passen (z. B. Singleton).
Diese sind alle großartig, aber ich habe nicht das Gefühl, dass meine Geschwindigkeit mit der Zeit steigt. Es ist mir wichtig, denn wenn ich etwas tun kann, um meine Produktivität zu steigern (sogar um 10%), ist das 10% schneller als bei meinen Konkurrenten. (Nicht, dass ich welche hätte.)
Außerdem habe ich dieses Feedback von meinen Managern immer wieder bekommen - egal ob es sich um eine kleine Flash-Entwicklung oder eine Enterprise Java / C ++ -Entwicklung handelte.
Edit: Es scheint eine Menge Fragen zu geben, was ich unter schnell verstehe und woher ich weiß, dass ich langsam bin. Lassen Sie mich noch einige Details erläutern.
Ich habe in kleinen und mittleren Teams (5-50 Personen) in verschiedenen Unternehmen über verschiedene Projekte und verschiedene Technologien (Flash, ASP.NET, Java, C ++) gearbeitet. Die Beobachtung meiner Manager (die sie mir direkt mitteilten) ist, dass ich "langsam" bin.
Ein Teil davon ist, dass eine bedeutende Anzahl meiner Kollegen Qualität für Geschwindigkeit geopfert hat; Sie haben fehlerhaften Code geschrieben, der schwer zu lesen, zu warten und schwer zu automatisieren war. Mein Code ist im Allgemeinen gut dokumentiert, lesbar und testbar.
Bei Oracle löste ich Fehler konsequent langsamer als andere Teammitglieder. Ich weiß das, weil ich Kommentare dazu bekommen würde; Dies bedeutet, dass andere (ja, ältere und erfahrene) Entwickler meine Arbeit in kürzerer Zeit erledigen konnten als ich, und dies bei nahezu gleicher Qualität (Lesbarkeit, Wartbarkeit und Testbarkeit).
Warum? Was vermisse ich? Wie kann ich das verbessern?
Mein Endziel ist einfach: Wenn ich Produkt X heute in 40 Stunden herstellen und mich irgendwie verbessern kann, so dass ich morgen das gleiche Produkt nach 20, 30 oder sogar 38 Stunden erstellen kann, dann ist es das, was ich wissen möchte. wie komme ich dort hin? Mit welchem Prozess kann ich mich kontinuierlich verbessern? Ich hatte gedacht, es ginge darum, Code wiederzuverwenden, aber das scheint nicht genug zu sein.
quelle
Antworten:
Ich mag Jeff Atwoods Ansatz, der hier zu finden ist: http://www.codinghorror.com/blog/2008/08/quantity-always-trumps-quality.html .
Grundsätzlich verweist er in dem Artikel auf eine Passage aus dem Buch Art & Fear von David Bayles und Ted Orland. Die Passage lautet:
Wenn Sie Ihre Hände schneller und häufiger schmutzig machen, verbessern Sie Ihre Fähigkeiten besser als wenn Sie Ihre Zeit mit Lernen und Theoretisieren über die "perfekte" Art und Weise verbringen, dies zu tun. Mein Rat, übe weiter, halte dich mit der Technologie auf dem Laufenden und studiere Design.
quelle
Eine Möglichkeit, die anscheinend niemand erwähnt hat, ist, dass es Ihnen gut geht und Ihre Manager nicht sehr gut sind. Wie messen sie die Produktivität? Können sie Ihnen konkrete Beispiele nennen oder handelt es sich nur um eine allgemeine Wahrnehmung? Haben sie die Zeit berücksichtigt, die sie für die Reparatur der Arbeit anderer Leute im Vergleich zu Ihrer aufgewendet haben?
Ich habe gesehen, dass viele Leute Anerkennung dafür bekommen, dass sie Sachen erledigt haben, während der Rest ihres Teams das Chaos, das sie hinterlassen haben, repariert.
quelle
Das meiste, was die Leute für wichtig halten, ist nicht wichtig. Tippgeschwindigkeit ist nicht wichtig. Schnellere Maschinen oder Werkzeuge sind nicht wichtig. Wir sind keine Schreibkräfte oder Maschinenbediener. Wir sind Denkarbeiter. Wir sind Entscheider .
Es ist wichtig, Feedback zu verwenden, um Ihren Entscheidungsprozess kontinuierlich zu verbessern. Der einzige Weg, dies zu tun, ist durch Erfahrung, zielgerichtetes Üben und kontinuierliches Feedback.
Schließlich: Denken Sie daran, dass Geschwindigkeit ohne Qualität nutzlos ist und umgekehrt. Finden Sie ein Gleichgewicht zwischen diesen Spannungen, um Ihren Nutzen zu maximieren.
* http://codekata.pragprog.com/
quelle
Es ist gut möglich, dass Sie tatsächlich aufgefordert werden, etwas Qualität zu opfern , um schneller zu sein.
In einigen Entwicklungsumgebungen 1 lohnt es sich einfach nicht, etwas Poliertes zu produzieren, wenn "gerade gut genug" ausreicht.
1 - Ich denke insbesondere an "interne Werkzeugmacher", aber es gibt wahrscheinlich auch andere.
quelle
Es hört sich so an, als ob Sie all die guten Dinge tun - das wird Sie mittelfristig schneller machen, daher ist es nicht offensichtlich, ob Sie tatsächlich langsam sind. Nur du weißt das wirklich. (Aber es ist eine sehr reale Möglichkeit - PeopleWare behauptet einen Produktivitätsunterschied von bis zu 10X zwischen Entwicklern für die gleiche Aufgabe).
Also habe ich ein paar Vorschläge für dich:
Zeit ist eine relative Sache, also ist das Problem vielleicht nicht Ihre tatsächliche Geschwindigkeit, sondern die Wahrnehmung der Zeit, die Sie geben. Sie könnten annehmen, dass es eine Woche dauern wird, aber am Ende zwei Wochen, während andere 3 Wochen verbringen könnten ... aber Sie sehen nur 1 Woche langsam aus.
Da Sie dieses Feedback häufig erhalten, ist es vielleicht an der Zeit, mit Ihrem Vorgesetzten und Kollegen zu sprechen, um zu sehen, was sie sagen - es muss viel zu lernen geben.
Führen Sie eine Paarprogrammierung mit einem Entwickler mit "schneller Qualität" durch, um festzustellen, ob Sie den Unterschied feststellen können.
quelle
Im Endeffekt läuft es auf Erfahrung hinaus . Um schneller zu sein, als wenn Sie ein Auto fahren, haben Sie zunächst Angst davor, dass andere schnelle (oder betrunkene) Fahrer (oder beides) sind und Sie sicher nach Hause gelangen möchten (in Bezug auf die Software) funktioniert wie entwickelt und es funktioniert gut).
Im Laufe der Jahre / Monate lernen Sie, sobald Sie die Grundlagen des Fahrens und der Autobahnen verstanden haben, ein paar Tricks, mit denen Sie Spaß am Fahren haben. Das nennen wir Erfahrung. Diese "Tricks" (die ich Eigenschaften nenne) helfen.
In meinem Fall habe ich die reale Verwendung von Entwurfsmustern gelernt, indem ich (sogar @ home) codierte und die Verwendung einiger lernte. Wenn ich also auf ein Problem stoße, für das ein Entwurfsmuster erforderlich ist, nutze ich die Erfahrungen aus der Vergangenheit, um festzustellen, welche davon erfolgreich waren und warum es für meine Situation funktionieren würde / nicht.
In Summe:
PS: Erfahrung entsteht auch, wenn man von anderen lernt. ZB Hilfe von SO, Pair Programming, Peer Reviews usw. Sie können keine Erfahrung machen, wenn Sie nicht zurückblicken und aus Fehlern lernen können (oder wenn jemand Ihre Bemühungen niemals in Frage stellt).
quelle
Die Frage ist, ob Sie weniger teuer sind, wenn Sie die langfristigen Gesamtkosten betrachten.
Mit anderen Worten, sind Ihre sorgfältig ausgearbeiteten Fehlerbehebungen von so hoher Qualität (einschließlich Testfällen und Dokumentation), dass die Kosten für die Wartung der von Ihren schnelleren Mitarbeitern vorgenommenen Fehlerbehebungen überwiegen ?
Wenn ja, müssen Sie Ihre Vorgesetzten auf diese Tatsache aufmerksam machen. Es kann schwierig sein zu argumentieren, wenn sie nicht messen und über die erforderlichen Daten verfügen, um Ihre Einschätzung zu bestätigen.
Wenn nein, müssen Sie sich genau überlegen, warum dies der Fall ist:
Überlege es dir und bearbeite deine Frage mit deinen Erkenntnissen.
quelle
Alle Befragungen, ob Sie wirklich langsam sind oder nicht, sind albern. Ein schneller Programmierer zu werden, ohne auf Qualität zu verzichten, ist immer ein gutes Ziel, egal wie langsam oder schnell Sie bereits sind. Dies ist mein oberstes Ziel als Programmierer und ich werde es niemals schaffen. Ich versuche immer, schneller zu werden, ohne Abstriche bei der Qualität zu machen, ich bin davon besessen. Hier ist, was für mich bisher in der Reihenfolge der Hilfsbereitschaft gearbeitet hat, zusammen mit einigen experimentellen Ideen am Ende:
1) Niemals aufhören zu lernen: Lernen Sie alles, was Sie über das Programmieren und Verwenden von Computern im Allgemeinen können. Finden Sie Bereiche, in denen Sie schwach sind, und lernen Sie sie. Auch wenn es völlig unabhängig von Ihrer Arbeit und C # zu sein scheint, kann ich Ihnen versichern, dass Sie, wenn Sie danach suchen, häufig Möglichkeiten finden, es auf Ihre Arbeit anzuwenden. Lernen hat auch etwas mit Erfahrung zu tun. Lesen Sie also nicht nur, sondern probieren Sie es aus und erweitern Sie Ihre Fähigkeiten. Wenn Sie Windows gewohnt sind, probieren Sie Unix aus oder umgekehrt. Wenn Sie normalerweise IDEs verwenden möchten, versuchen Sie es mit Befehlszeilentools und Texteditoren oder umgekehrt. Wenn Sie von einem Tool oder einer Technologie hören, von der Sie vorher noch nichts gehört haben oder von denen Sie nicht viel wissen, geben Sie nicht der Versuchung nach, weiterzumachen. Schlag es nach! Haben Sie keine Angst, über den Tellerrand hinauszudenken und experimentelle neue Technologien zu erlernen, von denen andere sagen, dass sie unpraktisch sind.
2) Projekte aufteilen: Versuchen Sie, Ihre Projekte in Mini-Projekte aufzuteilen. Versuchen Sie, jeden Tag oder höchstens alle paar Tage ein neues Release zu erstellen. Fragen Sie sich: "Was ist die minimale Menge an Funktionen, die ich freigeben kann, und dennoch etwas, das für den Benutzer nützlich ist." Dies ist eine Fähigkeit, die Sie dadurch lernen werden. Möglicherweise müssen Sie Ihre Manager davon überzeugen, dies zu tun, aber sie werden in der Regel recht schnell mit den Ergebnissen zufrieden sein. Auf diese Weise werden Sie feststellen, dass Dinge, von denen Sie dachten, dass sie für Ihre Funktion wesentlich sind, tatsächlich zusätzliche Funktionen sind, die später entwickelt werden können. Dies ermöglicht es Ihnen und Ihren Managern, nur die wichtigsten Funktionen anstelle aller Funktionen zu priorisieren, die sich auf die Funktion beziehen, an der Sie gerade arbeiten. Auf diese Weise können Sie schneller denken, indem Sie Ihren Geist klar und konzentriert halten. Sie werden wiederum legitimerweise schneller programmieren. Ihre Manager oder zumindest die Manager Ihres Managers werden wahrscheinlich auch bemerken, dass Sie jetzt noch schneller programmieren als Sie es wirklich sind, weil Sie mehr Releases herausbringen. Ein weiterer großer Vorteil davon ist, dass Sie viel besser einschätzen können, wie lange die Veröffentlichung dauern wird, und Ihre Manager werden Sie dafür lieben. Da Sie bereits viele automatisierte Tests durchführen, sollten Sie keine Probleme damit haben, häufige Releases auszuführen, die stabil sind. Möglicherweise müssen Sie Ihr automatisiertes Build-System aufrüsten. Ich empfehle dringend, das Buch Continuous Delivery in der Martin Fowler-Reihe zu lesen. Es ist schwer zu lesen und weil es sich extrem wiederholt, aber immer noch sehr hilfreich. s Manager werden wahrscheinlich auch bemerken, dass Sie jetzt noch schneller programmieren, als Sie es wirklich sind, weil Sie mehr Releases herausbringen. Ein weiterer großer Vorteil davon ist, dass Sie viel besser einschätzen können, wie lange die Veröffentlichung dauern wird, und Ihre Manager werden Sie dafür lieben. Da Sie bereits viele automatisierte Tests durchführen, sollten Sie keine Probleme damit haben, häufige Releases auszuführen, die stabil sind. Möglicherweise müssen Sie Ihr automatisiertes Build-System aufrüsten. Ich empfehle dringend, das Buch Continuous Delivery in der Martin Fowler-Reihe zu lesen. Es ist schwer zu lesen und weil es sich extrem wiederholt, aber immer noch sehr hilfreich. s Manager werden wahrscheinlich auch bemerken, dass Sie jetzt noch schneller programmieren, als Sie es wirklich sind, weil Sie mehr Releases herausbringen. Ein weiterer großer Vorteil davon ist, dass Sie viel besser einschätzen können, wie lange die Veröffentlichung dauern wird, und Ihre Manager werden Sie dafür lieben. Da Sie bereits viele automatisierte Tests durchführen, sollten Sie keine Probleme damit haben, häufige Releases auszuführen, die stabil sind. Möglicherweise müssen Sie Ihr automatisiertes Build-System aufrüsten. Ich empfehle dringend, das Buch Continuous Delivery in der Martin Fowler-Reihe zu lesen. Es ist schwer zu lesen und weil es sich extrem wiederholt, aber immer noch sehr hilfreich. und Ihre Manager werden Sie dafür lieben. Da Sie bereits viele automatisierte Tests durchführen, sollten Sie keine Probleme damit haben, häufige Releases auszuführen, die stabil sind. Möglicherweise müssen Sie Ihr automatisiertes Build-System aufrüsten. Ich empfehle dringend, das Buch Continuous Delivery in der Martin Fowler-Reihe zu lesen. Es ist schwer zu lesen und weil es sich extrem wiederholt, aber immer noch sehr hilfreich. und Ihre Manager werden Sie dafür lieben. Da Sie bereits viele automatisierte Tests durchführen, sollten Sie keine Probleme damit haben, häufige Releases auszuführen, die stabil sind. Möglicherweise müssen Sie Ihr automatisiertes Build-System aufrüsten. Ich empfehle dringend, das Buch Continuous Delivery in der Martin Fowler-Reihe zu lesen. Es ist schwer zu lesen und weil es sich extrem wiederholt, aber immer noch sehr hilfreich.
3) Verwenden Sie die Pomodoro-Technik und passen Sie an, was bei Ihnen nicht funktioniert. Wenn Sie dies mit Nummer 2 auf dieser Liste kombinieren, erhalten Sie einen RIESIGEN Produktivitätsschub.
4) Lerne Vim. Selbst wenn Sie diese Befehle in Visual Studio über ViEmu, in Eclipse über ein Plugin oder in Emacs verwenden, werden Sie produktiver. Der beste Weg, um Vim zu lernen, besteht darin, es zu benutzen und sich zu zwingen, es niemals zu deaktivieren (oder zu alten Werkzeugen zurückzukehren), bis Sie es beherrschen. Es ist anfangs schmerzhaft, aber Sie werden niemals zurück wollen und sogar zusammenzucken, wenn Sie ohne es arbeiten müssen. Einige würden sagen, dass dies Ihre Geschwindigkeit nicht wesentlich erhöht. Aber schneller ist schneller, besonders wenn das Lesen und Ändern von Code DAS IST, WAS WIR TUN, und ich habe festgestellt, dass ich damit gelegentlich viel Zeit gespart habe.
5) Letzteres wird nicht unbedingt empfohlen, da ich nicht sicher bin, ob es eine gute Idee ist, und es kann Ihre Produktivität tatsächlich verringern, aber ich werde es trotzdem tun. Sie können versuchen, mehr Abnahmetests und weniger Komponententests durchzuführen, oder stellen Sie zumindest sicher, dass Sie einige Abnahmetests durchführen. Ich hatte Erfolg mit SpecFlow, aber ich vermute, dass es etwas Besseres gibt. Sogar das Schreiben der Spezifikationen kann ziemlich technisch sein, daher möchten Sie vielleicht Ihren Manager / Kunden dazu bringen, zuerst eine grobe Entwurfsversion zu schreiben, die Sie erheblich ändern, oder Sie schreiben die gesamte Sache selbst und lassen sie einfach lesen und OK. Dies wird Ihnen mit der Nummer 2 aus dieser Liste helfen. Akzeptanztests können auch praktischer sein und erfordern weniger Code als Unit-Tests. Das heißt nicht, dass sie sie ersetzen, verschiedene Werkzeuge für verschiedene Dinge.
6) Dieser ist noch experimenteller und kontroverser. Ich habe das nicht selbst gemacht, daher kann ich es nicht wirklich empfehlen. Lernen und verwenden Sie das Meta Programming System von JetBrains. Verwenden Sie diese Option, um Tools zu erstellen, mit denen Ihr Manager / Kunde die gewünschte Software selbst erstellt. Möglicherweise können Sie sogar die Durchführung von Unit- und Abnahmetests einstellen, wenn Sie damit Tools erstellen, mit denen Ihr Manager / Kunde das Verhalten auf sehr einfache und unkomplizierte Weise festlegt. Die Idee ist, den Programmierer nicht loszuwerden. Die Programmierer müssten diesen Tools, die vom Kunden / Manager verwendet werden, immer dann neue Funktionen hinzufügen, wenn sie (die Personen, nicht die Tools) nicht einfach die gewünschten Funktionen erstellen können. Ich glaube, dass entweder MPS oder ähnliche Tools der Weg der Zukunft sind.
quelle
Verwenden Sie Ihr Gehirn mehr und machen Sie weniger Tests. Um ehrlich zu sein, das Testen hat seinen Platz, ist aber teuer.
Lesen Sie auch Die Kunst der Unix-Programmierung (kostenlos online, das Buch ist den Preis wert)
Schließlich sind Sie möglicherweise nicht am richtigen Ort. Runder Stift in Vierkantform usw.
Letztendlich ist es wie in der Schule: "Geben Sie aus, was der Lehrer will" wird zu "Geben Sie aus, was das Management verlangt und bezahlt".
quelle
Wenn Sie ein umfangreiches, abgeschlossenes Projekt erstellen und die Anzahl der "letzten" Codezeilen pro Arbeitsstunde ermitteln, werden Sie feststellen, dass Programmierer VIEL langsamer programmieren, als Sie es sich vorgestellt haben.
Wir sprechen nur ein paar Zeilen Code pro Tag. Den Rest der Zeit verbringen Sie mit dem Debuggen, Umschreiben und allgemeinen Programmieren.
Möglicherweise haben Sie das alte Sprichwort gehört: Wenn Sie während des Tippens einen Fehler bemerken, sparen Sie das 10-fache der Zeit, wenn Sie ihn zur Erstellungszeit bemerkten. Dies ist 10-mal besser als das Erkennen während der Qualitätssicherung, was 10-mal besser ist als es nach der Freilassung zu fangen ..
Wie beschleunigen Sie es? Ich würde mich nicht auf irgendeine Art von Tippgeschwindigkeit konzentrieren - Fehler zu reduzieren und andere "zukünftige Interaktionen" mit Ihrem Code zu verbessern, sollte eine viel bessere Investition Ihrer Zeit sein.
Lesbarer, klarer Code ist wichtig. Sie schreiben Ihren Code einmal, aber er wird dutzende Male gelesen. Das Schreiben zur besseren Lesbarkeit erspart Ihnen jede Menge Ärger auf der ganzen Linie (was auch viel Zeit spart). Wenn du NIEMALS zurückgehst und deinen Code liest und auch nur eine Sekunde darüber nachdenken musst, dann machst du es falsch.
Die Programmierung von Paaren kann die QS-Zeit verkürzen. Wenn Sie davon ausgehen, dass ein Programmierer nur wenige Zeilen pro Tag erstellt, können zwei Programmierer mit der gleichen Rate wie einer programmieren, aber mit weniger Fehlern.
Defensives Codieren (z. B. Parameterprüfung) kann Probleme reduzieren. Wenn Sie einen wirklich guten Analysten / Architekten in Ihrem Team haben, können Sie mit einem guten Startdesign etwas Zeit sparen.
Ansonsten verbessern Sie einfach Ihre Designfähigkeiten. Wenn Sie Erfahrung sammeln, werden Sie in der Lage sein, Muster, die nicht funktionieren, besser zu erkennen und zu vermeiden, und Sie können Zeitabbrüche früher erkennen usw.
quelle
Haben Sie darüber nachgedacht, während Ihrer Arbeit eine detaillierte Prüfung Ihrer Person durchzuführen? Verfolgen Sie mit Stift und Papier, wie Sie Ihre Zeit verbringen, oder verwenden Sie Rescue Time , um sich selbst zu verfolgen.
Wenn Sie genau wissen, wie Sie Ihre Zeit verbringen, können Sie sich einen besseren Überblick über den Verbesserungsbedarf verschaffen und Ihre Anstrengungen dort konzentrieren.
Idealerweise können Sie auch einige Ihrer Kollegen dazu herausfordern, Ihre Ergebnisse zu vergleichen und sich gegenseitig Anregungen zu holen. Sie haben wahrscheinlich einige Stärken, von denen auch sie profitieren könnten.
Vielleicht stellen Sie fest, dass Sie zu viel Zeit für einen Teil Ihres Prozesses aufwenden, der automatisiert werden könnte, oder dass Sie an einem bestimmten Tag viele Ablenkungen haben und ein anderer Teil des Tages ruhig ist. Dann können Sie Ihre Aufgaben planen das usw.
Oder vielleicht stellen Sie fest, dass das Testen mehr Zeit in Anspruch nimmt als Sie dachten, und Sie müssen Ihre Wahrnehmung überdenken, dass es Sie schneller macht.
Es gibt Ihnen nicht zuletzt Benchmarks, gegen die Sie arbeiten können.
quelle
Von Ihrer Liste geht es Ihnen gut.
Wenn Ihre Kollegen Code mit einer höheren CRAP-Nummer erstellen, werden sie schneller. CRAP ist eine namensgebende Metrik, die zyklomatische Komplexität und Testabdeckung kombiniert.
Schreiben Sie keinen Code, der mehr CRAP als nötig ist. ;)
Meine einzige Änderung, die ich vorschlagen möchte, ist die Verwendung von Bibliotheken. Schreiben Sie diese nur, wenn:
Du liest und machst und das ist großartig. Aber Sie könnten stecken geblieben sein, wenn Sie über Procuedural- oder OO-Code nachgedacht haben. Haben Sie sich der funktionalen Programmierung (sagen wir Haskell?) Und Prolog ausgesetzt?
Haben Sie mit Smalltalk / Squeak gespielt, um Ihre OO-Programmiertechnik zu verbessern?
Und schließlich die Theorie. Haben Sie zumindest ein rudimentäres Verständnis der Graphentheorie? (Einige Programme arbeiten mit Bäumen, DAGs oder einfachen Graphen. Netzwerke sind Graphen.)
quelle
Ich werde Onkel Bob zitieren :
- "Vehement Mediocrity", Robert C. Martin
quelle
Soweit ich weiß, ist es:
Als Manager können Sie 2 beliebige auswählen.
Mach dir keine Sorgen über die Kommentare, die du bekommen hast. Als Mitkodierer würde ich eher gut durchdachten und gut geschriebenen Code beibehalten als etwas, das zusammengeschlagen wurde.
quelle
Die wichtigsten Dinge, an die ich denken kann, sind folgende
Ich bin sicher, es gibt einige Dinge, die Sie auch im Bereich der Codierungsfähigkeiten tun können, aber es hört sich so an, als wären Sie über all diese Dinge hinweg. Die Dinge, die ich oben aufgeführt habe, werden in der Regel von Entwicklern übersehen.
quelle
Sie könnten einen Speed-Typing-Kurs belegen. Ich weiß nicht, ob schnelleres Schreiben ein Problem ist, aber "zu langsames Codieren" könnte durch einfach langsame Schreibgeschwindigkeiten verursacht werden.
Was ist mit Codegeneratoren? Manchmal wiederholt sich der Code. Refactoring kann einen Teil davon entfernen, aber auch dann können sich wiederholende Aufrufe derselben refactored-Funktion auftreten. In Abhängigkeit von den Daten und Code mit dem Sie arbeiten, Code - Generatoren (geschrieben in Excel, Perl, Java, was auch immer ...) könnten eine Menge Zeit sparen. Und die Verwendung von Tools zur Code-Generierung für die Benutzeroberflächenentwicklung ist in der Regel ein Kinderspiel.
Und schließlich sind vielleicht die Metriken falsch. Haben Sie darüber nachgedacht , dass Sie bei der fasteset möglichen Geschwindigkeit sind Codierung alles andere gegeben, und dass die Fristen zu kurz sind, so dass Sie scheinen ein langsamer Codierer zu sein?
Aufgrund der Änderungen in Ihrer Frage könnten Sie entweder den Weg einiger Ihrer Mitarbeiter einschlagen und die schnellste Lösung zusammen hacken - und Dokumentation und Qualitätssicherung sind verdammt!
Oder ... sammeln Sie mehr Erfahrung und üben Sie in einem bestimmten Bereich, damit Sie die Codebasis und API so gut kennen, dass Sie die Lösungen im Schlaf codieren können. Dies kann durchgeführt werden, erfordert jedoch mehr Zeit. Wenn die anderen Entwickler , die schneller sind als Sie mehr ältere und erfahrenere dann bekannt sind es nur eine Sache zu tun - Sie müssen sich mehr ältere und erfahren!
quelle
Ich habe einen Einwand gegen die Ansicht von OP, dass "Qualität für Geschwindigkeit geopfert" wurde.
Professionelle Programmierer (Programmierer) müssen 3 Objekte erfüllen:
1) Der Code sollte wie vorgesehen ausgeführt werden.
2) Die Lieferung sollte pünktlich erfolgen.
3) Gute Qualität, Dokumentation usw.
4) Andere usw.
Ich denke, OP wurde als langsam beschuldigt, wahrscheinlich, weil OP nicht rechtzeitig fertig war.
quelle
Dies ist ein Haken 22, der schwer zu umgehen ist. Obwohl es Ihnen möglicherweise immer noch an Erfahrung mangelt und einige Kenntnisse in vielen Bereichen bereits schneller als die meisten sind, ist der Haken, dass es schwieriger ist zu messen .
Persönlich ist das Beste, was Sie an diesem Punkt tun können, sich selbst zu messen. Geben Sie selbst Feedback zu Ihrer Arbeitsweise. Vielleicht können Sie durch einfache Änderungen Ihrer Arbeitsgewohnheiten produktiver werden.
Ich stellte fest, dass Mails viel mehr fraßen als ich dachte, nur weil sie unterbrochen wurden. Jetzt beantworte ich Mails nur noch zweimal am Tag und habe an manchen Tagen fast 1 Stunde Produktivität gewonnen. Versuchen Sie Methoden wie Pomodoro , ich habe es als Mittel zum Messen verwendet. In regelmäßigen Abständen (15 Minuten) notierte ich, was ich zu dieser Zeit tat. So konnte ich sehen, wie meine Tage strukturiert waren und was ich tun konnte, um die Effizienz zu maximieren.
quelle
Der Vorteil von Squeak für schnelles Codieren geht weit über das "Honen der eigenen OOP-Fähigkeiten" hinaus. Es gibt einen Grund, warum moderne GUIs sowie IDEs in Smalltalk erfunden wurden, ganz zu schweigen davon, dass JUNIT eine Portierung von SUNIT nach Java war, der Begriff "OOP" erfunden wurde, um Smalltalk usw. usw. zu beschreiben.
Man muss immer die Sprache und Umgebung verwenden, die am besten für das geeignet ist, was man erreichen möchte, aber für das allgemeine Prototyping würde ich zumindest Quietschen mit allem vergleichen, mit der möglichen Ausnahme von HyperCard Tatsächlich schneller, da in Squeak hyperkartenähnliche Funktionen integriert sind.
quelle