Aufzeichnung 1
Ich habe beschlossen aufzunehmen. Hauptsächlich weil ich gerne aufnehme. Obwohl nicht. Eigentlich möchte ich eine Geschichte erzählen. Die Geschichte, dass das Programmieren interessant ist. Die Tatsache, dass Programmieren nicht nur ein Beruf sein kann, sondern auch ein großes Hobby wie Fotografieren, Schach, Malen oder Gitarrespielen. Die Tatsache, dass es nicht notwendig ist, ein angeborenes Talent, eine Supermacht oder jahrelange Sonderausbildung zu haben, um kleine, aber große Siege in einem Unternehmen zu erzielen.
Dies ist ein Tagebuch einer Person, die zum Spaß das Programmieren lernt. Nicht für einen Beruf, nicht für den Lebensunterhalt. Ich lebe nicht mit einem Drucktastentelefon in Nigeria und bin nicht in einer verzweifelten Situation. In meiner Freizeit studiere und programmiere ich nur zur Unterhaltung aus beruflichen und familiären Angelegenheiten. In Echtzeit anzeigen. Veröffentlicht in Chargen von 5 Einträgen.
Aus irgendeinem Grund schützt uns die etablierte Mentalität (meine und andere) vor kühnen Experimenten mit etwas Neuem. "Ich weiß nicht wie" klingt wie ein verdammtes Todesurteil. Jeden Tag sehe ich das bei der Arbeit, wenn Kollegen vor einer ungewohnten Aufgabe stehen. Ich kann nicht. Das Ende des Programms.
Mein siebenjähriger Sohn hat Angst, ungewohnte Aktivitäten auszuprobieren. Weil er nicht weiß wie. Aber wir müssen verstehen, dass er in seinen Jahren nicht weiß, wie viel.
Manchmal sage ich ihm:
„Kumpel, wenn die Leute nur tun würden, was sie können, würden wir immer noch in Höhlen leben, und speziell würden Sie den ganzen Tag damit verbringen, in Hosen zu muhen, zu kriechen und zu kacken, anstatt Angry Birds zu spielen. Obwohl nein, du würdest ohne Hose kriechen, weil niemand wissen würde, wie man näht .
“Warum bin ich Um die Tatsache, dass ich nicht programmieren kann. Aber ich werde lernen. Nicht weil ich Entwickler werden will - ich habe bereits einen Beruf. Aber weil ich kann. Obwohl ich eigentlich drei Gründe habe.
Das erste ist, dein Gehirn zu dehnen. Ich bin überzeugt, dass das Leben nicht um eine Aktivität herum aufgebaut werden kann. Es ist notwendig, Ihren Geist mit verschiedenen Aufgaben zu beschäftigen. Und je vielfältiger sie sind, desto besser für den Geist.
Der zweite Grund ist praktisch. Ich werde ein Spiel schreiben (kitschig, ja), mit dem wir spielen und Spaß haben werden. Wir haben bereits eine Idee - in der letzten Iteration haben wir versucht, einen Stock zu machen, aber die Mechanik hat sich als zu kompliziert herausgestellt.
Der dritte Grund ist pädagogisch. Ich werde versuchen, die Einstellung der Gesellschaft zur Programmierung zu ändern. Es ist allgemein anerkannt, dass Programmieren das Schicksal von Profis ist. Niemand programmiert als Hobby. Das Konzept der „Amateurprogrammierung“ (denken Sie an dieses Wort) existiert überhaupt nicht.
Ein Teil der Profis, die mich lesen, wird jetzt mit Kommentaren angreifen, dass ich ihren Beruf und ihre im Laufe der Jahre erworbenen Fähigkeiten abwerten werde. Beeil dich nicht. Glauben Sie mir vorerst nur, dass dies nicht der Fall ist, und wir werden später auf dieses Thema zurückkommen.
Kurz gesagt, ich habe beschlossen, C # zu lernen. Weil meine Idee einen Motor braucht und wie ich es verstehe, ist Unity das Beste. Und Einheit ist C #. Dies ist der erste.
Das zweite, was mir klar wurde, ist, dass es zu früh ist, mit Unity zu beginnen. Fast alle Lehrmaterialien stammen aus der Tatsache, dass der Leser bereits mit der Sprache vertraut ist. Und alles, was ich über C # weiß, ist, dass es richtig ist, "Sea Sharp" und nicht "Tse with a grid" zu sagen. Beginnen wir also mit der Sprache selbst.
Das dritte, was mir klar wurde, ist, dass das Training gründlich sein wird. Da Sharpe für mich eine neue Sprache ist, brauchen Sie etwas "für Dummies", aber es gibt keine.
Es gibt ein Lehrbuch „C # für Schulkinder“ von Martin Dreyer, aber es ist absolut unmöglich, es zu lesen. Die Vertrautheit mit der Programmierung beginnt zunächst mit dem Studium von Klassen und Objekten. Zu kompliziert und unverständlich. Zweitens gibt es in einem wesentlichen Absatz drei Seiten mit Beispielen aus der realen Welt. Zu viel. Ich bin nicht bereit, so viel Zeit mit der Geschichte zu verbringen, wie ein Mädchen auf einer einsamen Insel einen Roboter-Alien davon überzeugt, einen Elefanten dazu zu bringen, eine Kokosnuss zu pflücken.
Es gibt noch ein anderes Extrem. Tutorials von
mycsharp.ru und das „Komplette Handbuch zur Programmiersprache C # 8.0 und zur .NET Core 3-Plattform“ unter
metanit.com/sharp/tutorialEs gibt Codebeispiele, aus denen Sie etwas wiederverwenden können, aber die Beispiele sind zu abstrakt wie "Schreiben wir ein Programm, das die Objekte a, b und c in den Speicher legt, es ist so aufregend!". Aber das ist etwas besser als Elefanten und Kokosnüsse, zumal ich meine eigene Lehrmethode habe.
Im Allgemeinen entschied ich mich dafür und machte mich auf den Weg, um Visual Studio zu installieren.
Aufzeichnung 2
Alles verlief nach Plan. Am nächsten Tag fing ich den schwarzen Bildschirm ein. Ich habe nicht verstanden, was es war, aber es sieht so aus, als ob der Grafiktreiber vor Windows aktualisiert wurde und sich als nicht kompatibel mit der alten Version herausstellte.
Einmal war ich in solchen Dingen ordentlich. Bei Problemen habe ich einfach die Betriebssystempartition aus einem sorgfältig vorbereiteten Image wiederhergestellt, aber es ist lange her. Windows ist stabiler geworden, ich bin nachlässiger geworden. Und so.
Ich habe eine Woche lang versucht, alles zu reparieren. Ich habe alle Rezepte ausprobiert. Ich fand einen Weg, um die Befehlszeile zu starten, bekam das alte Far, übertrug die Dateien, beim dritten Versuch nahm ich eine geeignete Assembly (ich benutze benutzerdefiniertes Windows) mit dem bereits installierten problematischen Update.
Hier muss ich ein paar Worte zu meinem Hintergrund sagen. Ich weiß nicht, wie man programmiert, aber im Allgemeinen betrachte ich mich als Computer-Person genug. Mit ungefähr 8 Jahren erschien der erste PC in meinem Leben bei uns. Packard Bell 486. Cool zu der Zeit. Es hatte zwei Programme - Lexikon und Info-Buchhalter.

