Als völlig unerfahrene Person in der Programmierung habe ich zusammengefasst, woran ich in den drei Monaten vor der Erstellung des Portfolios gearbeitet habe. Das Portfolio wurde in insgesamt 3 Monaten erstellt: Grundkenntnisse (1 Monat) und Portfolioerstellung (2 Monate). Ich hoffe, es ist hilfreich für diejenigen, die Ingenieure von unerfahrenen Leuten wie mir werden wollen.
【Überblick】 Dies ist eine Posting-App für Golfanfänger. Ich habe es als Werkzeug entwickelt, um die Probleme zu lösen, die Golfanfänger aus meiner Erfahrung als Student haben. 【URL】 https://golfour.herokuapp.com 【GitHub】 https://github.com/matao0214/golfour [Verwendete Sprache / Technologie] ・ Ruby 2.5.1 ・ Ruby on Rails 5.2.4 ・ HTML (schlank) ・ CSS (Sass) ・ Bootstrap4 ・ JavaScript ・ JQuery ・ PostgreSQL 12.2 ・ GoogleMapsAPI ・ Heroku ・ Git ・ GitHub
Zunächst lernte ich anhand der folgenden Bücher, um Grundkenntnisse einzugeben. [HTML & CSS für Leute, die das Web starten, JavaScript](https://www.amazon.co.jp/%E3%81%93%E3%82%8C%E3%81%8B%E3% 82% 89Web% E3% 82% 92% E3% 81% AF% E3% 81% 98% E3% 82% 81% E3% 82% 8B% E4% BA% BA% E3% 81% AEHTML-CSS% E3% 80% 81JavaScript% E3% 81% AE% E3% 81% 8D% E3% 81% BB% E3% 82% 93% E3% 81% AE% E3% 81% 8D% E3% 81% BB% E3% 82% 93% E3% 81% 9F% E3% 81% AB% E3% 81% 90% E3% 81% A1% E3% 81% BE% E3% 81% 93% E3% 81% A8 / dp / 4839959714) [Einführung in Ruby für diejenigen, die Profis werden möchten](https://www.amazon.co.jp/%E3%83%97%E3%83%AD%E3%82%92%E7%9B%AE%E6 % 8C% 87% E3% 81% 99% E4% BA% BA% E3% 81% AE% E3% 81% 9F% E3% 82% 81% E3% 81% AERuby% E5% 85% A5% E9% 96 % 80-% E8% A8% 80% E8% AA% 9E% E4% BB% 95% E6% A7% 98% E3% 81% 8B% E3% 82% 89% E3% 83% 86% E3% 82% B9% E3% 83% 88% E9% A7% 86% E5% 8B% 95% E9% 96% 8B% E7% 99% BA% E3% 83% BB% E3% 83% 87% E3% 83% 90% E3% 83% 83% E3% 82% B0% E6% 8A% 80% E6% B3% 95% E3% 81% BE% E3% 81% A7-Software-Design-plus% E3% 82% B7% E3% 83% AA% E3% 83% BC% E3% 82% BA / dp / 4774193976) [Ruby on Rails 5 - Schnellübungshandbuch, das vor Ort verwendet werden kann](https://www.amazon.co.jp/%E7%8F%BE%E5%A0%B4%E3%81%A7%E4%BD%BF % E3% 81% 88% E3% 82% 8B-Ruby-Rails-5% E9% 80% 9F% E7% BF% 92% E5% AE% 9F% E8% B7% B5% E3% 82% AC% E3 % 82% A4% E3% 83% 89-% E5% A4% A7% E5% A0% B4% E5% AF% A7% E5% AD% 90 / dp / 4839962227)
Es war ein harter Monat, aber ich habe mir die folgenden zwei Punkte zur Gewohnheit gemacht.
** 1. Googeln Sie weiter, bis keine unbekannten Wörter mehr vorhanden sind ** Als ich nach etwas suchte, das ich nicht verstand, erschien ein Wort, das ich nicht kannte, in der Erklärung, und ich suchte weiter danach und so weiter. Wenn Sie dies jedoch weiterhin tun, wird die Menge an Wissen sicherlich zunehmen und die Menge an Forschung wird abnehmen. Daher ist es wichtig, die Forschung fortzusetzen, ohne aufzugeben.
** 2. Der eingegebene Inhalt wird von Qiita ausgegeben ** Das eingegebene Wissen wurde in einem Qiita-Artikel ausgegeben, um das Verständnis zu verbessern. Wenn ich ein Buch las und dachte ** "Ich verstehe!" **, aber als ich versuchte, es auszugeben, konnte ich es nicht verbalisieren und in vielen Fällen verstand ich es nicht vollständig. Ich denke, dass die Ausgabe an Qiita sehr effektiv für die ** Bestätigung und Herstellung eines Verständnisniveaus ** ist, daher empfehle ich es.
Schreibe leicht verständliche Sätze! Es ist wichtig, es vorerst zu schreiben, ohne nachzudenken! Wenn Sie die Zahlen verwalten, werden Sie sich an das Schreiben gewöhnen. Ich denke, es ist besser, aktiv auszugeben und es sich zur Gewohnheit zu machen.
Nachdem ich das grundlegende Lernen abgeschlossen hatte, begann ich mit der Erstellung eines Portfolios. Das Portfolio wurde nach folgendem Verfahren erstellt. ** 1. Idee für Portfolio ** ** 2. Funktions- / DB-Design ** ** 3. Portfolio erstellen **
Das Portfolio ist ** Welche Art von Konzept und Hintergrund haben Sie das Portfolio erstellt? Es wurde mit Blick auf ** entworfen.
** Schreiben Sie die Probleme auf, die Sie oder jemand in Ihrer Nähe haben (haben) ** ** Ich dachte darüber nach, welche Art von Funktion / Mechanismus erforderlich wäre, um das Problem zu lösen ** und legte es in das Portfolio.
Insbesondere habe ich Ideen in der folgenden Reihenfolge entwickelt und in Form gebracht.
Als ich Student war, begann ich Golf zu spielen, als ich das Labor betrat. Und bis jetzt habe ich zwei unvergessliche Erfahrungen mit Golf gemacht.
- In der Firma, für die ich früher gearbeitet habe, haben zwei Senioren angefangen, Golf zu spielen. Beide verbesserten sich nicht leicht und wollten auf dem Weg aufhören, aber als Ergebnis des weiteren Übens und Ratgebens verbesserten sie sich allmählich und genießen immer noch Golf.
Aufgrund dieser Erfahrung hatte ich das Gefühl, dass Golfanfänger die folgenden ** Herausforderungen ** haben. ・ ** Für Anfänger ist es schwierig, ihre Fähigkeiten zu verbessern, und sie geben den Weg oft auf. ** ** ** ・ ** Es gibt eine bestimmte Anzahl von Menschen in den Zwanzigern, die anfangen möchten, Golf zu spielen, aber niemand ist ihnen nahe. ** ** ** ↓ ** Lösung des Problems: Wenn junge Menschen in der gleichen Situation (wollen Golf spielen / gerade erst angefangen haben Golf zu spielen) in unserer Nähe sind, können wir dann ein Umfeld schaffen, in dem es einfach ist, Golf zu spielen, und einen Mechanismus, der weniger wahrscheinlich frustriert ist? ** ** ** ↓ ** Serviceform: Ein Antrag auf Veröffentlichung und Weitergabe von Aufzeichnungen über Golfübungen **
Als die Idee des Portfolios festgelegt war, entwarf ich die Funktion und die Datenbank. Wir haben uns auf die Funktion konzentriert, Aufzeichnungen über Golfübungen zu veröffentlichen und zu teilen, und die Funktion entwickelt, um die Motivation zum Üben aufrechtzuerhalten.
** Funktionelles Design ** Neue Postfunktion Listenanzeigefunktion Detaillierte Anzeigefunktion Bearbeitungsfunktion Funktion löschen Anmeldefunktion Suchfunktion Wie Funktion Funktion zum Posten von Standortinformationen (mithilfe von GoogleMapAPI) Diagrammerstellungsfunktion aus gebuchten Daten
** DB Design ** ** Benutzertabelle **
Spaltenname | Datentyp | Zwang |
---|---|---|
nickname | string | NOT NULL,Innerhalb von 10 Zeichen |
string | NOT NULL,UNIQUE | |
password_digest | string | NOT NULL |
golf_reki | string | Innerhalb von 5 Zeichen |
goal | string | Innerhalb von 50 Zeichen |
** Trainingspfosten Tabelle **
Spaltenname | Datentyp | Zwang |
---|---|---|
training_place | string | NOT NULL,Innerhalb von 50 Zeichen |
training_task | string | NOT NULL,Innerhalb von 150 Zeichen |
training_impression | string | Innerhalb von 150 Zeichen |
user_id | integer | NOT NULL, FOREIGN KEY |
** TrainingContents-Tabelle **
Spaltenname | Datentyp | Zwang |
---|---|---|
training_post_id | integer | NOT NULL,Foreign_key |
training_time | integer | NOT NULL |
training_hits | integer | NOT NULL |
** Mag Tisch **
Spaltenname | Datentyp | Zwang |
---|---|---|
user_id | integer | NOT NULL, FOREIGN KEY |
training_post_id | integer | NOT NULL, FOREIGN KEY |
** Spots-Tabelle **
Spaltenname | Datentyp | Zwang |
---|---|---|
address | integer | NOT NULL,Innerhalb von 50 Zeichen |
latitude | float | NOT NULL |
longitude | float | NOT NULL |
training_post_id | integer | NOT NULL, FOREIGN KEY |
Funktions- / DB-Design beendet Ich habe endlich angefangen, Code zu schreiben. Das Verfahren zum Erstellen eines Portfolios ist wie folgt. ** 1. Implementierte CRUD-Funktion basierend auf den Büchern, die für das grundlegende Lernen verwendet werden 2. Implementieren Sie die Funktion, die Sie implementieren möchten, indem Sie auf die Artikel und offiziellen Dokumente von Qiita verweisen. 3. UI / UX-bewusstes Design **
Unmittelbar nach Abschluss des Grundlernens bin ich immer noch nicht an das Codieren gewöhnt. Selbst wenn ich denke ** "Lassen Sie uns diese Funktion implementieren!" ** ** ・ Wie implementiere ich? ・ Ich weiß nicht was ich nicht verstehe ** Weil es in einem solchen Zustand war, bezog ich mich auf das Buch mit der Bedeutung, mich an den Code zu gewöhnen.
Dadurch konnte ich das Grundwissen überprüfen und mich an die Struktur des gesamten Programms gewöhnen. Auch ** kann ich das selbst machen! Ich kann mit ** sicher sein Ich denke, es ist eine gute Idee, mit dem niedrigen Schwierigkeitsgrad zu beginnen, um die Motivation aufrechtzuerhalten.
Nach der Implementierung der CRUD-Funktion arbeitete ich an der Implementierung der Like-Funktion und der Verwendung der Google MAP-API.
Bei der Implementierung der Funktion habe ich sie unter Bezugnahme auf Qiita und das offizielle Dokument implementiert, während ich gegoogelt habe. Was ich bei meiner Recherche für wichtig hielt, war ** unbedingt die offizielle Dokumentation lesen **.
Wenn Sie die offizielle Dokumentation lesen, heißt es oft ** Es gibt solche Optionen! ** Zusätzlich zur Erläuterung der Funktion, die Sie implementieren möchten. Durch die Einbeziehung solcher Optionen waren die Funktionen häufig erfüllender als geplant.
Die Artikel von Qiita sind leicht verständlich und sehr einfach zu lesen und bequem. Selbstverständlich ist die Zuverlässigkeit der Quelle jedoch geringer als die des offiziellen Dokuments, und ** Sie können nicht mehr Informationen als erforderlich anfassen **. Lesen Sie daher nicht nur den Qiita-Artikel, sondern auch das offizielle Dokument.
Nachdem ich alle Funktionen implementiert hatte, begann ich mit dem Entwerfen unter Berücksichtigung von UI / UX. Einführung in die UI / UX-Verbesserung: "3 Punkte der UX-Verbesserung" aus "Unterschied zwischen UI und UX" wird erklärt!
Insbesondere waren mir die folgenden drei Punkte bekannt. ** ・ Entwickelt für das Ziel (20er Jahre) ・ Design, das Sie dazu bringt, weiter zu verwenden ・ Intuitives Design **
Und ich habe es in der folgenden Form in das Portfolio aufgenommen. ** - Pop-Hintergründe und Schriften für junge Leute
Von diesen war es besonders gut, die Graphvisualisierung einzubeziehen. Zuerst wurde das Übungsprotokoll des Benutzers in Buchstaben und Zahlen angezeigt, aber durch grafische Darstellung der Daten konnten wir ein Design realisieren, das es einfach macht, die gewünschten Informationen visuell zu erhalten. Es wird empfohlen, den jem chartkick zu verwenden, da Sie problemlos ein Diagramm erstellen können.
** ・ Da Sie es trotzdem können, bewegen Sie Ihre Hand und gewöhnen Sie sich an den Code ・ Implementierung von Funktionen und Aufbau von Mechanismen, die Sie dazu bringen, weiter zu verwenden ・ Zielbewusstes Design ・ Benutzerfreundlichkeit aus Sicht des Benutzers ・ Sehr wartbare Codierung **
** ・ Der Spaß, deine Ideen in Form zu bringen (mir wurde am meisten klar: Lächeln :) ・ Selbstfahrende Fähigkeit als Ingenieur, der Services von Grund auf neu erstellen kann ・ Fähigkeit zu verbalisieren und zu untersuchen, was Sie nicht verstehen (Fähigkeit zu googeln) ・ Auswahl von Referenzen (offizielles Dokument erforderlich) ・ Bedeutung der Ausgabe **
Ich habe viel gelernt und bin in den letzten drei Monaten durch die Erstellung eines Portfolios aufgewachsen. Ich war zuversichtlich, dass ich es so gut machen könnte, selbst wenn ich noch nie die Programmierung berührt hätte, und vor allem habe ich gelernt, dass es Spaß macht, einen Dienst mit meinen eigenen Ideen zu erstellen.
Es gibt noch viele Dinge, die ich tun möchte, z. B. den Aufbau einer Infrastruktur mit AWS, aber zuerst werde ich mit der Jobsuche nach Ingenieuren beginnen. Ich möchte mein Bestes geben, um einen Job zu bekommen, während ich mein Portfolio aktualisiere!
Recommended Posts