[JAVA] 8 Auswahlmöglichkeiten meines Programmierstils

Unerwartet begann ich, IT zu meinem Geschäft zu machen. Ich mache jetzt PM für IT-Produkte, aber zuerst musste ich alles nachholen, obwohl ich "unerfahren" war.

Ich denke, dass der erste Schritt für "Literatur / Unerfahrene", um die Technologie zu verstehen und zu erwerben, darin besteht, sie einem Entwicklungsprojekt zuzuweisen und Feedback zu erhalten. In meinem Fall hatte ich nicht viele Leute / Informationen, auf die ich mich verlassen konnte, also habe ich nach Versuch und Irrtum das Programmieren gelernt und bin immer noch hier. Ich hoffe, dieser Artikel wird Ihnen helfen, wenn Sie auf ein so ziemlich egoistisches Programmierlernen zurückblicken.

Übrigens benutze ich oft Java für die Arbeit und Kotlin und JavaScript für den privaten Gebrauch. Im Folgenden wird, sofern nicht anders angegeben, Java als impliziert angesehen.

Am Ende des Artikels habe ich die Referenzen der Bücher und Websites zusammengefasst, die zum Lernen verwendet werden. Schauen Sie also auch dort nach.

Aus der Geschichte lernen

Ich habe etwas gemacht, Unterrichtsmaterialien verwendet und Referenzen verwendet, so viel ich auflisten konnte, aber ich habe acht davon aufgelistet, von denen ich glaube, dass sie beim Lernen besonders effektiv waren.

  1. Entscheiden Sie sich und erstellen Sie eine einfache Webanwendung
  2. Google Tech Dev Guide
  3. Spektakuläre "Hobbyentwicklung" und abgeleitete Projekte
  4. Lesen Sie den Quellcode des Entwicklungspartners
  5. Mathematik
  6. C Sprache
  7. Graben Sie die Standard-API der Programmiersprache
  8. Erstellen Sie eine AWS-Umgebung

Zuerst beschäftige ich mich auch separat mit Progate usw., und das Thema ist, wie man von dort aus aufsteigt.

1. Entscheiden Sie sich und erstellen Sie eine einfache Webanwendung

Sehr früheste Lernmethode. Im Schritt "Ich habe die Grammatik in der Programmierschule und die Online-Unterrichtsmaterialien verstanden, aber was soll ich als nächstes tun?" Hält ich es für sehr gut, zu entscheiden, was Sie machen und entwickeln möchten. Sie können alles machen, aber das Wesentliche von 1. ist, "aus den Ergebnissen zurückzurechnen und die notwendigen Konzepte und Logik zu verstehen".

Zum Beispiel wird die Entwicklung von LINE Bot dringend empfohlen, wenn Sie etwas auf dem sehr frühen "Anfänger" -Niveau machen möchten. Dies ist einfach "versuchen Sie, ein Skript zu erstellen, das Eingaben von LINE empfängt und verarbeitet."

Es gibt drei Hauptgründe, es zu empfehlen.

Ich frage mich, ob der dritte besonders wichtig ist. Es ist ziemlich einfach zu machen, aber es ist leicht, ein Gefühl der Leistung zu bekommen. Sie können die Kombination aus Google Apps Script (GAS) und LINE Bot auch nach einer Weile genießen. Wenn Sie im Internet suchen, finden Sie verschiedene Implementierungsbeispiele. Wenn Sie sich eine Tabelle als einfache Datenbank vorstellen und sie wie "Eingabe von LINE empfangen und Daten zurückgeben" konfigurieren, können Sie auch eine Grundlage für "UI --logic --DB" erstellen und viel lernen.

  1. Google Tech Dev Guide Der Google Tech Dev Guide gibt es schon eine Weile.

Meiner Meinung nach ist Google Tech Dev Guide eine von Google kuratierte Website mit thematischem Programmiermaterial. Anfänger können leicht daran arbeiten, da es nach Zweck und Niveau klassifiziert ist.

Ich denke, der Schwierigkeitsgrad dieses Lehrmaterials ist genau richtig, wenn Sie es nach dem Löschen von 1 versuchen. Obwohl der Inhalt solide genug ist, um so zu wirken, gibt es Unterrichtsmaterialien, an denen selbst Anfänger mit einer bestimmten Menge Kopf arbeiten können. Nachdem ich alles getan hatte, konnte ich selbst einen kleinen Algorithmus erstellen.

