Wie Musik und Zeichnen mir das Programmieren beigebracht haben



Von einem Übersetzer: Xijiang Yang, ein Programmierer aus New York, spricht darüber, wie Kunst ihm hilft, das Codieren zu üben.

Programmieren ist Kunst ähnlich. Gleichzeitig können andere Kunstformen, insbesondere Musik und Zeichnen, einem Programmierer viel beibringen. Ich hoffe, dass sie Ihnen genauso helfen, wie sie mir zu gegebener Zeit geholfen haben.

Skillbox empfiehlt: Zweijähriger Praktikumskurs "Ich bin ein PRO-Webentwickler . "

Wir erinnern Sie daran: Für alle Leser von „Habr“ - ein Rabatt von 10.000 Rubel bei der Anmeldung für einen Skillbox-Kurs mit dem Promo-Code „Habr“.

Konzentrieren Sie sich auf die Grundlagen


Was unterrichten wir?

Wenn Sie Algorithmen mögen, meine ich, es gefällt Ihnen wirklich gut, wie die Tatsache, dass Sie am frühen Morgen sofort mit der Rekursion beginnen und Bäume segmentieren, herzlichen Glückwunsch. Sie sind ein reiner Programmierer. Aber wir, der Rest, sind gewöhnliche Menschen, manchmal stellen wir uns die Frage: Warum diese Rätsel lösen? Nur um Interviews erfolgreich zu bestehen?

Wenn Sie etwas üben, müssen Sie verstehen, warum Sie es tun. Möchten Sie bestimmte Fähigkeiten erwerben? Oder Schwächen stärken?

Ich glaube, dass all diese Rätsel für Programmierer es Ihnen nicht nur ermöglichen, spezifisches Wissen zu erlangen, sondern auch die grundlegenden Elemente des Prozesses des Erstellens und Schreibens von Code besser zu verstehen. Grundkenntnisse erwerben oder verbessern.

Die Rätsel werden nicht benötigt, um das Problem zu lösen, sondern um den Prozess der Lösungsfindung zu untersuchen. Das sind verschiedene Dinge.

Was machen Sie mit dem Problem - in kleine Komponenten zerlegen? Was hilft dir, dein Level zu verbessern? Was sind die Unterschiede zwischen einigen Datenbankstrukturen und anderen? Grundfertigkeiten entsprechen den Hauptoberwellen, auf denen die Sonate aufgebaut ist.

Was wissen erfahrene Profis?


Ich würde sagen, dass ein erfahrener Künstler nicht weiß, wie man im Herbst den Central Park in New York zeichnet. Aber er kennt die Grundlagen, die benötigt werden, um ein Bild zu erstellen. Mit ihnen malt er eine Landschaft und das Ergebnis ist ein erstaunlich schönes Bild.

Ein erfahrener Künstler weiß nicht, wie man Blätter auf Bäume zeichnet. Nein, er spricht fließend Farben und deren Kombinationen. Er weiß, wie sich Farben auf der Leinwand verhalten.

Ein erfahrener Programmierer muss also nicht alle Nuancen von React, Vue, Ember oder anderen Frameworks kennen. Ein erfahrener Programmierer weiß, wie JavaScript funktioniert und wie der Browser funktioniert. Ein erfahrener Programmierer kennt die Vorteile der funktionalen Programmierung und weiß, warum React in einem bestimmten Fall von größter Bedeutung ist.

Lernen Sie die Grundlagen und alles oben wird in einem klaren Bild zusammenkommen.

Skizzen des Lebens


Kopieren-Einfügen gegen Quelle

Meine Freunde, Künstler, die es mit ihrem Handwerk ernst meinen, machen immer Skizzen aus dem Leben. Was bedeutet das? Sie zeichnen alles, was sie sehen, alles, was sie interessiert.

Sie zeichnen kein Foto oder Modell, sondern zeichnen, was sie selbst sehen.

