[JAVA] Résumé de la façon de monter les escaliers de programmation

Ravi de vous rencontrer, c'est mon premier message. Les nouveaux arrivants sont affectés à de nouvelles équipes depuis plusieurs mois et de plus en plus de personnes se demandent: «Comment puis-je écrire un programme? Même si vous dites «vous pouvez écrire un programme», je pense qu'il y a différentes étapes selon la personne. J'ai discuté avec diverses personnes de la façon d'augmenter l'étape de croissance de la programmation tout en ressentant la croissance. Tout le monde ne peut pas écrire des programmes, et certains ne le peuvent pas. Montez les escaliers à votre rythme. Cet article est principalement destiné aux langages orientés objet.

Il y a des escaliers dans la programmation

Pour le mettre à l'extrême, la tâche d'écrire un programme peut être effectuée tant que vous apprenez la grammaire. Je ne pense pas qu'il y ait beaucoup de gens qui ne peuvent pas comprendre le sens, peu importe combien de fois ils regardent la grammaire. Dans une telle situation, les points qui me font sentir "Je ne peux pas écrire un programme" et marcher dessus sont les suivants.

  1. Même si vous essayez de lire le code d'un produit existant, vous ne pourrez pas le suivre lorsque vous atteindrez une certaine profondeur.
  2. Même si j'essaie d'en faire un simple, quand je fais un modèle, je ne peux pas passer au suivant

Situations courantes au palier des escaliers

