2008-10-04 8 views
19

Ich lese Richard P. Gabriels Buch "Patterns of Software" (pdf), das einen Essay namens "Writing Broadside" enthält, in dem er behauptet, dass Programmierer ihre Fähigkeit entwickeln sollten, klar zu schreiben. Ich habe festgestellt, dass seine Vorschläge meine Fähigkeit, technische Spezifikationen und Design-Dokumente zu schreiben, definitiv verbessert haben.Sollten Programmierer in der Lage sein, klar zu schreiben?

Einer seiner Vorschläge ist, Schreibworkshops bei der Arbeit zu entwickeln. Dadurch wird Ihre Fähigkeit verbessert, sich bei der Dokumentation Ihrer Entwürfe deutlich auszudrücken.

Wir haben bereits ein System, wo ein Teammitglied einmal pro Woche einen Pecha Kucha Vortrag zu einem beliebigen Thema gibt, um unsere Präsentationsfähigkeit zu verbessern.

Also denke ich daran, die Schreibwerkstätten auch vorschlagen.

Hat jemand Schreibwerkstätten an seinem Arbeitsplatz?

"Ein Mann, der das Wissen hat, aber nicht die Kraft hat, es klar auszudrücken, ist nicht besser dran, als wenn er überhaupt keine Ideen hätte." - Thucydides

Edit: Worüber ich hier spreche ist die Fähigkeit, Ihren Code in einer klaren Weise zu dokumentieren, z. technische Spezifikationen und Entwurfsdokumente. Nicht das Schreiben des Quellcodes selbst.

+0

@ Rob, hey ich meine Dont Dinge zu stiften, ich bin gerade ein bisschen verwirrt. Sie erwähnen, dass Sie nicht über Code sprechen, BUt in den Kommentaren meines Beitrags, auf den Sie sich mit Mitchs Kommentar beziehen (der sich auf Code bezieht), und sagten, dass Sie darüber sprechen würden. Welches ist es? – mattlant

+0

@mattlant, bitte lesen Sie die Antwort von Mitch erneut. Elements of Style ist eine Bibel auf klarer Schrift. Nicht codierend. Mitchs anderer Punkt betrifft die Benennung von Variablen und er weist darauf hin, dass man Variablen wie "x1" statt der "stromausgeglichenen" Gleichung erhält, wenn man keine Ideen gut ausdrücken kann. –

+0

OK, ich verstehe was du damit meinst. Aber ich denke, da würde ich weiterhin nicht übereinstimmen. Ich denke, Sie sind erstaunlich, diese beschreibenden Namen zu schreiben, aber haben eine schlechte Beherrschung, all das auf wundersames Englisch zu setzen, damit jeder es lesen kann. Du hast es sogar selbst gesagt. Mein einziger Punkt auf all das war ... – mattlant

Antwort

20

Obligatorische Dijkstra Zitat:

Neben einer mathematischen Neigung, eine außerordentlich gute Beherrschung der eigenen Muttersprache ist der wichtigste Vermögenswert eines kompetenten Programmierer.

+1

Die Beherrschung der Sprache und die Beherrschung des Schreibens sind zwei verschiedene Dinge, und eines kann dem einen überlegen sein und nicht dem anderen und umgekehrt. – mattlant

20

Ja! Ganz sicher.

Eines der größten Probleme, die ich im Code sehe, ist die Unfähigkeit, Dinge genau zu benennen. Dies kann oft auf die Unfähigkeit zurückzuführen sein, seine Ideen auszudrücken.

Eine großartige Ressource zur Verbesserung der Schreibfähigkeiten ist: The elements of Style. Es ist klein, prägnant und leicht zu lesen.

6

Was wir machen, ist, dass Mitarbeiter jede Woche eine Präsentation machen, meistens zu technischen Themen, so dass wir auch etwas Weiterbildung bekommen.

Ich schätze, das trainiert nicht nur die Fähigkeit, sich auszudrücken, sondern stärkt auch das Team und die Kommunikation innerhalb des Teams.

Es verbessert wirklich die Produktivität, wenn die Teammitglieder wissen, wie man sich ausdrückt, selbst bei kleinen Dingen wie dem Unterschied zwischen "Parametern" und "Argumenten".

-4

meine Gedanken:

A, das wichtigste ist, denke ich, ein Entwickler in der Lage sein muss, klar, prägnant, schön, selbstdokumentierenden Code zu schreiben. Dies ist viel wichtiger als das Schreiben von Dokumenten.

B, Ihre Unit Tests sollten auch klar und prägnant sein und eine Art Dokumentation zur Verwendung von Code enthalten.

C. Ein Teil davon hängt davon ab. Wenn sie sehr niedrige Programmierer sind, die an kleinen Teilen des Codes arbeiten, stehen A + B, Wenn sie jedoch auf hohem Niveau sind oder an einem großen Teil des Systems oder des ganzen Systems arbeiten, dann wird es ja wichtiger, dass sie es tun wissen, wie man klar und richtig schreibt, aber bis zu einem gewissen Grad.