Wenn jemand eine Landschaft aus einem Bild zeichnet, erfindet er nicht, sondern kopiert. Bei der Programmierung entspricht dieses Verhalten dem Kopieren und Einfügen von Snippets mit Stapelüberlauf.

Das Kopieren und Einfügen von Code bietet niemals die Möglichkeit, grundlegende Kenntnisse zu erwerben. Das Kopieren des Codes eines anderen hat eine ähnliche Bedeutung: Sie erhalten eine Lösung, aber keine Erfahrung. Gewinne die Schlacht, aber verliere den Krieg.

Universelles Wissen


Grundwissen kann als universell bezeichnet werden. Wenn Sie versuchen, das Problem selbst zu lösen, irren Sie sich und finden schließlich eine Lösung. Dann erhalten Sie genau dieses Wissen. Sie studieren die Prinzipien der Arbeit, die in zukünftigen Projekten verwendet werden können.

Selten sind Entscheidungen üblich, wenn „eine Größe für alle passt“. Um die Schlüssel für verschiedene Schlösser zu erhalten, müssen Sie arbeiten. Manchmal ist es nützlich, die Arbeit ohne den Einfluss der Entscheidung einer Person selbst zu erledigen.

Übe


Gezielte Wiederholung

Wenn ein Musiker ein Werk studiert, versucht er nicht nur, es tausende Male von Anfang bis Ende zu spielen. Er sucht Schwächen in seiner Arbeit und beseitigt sie.

Andernfalls ist die Leistung alles andere als ideal, enthält die falschen Hinweise (im Falle von Programmierfehlern).

Obwohl blinde Wiederholung nicht der beste Weg ist, etwas zu lernen, können Sie durch gezielte Wiederholung die richtige Erfahrung machen. Sie arbeiten an Ihren Schwachstellen und werden besser.

Und für einen Anfänger ist eine blinde Wiederholung nützlich. Dadurch entsteht ein Muskelgedächtnis, das bei der Programmierung als kognitive Fähigkeit angesehen werden kann. Danach können Sie zu komplexen Arbeiten übergehen.

Hochrangige Arbeit


Wenn Sie mit der Verwendung eines Frameworks noch nicht vertraut sind, üben Sie. Lerne seine Grundelemente, erschaffe etwas Grundlegendes.

Wählen Sie einen Port aus, erstellen Sie eine Route, senden Sie eine Anfrage und antworten Sie. Dann wiederholen Sie dies.

Wenn ein Musiker mit dem Studium des schwierigen Teils eines Stücks fertig ist, schüttelt er nicht die Hand und sagt sich nicht: Ja, das ist vorbei. Nein, er wiederholt es, um die Möglichkeit eines Fehlers auszuschließen.

Bei einem Programmierer ist es dasselbe: Wenn Sie ein komplexes Programm schreiben und ein Problem lösen, können Sie den einfachsten Syntaxfehler überspringen, wonach der gesamte Mechanismus nicht mehr funktioniert. Muss nach einem Problem suchen. Wenn Sie die Syntax für den Automatismus ausarbeiten, verringert sich die Wahrscheinlichkeit eines Problems.

Dann brauchen Sie sich keine Sorgen zu machen. Ein Musiker, der seine Fähigkeiten im Automatismus beherrscht, wird sich nicht darum kümmern, einzelne Noten eines Konzerts zu spielen. Er konzentriert sich auf die Melodie als Ganzes und nicht auf ihre einzelnen Elemente.

Schulung und Gliederung


Da vinci Beispiel

Wenn Sie jemals die Arbeit wirklich großartiger Künstler studiert haben, zum Beispiel Leonardo da Vinci, dann wissen Sie wahrscheinlich, wie viele Skizzen, Entwürfe und Trainingsbilder sie gemacht haben. Leonardo war berühmt für seine Liebe zum Detail - er machte Skizzen von Körperteilen, Pflanzen, Tieren, Menschen und ihren Gruppen.

