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.
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.
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.
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
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.
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.
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.
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.
À 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.
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.
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.
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.
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.
Sur la base des étapes d'apprentissage ci-dessus, j'aimerais écrire deux points qui sont rarement traités par les débutants.
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.
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.
Voici quelques livres recommandés pour suivre les dernières spécifications linguistiques et passer aux 3e et 4e étapes.
Recommended Posts