Une introduction aux applications Web Python auto-conçues pour un ingénieur Web de troisième année paresseux

Une introduction aux applications Web Python auto-conçues pour un ingénieur Web de troisième année paresseux

J'ai commencé à écrire un livre en ligne appelé!

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

Le mur que j'ai frappé en tant qu'ingénieur web

La motivation pour écrire ce livre commence par la rencontre avec un livre.

À cette époque, cela faisait environ trois ans que j'avais commencé à travailler en tant qu'ingénieur dans une entreprise informatique qui n'avait aucune expérience en tant que nouveau diplômé et avait son propre service Web. Au cours de ces trois années, j'ai acquis une expérience de développement principalement côté serveur, et j'ai également conçu et implémenté des applications à partir de la définition des exigences.

Au cours de la troisième année, nous avons été en mesure de mettre en œuvre et de publier des fonctions importantes pouvant durer des dizaines de mois-homme, conformément aux manières du cadre dans l'environnement d'infrastructure laissé par nos prédécesseurs. (Bien sûr, nous nous développions en équipe, pas seuls) Ce fut un moment amusant pendant un moment, car je me sentais comme un ingénieur, et le sentiment de parler avec le côté commercial, de mettre en mots les fonctions que je voulais, d'écrire le programme et de vaincre les tâches.

Cependant, j'ai remarqué un tel tueur de tâches après un an. Même si je continue ce travail pendant cinq ans, je ne peux pas être comme l'ingénieur principal en face de moi.

Les ingénieurs principaux de l'entreprise résoudront comme par magie tous les problèmes que vous pourriez rencontrer, de la configuration du serveur à l'implémentation du langage, en passant par les algorithmes et l'optimisation des performances (profileur, optimiseur de requêtes, etc.).

J'ai pu résoudre les problèmes qui pouvaient être résolus en écrivant un programme dans le framework web (j'utilisais Laravel à l'époque). Même si vous ne connaissez pas le moment, vous pouvez généralement le résoudre en lisant la référence du cadre. De plus, plus de 95% des heures de travail consacrées au développement des fonctions des entreprises basées sur le Web appartenaient à cette catégorie.

Mais les 5% restants ne savent pas ce qu'est le serveur, quel est le protocole, quel est l'en-tête. Lorsque vous rencontrez un tel problème, l'ingénieur principal intervient rapidement et le résout rapidement.

Au fait, il essaie de m'apprendre diverses choses pour mes études ultérieures. "C'est long de parler de tout, donc c'est difficile de l'expliquer (rires)." Cela dit, même s'il m'apprendra en un mot, je ne peux pas le comprendre profondément et je compterai à nouveau sur mes aînés la prochaine fois.

Je pense que je ne peux pas rattraper mon retard sans étudier quelque chose, mais la différence entre moi et mes aînés est si grande que je ne sais pas par quoi commencer. J'essaie de lire au hasard des livres de modèles de conception et d'infrastructure, mais il est difficile d'établir que je n'ai pas d'endroit où pratiquer et je n'ai pas l'impression de grandir éternellement. Même si vous essayez d'étudier à partir des tâches que vous touchez par fragments dans votre travail, il est difficile d'apprendre parce que vous n'avez pas les connaissances de base.

Et comme pour rattraper une telle impatience, le tueur de tâches que j'ai apprécié il y a six mois est soudainement frappé par un sentiment de rut. Comme dans n'importe quel jeu, lorsque vous pouvez vaincre un ennemi que vous n'avez pas pu vaincre depuis longtemps, vous serez heureux de pouvoir défier cet ennemi à plusieurs reprises, mais il devient courant de le vaincre. C'est ennuyant.

Combiné à ce sentiment, l'ingénierie est soudainement devenue ennuyeuse.

percée

Puis, à l'approche de la quatrième année, j'ai eu l'impression d'avoir lu un livre et j'ai soudainement ouvert les yeux. Ce livre

Apprendre en créant un serveur Web Introduction au développement d'applications Web à partir des bases (écrit par Kazuya Maebashi)

est.

Dans ce livre, vous écrivez votre propre serveur Web et application Web à l'aide de Java. En commençant par l'explication de «Qu'est-ce qu'un serveur Web / une application Web?», Le flux consiste en fait à créer un simple serveur Web / application Web.

