[PYTHON] J'ai essayé de développer une application Web et j'ai réfléchi à la manière d'éviter que les débutants ne tombent malades.

§ Premier message de Qiita, ravi de vous rencontrer

Ravi de vous rencontrer, tout le monde vivant à Qiita Land.

Je n'avais pas envie de publier beaucoup parce que je sentais que Qiita avait beaucoup de gens formidables, mais je voulais faire une sortie, alors j'ai décidé de la publier.

Merci pour votre gentillesse.

Une petite auto-introduction (cela n'a rien à voir avec le titre, vous pouvez donc l'ignorer)

En ce moment (2020/04), j'appartiens au Département d'Ingénierie de l'Information, étudiant de troisième année dans une certaine université. Avant d'entrer à l'université, j'avais une position de "programmation, qu'est-ce que c'est délicieux?", Mais une fois que j'ai fini d'apprendre la programmation orientée objet de Java en classe, je pense maintenant "Hé, la programmation est une douleur." A l'école, je parle souvent d'algorithmes, de théorie de l'information, d'OS, d'architecture informatique, de circuits numériques, etc. plutôt que de programmation, donc je n'écris pas vraiment beaucoup de code. Écrire du code est presque mon passe-temps. C'est pourquoi j'ai décidé de faire mon propre développement Web et de me former à l'écriture de code.

§ About Dans cet article, je vais vous montrer les étapes qu'un débutant qui est nouveau dans le développement d'applications Web devrait suivre pour échapper au copier-coller violent et coder pour lui-même tout en comprenant. C'est une chose à laquelle j'ai pensé et écrit.

§ Environnement

J'apprends à utiliser des frameworks Web basés sur Python (Django, Flask). L'environnement de développement détaillé ci-dessous.

§ Ma source d'apprentissage et son contenu

J'écrirai dans l'ordre que j'ai appris.

J'ai rassemblé beaucoup de sources d'apprentissage, mais il a fallu un peu moins de deux ans ** pour terminer tout cela ... Ne fais pas ça.

** La plus grande erreur a été de solidifier la technologie de base sans fixer de but.

§ Trébucher et comment y faire face

Si vous souhaitez développer une application Web! J'ai le sentiment fort de ne pas savoir quoi faire! S'il y a des gens qui disent ça, je pense qu'il vaut mieux être enthousiaste pour terminer ce montant en ** un an, de préférence six mois **. Je veux que vous vous penchiez en avant et que vous appreniez!

Voici les pierres d'achoppement auxquelles j'ai pensé à travers cet apprentissage et comment y faire face.

● Trébuchant 1 ● Il existe de nombreuses techniques d'apprentissage pour tout couvrir.