Kurz gesagt, ich denke es ist wichtig, aber es ist nicht das Maß dafür, wie gut ein Entwickler ist. Wie gut der Code selbst dokumentiert ist das wahre Maß.

Abgesehen davon, dass jeder Entwickler Dokumente schreiben könnte, wären technische Redakteure arbeitslos.

Als ich weiß, irgendwelche Ressourcen oder was zu empfehlen, nein ich nicht, ich habe nie wirklich auf meine Schreibfähigkeiten verbessert gesucht.

EDIT: Ich sollte auch hinzufügen, obwohl einige davon hängt von dem Prozess, den Sie verwenden und welche Rollen und Verantwortlichkeiten ein Entwickler haben könnte. Offensichtlich, wenn es erforderlich ist, dass Entwickler einen Teil des Benutzerhandbuchs schreiben, dann ist ja das Schreiben klar SEHR wichtig. Aber das ist normalerweise nicht die Norm.

EDIT2: Nichts davon gemeint ist, zu sagen, dass ein Devloper noch keine Schreibfähigkeiten haben sollte, es war zu sagen, dass Code Schreiben weit mehr ist wichtiger als tech/doc Schreiben.

EDIT3: Nun, da es geklärt wurde, dass das OP keinen Verweis auf das Schreiben von Code möchte, muss ich sagen, dass im Allgemeinen es nicht sehr wichtig für einen Entwickler ist, technische Dokumentation zu schreiben und Design-Dokumentation, da es wesentlich wichtigere Dinge für einen Entwickler gibt.

+1

Die Fähigkeit, klar zu schreiben und seine Ideen auszudrücken, bedeutet nicht unbedingt, dass man Dokumente schreibt. Es gilt immer noch für Code. –

+0

und bitte sagen Sie mir, was ich gesagt habe, das kontert, was Sie gesagt haben? "Das Wichtigste, ich denke, ein Entwickler muss in der Lage sein, klaren, prägnanten, schönen, selbstdokumentierenden Code zu schreiben." – mattlant

+0

LESEN SIE DIE FRAGE! "Ich habe festgestellt, dass seine Vorschläge definitiv meine Fähigkeit verbessert haben, technische Spezifikationen und Designdokumente zu schreiben." Ich war ein Teil davon, der mir sagte, dass das OP viel mehr als Code referierte. – mattlant

2

Softwareentwickler, die Profis aus anderen Bereichen oder Branchen sehr ähnlich sind, sollten ihre Gedanken und Ideen ausdrücken können.

Softwareentwicklung ist eine Teamleistung und die Kommunikation ist der wichtigste Einzelfaktor, der einen Projektfehler verursachen kann. Umso mehr kommunizieren Entwickler in Projekten heute mit Vertrieb, Marketing, Geschäftsleuten, Anwendern und anderen, die keine Ahnung von Softwareentwicklung haben. Und die Fähigkeit, Ideen zu kommunizieren und andere dazu zu bewegen, ist eine sehr wichtige Fähigkeit.

Unnötig zu sagen, dass, wenn Tech Lead mit brilliantem Design aufwarten konnte, aber nicht in der Lage ist, sein Design dem Rest des Teams mitzuteilen, dass Sie no design haben.

+0

Aha, aber ein Tech-Lead ist viel anders als ein * Programmierer * wie verallgemeinert von der OP – mattlant

+0

Tech-Lead ist etwas anders als bloße Entwickler, aber die allgemeine Idee gilt immer noch: wenn Sie Ideen haben oder wollen, dass andere Ihnen folgen werden muss in der Lage sein, sie zu kommunizieren. Der Zitat von Thucydides in der ursprünglichen Frage fängt alles ein. –

+0

In der Tat, aber in vielen großen Unternehmen sind die Ideen von * Programmierer * nicht zu hören. Das ändert sich langsam, vor allem angesichts der großen Menge kleiner Organisationen, aber dazu würde ich sagen, dass sie kein Programmierer mehr sind. – mattlant

0

Hier in Argentinien müssen wir mit unseren Freunden in den USA kommunizieren, um unsere Arbeit zu erledigen.

Der Hauptweg der Kommunikation ist E-Mail und IM. Sie können sich nicht vorstellen, wie schwierig es ist, viele und viele E-Mails zu verstehen, weil es nicht gut geschrieben ist. Und ich spreche nicht von schwierigen technischen Sachen, sondern nur, wie man sich in einfachem Englisch ausdrückt.

Also, ja. Ich denke, dass es sehr wichtig ist.

3

@slashmais: Jeder in irgendeiner Art von professioneller Kapazität sollte in der Lage sein, klar zu kommunizieren, sei es Ingenieur, Manager, Tester oder was auch immer. Dies ist nicht nur eine persönliche Vorliebe, ich glaube dies für das Wohl einer Organisation oder eines Geschäfts. Sie wollen keine Programmierer, deren einzige Funktion es ist, Code zu implementieren und schlecht zu dokumentieren; Sie möchten Ingenieure, die tief über den Code nachdenken und ihn in einem Medium außerhalb des Code-Listings kommunizieren können.