Puis, quand je l'ai réellement écrit selon le livre, il est devenu possible d'afficher une page Web sur le navigateur avec seulement quelques dizaines de lignes de programme. En outre, si vous dépensez des centaines de lignes, vous pouvez échanger à l'aide de cookies et vous pouvez créer un cadre Web qui peut effectuer le routage et la gestion de session à l'aide de cookies.

Bien sûr, les détails ne sont pas aussi bons que les serveurs Web et les frameworks de haute précision et haute performance du marché, mais ils fonctionnent tout à fait comme des frameworks Web et peuvent afficher les pages d'accueil normalement. De plus, comme je bouge mes mains et que j'écris à partir de 0, j'ai une idée de tous les traitements spécifiques, du moins pour l'application que j'ai créée.

Après avoir fini ce livre "Alors, le middleware est-il implémenté dans Laravel comme ça?" "Est-ce que le routage de Laravel fait vraiment ça dans les coulisses?" J'ai pu imaginer le mécanisme avant même d'enquêter sur des choses que je n'avais pas besoin de connaître en détail dans mon travail.

(L'intergiciel, etc. n'était pas écrit dans le livre de M. Maebashi, mais après l'avoir lu, il est devenu amusant et quand je l'ai écrit moi-même, j'ai pu l'implémenter)

Au moment où j'ai fini de lire ce livre, j'ai quitté la première entreprise à laquelle j'étais redevable et j'ai changé d'emploi pour la deuxième entreprise.

Depuis que l'entreprise a changé, je vais aborder les nouveaux produits, mais le langage a changé depuis la première entreprise et c'était un service Web Python-Django.

Pour moi, qui n'ai écrit que PHP, je m'en suis souvent souvenu, mais le mécanisme de Django, qui est un framework web, me vient à l'esprit quand je lis une simple introduction. Au contraire, même des fonctions inconnues qui n'apparaissent pas dans l'introduction, lors du travail réel "Je suis sûr qu'il existe une telle fonction ici, et il devrait être possible de la changer avec la valeur définie, non?" Quand je l'ai cherché, il existait réellement.

Je pense que l'une des caractéristiques qui sépare les ingénieurs qui sont bons et ceux qui ne le sont pas est la capacité de «se faire toucher». La possibilité de voir en un coup d'œil le message d'erreur "Oh, c'est faux" lorsqu'une erreur se produit. Le pouvoir de comprendre immédiatement lors de la création d'une nouvelle fonction, "Oh, si vous changez ici, c'est fini."

Il y avait un sentiment que certains d'entre eux étaient acquis. La vue s'est soudainement élargie et la vue a changé.

Pour que le plus grand nombre de personnes puisse profiter de l'ingénierie Et ce que je pense le plus important, c'est que l'ingénierie est redevenue amusante depuis lors.

La connaissance est mystérieuse, et plus vous en savez, plus vous ne savez pas.

Une fois que vous comprenez un serveur Web ou une application Web, vous voulez en savoir plus sur la communication TCP, ou la différence entre Django et Laravel, ou la différence entre une application Web et une application de base de données. Ou, je voulais juste étudier Python plus profondément en premier lieu pour comprendre le cadre. (Fluent Python est recommandé)

Tout en étudiant les différences entre les cadres, lorsque vous vous rendrez compte que les contraintes linguistiques et la culture ont un impact significatif sur le cadre, vous voudrez en savoir plus sur l'implémentation linguistique. (Une introduction à la création de compilateurs C pour ceux qui veulent connaître la couche basse est recommandée)

Cependant, j'ai également constaté que la motivation diminue lorsque j'apprends à rester trop loin du travail. Pour moi, la lecture de Javascript 6e édition a été assez difficile car je n'ai pas beaucoup d'occasions d'utiliser l'application frontale en profondeur.

Pourtant, l'apprentissage et l'écriture sont amusants tous les jours depuis un an.

Puis, quand j'ai regardé autour de moi, il m'a semblé qu'il y avait beaucoup d'ingénieurs qui étaient paresseux en deuxième ou troisième année comme moi. Et il y avait des ingénieurs qui avaient été paresseux pendant les 5e et 7e années.

Ce que je veux dire ici, ce n'est pas que c'est mauvais parce que c'est lent, ou que c'est bon parce que c'est au-dessus du mur, mais qu'ils semblent tous fatigués de l'ingénierie en commun.