"1. Entscheiden und erstellen Sie eine einfache Webanwendung" hat "Spaß daran, etwas zu vervollständigen", hat aber den Nachteil, dass Sie überlegen müssen, was Sie häufig machen sollen. Wenn der Kurs wie in 2. entschieden wird, wird es einfacher sein, vom Ende an fortzufahren, daher denke ich, dass es einen Aspekt gibt, der es einfacher macht, sich auf das Lernen zu konzentrieren.

3. Spektakuläre "Hobbyentwicklung" und abgeleitete Projekte

Ein spektakuläres "Hobby-Entwicklungs" -Projekt. Das war wirklich großartig und ich habe so etwas wie "ein SPA machen, das Sie normalerweise benutzen würden" gemacht.

Ich mache es seit weniger als einem Jahr, hauptsächlich samstags und sonntags ... Das vordere und hintere Ende waren weitgehend getrennt und die beiden Projekte waren gleichzeitig im Gange. Da ich das Projekt auf der Vorderseite und das Projekt auf der Rückseite parallel fortgesetzt habe, habe ich das Gefühl, dass sich die Codemenge verdreifacht hat. Die Motivation zu dieser Zeit war, konsequent von vorne über die Logik bis zur DB zu entwerfen und freizugeben (lacht), und ich habe es implementiert und den Test konsequent abgeschlossen.

Ich habe dieses Projekt oft durcheinander gebracht, deshalb bin ich froh, dass ich es getan habe. Um Ihnen einige gute Punkte zu geben,

――Ich habe es ziemlich ernst geschrieben, daher war die Codebasis so ausgefeilt, dass sie an anderer Stelle wiederverwendet werden konnte. ――E2e hat das geschaffen, was Sie sich sicherlich vorgestellt haben ――Ich habe meine eigene Bereitstellungsplattform und Server- / Netzwerkkonfiguration erstellt und das System buchstäblich "gestartet". ――Ich konnte einen Teil des hier geschriebenen Quellcodes extrahieren und daraus eine kleine Bibliothek machen ――Ein Erfolgserlebnis, das etwas geschaffen hat, das sich gut anfühlt ――Sie können sich die Vorder- und Rückseite von Diensten in der Welt und die Struktur von oben nach unten vorstellen.

etc. Es scheint ein bisschen mehr zu geben.

Dieses Projekt hat viel Code produziert, also habe ich einen Teil davon ausgeschnitten und ihn als meine Lieblingsbibliothek gepflegt. Es ist denkwürdig, weil die durch eine solche Ableitung geschaffenen Quellen auch als Vermögenswerte verbleiben.

4. Lesen Sie den Quellcode des Entwicklungspartners

Mein Unternehmen hat (genau genommen) keine Ingenieurrolle, daher frage ich einen Partner, der einen IT-Job hat. Der gesamte im Unternehmen ausgeführte Quellcode wird im internen Versionskontrollsystem abgelegt, sodass jeder ihn jederzeit lesen kann. Für eine Weile habe ich aus dem Lesen der Quellen verschiedener Projekte gelernt, ohne es satt zu haben, und ich habe sie hier aufgelistet.

Diese Lernmethode kann eine etwas knifflige Aufgabe sein. Der Quellcode der Leute ist völlig unklar, wenn man ihn nur liest. Ich habe es nicht wirklich verstanden ... Es gibt einige Punkte, die Sie beachten sollten, wenn Sie die Quellen lesen, die andere im Sitzen gesammelt haben. Deshalb werde ich sie auflisten.

Dinge, die Sie beachten sollten 1 "Suchen Sie gründlich nach unbekannten Klassen".

Es gibt viele Klassen in der Standardbibliothek und in abhängigen Bibliotheken, von denen Sie noch nichts gehört haben. Ich habe den Quellcode von oben gelesen und nach der Klasse gesucht, die ich mit "Java 〇〇" nicht verstanden habe (wobei 〇〇 der Klassenname ist). Es ist eine gute Idee, mit der offiziellen Dokumentation hier fortzufahren. Die offizielle Dokumentation wird selten ausgelassen und kann auf den ersten Blick schwer zu verstehen sein, bietet aber genau die richtige Menge an Wissen. Wenn Sie in Zukunft etwas anderes starten, wird die "offizielle Fähigkeit zum Entschlüsseln von Dokumenten" Ihre eigene Stärke sein. Ich habe die ganze Zeit Javadoc gelesen ...