Ich habe Lexikon gespielt.
Aus den Zeichen I, / und \ habe ich eine Rennstrecke gezeichnet, und der Cursor war ein Auto. Das sind die Spielzeuge, die auf den Boden genagelt sind. Kein Internet, keine Freunde mit Computern (zuerst). Ich hatte Spaß, wie ich konnte.
Zusätzlich zu zwei Programmen wurde der Computer von einem vollwertigen MS-DOS auf einem Stapel Disketten begleitet, und ich habe oft mit verschiedenen Teams experimentiert. Ich bin zu dem mit dem Namen QBASIC gekommen.
Es gab ein kleines Handbuch in Basic, und ich verstand etwas. Er lernte ein oder zwei Befehle und konnte Programme schreiben, die alle Buchstaben auf dem Bildschirm anzeigten. Es war großartig.
Darüber hinaus gab es Informatikunterricht in der High School. Turbo Pascal. Wir haben gelernt, echten Code zu schreiben. Natürlich in Notizbüchern. Aber ich hatte einen Computer (schon etwas Pentium) und konnte üben.
Also habe ich mich mit den grundlegendsten Dingen getroffen. If-then-else konstruiert und schleift. Der Höhepunkt meiner Fähigkeiten war das Roulette-Programm. Roulette war ein Spiel. Sie wählen eine Zahl von 0 bis 10 und machen eine Wette. Erraten - ein Bonus, kein Verlust einer Wette. Und so, bis das Geld ausgeht. Ich war sehr stolz
Trotzdem war ich ein kompletter Humanist und begann mein Leben nicht mit der Informatik zu verbinden. Nach den Schulexperimenten habe ich ungefähr 19 Jahre lang nicht an Programmierung gedacht.
Oh! Die Installation von Visual Studio scheint abgeschlossen zu sein. Was für eine hübsche. Alles schwarz. Lassen Sie uns herausfinden, was was ist.
Aufzeichnung 3
Eigentlich ist dies nicht mein erster Programmierversuch. Vor ungefähr einem Jahr kam mir schon eine Laune und ich versuchte es mit VBA. Er beherrschte die Syntax mehrerer Teams und schrieb das gleiche Roulette wie damals in der Schule. Nur besser. Jetzt hatte ich eine grafische Oberfläche mit Feldern und Schaltflächen sowie Funktionen zum Speichern und Laden des Spiels (Daten wurden in Excel-Tabellen gespeichert).
Trotzdem ließ ich den Fall schnell fallen. Zum größten Teil aufgrund der Unfähigkeit, Bilder normal zu verwenden, und möglicherweise auch aufgrund von Faulheit. Ich erinnere mich nicht genau. In jedem Fall werden wir meine VBA-Erfahrung als eine Art Aufwärmphase betrachten. Jetzt ist es Zeit für einen echten Hardcore.
Ich verbrachte 4-5 Nächte in Sharpe. Ich habe zwei Kapitel aus dem Lehrbuch gelesen. Was kann ich sagen Ich bin überhaupt nicht von dem akademischen Ansatz inspiriert, der darauf basiert, bedeutungslose Programme zu schreiben, die abstraktes Computing betreiben. Ich bin mir nicht sicher, ob ich stolz auf die Anwendung sein kann, die den Bereich des Dreiecks berücksichtigt.
Also habe ich mir meinen eigenen Lehrplan ausgedacht. Mit Blackjack und ... na ja, fast. Ich habe einige der wichtigsten Befehle gelernt: Console.WriteLine zum Anzeigen von Beschriftungen, Console.Readline für Tastatureingaben, arithmetische Operationen, ein if-else-bedingtes Konstrukt, while-Schleife und natürlich Random für Zufallszahlen.
Sie haben es wahrscheinlich schon erraten. Wieder schrieb ich Konsolenroulette :)

