Eine Einführung in selbst erstellte Python-Webanwendungen für einen trägen Webingenieur im dritten Jahr

Eine Einführung in selbst erstellte Python-Webanwendungen für einen trägen Webingenieur im dritten Jahr

Ich fing an, ein Online-Buch namens zu schreiben!

https://zenn.dev/bigen1925/books/introduction-to-web-application-with-python

Die Wand, die ich als Webingenieur getroffen habe

Die Motivation zum Schreiben dieses Buches beginnt mit der Begegnung mit einem Buch.

Zu dieser Zeit war es ungefähr drei Jahre her, dass ich als Ingenieur bei einem IT-Unternehmen anfing, das keine Erfahrung als neuer Absolvent hatte und über einen eigenen Webdienst verfügte. Während dieser drei Jahre sammelte ich Entwicklungserfahrung hauptsächlich auf der Serverseite und entwarf und implementierte Anwendungen anhand der Anforderungsdefinition.

Im dritten Jahr konnten wir einige große Funktionen implementieren und freigeben, die gemäß den Manieren des Frameworks in der von unseren Vorgängern hinterlassenen Infrastrukturumgebung mehrere zehn Mannmonate dauern konnten. (Natürlich haben wir uns als Team entwickelt, nicht alleine) Es war eine lustige Zeit für eine Weile, da ich mich als Ingenieur fühlte und das Gefühl hatte, mit der Geschäftsseite zu sprechen, die gewünschten Funktionen in Worte zu fassen, das Programm zu schreiben und die Aufgaben zu erledigen.

Nach einem Jahr bemerkte ich jedoch einen solchen Task Slayer. Selbst wenn ich diese Arbeit fünf Jahre lang fortsetze, kann ich nicht wie der leitende Ingenieur vor mir sein.

Die leitenden Ingenieure des Unternehmens lösen auf magische Weise alle Probleme, die Sie möglicherweise haben, von der Serverkonfiguration über die Sprachimplementierung bis hin zu Algorithmen und Leistungsoptimierung (Profiler, Abfrageoptimierer usw.).

Ich konnte die Probleme lösen, die durch das Schreiben eines Programms im Webframework gelöst werden konnten (ich habe damals Laravel verwendet). Selbst wenn Sie den Moment nicht kennen, können Sie ihn normalerweise durch Lesen der Framework-Referenz lösen. Darüber hinaus fielen mehr als 95% der Geschäftszeiten für die Funktionsentwicklung von webbasierten Unternehmen in diese Kategorie.

Die restlichen 5% sind sich jedoch nicht sicher, was der Server ist, was das Protokoll ist, was der Header ist. Wenn Sie auf ein solches Problem stoßen, kommt der leitende Ingenieur schnell herein und löst es schnell.

Übrigens versucht er mir verschiedene Dinge für mein späteres Studium beizubringen. "Es ist lang, über alles zu reden, deshalb ist es schwierig, das zu erklären (lacht)." Das heißt, obwohl er mich auf den Punkt bringen wird, kann ich es nicht tief verstehen, und ich werde mich beim nächsten Mal wieder auf meine Senioren verlassen.

Ich denke, ich kann nicht aufholen, ohne etwas zu studieren, aber der Unterschied zwischen mir und meinen Senioren ist so groß, dass ich nicht weiß, womit ich anfangen soll. Ich versuche, Designmusterbücher und Infrastrukturbücher nach dem Zufallsprinzip zu lesen, aber das Wissen, das ich nicht in die Praxis umsetzen kann, ist schwer zu etablieren, und ich habe nicht das Gefühl, für immer zu wachsen. Selbst wenn Sie versuchen, aus den Aufgaben zu lernen, die Sie in Ihrer Arbeit in Fragmenten berühren, ist es schwierig zu lernen, da Sie nicht über die Grundkenntnisse verfügen.