Même pour une telle personne, j'en suis venu à vouloir que les gens pensent que l'ingénierie est amusante. Comme j'avais l'habitude de le faire, un livre que j'ai choisi peut me rappeler que l'ingénierie est à nouveau amusante. Et s'il n'y avait pas de livre de ce genre dans le monde, j'ai pensé que ce serait bien de l'écrire, alors j'ai décidé de commencer à écrire ce livre.

Je n'ai pas envie de dire «profiter de la vie» ou «aimer le travail» ou quelque chose comme ça. Ce que je recherche, c'est un ami qui brillera mes yeux avec mon jeu préféré. Ce livre n'est pas un livre que j'écris pour vous, mais un livre que j'écris pour que j'apprécie davantage le jeu de l'ingénierie.

À propos du contenu

La première moitié du livre sera une introduction au développement d'applications Web à partir des bases, que vous apprendrez en créant un serveur Web (tout en traçant par Kazuya Maebashi, vous créerez une application Web en Python au lieu de Java. Dans la seconde moitié, nous utiliserons Django comme thème pour imiter diverses fonctions installées dans des frameworks modernes.

Dans la première moitié, j'aurais pu simplement présenter le livre de M. Maebashi, mais quand j'ai eu une session d'étude pour les ingénieurs juniors dans l'entreprise où de nombreux utilisateurs de Python

En premier lieu, il y avait des membres qui sont devenus une barrière pour être Java Il y avait une partie du flux d'explications qui confondait l'ingénieur junior, et il semblait que cela pouvait être amélioré. En publiant sur une plate-forme appelée Zenn, il peut être livré à un plus large éventail d'ingénieurs Pour cette raison, j'ai décidé d'en écrire un nouveau avec mes propres mots. Dans la seconde moitié, le livre du professeur Maehashi se concentre sur «ce que vous devez savoir en tant que bon ingénieur web» et présente diverses connaissances périphériques telles que SSL et la sécurité. Cependant, cette fois, mon livre est juste pour démonter mes jouets et les retourner pour me satisfaire, alors je pense à en modifier un peu le contenu.

Pour ceux qui sont prêts à gagner de l'argent en tant qu'ingénieur, le contenu écrit dans le livre du professeur Maehashi est un élément obligatoire, donc si vous êtes intéressé, veuillez le lire également.

La permission du Dr Maebashi est actuellement en cours de confirmation, et si l'autorisation n'est pas obtenue, la rédaction de ce document prendra fin immédiatement. Nous avons reçu le consentement du Dr Maebashi. Merci beaucoup.

De plus, je pense que le type de livre qui déclenche une percée varie d'une personne à l'autre. Comme je l'ai mentionné au milieu, un livre que je trouve amusant à étudier est très proche du code que j'écris habituellement, mais ce n'est pas à peine suffisant (je dis souvent "un pas en dehors de mon royaume"). Est approprié.

En ce sens, je ne pense pas que ce livre sera une percée pour tout le monde. Cependant, à l'ère de l'apogée des services Web, de nombreuses entreprises souhaitent que le service prolifère, car une technologie simple suffit et les ingénieurs qui ne peuvent écrire que peu suffisent. De plus, l'école de programmation est également extrêmement prospère et de nombreux ingénieurs juniors apprennent uniquement à utiliser un cadre Web simple et à le mettre en pratique. Je suis l'un d'eux.

Je pensais que ces gens trébucheraient au même endroit que moi, et j'ai osé dire: «J'aimerais pouvoir rencontrer un tel livre un an plus tôt», envers des gens comme moi. Je l'ai nommé "Introduction aux applications Web Homebrew Python pour les ingénieurs Web de 3e année".

J'espère que ce livre me divertira, pas moi quelque part.

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

Recommended Posts