Empfindungen sind eine Freude. Sie arbeitet! Sie können darin verlieren oder gewinnen! Und dies ist ein echtes Programm - es enthält 68 Zeilen unverständlichen Codes, darunter bis zu 5 aufgerufene Methoden.
War es schwierig Ja Ich las Handbücher, machte Fehler und brach alles, verbrachte Stunden damit, nach Fehlern zu suchen, las Handbücher erneut, wurde im Code verwirrt und schrieb alles mehrmals um, vereinfachte Konstruktionen in Schleifen und entfernte unnötige Variablen.
Aber das Ergebnis hat sich gelohnt. Ich bin voller Hoffnung und gehe weiter.
Aufzeichnung 4
Die erste Hürde. Ich bin zum Konzept der Klassen und Objekte gekommen. Das Konzept ist völlig unverständlich. Wie wäre die Idee selbst klar, aber wie und warum sollte sie angewendet werden? Klassen für Spieler, Casino und Roulette erstellen? Dann kommen Sie mit Objekten in ihnen? Und was werden sie tun? Zu lang. Es scheint für etwas unnatürlich und verwirrt nur das Programm.
Es kam in ein paar Tagen zu mir. Ich ging mit meinem Sohn auf den Spielplatz und betrachtete die Welt mit objektorientierten Augen.
class {string Name;}, class {string Name; int Age;} = new (); = new ();
...
Und dann habe ich alles verstanden. Mein Roulette-Programm ist zu dumm und primitiv. Unterricht wird dort einfach nicht benötigt. Es war eine gute Übung, prozedurale Programmierung zu lernen, aber nichts weiter.
Es war notwendig, eine neue Übung zu entwickeln, um die Klassen zu verstehen. Und ich habe es mir ausgedacht. Genau hier saß ich auf einer Bank und schrieb mir ein Puzzle am Telefon. Mach ein Mini-Rollenspiel. Es wird einen Helden mit seinen eigenen Parametern Stärke und Gesundheit geben. In jeder Runde geht er in eine neue Höhle und trifft dort einen Troll mit seinen eigenen Parametern. Sie werden kämpfen, indem sie einen Würfel werfen, wie in Never Interest. Und dort finden Sie Waffen und Rüstungen.
Die Hauptklassen fragten sich:
- Held (Stärke, Gesundheit, Geld)
- Gegenstand (Schaden, Rüstung, Haltbarkeit)
- Monster (Stärke, Gesundheit)
Es sollte interessant sein. Kann ich damit umgehen? Einfach. Lass uns gehen.
Aufzeichnung 5
Es hat nicht einfach geklappt. Ich skizzierte schnell Klassen mit Feldern. Ich fand aus dem Lehrbuch heraus, was ein Designer ist, und spülte die Designer von Rüstungen und Waffen aus. Ich habe die Benutzeroberfläche erstellt und herausgefunden, wie die Farbe des Textes geändert werden kann.
Jetzt werden auf meinem Bildschirm eine Begrüßung, Spielerstatistiken, Waffen und Rüstungen angezeigt. Es gibt ein Menü, über das Sie den nächsten Zug starten oder das Spiel beenden können.