Und als wollte ich diese Ungeduld einholen, wird der Task Slayer, den ich vor einem halben Jahr genossen habe, plötzlich von einem Gefühl der Brunft getroffen. Wie bei jedem Spiel sind Sie froh, wenn Sie einen Feind besiegen können, den Sie lange nicht mehr besiegen konnten, diesen Feind viele Male herausfordern zu können, aber das Besiegen ist an der Tagesordnung. Es ist langweilig.

In Kombination mit diesem Gefühl wurde das Engineering plötzlich langweilig.

Durchbruch

Dann, als ich mich dem vierten Jahr näherte, fühlte ich mich, als hätte ich ein Buch gelesen und plötzlich meine Sicht geöffnet. Dieses Buch

Lernen Sie beim Erstellen eines Webservers Einführung in die Entwicklung von Webanwendungen anhand der Grundlagen (geschrieben von Kazuya Maebashi)

ist.

In diesem Buch schreiben Sie Ihren eigenen Webserver und Ihre eigene Webanwendung mit Java. Beginnend mit der Erläuterung von "Was ist ein Webserver / eine Webanwendung?" Besteht der Ablauf darin, einen einfachen Webserver / eine Webanwendung zu erstellen.

Als ich es dann zusammen mit dem Buch schrieb, wurde es möglich, eine Webseite im Browser mit nur ein paar Dutzend Programmzeilen anzuzeigen. Wenn Sie Hunderte von Zeilen ausgeben, können Sie mithilfe von Cookies austauschen und ein Webframework erstellen, das Routing und Sitzungsverwaltung mithilfe von Cookies durchführen kann.

Natürlich sind die Details nicht so gut wie die hochpräzisen, leistungsstarken Webserver und Frameworks auf dem Markt, aber sie funktionieren ähnlich wie Web-Frameworks und können Homepages normal anzeigen. Da ich tatsächlich meine Hände bewege und von 0 aus schreibe, habe ich außerdem einen Überblick über die gesamte spezifische Verarbeitung, zumindest für die von mir erstellte Anwendung.

Nachdem ich dieses Buch beendet habe "Wird Middleware dann auf diese Weise in Laravel implementiert?" "Macht Laravels Routing dies tatsächlich hinter den Kulissen?" Ich konnte mir den Mechanismus vorstellen, noch bevor ich Dinge untersuchte, die ich in meiner Arbeit nicht im Detail wissen musste.

(Middleware usw. wurde nicht in Mr. Maebashis Buch geschrieben, aber nachdem ich es gelesen hatte, machte es Spaß und als ich es tatsächlich selbst schrieb, konnte ich es implementieren.)

Als ich mit dem Lesen dieses Buches fertig war, verließ ich die erste Firma, der ich verpflichtet war, und wechselte die Stelle zur zweiten Firma.

Da sich die Firma geändert hat, werde ich auf neue Produkte eingehen, aber die Sprache hat sich von der ersten Firma geändert und es war ein Python-Django-Webdienst.

Für mich, der nur PHP geschrieben hat, habe ich mich oft daran erinnert, aber der Mechanismus von Django, einem Web-Framework, fällt mir ein, wenn ich eine einfache Einführung lese. Im Gegenteil, auch unbekannte Funktionen, die in der Einleitung nicht vorkommen, wenn Sie mit der eigentlichen Arbeit fortfahren "Ich bin sicher, dass es hier eine solche Funktion gibt, und es sollte möglich sein, sie mit dem eingestellten Wert zu ändern, oder?" Als ich es nachgeschlagen habe, existierte es tatsächlich.

Ich denke, eine der Eigenschaften, die Ingenieure, die gut sind, von denen, die es nicht sind, unterscheidet, ist die Fähigkeit, "getroffen zu werden". Die Fähigkeit, auf einen Blick die Fehlermeldung "Oh, das ist falsch" zu erkennen, wenn ein Fehler auftritt. Die Fähigkeit, beim Erstellen einer neuen Funktion sofort zu verstehen: "Oh, wenn Sie sich hier ändern, ist es vorbei."