Anfängliche Künstler üben auch viel, zum Beispiel malen sie ständig Stillleben. Aber warum, weil sie keine Nerds sind? Nein, das ist alles gezieltes Training. Anfänger sammeln Erfahrung und Wissen im Umgang mit Farbe, Licht und Schatten.

Einige Programmierer arbeiten auf ähnliche Weise, indem sie ein großes Problem in mehrere kleine aufteilen und dann an allen arbeiten.

Programmierer Skizzenbuch

Wie kann ich mich an diese Funktion erinnern, in welchem ​​Kontext wird sie verwendet? Muss ich in jeder React-Komponente super () aufrufen, oder lohnt es sich, ein bisschen ES6-Klassen zu lernen? Wie integriere ich asynchrone HTTP-Anfragen?

Sie können dies alles verstehen, indem Sie Repl oder JSBin öffnen. Kleine Studien können das Verständnis allgemeinerer Dinge vertiefen und lernen, wie man mit großen Projekten arbeitet.

Wenn ein Künstler einen Apfel oder einen Baum zeichnet, bedeutet dies nicht, dass ein bestimmtes Objekt für ihn von Interesse ist. Er arbeitet einfach das Kleine aus, um die Erfahrung auf das Große zu nutzen.

Schauen Sie sich die Hände der Mona Lisa an - sie sind technisch ideal.

Porträts und Abhängigkeitsbäume


Zusammensetzung

Ich denke, dass die Hauptaufgabe vieler Ziele (einschließlich Programmierer) die Komposition ist. Es geht darum, den Quotienten so zu einem Ganzen zu verbinden, dass ein Meisterwerk entsteht.

Es gibt verschiedene Methoden, um dies zu erreichen. Eine davon besteht darin, mit einer Ebene mit einem Minimum an Abhängigkeiten zu beginnen. Und schon von dieser Basisschicht steigen.

Wenn Sie eine Analogie mit dem Künstler ziehen, beginnt er nicht mit Wimpern. Er beginnt mit einer Grundierung. Die gleichen Wimpern, deren Position von der Form und Größe des Augenlids abhängt. Dies hängt von der Größe und Position des Augapfels ab, was wiederum mit den strukturellen Merkmalen des Schädels zusammenhängt. Das ganze Porträt, wenn wir über das Porträt sprechen, ist viele Abhängigkeiten.

Wenn ein Element falsch platziert wird, verschwindet der Eindruck von Harmonie und Integrität. Gleiches gilt für ein Softwareprojekt. Nachdem Sie einen Fehler gemacht haben, beginnen Sie, Entitäten zu produzieren, die alle Arbeit verderben.

Schicht für Schicht

Achten Sie beim Erstellen einer Full-Stack-Anwendung auf die Datenschicht. Führen Sie Tests durch. Überprüfen Sie alle Elemente. Nur in diesem Fall können Sie sich auf die Zuverlässigkeit des gesamten Projekts verlassen. Aber zunächst ist es notwendig, sein Wesen zu verstehen und das ganze Bild zu sehen. Wenn es Verständnis gibt, können Sie an den Details arbeiten.

Encoder - Codieren


Jedem das Seine. Musiker - Musik, Künstler - Gemälde. Für Programmierer - ein Code. Wir haben den Artikel mit den Worten begonnen, dass die Arbeit eines Programmierers auch eine Kunst ist. Und das ist es wirklich. Es ist nur daran zu erinnern, dass Fähigkeiten durch Üben, Lernen und Erforschen verbessert werden können und müssen. Mit Hilfe der Übung können sich unerfahrene Programmierer auf die Grundlagen konzentrieren, ihre Kreationen verbessern und schließlich ein cooles Projekt erstellen, das so groß ist wie die Ambitionen des Entwicklers.

Source: https://habr.com/ru/post/de432016/


All Articles