Ich lese Coders at Work von Peter Seibel, und oft wurde erwähnt, dass Programmierer, die nicht schreiben können, im Allgemeinen schlechte Programmierer sind - dies wird von Douglas Crockford, Joshua Bloch, Joe Armstrong, Dijkstra (und mir) behauptet Lesen Sie nur die Hälfte des Buches).
Wie sehen Sie das? Ist die Unfähigkeit, sich schriftlich in einer natürlichen Sprache wie Englisch auszudrücken, ein Hindernis für das Schreiben eines guten Codes?
Antworten:
Das Programmieren geht weit über das Schreiben von Code hinaus. Ein großer Teil eines erfolgreichen Programmierers ist die Kommunikation. In der Lage zu sein, sich mit Kunden zu verbinden, ihre Bedürfnisse zu verstehen, sie in den technischen Bereich zu übersetzen, sie in Code auszudrücken und das Ergebnis dann den Kunden zu erklären.
Programmierer, die es schwer haben, sich schriftlich klar auszudrücken, können sich im Allgemeinen möglicherweise nicht gut verständigen, während diejenigen, die über gute Sprach- und Schriftkenntnisse verfügen, diese Fähigkeiten im Allgemeinen in den von ihnen geschriebenen Code übersetzen können.
Ich denke, wenn man nicht in der Lage ist, gut zu schreiben und somit gut zu kommunizieren, kann man kein sehr guter Programmierer sein.
Wie Jason Fried und David Heinemeier Hansson (von 37signals) in ihrem Buch Rework sagen:
quelle
Fähigkeit, Ihre Ideen effektiv zu kommunizieren, ist ein Zeichen für großes Verständnis. Dies gilt nicht nur für das Programmieren.
quelle
Ich denke, wenn wir die Frage untersuchen, erhalten wir die Antwort direkt:
Was bedeutet es eigentlich, guten Code zu schreiben?
Es bedeutet, sich klar, präzise, richtig und elegant in einer Programmiersprache auszudrücken.
Der einzige Unterschied zwischen einem geschickten Ausdruck in Englisch oder einer Programmiersprache besteht darin, dass Englisch weitaus fehlerverzeihender ist.
quelle
Ich denke nicht, dass es ein großes Hindernis für einen Code-Affen ist (ich gehe von einer bestimmten Grundstufe / Fähigkeit aus, sich in ihrer Muttersprache auszudrücken). Ich denke jedoch, dass dies schnell zu einem großen Hindernis werden kann, da Sie (der Entwickler) anfangen müssen, Entwürfe / Bogen / Pläne einem nicht-technischen Publikum besser vorzustellen. Nach meiner Erfahrung ist es einfacher, jemandem etwas zu vermitteln, der ungefähr auf dem gleichen technischen Niveau ist wie ich, und es erfordert erheblich weniger (natürliche) Sprachkenntnisse als die Artikulation gegenüber einem Kunden und / oder Manager. Zugleich muss die Person, die darüber schreibt (oder darüber spricht), auch wenn es sich um ein Fachpublikum handelt, da das Thema weniger konkret wird, ziemlich artikuliert sein.
quelle
Das hängt davon ab, was Sie unter "gutem Code" verstehen.
Wenn Sie Code meinen, der einfach funktioniert, gibt es kaum einen Zusammenhang zwischen der Fähigkeit, mit Menschen zu kommunizieren, und der Fähigkeit, mit Computern zu kommunizieren.
Wenn Sie Code meinen, der funktioniert, wartbar ist und die Absicht des Codes klar zum Ausdruck bringt, gibt es absolut eine Beziehung zwischen dem Schreiben von gutem Code und dem Schreiben in einer Sprache, die ausschließlich für den Menschen bestimmt ist.
Obwohl Sie nicht all die unterschiedlichen Fähigkeiten benötigen, um ein guter Schreiber zu sein, um verständlichen Code zu schreiben, müssen dennoch einige Elemente vorhanden sein, da beide von Menschen gelesen werden. In mancher Hinsicht ist es noch schwieriger, guten Code zu schreiben, da er die Absicht mit dem Code beschreiben sollte, ohne Konstrukte zu verwenden, die beim Ausführen durch den Computer eine schlechte Leistung erbringen würden.
quelle
Die Sache ist, Codierung ist auch eine Kommunikationsfähigkeit. Jack Ganssle zitierte kürzlich in seinem Embedded Muse E-Newsletter Doug Abbott:
Programmierer, die nicht wissen, wie man Prosa schreibt, wissen wahrscheinlich auch nicht, wie man Code schreibt.
Mehr zu diesem interessanten Artikel:
Spiegelt schlechtes Schreiben schlechte Programmierkenntnisse wider?
quelle
Dies ist insgesamt anekdotisch, aber:
Einer der besten "Rockstar" -Programmierer, mit denen ich je zusammengearbeitet habe, war ein sehr armer Schriftsteller. Und wenn ich "sehr arm" sage, dann meine ich den Typ, der so rüberkam, als wäre er entweder extrem betrunken oder kaum gebildet - als Sie seine E-Mails sahen. Tippfehler, mangelnde Zeichensetzung, Schwierigkeiten, Ideen klar auszudrücken, und häufige Rechtschreibfehler ("ihre / ihre" und so weiter) sind häufig zu beobachten - manchmal fast unerträglich. Einige seiner E-Mails lesen - ich hätte mir Sorgen gemacht, dass er Kunden direkt per E-Mail benachrichtigt (das mussten wir in dieser Firma nicht tun) - weil es die Firma schlecht aussehen lassen würde!
Trotzdem war er ein Super-Star-Programmierer. Eine Größenordnung produktiver und aktiver als der Durchschnitt.
Ich bin mir nicht sicher, was ich davon halten soll. Ich habe das mehrmals mit verschiedenen Leuten gesehen. Einige scheinen einfach kein Talent dafür zu haben, sich hinzusetzen und Dinge aufzuschreiben. Und oft scheint es ihre Talente in anderen Bereichen nicht zu beeinträchtigen (selbst wenn es relativ ähnlich zu sein scheint, "Wissensarbeit" -Talente wie Programmierung). Man könnte meinen, es wäre damit verbunden, aber ich habe einige Beispiele wie dieses gesehen, bei denen es nicht so war. Obwohl ich denke, dass es durchaus möglich ist, dass sie " Ausnahmen sind, die die Regel beweisen " - ich hätte wahrscheinlich nie gedacht, die schlechten Schriftsteller zu bemerken, die keine Programmierer sind, und die guten Schriftsteller, die es sind .
quelle
Wenn sie nicht gut schreiben können, wie können sie Sie dann davon überzeugen , dass sie gute Programmierer sind?
quelle
Kann jemand eine Systemorganisation oder eine Idee nicht genau ausdrücken, indem er sie schreibt, kann er Code schreiben - das sind präzise Anweisungen -, die von einem (sehr) dummen Computer richtig interpretiert werden?
quelle
Ich halte es für sehr wichtig, dass ein Programmierer sowohl in gesprochener als auch in geschriebener Sprache gut kommunizieren kann. Die Fähigkeit, eine Idee in Worte zu übersetzen, ist eine Grundvoraussetzung für das Schreiben von Code.
Egal, ob wir mit einem Computer oder einer Person kommunizieren, wir müssen Wörter in eine Reihenfolge bringen, die nach Grammatikregeln sinnvoll ist. Wir müssen die Wörter entweder richtig aussprechen oder richtig buchstabieren, damit die andere Seite des Gesprächs sie versteht. Computer werfen Syntaxfehler auf, Mitarbeiter sagen entweder "WAS?" oder abzüglich dessen, was als irritiert oder schlimmer gesagt wird, einer irritierenden Ablenkung.
Ich habe von der Einstellung von Kandidaten dringend abgeraten, weil sie einen Gedanken nicht vervollständigen oder sich nicht mit einem Thema befassen konnten. Eine Person wurde ohnehin von unserem Chef angeheuert, und es stellte sich heraus, dass sie nicht in der Lage war, eine einfache Aufgabe rechtzeitig zu erledigen, da er von der neuen, strahlenden Technologie oder dem Spielzeug abgelenkt wurde, das ihm ins Auge fiel.
Ja, es ist wichtig, dass Programmierer gut kommunizieren können. Wenn sie nicht effektiv mit einem Menschen kommunizieren können, können sie dies nicht mit einem Computer tun.
quelle
Arme Schriftsteller machen arme Schriftsteller und sonst nichts. Schlechte Schreibfähigkeiten bedeuten nicht, dass sie überhaupt nicht kommunizieren können, aber sie können einfach nicht gut schreiben oder sich gut ausdrücken. Natürlich kann jeder sagen, dass Kommunikationsfähigkeiten in Unternehmen und so weiter wichtig und entscheidend sind, aber das bedeutet nicht, dass ein Programmierer mit schlechten Kommunikationsfähigkeiten die Arbeit nicht gut erledigen kann. Das Programmieren und Schreiben ist Kunst, aber von ganz anderer Art. Beim Schreiben geht es darum, wie ein anderer Mensch verstehen kann, was Sie sagen und / oder entsprechend handeln. Durch die Programmierung wird der Computer jedoch nicht in die Lage versetzt, Ihre Anforderungen zu verstehen, da kein Computer eine Benutzeranforderung versteht (zumindest innerhalb von 100 Jahren nach IMO). Bei der Programmierung geht es darum, wie die Anforderungen in die Programmiersprache übersetzt werden, weshalb die Schreibfertigkeit nicht so sehr damit zusammenhängt.
quelle
Absolut nicht!
Ein guter Schriftsteller ist nichts anderes als ein guter Schriftsteller. Bitten Sie einen guten Schriftsteller, das Konzept einer Datenbank einer nicht-technischen Person zu beschreiben. Was denkst du wirst du bekommen ...?
Ein guter Schriftsteller, schreibt. Ein guter Programmierer schreibt guten Code.
Ich würde immer weiter machen, aber ich würde lieber meine Zeit damit verbringen, andere Beiträge zu beantworten. Ich denke, ihr wisst ziemlich genau, wo ich zu diesem Thema stehe.
quelle