Es gab das Gefühl, dass einige von ihnen erworben wurden. Die Sicht weitete sich plötzlich und die Sicht änderte sich.

Damit möglichst viele Menschen Spaß am Engineering haben Und was ich für das Wichtigste halte, ist, dass das Engineering seitdem wieder Spaß macht.

Wissen ist mysteriös und je mehr Sie wissen, desto mehr wissen Sie nicht.

Sobald Sie einen Webserver oder eine Webanwendung verstanden haben, möchten Sie mehr über die TCP-Kommunikation oder den Unterschied zwischen Django und Laravel oder den Unterschied zwischen einer Webanwendung und einer Datenbankanwendung erfahren. Oder ich wollte Python erst einmal genauer studieren, um das Framework zu verstehen. (Fließendes Python wird empfohlen)

Wenn Sie bei der Untersuchung der Unterschiede zwischen Frameworks feststellen, dass sprachliche Einschränkungen und Kultur einen erheblichen Einfluss auf das Framework haben, möchten Sie mehr über die Sprachimplementierung erfahren. (Eine Einführung in die Erstellung von C-Compilern für diejenigen, die die niedrige Ebene kennen möchten, wird empfohlen.)

Ich habe jedoch auch festgestellt, dass die Motivation nachlässt, wenn ich lerne, zu weit von der Arbeit entfernt zu bleiben. Für mich war das Lesen der 6. Ausgabe von Javascript ziemlich schwierig, da ich nicht viele Möglichkeiten habe, die Frontanwendung intensiv zu nutzen.

Trotzdem macht Lernen und Schreiben im vergangenen Jahr jeden Tag Spaß.

Als ich mich dann umsah, schien es, dass es viele Ingenieure gab, die im zweiten oder dritten Jahr so träge waren wie ich. Und es gab einige Ingenieure, die im 5. und 7. Jahr träge waren.

Was ich hier sagen möchte, ist nicht, dass es schlecht ist, weil es träge ist, oder dass es gut ist, weil es über der Mauer liegt, sondern dass sie alle es satt zu haben scheinen, gemeinsam zu konstruieren.

Selbst für eine solche Person möchte ich, dass die Leute denken, dass Engineering Spaß macht. Wie früher könnte mich ein Buch, das ich aufgegriffen habe, daran erinnern, dass Engineering wieder Spaß macht. Und wenn es kein solches Buch auf der Welt gibt, dachte ich, es wäre in Ordnung, es zu schreiben, also beschloss ich, dieses Buch zu schreiben.

Ich habe keine Lust zu sagen "genieße das Leben" oder "genieße die Arbeit" oder so etwas. Was ich suche, ist ein Freund, der meine Augen mit meinem Lieblingsspiel funkeln wird. Dieses Buch ist kein Buch, das ich für Sie schreibe, sondern ein Buch, das ich für mich schreibe, um das Spiel der Technik mehr zu genießen.

Über den Inhalt

