> For the complete documentation index, see [llms.txt](https://weekly-essay.mikey.wang/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://weekly-essay.mikey.wang/de/2022/w08-how-to-write-good-code.md).

# W08-Wie schreibt man guten Code?

Vergangene Woche diskutierten wir im Team darüber, wie man guten Code schreibt. Hier einige weiterführende Gedanken. **Ich möchte eine allgemeine Regel nennen: die Qualität der eigenen Quellen ständig erhöhen. Guter Code entsteht durch Lernen und Praxis. Hochwertige Quellen zu erschließen ist ein starker Motor der Entwicklung.**

Am Anfang meines Berufslebens las ich oft öffentliche WeChat-Kanäle. Nach einem Artikel dachte ich regelmäßig: „Großartig erklärt, völlig richtig, sofort speichern.“ Nach und nach merkte ich, dass Entwicklercommunities systematischeres Material boten. Vieles stammte ursprünglich aus dem Ausland, etwa von media oder Google Developer. Deshalb übersetzte ich damals auch gern Texte. Später verfolgte ich Bücherlisten und hörte erfahrene Kollegen bestimmte Klassiker nachdrücklich empfehlen. Nach einigen davon erkannte ich, dass vieles, was ich zuvor gelesen hatte, nur Bruchstücke waren: Auszüge, Erweiterungen oder Anwendungen einzelner Buchkapitel. Solche Bücher sind meist nicht neu und oft mehrfach aufgelegt, bleiben aber bei jeder Lektüre ergiebig. Dazu gehören „The Pragmatic Programmer“, „Refactoring“, „The Design of Design“ und die Bücher von Yukihiro Matsumoto.

Meine frühe Entwicklung ähnelte einem Puzzle. Ich sammelte Fragmente, suchte selbst und entwickelte Theorien. Am Ende stellte ich fest, dass ich häufig nur das Rad neu erfand. Später glich es eher dem Pflanzen eines Baums. Zuerst entsteht die eigene Wissensstruktur mit einem Stamm. Danach lassen sich einzelne Informationen daran aufhängen. Der Vorteil ist, dass tägliche Informationen erst dann ihr größtes Potenzial entfalten, wenn man sie beurteilen und in Praxis übersetzen kann. Man erkennt kleine Kunststücke, über die man kurz lächelt, ebenso wie unscheinbare, grundlegende Einfachheit, von der es still zu lernen lohnt.

Bisher ging es darum, warum Quellenqualität wichtig ist. Was macht eine hochwertige Quelle aus? Sind neue Medien wie WeChat-Kanäle grundsätzlich schlechter als Bücher? Sicher nicht. Unterschiedliche Kanäle haben unterschiedliche Stärken, Qualität ist nur eine Dimension. Kanäle pauschal danach zu ordnen wäre unfair. Sinnvoller ist ein Blick auf die Marke. Ob persönliche oder Unternehmensmarke: Gute Marken liefern selten schlechtes Material, weil ihre Qualität mit dem Aufwand für Auswahl, Redaktion und Korrektur zusammenhängt. Beispiele sind Aotu und Qiwu in Entwicklercommunities oder Verlage wie Turing, O’Reilly, Huazhang und Cheers.

Informationskanäle haben keine natürliche Rangordnung, und keiner kann alles. Wer einem Kanal mehr zuschreibt, als sein Wesen hergibt, gerät auf Abwege. „Wir amüsieren uns zu Tode“ kritisiert etwa die Fernsehbegeisterung einer Zeit, in der man sogar Bildung durch Fernsehen neu gestalten wollte. Die meisten Versuche, auf diesem Weg unterhaltsam zu bilden, scheiterten. Fernsehen bietet vor allem leichte Unterhaltung. Man sollte ihm nicht beliebig weitere gesellschaftliche Aufgaben aufladen. Nach dem Fernsehen erlebten wir Internetportale und mobile neue Medien. Jede Epoche fügte eine Möglichkeit der Informationsgewinnung hinzu. Es geht nicht darum, wer wen ersetzen muss, sondern darum, welcher Kanal wofür am besten geeignet ist.

Ich las auch Wan Weigangs Rat, mehr Spitzenkonferenzen und wissenschaftliche Aufsätze zu verfolgen. Dort lägen die hochwertigsten Quellen. Dem stimme ich zu, finde es aber etwas fundamentalistisch. Seine Sichtweisen kommen meist aus der Perspektive einer wissenschaftlichen Elite. In der Einführung seines Überblicks zur Quantenmechanik blieb mir ein Satz besonders im Gedächtnis: Disziplinen, die „Wissenschaft“ im Namen tragen, seien keine Wissenschaft. Der Name verrate ihr mangelndes Selbstvertrauen, etwa bei Computer Science.