Und selbst das war nicht einfach. Ich bin ständig auf Fehler gestoßen. Speziell beim Portieren von Code auf Methoden. Einige Abfälle existieren in keinem Kontext. Ein weiterer Müll ist aufgrund des Schutzniveaus nicht verfügbar ...
Ich habe wirklich eine Anleitung für Dummies zur Strukturierung des Codes verpasst. Wo soll die Methode zum Generieren des Artikels platziert werden? Artikel klassifizieren? Zum Klassenprogramm? Einfach im Code lassen? Sie müssen experimentieren, Fehler abfangen und korrigieren.
Zwei Tage getrennt wurde ich mit einem Zufallsgenerator gequält, der mir einen Schild und ein Schwert mit den gleichen Parametern gab. Ich erkannte, dass mir normale Lösungen noch nicht zur Verfügung stehen, und hielt zwischen zwei Generationen für eine Sekunde inne.
Dann endete die Euphorie und eine Betäubung begann. Ich habe es geschafft, zwei Gegenstände manuell zu generieren und sie Waffe1 und Rüstung1 zu nennen. Aber ich muss dies nach jedem Zug tun, sie im Inventar speichern, ändern ... Wie erstelle ich Objekte programmgesteuert? Wie können sie ihre Namen generieren und umso mehr die Parameter auswählen, die zum Ändern ihrer Parameter erforderlich sind?
VBA war einfacher. Das Internet ist voll von Skriptbeispielen für jede einzelne Aufgabe. Das richtige zu finden und wiederzuverwenden ist kein Problem. Sehr oft habe ich die Hälfte des geschriebenen Codes überhaupt nicht verstanden, aber es hat magisch funktioniert, und dann muss ich es herausfinden.
Das Lehrbuch hilft nicht. Sie sprechen bereits über Lambda-Ausdrücke und Multithreading, und Beispiele finden sich immer noch auf der Ebene „Finde die Summe aller geraden Zahlen in einer Anzahl von Zahlen“. Langeweile. Eine Suche im Internet gibt auch keine Antworten, weil ich die Frage irgendwie nicht so formuliere.
Ich vermute, dass Sie die Datenbank verbinden und dort Objekte schreiben müssen. Ich muss SQL lernen.