Manche Menschen haben das Problem, dass sie nicht ohne Worte denken können. Das Aufschreiben ihrer Gedanken und Entscheidungen ist der effektivste Weg, um fortzufahren.
Ist es normal und akzeptabel, dass ich meine Gedanken und Entscheidungen während des Codierens in eine Notepad ++ - Datei schreibe?
Manchmal sollte es akzeptabel sein, z. B. bei der Neuerstellung von technischer Dokumentation oder beim Nachdenken über komplexere Algorithmen, manchmal kann es jedoch auch merkwürdig sein, z.
Die Auswirkungen dieser Praxis auf die Produktivität sind unklar. Von der einen Seite - das Denken mit inneren Wörtern kann schneller sein als mit den geschriebenen Wörtern. Von der anderen Seite - komplexere Probleme erfordern das Schreiben. Wenn man mehr Gestaltungsmöglichkeiten hat, ist das Gefühl außerdem besser, wenn die Entscheidung geschrieben wird, sodass die Moral steigt.
quelle
Antworten:
Das ist nicht nur normal, es ist auch eine gute Idee.
Es gibt ein berühmtes Zitat
Nehmen Sie sich Zeit, um Ihre Gedanken zu organisieren und Ihre Arbeit zu planen, bevor Sie mit dem Programmieren beginnen. Wenn Sie diese Gedanken auf Papier bringen, haben Sie Zeit, über Ihre Pläne nachzudenken, sie zu kritisieren und so zu organisieren, wie es nur "in Ihrem Kopf" schwierig wäre.
quelle
Ja, das ist völlig akzeptabel und normal.
Die Dokumentation Ihres Entscheidungsprozesses ist oft hilfreich, wenn Sie den Code überarbeiten, um festzustellen, warum der Code auf eine bestimmte Weise geschrieben wurde.
Diese Notizen können als Kommentare direkt in den Code eingefügt werden, wenn sie kurz genug sind. Erweiterte Kommentare werden häufig als Teil eines externen technischen Konstruktionsdokuments aufbewahrt.
quelle
Das ist eine verdammt gute Idee. Bis es zu einem Mittel zum Aufschieben wird.
Der Schlüssel ist das Gleichgewicht. Ich finde, ich bin am produktivsten, wenn ich mich nicht einpacke, sondern Ideen festhalte, wie sie kommen.
Wenn ich auf niedrigem Niveau schleife und eine Idee auf hohem Niveau kommt, schreibe ich sie einfach auf und komme später darauf zurück.
Das Planen von Arbeiten ist eine gute Idee, aber wenn Sie nicht vor Publikum kommunizieren oder präsentieren müssen, sind Stift und Serviette die besten Werkzeuge. Erfassen Sie die Idee. Verschwenden Sie keine Zeit damit, es hübsch zu machen.
quelle
In jeder beruflichen Situation ist dies nicht nur "normal und akzeptabel", sondern auch obligatorisch. Der typische Entwicklungszyklus besteht aus zwei Dokumentationsphasen, bevor die Codierung überhaupt beginnt:
Dokument mit den funktionalen Anforderungen: Dieses Dokument wird in der Regel von Geschäftsanalysten erstellt und gibt die zu implementierende Funktionalität an.
Detail Design Document: Das ist so ziemlich das, worüber Sie sprechen, nur formeller, indem Sie die funktionale Zerlegung (Faktorisierung) des Systems, Algorithmen usw. spezifizieren. Einige meiner (sehr) alten sind online, z . B. diese .
Für weniger formelle Dokumentation stimme ich 110% mit vorhergehenden Anmerkungen zu Inline-Kommentaren überein. Das ist der einzige Weg; So oder so, alles andere geht irgendwann verloren. Ordentliches und durchdachtes Inline-Kommentieren ist jedoch eine eigene Codierungsfertigkeit, die wie jede andere Fertigkeit durch Anstrengung und Übung entwickelt wurde. Sie können einige meiner (sehr) alten Sachen unter sehen, zB dies . Dieser Stil könnte Sie ansprechen oder auch nicht. Ich würde empfehlen, zuerst einen gut kommentierten Code mit einem von Ihnen gewünschten Stil zu finden und diesen in Ihrem eigenen Code zu emulieren. Nach einer Weile passen Sie es an, wie Sie es für richtig halten.
quelle
Ein großartiger Ort, um diese Art von Informationen zu platzieren, ist direkt in der Commit-Nachricht Ihres Versionskontrollsystems (SVN, Git usw.). Auf diese Weise können Sie die Änderungen und die Gründe für sie an derselben Stelle sehen.
quelle
Zusätzlich zu den anderen guten Antworten füge ich hinzu, dass ich oft meine Gedanken darüber aufschreibe, was ich versuche zu tun.
Wenn ich sehr explizit artikuliere, was ich versuche, kann ich Vermutungen, Annahmen und / oder Anforderungen realisieren, die nicht unbedingt zutreffen.
Das deutet dann auf Alternativen hin, über die ich dann jeweils besser nachdenken kann; Dieses Schreiben hilft mir, meinen Platz zu retten, wenn ich an etwas anderes denke.
Ich mache mir schnelle Notizen, um Atem und Tiefe zu erkunden, so dass es rekursiv funktioniert und mir dabei hilft, einen Lösungsbaum zu erarbeiten, zu navigieren und zu bewerten, zu sichern, zu erforschen, zu entdecken, zu realisieren und zu entscheiden.
quelle
Alles aufzuschreiben, was Ihnen / (neuen) Teammitgliedern Zeit ersparen kann, ist Zeit, die Sie sinnvoll einsetzen müssen. Stellen Sie nur sicher, dass es sich um etwas handelt, das jemand später benötigt, und überdenken Sie nicht, es sei denn, es handelt sich um ein wirklich langfristiges Projekt.
Es sollte auch keine Zeit in Anspruch nehmen. Wenn Sie Zeit zum Nachdenken haben, können Sie Ihre Gedanken 1 zu 1 aufschreiben (solange sie jemandem nützlich sein können).
Das eigentliche Problem könnte darin bestehen, zu überdenken, was Sie schreiben. Nur weil Sie schreiben, müssen Sie sich nicht an ein bereits vorhandenes Format halten oder eine vollständige Dokumentation erstellen.
Wenn Sie wählen, ob Sie nichts aufschreiben oder nur unformale Notizen auf einen Notizblock schreiben möchten, schreiben Sie einfach unformale Notizen.
quelle
Sie sagen: "Manche Menschen haben das Problem, dass sie nicht ohne Worte denken können. Das Aufschreiben ihrer Gedanken und Entscheidungen ist der effektivste Weg, um fortzufahren."
Wenn es am effektivsten ist, Ihre Gedanken und Entscheidungen aufzuschreiben, warum wäre es dann nicht normal und akzeptabel, so effektiv wie möglich vorzugehen? Sie tun, was für Sie am besten funktioniert. Es ist möglicherweise nicht das, was für jemand anderen am besten funktioniert. In diesem Fall lässt du dich nicht von jemand anderem sagen, was für dich am besten ist, und du sagst ihm nicht, was für ihn am besten ist. Jeder tut, was für ihn am besten ist.
quelle
Der Mensch kann nur sieben "Dinge" gleichzeitig im Kopf haben. Das ist der Grund für siebenstellige Telefonnummern. Damit Programmierer effizient arbeiten können, müssen sie eine Art System finden, um Dinge aus ihrem Speicher zu entfernen und sie später bei Bedarf schnell abzurufen. Ihre Notizen sind ein offensichtlicher und direkter Weg, aber jeder, der an etwas mäßig Komplexem arbeitet, muss es irgendwie tun . Wenn Sie ein Programm mit jemandem koppeln, achten Sie unbedingt auf dessen Methode.
Ein gängiger Weg ist die testgetriebene Entwicklung. In dieser Methodik schreiben Sie einen fehlgeschlagenen Test, Sie schreiben gerade genug Code, um diesen fehlgeschlagenen Test zu bestehen, und Sie überarbeiten Ihren Code, damit er besser aussieht, während Sie alle vorhandenen Tests bestehen. Bei dieser Methode bleiben alle Ihre "Notizen" in den Tests verschlüsselt. Menschen können auf diese Weise sehr schnell arbeiten, ohne sich Notizen zu machen, weil sie sich nur auf den nächsten Test konzentrieren.
Eine andere gebräuchliche Methode besteht darin, Ihre Notizen einfach als Pseudocode-Kommentare oder -Stubs in Ihren Code zu schreiben und sie dann nach und nach durch das Original zu ersetzen. So schreibe ich normalerweise Algorithmen. Mein erster Entwurf ist nur eine Hauptfunktion mit Pseudocode, die sich dann nach und nach in immer tieferen Abstraktionsebenen ausfüllt.
Fühlen Sie sich nicht schlecht, wenn Sie eine Methode verwenden, die für Sie funktioniert, aber versuchen Sie festzustellen, welche Methoden Ihre "effizienten" Kollegen verwenden. Sie haben die gleichen menschlichen Einschränkungen, die Sie tun.
quelle