Dinge, auf die Sie achten sollten 2 "Jagen Sie weiter der aufgerufenen Klasse / Methode / Eigenschaft nach"

Dies war auch durcheinander ... Ich kann den Kontext, in dem der Code überhaupt geschrieben wurde, nicht verstehen, selbst wenn ich die Quelle einer Person lese. Der gestapelte Kontext der Quelle ist aus der Quelle allein nicht sehr klar. "Wer bist du (Klassen, Methoden, Eigenschaften, die du nicht kennst) ..." Es wird besser. Zu dieser Zeit hatte ich Qualen, weil ich "zu eingepackt war und nicht weiß, was es war" ... Derzeit halte ich es für eine gute Idee, der aufgerufenen Klasse mehrmals zu folgen und zu dem Punkt zurückzukehren, an dem eine konkrete Implementierung herauskommt. Der Eindruck ist, dass die "unbekannte Struktur" etwa 4 bis 5 Mal aufgerufen und implementiert / erweitert wurde.

Aber 2 kennt immer noch nicht die beste Praxis, ich kämpfe immer noch.

Dinge, die Sie beachten sollten 3 "Verstehen Sie, dass alles ein" Implementierungsbeispiel "ist."

Je nach Projekt ist der Unterschied zwischen cooler Logik / Struktur und nicht so groß.

Als Anfänger war ich oft verwirrt, weil ich mich nicht entscheiden konnte, welche Art von Logik / Struktur gut war. Oft möchten Sie etwas Ähnliches tun, aber die Logik ist an einem Ort und an einem anderen unterschiedlich.

Meiner persönlichen Meinung nach gibt es, sofern es sich nicht um ein bekanntes Framework oder eine Bibliotheksimplementierung handelt, nur wenige Projekte, die dem "Super Royal Road" folgen, und in diesem Sinne "sind alle Quellen Implementierungsbeispiele". Ich werde es verstehen. Es wird gesagt, dass nicht alle Quellen, die in der Produktion laufen, entlang der königlichen Straße organisiert sind (lacht)

Und das stimmt. Nicht alle von ihnen sind so cool (mit verschiedenen Einschränkungen).

5. Mathematik

Es war das Studium der Mathematik, das mir im Vergleich zu anderen Lernmethoden die wertvollsten Informationen lieferte. Es war eine Methode mit sehr hoher Lerneffizienz, angefangen mit etwas wie "Ich bin gekommen, um eine kleine Web-App zu machen, während ich sie recherchiere." Unter den acht aufgeführten Lernmethoden war der Lerneffekt besonders hoch.

Für diejenigen, die das Informationssystem absolviert haben, ist es natürlich wichtig, dass Mathematik wichtig ist, daher ist es nicht fraglich, aber das ist richtig, der (allgemeine) Computer selbst basiert auf der Idee der diskreten Mathematik. Es wurde getan. Deshalb denke ich, dass Mathematik für die Arbeit mit Computern unverzichtbar ist.

Was ich getan habe, habe ich einige Lehrbücher und Materialien im Internet gemacht, die informationsbezogene Studenten für Studenten im Grundstudium machen, hauptsächlich Vorlesungen im Klassenzimmer. Ich habe auch hier verschiedene Dinge getan, aber um ein paar Beispiele zu nennen

Welchen Bereich des Lehrplans studieren Sie? Wird unter Bezugnahme auf den Fragenbereich in der Prüfung zum Ingenieur für angewandte Informationstechnologie ausgewählt.

Zu dieser Zeit, nachdem ich nach Hause gekommen war, ging ich mehrere Monate lang jeden Tag mehrere Stunden nach Hause, um das Lehrbuch zu öffnen und mathematische Probleme zu lösen (lacht). Schon als Student habe ich lineare Algebra und einfache Differentialintegration verwendet, sodass ich nicht das Gefühl hatte, sehr gut in Mathematik zu sein, und ich hatte großes Glück. Ich fühlte das Bedürfnis und studierte, aber der Vortrag selbst war rein interessant. Es war ein Bereich, den ich vorher noch nicht angesprochen hatte, daher war es sehr interessant, den einzigartigen Geruch diskreter Mathematik zu spüren.