Une introduction aux applications Web Python auto-conçues pour un ingénieur Web de troisième année paresseux
Premiers pas avec Python pour les non-ingénieurs
Une introduction à Python pour l'apprentissage automatique
Une introduction à Python pour les programmeurs en langage C
J'ai recherché les compétences nécessaires pour devenir ingénieur web avec Python
[Introduction à python] Introduction rapide à Python pour les programmeurs C ++ occupés
Une introduction à la programmation Python
Introduction à Python pour, pendant
Comment créer un package Python (écrit pour un stagiaire)
Une introduction à Mercurial pour les non-ingénieurs
J'ai créé un environnement pour Masonite, un framework WEB Python similaire à Laravel, avec Docker!
[Tutoriel Python] Une introduction facile à Python
[Introduction à Python] Comment utiliser l'opérateur in dans l'instruction for?
Super Introduction Arithmétique Bit Python
Une introduction à OpenCV pour l'apprentissage automatique
Une introduction à l'orientation des objets - Donnez à un objet un enfant.
Mise à jour de «Introduction à l'accueil de l'application Web Python pour les ingénieurs Web de 3e année qui sont lents»
Mise à jour de «Introduction à l'accueil de l'application Web Python pour les ingénieurs Web de 3e année qui sont lents»
Mise à jour de «Introduction à l'accueil de l'application Web Python pour les ingénieurs Web de 3e année qui sont lents»
[Introduction à Udemy Python3 + Application] 47. Traitez le dictionnaire avec une instruction for
Mise à jour de «Introduction à l'accueil de l'application Web Python pour les ingénieurs Web de 3e année qui sont lents»
Les débutants en Python publient des applications Web à l'aide de l'apprentissage automatique [Partie 2] Introduction à Python explosif !!
Mise à jour de «Introduction à l'accueil de l'application Web Python pour les ingénieurs Web de 3e année qui sont lents»
Mise à jour de «Introduction à l'accueil de l'application Web Python pour les ingénieurs Web de 3e année qui sont lents»
Qu'est-ce qu'un algorithme? Introduction à l'algorithme de recherche] ~ Python ~
Une introduction à l'apprentissage automatique pour les développeurs de robots
Une introduction à la programmation orientée objet pour les débutants par les débutants
Comment ouvrir un navigateur Web à partir de python
Introduction à la modélisation statistique pour l'analyse des données
Étapes pour développer une application Web en Python
[Introduction à Python3, Jour 23] Chapitre 12 Devenir un Paisonista (12.1 à 12.6)
[Introduction à l'application Udemy Python3 +] 43. instruction for else
Recherche d'un moyen efficace d'écrire un Dockerfile avec Python avec de la poésie
Introduction à Python "Re" 1 Construction d'un environnement d'exécution
Introduction à la programmation (Python) TA Tendency pour les débutants
Une introduction à l'analyse vocale pour les applications musicales
[Introduction à Python] Comment obtenir l'index des données avec l'instruction for
Comprendre le développement de Python pour Pepper. -Introduction à Python Box-
[Débutant] [Python / Django] Un ingénieur Web débutant a essayé un didacticiel Django-Partie 7-
(Python) Essayez de développer une application Web en utilisant Django
[Débutant] [Python / Django] Un ingénieur web débutant a essayé un didacticiel Django - Partie 0-
[Débutant] [Python / Django] Un ingénieur Web débutant a essayé un tutoriel Django - Partie 5
Introduction au traitement parallèle distribué Python par Ray
Note de lecture: Introduction à l'analyse de données avec Python
[Débutant] [Python / Django] Un ingénieur Web débutant a essayé un tutoriel Django - Partie 6
Introduction à l'algèbre linéaire avec Python: Décomposition A = LU
[Débutant] [Python / Django] Un ingénieur Web débutant a essayé un didacticiel Django - Partie 4
Écrire du code dans UnitTest une application Web Python
[Débutant] [Python / Django] Un ingénieur Web débutant a essayé un didacticiel Django - Partie 3
[Introduction à Python] Comment écrire des instructions répétitives à l'aide d'instructions for
Introduction à l'apprentissage automatique à partir de Simple Perceptron
[Mémo d'édition Flask] Un amateur qui ne comprend pas le HTML ou la construction Web essaie de créer un service Web avec Python + Flask
Introduction à OpenCV (python) - (2)
Comment convertir un tableau en dictionnaire avec Python [Application]
Les débutants en Python publient des applications Web à l'aide de l'apprentissage automatique [Partie 1] Introduction
[Introduction à l'application Udemy Python3 +] 42. pour instruction, instruction break et instruction continue
[Python] Introduction au scraping | Programme d'ouverture de pages Web (sélénium webdriver)
Un moyen simple d'éviter plusieurs boucles for en Python