Je pense que la plupart des gens auront des problèmes avec cela. HTML, CSS, JS, Python, Django, HTTP, ... J'ai pensé que le mécanisme du Web est ** une variété de technologies couvrant divers domaines **, ce que l'on appelle ** l'art complet **. Au fait, les techniques énumérées ne suffisent pas. Au moins, la sécurité, la base de données, etc. ne suffisent pas.
La solution est totale, ** divisez les difficultés. ** (je me demande si ça peut se transmettre, c'est un moine Leroy nostalgique)
Pour être honnête, il est impossible pour les débutants de faire tout le développement par eux-mêmes (appelé un ingénieur full stack).

Il faut du temps pour apprendre toutes les techniques, et je suis frappé par l'énorme quantité de connaissances en premier lieu. Je suis assez cassé.

Si ** l'objectif est de terminer le produit **, je ne pense pas que ce soit une bonne idée de continuer à passer du temps à essayer d'atteindre cet objectif. Je pense qu'il est préférable de le faire dans une équipe qui combine des personnes avec divers domaines spécialisés. Si vous pensez que vous n'avez aucune compétence que vous pouvez gérer, vous pouvez le faire dans n'importe quel domaine, il vous suffit de terminer un livre d'introduction et d'essayer un autre produit en changeant les numéros dans ce livre d'introduction. Mais faisons-le. C'est un pas en avant pas à pas.

En revanche, si ** le but est d'apprendre la technologie autour des applications Web **, abordons divers aspects techniques et faisons pas mal d'erreurs et souffrons (du coup démon). Cela semble être votre technique d'acquisition de compétences la plus courte. Travaillons dur.

● Trébucher 2 ● Je suis perdu car je suis un débutant et je ne sais pas par quoi commencer

De mon point de vue personnel, je pense qu'il est préférable d'aller d'abord au ** front end **. Cela fait du bien quand HTML et CSS sont choisis. De plus, je pense que si vous mettez le front-end sur un hackathon, vous aurez l'impression d'avoir fait beaucoup de travail.

Le back-end est familier avec la langue et apprend également à utiliser le framework, donc il y a des moments où vous apprenez deux fois, donc je pense que cela prendra du temps entre le début des études et que vous puissiez réellement créer un produit (bien sûr). Je ne dis pas que le front-end peut se faire sans étudier, et personnellement c'est en train de devenir le domaine que je veux le plus étudier).

Quant à ce que je devrais étudier plus avant, je recommande ** Progate, qui ne nécessite pas de construction d'environnement, ** est terminé sur le navigateur, et ** les modifications sont immédiatement répercutées **. pense.

Les livres sont bons, mais si la date de publication est un peu plus tôt, le style d'écriture CSS peut être ancien, ou la version du framework peut être mise à jour et non prise en charge, alors vérifiez simplement si la date de publication est ancienne. Je pense qu'il vaut mieux le garder.

● Stumble 3 ● Je ne sais pas comment choisir une langue

Honnêtement, je ne le sais pas (car je n'ai pas touché à d'autres langages et frameworks tels que Ruby pour le moment), mais une chose que je peux dire est que ** choisissez une langue que vous connaissez bien ** * * Je pense que c'est bon pour la santé mentale **.

Je jouais juste avec Python lorsque j'ai commencé à travailler avec des applications Web, j'ai donc choisi un framework Python. Fondamentalement, en développement, vous n'écrivez pas vous-même le code à partir de zéro, mais vous faites bon usage du code (bibliothèque) écrit par d'autres personnes, il est donc plus facile de s'habituer à la notation unique du langage. est.

Je suis prêt à recevoir de nombreuses erreurs lors du développement. Lorsqu'on traite cette erreur, je pense que c'est environ trois fois plus difficile pour une langue à laquelle vous n'êtes pas habitué qu'une langue avec laquelle vous êtes habitué à découvrir ce qui la cause.

Pour ceux qui n'ont touché à aucun langage, honnêtement, je ne recommande pas Python (en particulier Flask). Parce que la quantité d'informations sur le Web est extrêmement faible. (Le nombre de résultats de recherche de Qiita est ** Rails 33401, Flask 2346, Django 4588 (au 14 avril 2020) **, et je pense que la faiblesse du framework Python est écrasante.) Cette différence dans la quantité d'informations affecte la vitesse de développement, donc si vous ne l'avez jamais touchée, nous vous recommandons dans l'ordre Ruby on Rails> Python Django> Python Flask.

● Stumble 4 ● Il y a trop de méthodes de montage et je ne sais pas laquelle choisir.

Je pense qu'il y a des gens qui font cela alors qu'ils sont sur Google sur le net. C'est écrit comme ça sur cette page, mais il arrive souvent que ça soit écrit comme ça.

Dans un tel cas, la chose la plus utile est le ** document officiel ** ou ** livre appelé un chef-d'œuvre **.

La documentation officielle est dans les mots des développeurs et autres, et est souvent ** expliquée dans le sens le plus concis et le plus pointu, en forme d'étoile **. Au fait, le tutoriel officiel de Django, un framework d'application Web basé sur Python, est Dieu. Plutôt que de rechercher sur Google, pensez que vous avez été trompé par le tutoriel officiel et essayez de courir une fois. Les étapes à expliquer sont toutes gravées là où il est facile pour les débutants de trébucher.

De plus, il y a quelques livres que Qiita recommande que «ce livre soit lu». Parmi les articles qui disent essentiellement cela, ** les livres qui sont acclamés dans plusieurs articles sont essentiellement de bons livres **. Je pense qu'il vaut mieux chercher un livre de cette façon que de se fier aux critiques d'Amazon.

Si vous ne savez pas comment le mettre en œuvre, arrêtez de ** développer ** et ** d'essayer de google **, puis accédez à la ** documentation officielle ** ou aux ** livres appelés chefs-d'œuvre **. Vous devriez prendre le temps de le lire.

** Le chaos dans votre tête est organisé de manière agréable, ouvrant la voie à la mise en œuvre. ** (C'est une grande religion, mais c'est vrai)

** Étonnamment étudiant. C'est sérieux. ** **

Ma recommandation est ** Technologies supportant le Web --HTTP, URI, HTML et REST **, que j'ai mentionnées ci-dessus. Avez-vous parcouru le backend et vous êtes-vous demandé pourquoi vous utilisiez simplement GET et POST sur le Web? La réponse est dans ce livre. Ceci est une lecture incontournable.

● Trébuchant 5 ● J'ai commencé à le faire et je suis soudainement devenu terne au milieu du processus.

** Le faites-vous seul? ** **

Je pense qu'il y a des utilisateurs du service, donc si possible, il vaut mieux se développer dans un lieu avec des gens.

Je pense qu'il existe une communauté d'ingénieurs et de designers dans tout le pays. Même si vous n'êtes pas doué pour ce genre de choses, vous pouvez aller au Mokumokukai ou autre. Si vous pensez que cela ne vous convient pas, vous pouvez l'essayer au restaurant familial avec un ami fiable.

Dans la région où j'habite, une installation de coworking où se réunissent ingénieurs et designers est née ce printemps, et j'en suis un grand utilisateur.

Je pense qu'il vaut mieux le faire avec quelqu'un, pas seul. Je ne pense pas qu'un ingénieur puisse être fort seul.

§ Mon idée de feuille de route de développement d'applications Web pour débutants

Si quoi que ce soit, cela peut être pour les gens qui ignorent la vitesse et veulent solidifier le terrain et continuer. En gros, c'est comme apprendre dans l'ordre du recto → programmation orientée objet → backend → document officiel ou livre.

  1. Apprenez HTML, CSS, Javascript avec des services qui peuvent être appris sur le Web comme Progate (Si vous aimez l'essai gratuit, vous devriez l'acheter)
  2. Rédigez votre propre page HTML (Le matériel d'écriture est une page d'auto-introduction, une page d'introduction d'artiste, etc.)
  3. Choisissez un langage de programmation orienté objet pour terminer le livre d’introduction (Si possible, il est préférable de choisir un langage de typage statique (Java, Swift) pour plus tard, mais ce n'est pas obligatoire)
  4. Terminer un livre sur le développement d'applications Web (Honnêtement, il est difficile de comprendre la signification du code, mais même s'il y a quelque chose que je ne comprends pas, je peux le copier.)
  5. Commencez à créer le produit que vous souhaitez créer tout en recherchant sur Google (Peut-être que la fonction de connexion sera copiée, mais c'est très bien)
  6. Arrêtez votre main au moment où vous êtes coincé, cherchez le document officiel ou le livre et lisez-le en entier
C'est comme répéter les étapes 5 et 6 ci-dessous.

La raison pour laquelle les langages statiquement typés qui déclarent des types sont bons est que vous ne comprenez souvent pas pourquoi votre code ne fonctionne pas à moins que vous ne soyez parfaitement conscient du concept de types. Fondamentalement, de nombreux langages Web (Ruby, Python) sont des langages typés dynamiquement (comme), mais je sais qu'il est pratique de masquer le concept de types. Je pense que ce ne sont que des humains. Il semble qu'un adulte avec un visage doux était en fait une personne effrayante. Cela semble être honnêtement des avantages et des inconvénients, mais je pense que c'est ce que je pense.

finalement

C'est devenu étonnamment long. Y avez-vous mis trop d'efforts?

En fait, c'est un article qui n'est pas très convivial pour les débutants.

Si vous ne comprenez pas un mot, veuillez effectuer une recherche sur Google. Je suis désolé.

Cependant, je ne veux pas que vous vous inquiétiez de la même manière lorsque je trébuche, alors j'espère que tout le monde fera de son mieux.

Merci d'avoir lu et j'écrirai encore quelque chose.

Recommended Posts

J'ai essayé de développer une application Web et j'ai réfléchi à la manière d'éviter que les débutants ne tombent malades.
[Django-Extensions] Les débutants en développement Web ont essayé de résumer Django-Extensions
Une histoire sur tout, de la collecte de données au développement d'IA et à la publication d'applications Web en Python (3. développement d'IA)
J'ai réfléchi à la façon d'apprendre la programmation gratuitement.
[IPdb] Les débutants en développement Web ont tenté de résumer le débogage avec Python
J'ai pensé à un moyen peu coûteux d'apprendre la programmation à partir de rien. (Édition Mac)
J'ai essayé de laisser Pepper parler des informations sur l'événement et des informations sur les membres
J'ai essayé d'extraire des noms de joueurs et de compétences d'articles sportifs
J'ai essayé de m'organiser à propos de MCMC.
J'ai pensé à un moyen peu coûteux d'apprendre la programmation à partir de rien. (Édition Raspberry Pi)
[Deep Learning from scratch] J'ai essayé d'implémenter la couche sigmoïde et la couche Relu
J'ai essayé d'apprendre l'angle du péché et du cos avec le chainer
Comment créer une application à partir du cloud à l'aide du framework Web Django
Je souhaite créer une application Web en utilisant React et Python flask
J'ai créé une API Web
À propos du développement Cloud run + Firebase [Développement d’applications Web]
J'ai essayé de comparer le cadre d'application Web
J'ai essayé Java8 + Spring Boot avec GAE SE (et à propos de son environnement de développement)
[Python] J'ai essayé de résoudre 100 questions passées que les débutants et les intermédiaires devraient résoudre [Partie 7/22]
[Python] J'ai essayé de résoudre 100 questions passées que les débutants et les intermédiaires devraient résoudre [Partie 4/22]
[Python] J'ai essayé de résoudre 100 questions passées que les débutants et les intermédiaires devraient résoudre [Part3 / 22]
[Python] J'ai essayé de résoudre 100 questions passées que les débutants et les intermédiaires devraient résoudre [Partie 1/22]
Comment exécuter une application Django sur un conteneur Docker (environnement de développement et de production)
J'ai essayé de passer le test G et la qualification E en m'entraînant à partir de 50
[Python] J'ai essayé de résoudre 100 questions passées que les débutants et les intermédiaires devraient résoudre [Partie 6/22]
Cela fait un an que j'ai rejoint le département de développement d'applications Web, alors je regarde en arrière
J'ai essayé Web Scraping pour analyser les paroles.
Comment ouvrir un navigateur Web à partir de python
J'ai essayé le web scraping en utilisant python et sélénium
J'ai implémenté DCGAN et essayé de générer des pommes
[Python] Comment lire les données de CIFAR-10 et CIFAR-100
[Introduction au PID] J'ai essayé de contrôler et de jouer ♬
J'ai essayé de comprendre comment utiliser les pandas et la colinéarité multiple en utilisant l'ensemble de données Affaires comme thème.
Comment utiliser Docker pour conteneuriser votre application et comment utiliser Docker Compose pour exécuter votre application dans un environnement de développement
J'ai créé un outil pour générer automatiquement un diagramme de transition d'état pouvant être utilisé à la fois pour le développement Web et le développement d'applications