Ich bin neugierig auf das Prinzip, mit irgendetwas umzugehen, und ich möchte weiterhin "Warum ist das so?" Jagen, auch beim Programmieren. Ich habe hier (endlich) gelernt, dass Mathematik ein sehr wichtiges Werkzeug zur Selbstlösung ist. Warum ist das so? Beim Programmieren war ich jeden Tag aufgeregt, als ich den Text schrieb. Ich könnte aus dem Hauptteil verstehen, dass die in der Mathematik behandelte Struktur eine solche Struktur wäre, wenn ich versuchen würde, sie in einer Klasse auszudrücken.

Auf der anderen Seite ist es voller "Lernen in der Schule" -Gefühl, und wenn Sie sich nicht hinsetzen, besteht eine hohe Wahrscheinlichkeit, dass es unterwegs keinen Spaß macht ... Nicht für jedermann zu empfehlen.

6. C Sprache

Es ist eine königliche Straße in der königlichen Straße, daher ist es seltsam, "C-Sprache ist super gut!" Wie oft gesagt, hat die C-Sprache viele andere Sprachen beeinflusst, und ich frage mich, ob es in Ordnung ist, dies einmal zu tun.

Wenn ich programmiere, um etwas zu erstellen und zu verschieben, denke ich, dass es oft einfacher ist, andere Sprachen und Werkzeuge zu verwenden. Das Erlernen der C-Sprache bedeutet also, "richtig zu definieren und es richtig funktionieren zu lassen". Ich habe zu diesem Zweck gelernt. Der Zweck der C-Sprache war es, "das Prinzip zu kennen", indem sie zusammen mit der Mathematik von 5 studierte. Wenn ich mir das Beispiel der Lernseite anschaue, berühre ich es daher nur bis zur Tiefe des Schreibens, kompiliere und verschiebe es.

Obwohl ich es nicht sehr tief verfolgen konnte, habe ich versucht, den Algorithmus und die Datenstruktur parallel zur C-Sprache zu implementieren.

Der Bereich um den Zeiger, der oft als "leicht zu stolpern" bezeichnet wird, leckte nicht und ich bemerkte auch "Ist das ein tiefer Zo ?!" Auf dem Weg. Nur um den Zeiger herum wurde in einem separaten Buch studiert, und O'Reilly war gut.

Ich beziehe mich immer noch häufig auf dieses Buch. Es war sehr hilfreich, indem es die "Vorderseite", die von Menschen gesehen werden kann, und die "Rückseite" von physischen Bewegungen in mäßig abstrahierter Weise erklärte. Ich mag besonders den Speicherverwaltungs-Mist.

7. Graben Sie die Standard-API der Programmiersprache

Ich denke, es ist eine gute Idee, jedes Mal auf die Standard-API einer Programmiersprache zu verweisen. In meinem Fall verwende ich Java für die Arbeit und berühre Kotlin häufig für den privaten Gebrauch, daher lese ich häufig die JDK-Quelle.

Wenn Sie sich erst einmal daran gewöhnt haben, denken Sie vielleicht, dass es selbstverständlich ist, die Standard-API oder die Quelle der Bibliothek zu lesen, aber als persönlicher Eindruck ist "die Hauptfamilie zu sein" eine hohe Hürde.

Ich denke, es ist gut, dies in dem Sinne zu tun, dass Sie direkt sehen können, was die Oberfamilie tut. Im Gegenteil, was Sie anders als dies bekommen können, kann klein sein. Es kann ein Nebeneffekt sein, dass Sie bei Verwendung einiger Standard-API-Klassen oder -Methoden überzeugender sind und Missbrauch vermeiden. Die Verwendung kann durch Lesen des Dokuments gelöst werden.

Übrigens steht 7. in der Nähe von "4. Lesen Sie den Quellcode des Entwicklungspartners". Alles, was Sie tun müssen, ist, eine Klasse oder Methode zu finden, die Sie interessiert oder die Sie besser verstehen möchten, und "Was ist das?" Der Unterschied zu "4. Lesen des Quellcodes des Entwicklungspartners" besteht darin, dass die Standard-API abstrakter und die Klassenstruktur schwer ist, sodass es schwierig ist, sie zu befolgen.