Ce sont «quelque chose» que tout le monde peut ressentir, et on les trouve souvent sur le terrain. Il est inévitable que vous deveniez un programmeur qui ne pourra écrire des programmes que dans le modèle de script de transaction [^ 1] lorsque vous apprenez uniquement la grammaire et la placez dans le site de développement. Cela signifie que lorsque vous entrez dans le champ à un niveau où vous ne connaissez que la grammaire, vous ne disposez que d'un ensemble de compétences qui implémente de manière procédurale le traitement métier dans une partie fixe de l'application, comme le soi-disant «artisan d'action» à l'apogée de Struts. Vous ne pourrez pas. Dans cet état, vous ne connaissez pas ou ne comprenez pas le contenu du traitement autre que votre propre partie d'implémentation. Le logiciel créé par cette méthode à forte intensité de main-d'œuvre (appelée modèle à forte intensité de main-d'œuvre) est extrêmement vulnérable à l'ajout de fonctions et au dépannage. Ce qui est pire, c'est que grandir dans un tel environnement le prend pour acquis et contribue à arrêter l'apprentissage de la programmation. Si vous arrêtez d'apprendre, vous pourrez non seulement programmer avec les modèles à forte intensité de main-d'œuvre que vous connaissez, mais vous serez également du côté obscur de l'imposer. C'est un type qui apparaît souvent comme un SE anti-modèle. Si vous voyez une telle personne, veuillez présenter cet article.

Il n'y a pas d'autre choix que de monter dans l'ordre dès le palier

Alors, comment pouvez-vous atteindre un niveau où vous pouvez être sûr que le programme fonctionnera sans que vous ayez à marcher dessus? Dans ce qui suit, en supposant l'acquisition de langages orientés objet tels que Java, C # et JavaScript, nous organiserons la croissance en quatre étapes. Au fait, je pense que 1, 2 et 3 sont mauvais et 4 est en train d'étudier.

[^ 1]: Script de transaction

4 étapes de développement de la programmation (langage orienté objet)

1. 1. Comprendre la grammaire et suivre le livre

Jetons la perfection

De l'extérieur, cet état ressemble à "écrire un programme". Cependant, je pense que beaucoup de gens qui le font pensent qu'il est impossible de créer une application par eux-mêmes simplement en copiant quelque chose. Je pense que la plupart des gens trébuchent sur l'interface, les génériques, les expressions lambda, LINQ, etc. en c #. Il est trop tôt pour se sentir frustré ici, car la compréhension des étapes 3 et 4 décrites plus loin approfondira la compréhension en spirale. C'est la route que tout le monde a empruntée. À ce stade, je pense qu'il suffit de copier et de résoudre certains des problèmes à la fin des chapitres qui sont courants dans les livres. Quant au problème de fin de chapitre, le questionneur ne comprend pas correctement le niveau du lecteur, et le contexte requis pour résoudre le problème varie d'une personne à l'autre, donc la perfection est "Je ne peux pas poser toutes les questions, donc je ne peux plus le faire". Le principe devrait venir quelque part tôt. Dans tous les cas, il est important de fixer une date limite pour étudier la grammaire, et je pense qu'il vaut mieux ne pas continuer indéfiniment. Je pense que c'est environ 2 semaines à 1 mois au plus.

Veillez à écrire le code proprement, même pour la première fois

Voici quelques points à noter lors de la procédure de copie et de développement d'applications qui l'appliquent un peu à ce stade. ・ Faites autant que possible attention aux noms de classe, aux noms de méthodes, aux noms de variables, etc., et veillez à les écrire proprement. ・ Il est recommandé de lire également des livres pour écrire proprement, tels que des codes lisibles. Puisque l'exemple de code dans les livres et en ligne n'est pas toujours correct, prenez l'habitude d'effectuer des vérifications (analyse statique) à l'aide de la fonction d'analyse de code de Visual Studio et IntelliJ et Sonarlint / FindBugs / PMD / CheckStyle of Eclipse. S'il te plait donne moi. Surtout, si vous n'écrivez pas de code propre, même s'il s'agit d'une application basique, après un mois, vous ne saurez pas ce que vous avez écrit, et cela vous amènera à vous éloigner de la programmation.

2. Utilisez la bibliothèque pour créer quelque chose

Si vous avez un cloud, vous pouvez créer quelque chose qui fonctionne maintenant

Même dans l'état de l'étape 1, si vous créez une application en combinant des bibliothèques et des services externes, vous pouvez créer un logiciel qui fonctionne dans une certaine mesure. Si vous utilisez le cloud, vous pouvez même développer ce que vous fournissez en tant que service. De nos jours, si vous utilisez des services cloud, il n'est pas faux de dire que vous pouvez créer une application même si le programme n'est pas dans un état où vous pouvez l'écrire.

J'ai quelque chose qui fonctionne, mais je ne m'inquiète pas à cause de mes compétences en programmation

Cependant, même dans cet état, l'angoisse de «pouvoir faire quelque chose qui fonctionne…» ne doit pas être résolue. Je pense que la principale raison de cette anxiété est qu'elle n'a pas atteint le 4ème stade décrit ci-dessous. Le modèle de conception est largement défini, mais en comprenant les modèles architecturaux tels que MVC et MVVM, il est possible de supprimer ce qui est nécessaire pour le développement d'applications, et l'anxiété disparaîtra progressivement. Cependant, tout d'abord, la création d'un logiciel fonctionnel révèle votre état actuel. Si vous trouvez cela difficile dans cette deuxième phase, ce n'est peut-être pas un manque de capacité de codage, mais un manque de compréhension du WEB, de l'accès aux bases de données et du cloud. Tout d'abord, je pense que le raccourci est de rechercher les bases du domaine dans lequel vous pensez ne pas être bon dans les livres et de comprendre le fonctionnement de base. En utilisant la bibliothèque tout en enquêtant, les compétences standard du développement d'applications seront considérablement améliorées avant que vous ne le sachiez. Le suivant est orienté objet! Avec ce sentiment, certaines personnes peuvent passer à l'apprentissage orienté objet après avoir appris la grammaire, mais il est recommandé de créer d'abord une application fonctionnelle. Après cela, je pense que l'ordre du refactoring orienté objet sera une bonne motivation pour continuer.

3. 3. Conception et mise en œuvre orientées objet

Besoin de sortir de la programmation procédurale

À partir de ce stade, je pense que ce sera le plus grand obstacle pour ceux qui ne sont pas bons en programmation. Dès que vous rencontrez une application qui utilise des techniques d'héritage, de polymorphisme et d'encapsulation, votre programme ne peut pas suivre. Ou, je pense que beaucoup de gens ont estimé qu'il ne sera pas possible de concevoir l'ajout correct de fonctions à de telles applications. Vous ne pouvez pas facilement surmonter cet obstacle sans programmer l'interface et comprendre les relations entre is-a et has-a. Cependant, il est étonnamment facile de surmonter cela en demandant à quelqu'un qui sait déjà de l'expliquer lors de l'écriture du code, plutôt que de le surmonter vous-même. Ce n'est pas vraiment facile, alors n'ayez pas peur de demander aux gens et de passer à autre chose.

Refactoriser votre code

Je pense que le raccourci pour comprendre l'orientation des objets est la programmation par paires. Cependant, s'il n'y a pas une telle personne autour de vous, la refactorisation de votre ancien code selon le principe SOLID vous aidera à comprendre les effets et la signification de l'orientation objet.

4. Connaître et utiliser les modèles de conception

Je suis toujours inquiet d'écrire une architecture d'application

Avec une certaine compréhension de l'orientation des objets, vous serez beaucoup plus capable de lire et d'écrire du code. Il est peut-être facile de modifier le code des produits de production. Cependant, dans cet état, je pense qu'il existe encore des incertitudes concernant la construction de nouvelles applications et la mise en œuvre de processus d'affaires complexes.

Utilisez la sagesse de nos prédécesseurs dans les modèles de conception

Un outil pour surmonter cela est le modèle de conception. Les modèles de conception tels que la conception d'accès à la base de données et les méthodes de division des processus métier sont pleins de sagesse pour le faire efficacement. Les applications avec l'orientation d'objet et les modèles de conception corrects ont également l'avantage d'être faciles à comprendre et à modifier. Surtout, je pense que cela a pour effet de réduire considérablement le temps et les efforts nécessaires pour expliquer aux gens qui entrent plus tard. Cependant, il existe d'innombrables modèles de conception dans le monde. Il couvre un large éventail de principes SOLID pour l'orientation des objets, les modèles de conception GoF et les modèles architecturaux tels que MVC et MVVM pour la réalisation de l'interface utilisateur. Il y en a beaucoup, mais ne soyez pas dégoûté. (Lequel commencer dépend du but, mais je ne pense pas que ce soit le moyen pour le chien de comprendre ce que c'est.) Si vous pouvez comprendre le modèle de conception dans une certaine mesure, je pense que l'écriture d'un programme sera amusant et inévitable. En regardant les applications à forte intensité de main-d'œuvre, vous mourrez d'envie de refactoriser.

Répétez les quatre étapes

L'apprentissage du codage, la création de choses qui fonctionnent avec des bibliothèques, la réflexion sur les objets et la refactorisation avec des modèles de conception peuvent être mieux compris en répétant chacun d'eux dans un court laps de temps plutôt qu'en passant beaucoup de temps. Veuillez définir une période et y travailler.

Il y a quelque chose qui se fera en apprenant

Sur la base des étapes d'apprentissage ci-dessus, j'aimerais écrire deux points qui sont rarement traités par les débutants.

Passez des mois à apprendre le premier livre que j'ai rencontré pour apprendre la grammaire

La plupart des choses que vous trouvez probablement difficiles à comprendre à propos des programmes concernent la programmation orientée objet et fonctionnelle. Si le livre n'a pas de description à ce sujet, je ne perdrai jamais ma faiblesse même si je le lis pour toujours. Changeons le livre. Et, comme expliqué dans les quatre étapes ci-dessus, même si vous ne comprenez que la grammaire, vous ne pouvez pas atteindre le point où vous pouvez maîtriser le langage orienté objet avec confiance, alors ne chérissez pas le même livre de grammaire pour toujours et procédez au développement de différents livres et applications. Regardons.

J'utilise un vieux livre

Comme c'est souvent le cas avec l'apprentissage de C #, je vois des gens lire des livres traduits basés sur les versions 3 et 4. Ce n'est pas complètement dénué de sens, mais je ne pense pas qu'il soit bon d'être aveugle au livre "Vieux mais très apprécié par Amazon". (Je ne pense pas que ce soit aussi bien de garder une trace des dernières) Cependant, j'ose l'écrire contrairement à cela, mais «Effective Java 2nd edition» est un vieux livre, mais il vaut quand même la peine d'être lu car c'est un livre qui contient les parties des étapes 3 et 4 écrites ci-dessus. Par conséquent, si vous souhaitez vraiment utiliser un ancien livre pour l'apprentissage de la grammaire, nous vous recommandons également d'acheter et de lire un livre avec les spécifications de la nouvelle version.

Ma recommandation comme prochain livre de livres de grammaire en Java et C

Voici quelques livres recommandés pour suivre les dernières spécifications linguistiques et passer aux 3e et 4e étapes.

Recommended Posts

Résumé de la façon de monter les escaliers de programmation
Voici quelques articles auxquels les débutants en programmation se sont référés.
Comment utiliser la méthode link_to
Comment utiliser la méthode include?
Comment utiliser la méthode form_with
Comment trouver l'angle moyen
Comment maîtriser la programmation en 3 mois
Comment utiliser la classe wrapper
Comment ajouter la fonction de suppression
[Java] Comment utiliser la classe File
Comment désactiver le regroupement d'erreurs
[Rails] Comment utiliser la méthode de la carte
Etudier comment utiliser le constructeur (java)
[Traitement × Java] Comment utiliser la boucle
Comment déterminer le nombre de parallèles
[Java] Comment régler la date sur 00:00:00
[Java] Comment obtenir le répertoire actuel
[Traitement × Java] Comment utiliser la classe
Comment trier une liste de SelectItems
Comment obtenir la date avec Java
[Traitement × Java] Comment utiliser la fonction
[Java] Comment utiliser la classe Calendar
Les débutants de Gorigori ont résumé comment utiliser la base de données à l'aide de la console rails Ntiunus
[Rails] Comment décider de la destination par "voies ferrées"
Comment trouver la cause de l'erreur Ruby
Comment utiliser le module caméra OV7725 (ESP32-WROVER-B)
Comment vérifier le journal dans le conteneur Docker
Personnalisez la répartition du contenu de Recyclerview
Comment obtenir le jour d'aujourd'hui
[Pour les débutants] Comment implémenter la fonction de suppression
Comment effacer la base de données lors de la recréation de l'application
Sortie de la façon d'utiliser la méthode slice
La première année de vie professionnelle a résumé comment passer l'examen Java Bronze
[Java] (pour MacOS) Méthode de définition du chemin de classe
Comment utiliser la méthode replace () (Java Silver)
Comment afficher le résultat du remplissage du formulaire
Comment trouver le score total et le score moyen
[Java] Comment obtenir l'URL redirigée finale
Comment créer la blockchain la plus simple de Ruby
[Java] Mémo sur la façon d'écrire la source
[Spring Boot] Comment se référer au fichier de propriétés
Comment vérifier les commandes Rails dans le terminal
[Introduction à Ruby] Comment utiliser la méthode slice
[Java] Comment obtenir l'URL de la source de transition
Comment changer l'action avec plusieurs boutons d'envoi