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.