8. Erstellen Sie eine AWS-Umgebung

Nicht nur die App, sondern auch der Punkt "Versuchen wir, die App-Plattform selbst zu steuern". Unabhängig davon, ob es sich um Azure oder GCP anstelle von AWS handelt, können Sie Ihr bevorzugtes IaaS auswählen. Es muss nicht IaaS sein, und es wäre schön, wenn wir eine Umgebung vorbereiten könnten, in der "Netzwerke und Server" einfach gestartet werden könnten.

Vor langer Zeit gab es eine Zeit, in der ich sowohl als Infrastruktur- als auch als App-Team arbeitete, und ich habe so etwas wie einen Server zusammengestellt und in die Mitte gestellt, also habe ich als Ergänzung zu meiner Arbeit daran gearbeitet. Ich habe auch die Grundlage für die Bereitstellung der großartigen Hobby-App geschaffen und aufgebaut, die in "3. Hervorragende" Hobby-Entwicklung "und abgeleitete Projekte" erstellt wurde, bis sie betrieben werden kann. Konfigurieren Sie ein Netzwerk, stellen Sie einen Server in das Netzwerk, stellen Sie es in die Mitte und stellen Sie die App bereit.

AWS hat viele Dokumentationen und Tutorials (obwohl ich es nicht sage), daher denke ich, dass Sie viele Dinge tun können, indem Sie die Dokumentation lesen und zusammenstellen.

Da ich AWS für die Arbeit eingegeben habe, kannte ich das Tutorial nicht und nachdem ich mein Konto eröffnet hatte, war ich überrascht, dass "Gibt es ein so leistungsfähiges Tutorial ...". Das ist wirklich erstaunlich, nicht wahr? Wenn ich es lese, möchte ich es verschieben. Ich habe einige der Themen ausprobiert, die im Tutorial erscheinen, und es war leicht zu verstehen, was ich erklären und was ich tun wollte, und es war einfach und hat Spaß gemacht (lacht).

Unter dem Gesichtspunkt der Anwendungsentwicklung ist es am besten, Ihre eigene VPC und Ihr eigenes Subnetz vorzubereiten, während Sie sich Tutorials usw. ansehen, einen Server im Netzwerk einrichten und eine Reihe von Schritten ausführen, um die Betriebsinfrastruktur zusammenzustellen.

Ich bin immer noch in der Diskussion über Architektur, während PM, und was ich nicht verstehe, ist sehr nützlich, um eine kleine Demo mit meinem Konto zu starten und zu studieren.

Schließlich

Natürlich ist die Lernmethode wichtig und ich denke, dass verschiedene Versuche und Irrtümer durchgeführt werden sollten, aber wenn Sie nicht "neugierig" sind, werden Sie sich nicht leicht daran gewöhnen. Denken Sie beim Schreiben darüber nach, warum so viel wie oder besser als Wie? Ich denke, das ist ein großes Problem. Selbst wenn Sie sich die Menschen um Sie herum ansehen, sollten diejenigen, die normalerweise ein Programm machen oder studieren, nicht das Gefühl haben, dass ihre Neugier mehr ist als ihre Verpflichtung oder Notwendigkeit. Und obwohl ich zufällig die Gelegenheit hatte und es in meiner Arbeit berühren musste, hätte ich nie gedacht, dass ich so in sie vertieft sein würde.

Alles ist in Ordnung, daher ist es möglicherweise eine gute Idee, sich zunächst mit den Techniken zu befassen, an denen Sie interessiert sind.

Referenz

Diejenigen, die im Text erscheinen und diejenigen, die nicht erscheinen, sind hilfreich.

  1. Entscheiden Sie sich und erstellen Sie eine einfache Webanwendung

2.Google Tech Dev Guide

  1. Großartige "Hobbyentwicklung" und abgeleitete Projekte
  1. Mathematik
  1. C Sprache
  1. Graben Sie die Standard-API der Programmiersprache
  1. Erstellen Sie eine AWS-Umgebung

Recommended Posts

8 Auswahlmöglichkeiten meines Programmierstils
Programmiertag 3
Mein Lernbericht
Die Geschichte des Lernens von Java in der ersten Programmierung
Mein Android-Lernreferenzmaterial
Java-Lerntag 4