Was ich in meiner Firma mache, ist eine wöchentliche technische Präsentation eines Ingenieurs zu einem Thema ihrer Wahl. Das ist ein großer Gewinn für alle - es hilft dem Ingenieur, seine Sprech- und Schreibfähigkeiten zu verbessern und uns über das, was sie tun, aufzuklären. Wir haben auch Code-Reviews, in denen die Dokumentation des Codes ebenso wie der Code selbst kritisiert wird. Dies führt zu weit mehr wartbaren Code.

Es spielt keine Rolle, ob es sich um IM, E-Mail, schriftliche Dokumente oder Code handelt - je weniger Zeit ich damit verbringe, Ihre Kommunikation zu analysieren und je mehr Zeit ich für die Kommunikation benötige, desto besser für meine Firma.

2

Ja, Programmierer sollten ihre eigene Arbeit dokumentieren; Würden Sie ein Haus aus einem Achtel-Modell bauen und darauf vertrauen, dass Blaupausen nicht notwendig sind?

Wert zu lesen: Steve McConnells Code Complete, vor allem die Kapitel über Benennungsfunktionen und Schreiben von Dokumentation. Wenn Sie Ihren Code entsprechend benennen und kommentieren, schreiben die Dokumente selbst.

2

Kommunikation ist in jedem Beruf unerlässlich, Software-Engineering und Computerprogrammierung sind keine Ausnahmen. Es spielt keine Rolle, wie brillant Ihre Idee ist, wenn Sie sie Ihren Kollegen, Managern und Kunden nicht effektiv vermitteln können. Sie können mit gut geschriebenem Text genauso viel Einfluss haben wie mit gut geschriebenem Code.

Ein gutes Beispiel, das den meisten Leuten bekannt ist, die das lesen, ist das berühmte K & R Buch. Meiner Meinung nach ist einer der Gründe, warum C eine solch prominente Programmiersprache wurde, weil Kernighan und Ritchie ein gut geschriebenes Buch produziert haben. Hätten sie ein Handbuch produziert, das zu dieser Zeit für den Stil der Compiler-Handbücher typisch war, statt eines leicht zu befolgenden, prägnanten und kompetitiven Lehrbuchs, hätte ich bezweifelt, dass C so dominant geworden wäre.

+0

Das ist ein schlechtes Beispiel. K & G war über dem Niveau von "Programmierer" – mattlant

1

Die Programmierung besteht aus zwei Hauptteilen. Die erste besteht darin, mit einer Maschine zu kommunizieren, was Sie mit Ihrem Code zu tun versuchen. Das ist der einfache Teil, der Compiler/Interpreter/virtuelle Maschine erledigt die meiste Arbeit dort. Der schwierige Teil besteht darin, den anderen Programmierern mitzuteilen, was Sie mit Ihrem Code zu tun versuchen.

Aufgrund des menschlichen Aspekts der Programmierung ist es wichtig, dass Sie ein effektiver Schreiber sind, um ein effektiver Programmierer zu sein. Dinge funktionieren zu lassen ist nicht gut genug, die Leute, die nach dir kommen, müssen es verstehen und damit genauso gut arbeiten können.

Gute Schreibfähigkeiten können Ihnen helfen, Code in einer natürlicheren Sprache zu schreiben (obwohl es zu natürlichen Sprachen Grubenstürze gibt, verwenden Sie sie entsprechend). Es wird Ihnen auch helfen, diesen Code besser zu dokumentieren, zu kommentieren und zu erklären.

Wie Blair Conrad sagte, ist es auch wichtig, Dinge zu benennen, und sie profitiert von besseren Schreibfähigkeiten. Was du Dinge nennst, wirkt sich auf die Art und Weise aus, wie Menschen über sie denken. Wenn andere Programmierer herausfinden können, wie der Code ausgearbeitet wurde, haben sie eine bessere Chance, diesen Code wie vorgesehen zu verwenden. klar ist nicht die gleiche wie mit einwandfreier Rechtschreibung und Grammatik

0

Ja,


Aber zu schreiben.

Wie gut jemand Rechtschreibung ist, wird ihr Schreiben schwer zu verstehen sein, wenn sie ihre Gedanken nicht logisch ordnen können und entscheiden, welche Details wichtig sind (und lassen Sie weg).

Ein kurzer Kommentar, der auf den Punkt kommt, ist viel besser als ein langer Kommentar mit fehlerfreier Grammatik, der den Punkt nicht trifft.

Wenn Sie in das Management einsteigen möchten, dann ist das schnelle Schreiben langer Dokumente mit perfekter Rechtschreibung und Grammatik viel wichtiger.

Erinnere dich daran, wie einfach es ist, jemanden zu verstehen, was du meinst, nicht, wie sie deinen Schreibstil mögen.

Fehlerfreie Grammatik ist nicht immer die beste Art zu kommunizieren, z.B.

„Dies ist die Art von Englisch nach oben mit die ich nicht gestellt.“

Verwandte Themen