Die erste Hälfte des Buches enthält eine Einführung in die Entwicklung von Webanwendungen anhand der Grundlagen, die Sie beim Erstellen eines Webservers erlernen (während Sie von Kazuya Maebashi nachverfolgen, erstellen Sie eine Webanwendung in Python anstelle von Java. In der zweiten Hälfte werden wir Django als Thema verwenden, um verschiedene Funktionen zu imitieren, die in modernen Frameworks installiert sind.

In der ersten Hälfte hätte ich gerade das Buch von Herrn Maebashi vorstellen können, aber als ich eine Lernsitzung für Nachwuchsingenieure in der Firma hatte, in der es viele Python-Benutzer gibt,

Erstens gab es Mitglieder, die ein Hindernis für Java wurden Es gab einen Teil des Erklärungsflusses, der den Nachwuchsingenieur verwirrte, und es schien, dass er besser gemacht werden könnte. Durch die Veröffentlichung auf einer Plattform namens Zenn besteht die Möglichkeit, dass sie einem breiteren Spektrum von Ingenieuren zur Verfügung gestellt wird Aus diesem Grund habe ich beschlossen, einen neuen in meinen eigenen Worten zu schreiben. In der zweiten Hälfte konzentriert sich Professor Maehashis Buch auf "das, was Sie als guter Webingenieur wissen müssen" und führt verschiedene periphere Kenntnisse wie SSL und Sicherheit ein. Dieses Mal dient mein Buch jedoch nur dazu, meine Spielzeuge zu zerlegen und zur Selbstzufriedenheit umzudrehen. Deshalb denke ich darüber nach, den Inhalt ein wenig zu ändern.

Für diejenigen, die bereit sind, als Ingenieur Geld zu verdienen, ist der Inhalt von Professor Maehashis Buch obligatorisch. Wenn Sie also interessiert sind, lesen Sie dies bitte auch.

Die Erlaubnis von Dr. Maebashi wird derzeit bestätigt. Wenn die Erlaubnis nicht eingeholt wird, endet das Schreiben dieses Dokuments sofort. Wir haben die Zustimmung von Dr. Maebashi erhalten. Vielen Dank.

Ich denke auch, dass die Art des Buches, das einen Durchbruch auslöst, von Person zu Person unterschiedlich ist. Wie ich in der Mitte erwähnt habe, kommt ein Buch, dessen Studium mir Spaß macht, dem Code, den ich normalerweise schreibe, sehr nahe, aber es reicht kaum aus (ich sage oft "einen Schritt außerhalb meines Reiches"). Ist angemessen.

In diesem Sinne denke ich nicht, dass dieses Buch ein Durchbruch für alle sein wird. In dieser Zeit der Blütezeit der Webdienste gibt es jedoch viele Unternehmen, die eine Verbreitung des Dienstes wünschen, da einfache Technologie ausreicht und Ingenieure, die nur wenig schreiben können, ausreichen. Darüber hinaus ist die Programmierschule äußerst erfolgreich, und es gibt viele Nachwuchsingenieure, die nur lernen, wie man ein einfaches Webframework verwendet und in die Praxis umsetzt. Ich bin einer von denen.

Ich dachte, dass diese Leute an der gleichen Stelle wie ich stolpern würden, und ich wagte es zu sagen: "Ich wünschte, ich könnte ein solches Buch ein Jahr früher treffen", gegenüber Leuten wie mir. Ich nannte es "Einführung in Homebrew Python-Webanwendungen für Webingenieure im 3. Jahr".

Ich hoffe, dieses Buch wird mich unterhalten, nicht mich irgendwo.

https://zenn.dev/bigen1925/books/e6c9492a82f5e2e10fca/viewer/422445

Recommended Posts

Eine Einführung in selbst erstellte Python-Webanwendungen für einen trägen Webingenieur im dritten Jahr
Erste Schritte mit Python für Nicht-Ingenieure
Eine Einführung in Python für maschinelles Lernen
Eine Einführung in Python für C-Sprachprogrammierer
Ich suchte nach den Fähigkeiten, die erforderlich sind, um Webingenieur bei Python zu werden
[Einführung in Python] Hochgeschwindigkeits-Einführung in Python für vielbeschäftigte C ++ - Programmierer
Eine Einführung in die Python-Programmierung
Einführung in Python For, While
Wie erstelle ich ein Python-Paket (geschrieben für Praktikanten)
Eine Einführung in Mercurial für Nicht-Ingenieure
[Python Tutorial] Eine einfache Einführung in Python
[Einführung in Python] Wie verwende ich den Operator in in der for-Anweisung?
Python Bit Arithmetic Super Einführung
Eine Einführung in OpenCV für maschinelles Lernen
Eine Einführung in die Objektorientierung - Geben Sie einem Objekt ein Kind.
Aktualisiert "Einführung in Python Web Application Homebrew für Webingenieure im 3. Jahr, die langsam sind"
Aktualisiert "Einführung in Python Web Application Homebrew für Webingenieure im 3. Jahr, die langsam sind"
Aktualisiert "Einführung in Python Web Application Homebrew für Webingenieure im 3. Jahr, die langsam sind"
[Einführung in die Udemy Python3 + -Anwendung] 47. Verarbeiten Sie das Wörterbuch mit einer for-Anweisung
Aktualisiert "Einführung in Python Web Application Homebrew für Webingenieure im 3. Jahr, die langsam sind"
Python-Anfänger veröffentlichen Web-Apps mit maschinellem Lernen [Teil 2] Einführung in explosives Python !!
Aktualisiert "Einführung in Python Web Application Homebrew für Webingenieure im 3. Jahr, die langsam sind"
Aktualisiert "Einführung in Python Web Application Homebrew für Webingenieure im 3. Jahr, die langsam sind"
Was ist ein Algorithmus? Einführung in den Suchalgorithmus] ~ Python ~
Eine Einführung in maschinelles Lernen für Bot-Entwickler
Eine Einführung in die objektorientierte Programmierung für Anfänger von Anfängern
So öffnen Sie einen Webbrowser über Python
Eine Einführung in die statistische Modellierung für die Datenanalyse
Schritte zum Entwickeln einer Webanwendung in Python
[Einführung in Python3, Tag 23] Kapitel 12 Werden Sie Paisonista (12.1 bis 12.6)
[Einführung in die Udemy Python3 + -Anwendung] 43. for else-Anweisung
Auf der Suche nach einer effizienten Möglichkeit, eine Docker-Datei mit Python mit Gedichten zu schreiben
Einführung in Python "Re" 1 Erstellen einer Ausführungsumgebung
Einführung in die Programmierung (Python) TA Tendenz für Anfänger
Eine Einführung in die Sprachanalyse für Musik-Apps
[Einführung in Python] So erhalten Sie den Datenindex mit der for-Anweisung
Grundlegendes zur Python for Pepper-Entwicklung. -Einführung in Python Box-
[Anfänger] [Python / Django] Ein junger Webingenieur hat ein Django-Tutorial ausprobiert - Teil 7-
(Python) Versuchen Sie, eine Webanwendung mit Django zu entwickeln
[Anfänger] [Python / Django] Ein junger Webingenieur hat ein Django-Tutorial ausprobiert - Teil 0-
[Anfänger] [Python / Django] Ein junger Webingenieur hat ein Django-Tutorial ausprobiert - Teil 5-
Einführung in die verteilte Parallelverarbeitung von Python durch Ray
Lesehinweis: Einführung in die Datenanalyse mit Python
[Anfänger] [Python / Django] Ein junger Webingenieur hat ein Django-Tutorial ausprobiert - Teil 6-
Einführung in die lineare Algebra mit Python: A = LU-Zerlegung
[Anfänger] [Python / Django] Ein junger Webingenieur hat ein Django-Tutorial ausprobiert - Teil 4-
Schreiben Sie Code in UnitTest, eine Python-Webanwendung
[Anfänger] [Python / Django] Ein junger Webingenieur hat ein Django-Tutorial ausprobiert - Teil 3-
[Einführung in Python] So schreiben Sie sich wiederholende Anweisungen mit for-Anweisungen
Einführung in das maschinelle Lernen mit Simple Perceptron
[Memo zur Flask-Edition] Ein Amateur, der HTML oder Webkonstruktion nicht versteht, versucht, mit Python + Flask einen Webdienst zu erstellen
Einführung in OpenCV (Python) - (2)
So konvertieren Sie mit Python [Anwendung] von einem Array in ein Wörterbuch
Python-Anfänger veröffentlichen Web-Apps mithilfe von maschinellem Lernen [Teil 1] Einführung
[Einführung in die Udemy Python3 + -Anwendung] 42. für Anweisung, break-Anweisung und continue-Anweisung
[Python] Einführung in das Scraping | Programm zum Öffnen von Webseiten (Selenium-Webdriver)
Eine einfache Möglichkeit, mehrere for-Schleifen in Python zu vermeiden