Ich möchte mit Ihnen darüber sprechen, warum wir häufiger Klempnerarbeiten durchführen, als darüber Dissertationen zu schreiben, über verschiedene Ansätze zum Programmieren lernen und darüber, wie wir versuchen, einen davon in unserem neuen Produkt Hyperskill anzuwenden.
Wenn Ihnen lange Einführungen nicht zusagen, springen Sie direkt zum Abschnitt über Programmierung. Aber so wird es weniger unterhaltsam.
Abschweifer
Stellen wir uns ein Mädchen namens Masha vor. Heute wollte Masha sich Obst waschen und einen Film in Ruhe ansehen, aber plötzlich: Unerwartet stellt sie fest, dass das Spülbecken in der Küche verstopft ist. Was sie damit tun soll, ist unklar. Sie könnte diese Frage auf unbestimmte Zeit verschieben, aber da sie gerade Zeit hat, beschließt Masha, das Problem sofort zu lösen. Der gesunde Menschenverstand bietet zwei Optionen: a) einen Klempner rufen b) selbst zurechtkommen. Masha wählt die zweite Option und beginnt, Anleitungen auf YouTube zu studieren. Auf den Rat des Benutzers Vasya_the_plumber schaut Masha unter das Spülbecken und sieht dort ein gewundenes Kunststoffrohr aus mehreren Teilen. Vorsichtig schraubt sie ein Teil am Sockel des Spülbeckens ab und findet nichts. Ein Stück Rohr weiter unten ist jedoch fest mit einer unbekannten Substanz verstopft, und selbst die Gabel, die sie auf dem Tisch gefunden hat, kann die Verstopfung nicht lösen. Experten aus dem Internet geben wenig tröstliche Prognosen: Das Teil muss ersetzt werden. Auf einer Karte findet Masha das nächstgelegene Geschäft, nimmt das missratene Rohrstück mit und kauft ein neues, das dem alten entspricht. Auf den Rat des Verkäufers nimmt Masha auch einen neuen Sieb mit, zur Vorsorge. Die Mission ist abgeschlossen: Das Spülbecken funktioniert wieder wie gewünscht, und die Hauptfigur hat inzwischen Folgendes gelernt:
- Die Rohre unter dem Waschbecken können Sie selbst auf- und zuschrauben.
- Das nächstgelegene Sanitärgeschäft ist anderthalb Kilometer von Maschas Wohnung entfernt.
Wahrscheinlich hat Mascha gar nicht bemerkt, wie viel Neues sie gelernt und verstanden hat, denn sie dachte vor allem an ihren zukünftigen Komfort sowie an den Film und einen gewaschenen Apfel. Das nächste Mal, wenn ein ähnliches Problem auftritt, wird sie es wesentlich schneller lösen. Tatsächlich brachte Mascha nicht nur die Welt in ihren gewohnten Zustand zurück; sie hat gelernt. induktiv, das heißt an konkreten Beispielen, und praxisorientiert, also indem sie Dinge tut, anstatt sie im Voraus detailliert zu studieren.
Alles hätte anders laufen können. Stellen Sie sich vor, Masha sitzt abends in einem Sessel und merkt plötzlich, dass sie sowohl mental als auch physisch nicht auf einen verstopften Abfluss vorbereitet ist. Hastig meldet sie sich an einer Sanitärakademie an, lernt verschiedene Arten von Spülen, Rohren und möglichen Verbindungen kennen, studiert die Klassifizierung von Sanitärproblemen und mögliche Lösungen. Masha schläft nachts nicht, während sie Begriffe und Bezeichnungen lernt. Möglicherweise schreibt sie sogar eine Doktorarbeit über theoretische Rohrleitungen, in der sie über Gummidichtungen nachdenkt. Schließlich, nach dem Erhalt ihres Zertifikats, schaut Masha stolz in ihre Küche und ist sich sicher, dass sogar ein kleines Problem mit dem Waschbecken nun im Handumdrehen gelöst werden kann. In diesem Szenario hat das Mädchen deduktiv, indem sie vom Allgemeinen zum Speziellen übergeht, und sie orientiert sich eher an der Theorie..
Welcher Ansatz eignet sich also besser? Im Falle des Waschbeckens und der Verstopfung — der erste, und hier sind die Gründe:
- Wenn lediglich ein funktionierendes Waschbecken wichtig ist, reicht es aus, nur das zu wissen, was sich genau auf diesen Bereich bezieht. Wenn Masha merkt, dass ihr Wissen nicht ausreicht, wird sie garantiert einen Weg finden, mehr zu lernen.
- Ein encyklopädisches Wissen mag in der Praxis nicht immer hilfreich sein, weil die Gewohnheit nicht eingeübt wurde. Um die Abfolgen zu lernen, ist es sinnvoll, nicht nur darüber zu lesen, sondern sie auch tatsächlich auszuführen.
Lassen Sie uns die arme Masha in Ruhe und zum eigentlichen Lernprozess übergehen.
Programmierung: Lernen oder Tun?
Wir neigen dazu zu denken, dass man, um sich weiterzuentwickeln und in einem neuen Gebiet zum Experten zu werden, zuerst an die Universität gehen oder mindestens einen Kurs belegen muss. Wir hören sorgfältig zu, was uns erzählt wird, und erledigen die Aufgaben. Wenn wir dann das ersehnte Diplom oder Zertifikat in den Händen halten, sind wir sofort verwirrt, weil wir nicht wirklich verstanden haben, warum wir so viele Informationen benötigen und wie wir diese konkret anwenden können. Das stellt kein Problem dar, wenn man plant, wissenschaftliche Arbeiten zu schreiben und damit auf Konferenzen zu gehen. Andernfalls sollte man sich auch um praktische Fähigkeiten bemühen, also konkrete Dinge tun, erneut tun, ausprobieren und Fehler machen, um sich dauerhaft einprägen zu können, was man besser vermeiden sollte.
Ein Bereich, in dem Erfahrung und ein scharfer Verstand Hand in Hand mit breitem Wissen gehen, ist das Programmieren. Wenn Sie mit erfahrenen Entwicklern sprechen, werden Sie beeindruckende Geschichten hören, in denen jemand seit seiner Jugend Mathematik/Physik/Unterricht gegeben hat und dann müde wurde und zum Back-End gewechselt ist. Es gibt auch Programmierer ohne Hochschulbildung! In der Entwicklung wird vor allem nicht das Zertifikat oder das Diplom geschätzt, sondern die Anzahl und Qualität der geschriebenen Programme, Skripte und Websites.
»Aber warten Sie!«, werden Sie einwenden, »Das klingt schön – einfach machen! Ich kann mir nicht einfach so ein Programm schreiben, wenn ich vorher noch nie programmiert habe! Es ist mir wichtig zu verstehen, wo ich schreibe und wie ich grundsätzlich mit dem Compiler in der Programmiersprache kommuniziere. Es ist nicht so einfach, wie eine Telefonnummer eines Installateurs bei Google zu finden.«
Die bittere Wahrheit zeigt sich auch hier. Ein unbekannter Aspekt zieht einen anderen nach sich, dieser wiederum einen dritten, und bald verwandelt sich dieser Prozess in eine Zaubershow, in der ein Zauberer weiterhin verknüpfte Tücher hervorholt und sie niemals aus dem Zylinder bekommt. Der Prozess ist, um ehrlich zu sein, unangenehm. Bei dem fünften "Tuch" scheint die Tiefe der Unwissenheit bereits der Marianen-Grube nahe zu sein. Die Alternative dazu sind die gleichen Vorlesungen über 10 Arten von Variablen, 3 Arten von Schleifen und 150 potenziell nützlichen Bibliotheken. Traurig.
Hyperskill: Wir haben gebaut, gebaut und endlich gebaut.
Wir haben lange über dieses Problem nachgedacht. Wie lange wir nachgedacht haben, zeigt eindrucksvoll das Datum des letzten Beitrags in unserem Blog. Nach all den Diskussionen und Versuchen, einen neuen Ansatz bei Stepik zu integrieren, haben wir… eine andere Website erstellt. Möglicherweise haben Sie bereits von ihr im Zusammenhang mit der JetBrains Academy gehört. Wir haben sie Hyperskill genannt, ein projektbasiertes Lernen integriert, eine Wissensdatenbank für Java angeknüpft und die Unterstützung des EduTools-Teams gewonnen. Und jetzt mehr dazu.
Konkretes Ziel. Wir bieten ein „Menü“ aus Projekten an, das heißt, Programmen, die Sie mit unserer Hilfe schreiben können. Dazu gehören unter anderem Tic-Tac-Toe, ein persönlicher Assistent, Blockchain, eine Suchmaschine und vieles mehr. Die Projekte bestehen aus 5-6 Phasen; das Ergebnis jeder Phase ist ein fertiges Programm. „Warum gibt es dann die anderen Phasen, wenn man in der ersten schon alles geschafft hat?“ Vielen Dank für die Frage. Mit jedem Schritt wird das Programm funktionaler oder schneller. Zunächst umfasst der Code 10 Zeilen, am Ende passen möglicherweise nicht einmal 500 hinein.
Ein wenig Theorie. Es ist unmöglich, sich hinzusetzen und, ohne ein Wort über Programmierung zu wissen, selbst Hello World zu schreiben. Daher sehen Sie in jeder Projektphase, welche theoretischen Grundlagen Sie erlernen müssen und vor allem, wo Sie diese finden können. Die Grundlagen sind ebenfalls auf Hyperskill im Abschnitt „Wissenskarte“ (Knowledge Map) zu finden. Wenn die Schüler in der ersten Phase des Projekts keine Daten aus einer Datei lesen müssen, werden sie das später selbst lernen, zur allgemeinen Weiterbildung oder weil es in der nächsten Phase erforderlich sein wird.
Wissenskarte. Hier sehen Sie, welche Themen Sie bereits gelernt haben und wie sie miteinander verbunden sind. Öffnen Sie ein beliebiges ansprechendes Thema. Sie können es überfliegen, aber wir empfehlen, auch kleine Aufgaben zu lösen, um sicherzustellen, dass die Informationen im Kopf bleiben. Zunächst wird Ihnen die Plattform Tests anbieten, gefolgt von ein paar Programmieraufgaben. Wenn der Code kompiliert und die Tests besteht, vergleichen Sie ihn mit dem Referenzlösungsbeispiel; manchmal hilft dies, einen optimierteren Umsetzungsweg zu finden. Oder um sicherzustellen, dass Ihre Lösung bereits großartig ist.
Nichts Überflüssiges. Wir erwarten sowohl ‚grüne‘ Benutzer als auch erfahrene Entwickler. Wenn Sie bereits Programme geschrieben haben, ist das kein Problem; wir werden Ihnen nicht noch einmal aufgeben, 2+2 zu addieren oder eine Zeile umzudrehen. Um sofort auf dem richtigen Level zu landen, geben Sie bei der Registrierung an, womit Sie bereits vertraut sind, und wählen Sie ein herausfordernderes Projekt. Scheuen Sie sich nicht, sich selbst zu überschätzen: Wenn nötig, können Sie immer zu einem vergessen Thema in der Wissenskarte zurückkehren.
Werkzeuge. Es ist großartig, kleine Code-Schnipsel in ein spezielles Fenster auf der Website zu schreiben, aber richtiges Programmieren beginnt mit der Arbeit in einer Entwicklungsumgebung (Iintegrierte OS-AngriffenEntwicklung EErfahrene Programmierer wissen nicht nur, wie man Code schreibt, sondern auch, wie man Benutzeroberflächen gestaltet, verschiedene Dateien in einem Projekt zusammenführt und zusätzliche Entwicklungstools verwendet. Ein Teil dieser Prozesse wird von der IDE übernommen. Warum nicht auch diese Fähigkeiten erlernen, während Sie Programmierung meistern? Hier kommt JetBrains ins Spiel mit einer speziellen Version von IntelliJ IDEA Community Educational, die das vorinstallierte Plugin EduTools umfasst. In dieser IDE können Sie Unterrichtskurse absolvieren, gelöste Aufgaben überprüfen und sich Hinweise zum Projekt ansehen, falls Sie etwas vergessen haben. Keine Sorge, wenn Sie das Wort „Plugin“ oder „IDE“ zum ersten Mal hören: Wir erklären Ihnen, was das ist und wie Sie es mit minimalen Schwierigkeiten auf Ihrem Computer oder Laptop installieren können. Beschäftigen Sie sich mit der Theorie und wechseln Sie dann zur IDE, um die nächste Phase Ihres Projekts direkt dort abzuschließen.
Fristen. Gibt es nicht! Wer sind wir, um Ihnen zu sagen, in welchem Tempo Sie Ihr Programm schreiben sollen? Wenn es Ihnen Freude bereitet, Code zu schreiben, und Sie es bis zum Ende fertigstellen möchten, schreiben Sie es heute oder morgen zu Ende. Entwickeln Sie nach Ihrem eigenen Ermessen.
Fehler. Alle machen Fehler, also lassen Sie auch einen Schritt im Projekt durchfallen, und dieser wird dann keine automatischen Tests bestehen. Dabei müssen Sie sich selbst darum kümmern, was schiefgelaufen ist. Wir könnten Ihnen sagen, wo der Fehler liegt, aber würde das Sie wirklich dazu bringen, den Code sorgfältig zu schreiben? Lesen Sie die Hinweise von IDEA oder das theoretische Thema über Bugs, und wenn das Programm schließlich funktioniert, wird der Dopaminrausch wahrscheinlich nicht lange auf sich warten lassen.
Eindrucksvolles Ergebnis. Also, Sie haben Ihr erstes Projekt abgeschlossen. Was nun? Genießen Sie die Früchte Ihrer Arbeit! Spielen Sie mit Freunden eine Runde Tic Tac Toe und prahlen Sie mit Ihren Erfolgen. Laden Sie das Projekt auf GitHub hoch, um es einem zukünftigen Arbeitgeber zu zeigen, schreiben Sie selbst die Beschreibung und geben Sie die Kenntnisse an, die Sie angewendet haben. Mit 4-5 anspruchsvollen Projekten haben Sie ein respektables Portfolio als Anfänger-Entwickler.
Wachstumsmöglichkeiten. Angenommen, Sie sehen sich Hyperskill an und vermissen ein wichtiges Thema oder ein nützliches Projekt. Lassen Sie es uns wissen! Wenn Ihr Hintergrund breiter und reicher ist als die Wissenskarte, schreiben Sie uns über das Formular. . Unser Team wird mit Ihnen eigene Tipps und Tricks teilen, sodass wir Ihnen gerne helfen werden, Ihr Wissen in nützliche Inhalte zu verwandeln, die für Nutzer unterschiedlichen Alters und Niveaus verständlich sind. Vielleicht zahlen wir sogar dafür, aber das ist noch ungewiss.
Willkommen: Kommen Sie vorbei, schauen Sie sich um, probieren Sie aus, machen Sie Vorschläge, loben und kritisieren Sie. Auch wir lernen, Ihnen das Lernen beizubringen.
Quelle: habr.com
