Accueil Blog (en) Vous POUVEZ enseigner de nouvelles astuces à un vieux chien

Vous POUVEZ enseigner de nouvelles astuces à un vieux chien

Brian Stevens | Le 9 juillet 2022

Le parcours d’un développeur dans la transition vers la plate-forme Acumatica xRP

Note de la rédaction: Dans le post de Brian, il partage son point de vue unique dans son voyage en devenant un développeur Acumatica après avoir passé deux décennies en tant que programmeur « Top-Down ». Il fournit une perspective intéressante ainsi que quelques conseils avisés pour d’autres développeurs qui rejoignent la famille Acumatica du monde de la programmation « old-school » qui devrait résonner avec beaucoup dans le monde ERP en lisant ce blog.

Vous POUVEZ enseigner de nouvelles astuces à un vieux chien

Le monde est plein de grands... de grands musiciens, de grands leaders et, bien sûr, de grands développeurs.  Quel que soit le grand que vous espérez atteindre dans la vie, personne ne commence comme grand, mais ils partagent tous quelque chose en commun.  Tout le monde doit commencer quelque part.

L’un de mes objectifs professionnels est de devenir un excellent développeur sur la plate-forme Acumatica xRP.  Bien que j’aie fait des progrès importants, rien ne remplace l’expérience, et chaque jour est une nouvelle expérience d’apprentissage.  Avec 20 ans de programmation sur PROGRESS 4GL pour prendre en charge un système hérité, passer à C # et la plate-forme Acumatica xRP a été rempli de moments de frustration, d’illumination et oui - même de grandeur.  Si vous commencez et lisez la suite pour apprendre de mon voyage, j’espère que vous comprendrez que d’autres ont été là où vous êtes - savoir où trouver les meilleures ressources est vital et que vous POUVEZ réussir dans cette entreprise.

Défis rencontrés dans la transition

Top-Down n’est PAS la même chose que Object-Oriented... sauf lorsque c’est le cas

Pour comprendre mon combat en tant que développeur plus âgé, vous devez d’abord comprendre que je n’ai pas grandi dans le monde de la programmation orientée objet (OOP).  Mon monde était top-down, où vous commencez en haut de la page et dites au programme exactement quoi faire.  Les compétences en programmation étaient basées sur une compréhension du langage et de la syntaxe, la compréhension des étendues de transaction et des interfaces utilisateur relativement statiques.  Lors du passage à C #, l’idée qu’une interaction pourrait déclencher une validation et une mise à jour apparemment aléatoires avant même que l’utilisateur n’ait fini de remplir le formulaire semblait être un pur CHAOS. Mais ensuite, finalement, j’ai saisi un concept qui a changé le cours de ma transition vers OOP.

“Top-Down is NOT the same as Object-Oriented… except when it is.”  What I mean here is that I finally realized that there is a structure in the chaos.  Sure, an event may fire in the middle of your current code block, but there IS an order.  By realizing that I can write a code block to execute “top-down” as I was accustomed: event handlers virtually exist as subroutines with an implied “if <condition> then…” within my code.  Code within OOP is still “top-down” in a way, but with the ability for real-time interaction with the code to alter its behavior, thus enabling a more natural interaction with the end-user.  This gave me a point of reference as a pathway towards enlightenment.

Apprendre en isolement virtuel

Lorsque mon employeur a pris la décision d’adopter Acumatica ERP, mon homologue s’est vu confier la tâche de gérer l’ensemble du projet et de configurer le système.  Après avoir passé près de 18 ans à améliorer notre système hérité, j’ai été désigné nouveau développeur C # pour Acumatica.  En tant qu’équipe, nous avons appris le côté application du logiciel, et je me suis concentré sur l’apprentissage de C # et de la plate-forme Acumatica xRP, tandis que mon homologue a appris les scénarios GI, Import / Export , événements d'affaires, etc. En conséquence, nous avions tous les deux l’application comme point de référence commun, mais nous étions tous les deux en isolement virtuel pour apprendre nos nouvelles compétences.  Notre partenaire Acumatica a fourni un soutien substantiel dès le début pour la planification et la mise en œuvre, mais il n’y avait rien d’autre à faire que de retrousser mes manches et de commencer à étudier si j’allais apprendre à me développer sur la plate-forme Acumatica xRP.  Je dois dire que, bien qu’il y ait eu des ressources d’apprentissage disponibles, ce fut une période particulièrement effrayante et excitante dans ma carrière.

Essais et erreurs, et erreurs, et erreurs

Thomas Edison est crédité d’avoir dit: « Les résultats négatifs sont exactement ce que je veux. Ils sont tout aussi précieux pour moi que des résultats positifs. Je ne peux jamais trouver la chose qui fait le mieux le travail jusqu’à ce que je trouve ceux qui ne le font pas.  Cela résume mon expérience d’apprentissage, surtout au début.  Je me souviens d’avoir suffisamment appris pour faire quelque chose, d’avoir trouvé une grande excitation dans le succès, puis de sombrer dans le désespoir alors que je luttais pour répéter ce succès.  Ayant passé la majeure partie de ma carrière à produire des résultats, parfois même au téléphone avec la personne qui fait la demande, apprendre dans l’isolement virtuel me conduirait sur des routes qui conduiraient inévitablement à une semaine d’essais et d’erreurs, et encore plus d’erreurs.  Je vous supplie d’apprendre de mon ignorance... Bien que cette approche vous enseigne des centaines de façons de ne pas le faire, il y a une meilleure façon.  Il suffit de savoir où chercher.  Heureusement pour vous, c’est la prochaine... Lisez la suite!

Ressources trouvées

Nous ne faisons que commencer

Si vous ne connaissez pas encore C #, vous devez d’abord l’apprendre.  Lorsque vous êtes prêt à commencer, rendez-vous sur le site Web de Microsoft pour obtenir des ressources de formation gratuites.

Une fois que vous avez les bases de C #, j’ai trouvé que j’apprends plus vite quand j’utilise ce que j’ai appris.  Ne vous inquiétez pas si vous n’êtes pas un pro chevronné avec C # : L’expérience et l’échec est le meilleur professeur. Rendez-vous sur Acumatica Open University (http://openuni.acumatica.com/) pour commencer votre voyage.  J’ai appris d’un ensemble précédent de guides de formation et de vidéos sur Open University, mais j’ai commencé à examiner les nouveaux guides de formation qui s’y trouvent maintenant.  La documentation mise à jour est incroyable, et même après 2 ans de développement sur Acumatica, le nouveau matériel fournit des informations nouvelles et très utiles.

Une excellente ressource pour les nouveaux développeurs Acumatica est la page Onboarding New Acumatica Developers qui fournit une feuille de route globale à toutes les ressources dont vous avez besoin - y compris des guides de démarrage rapide, de la documentation et de la formation pour les développeurs.

Il faut un village

Une fois que vous avez terminé les premiers cours de formation et suivi le Guide de démarrage rapide pour les développeurs, votre boîte à outils devrait commencer à se remplir de compétences qui vous permettent d’apporter des améliorations fonctionnelles significatives à Acumatica.  Si nous avions seulement besoin de reproduire ce qui est dans les guides de formation, nous serions prêts!  Cependant, rien de ce que je fais ne semble jamais apparaître dans les guides de formation en disant: « Brian, tu as juste besoin de faire ça. »  Sans un autre développeur dans la salle pour demander, j’avais besoin d’un support personnalisé, et je veux dire dans un volume que vous ne pouvez pas vous permettre d’acheter dans les heures de support des développeurs.  Heureusement, les poches profondes ne sont pas nécessaires pour obtenir de l’aide avec la plupart des questions des développeurs.

La clé pour éviter l’immense frustration qui m’a frappé dès le début est de s’intéresser tôt à demander le soutien de la communauté.  Rendez-vous sur stackoverflow et recherchez des mots-clés liés à votre problème.  Si vous commencez la recherche avec [Acumatica], les résultats seront renvoyés dans les questions posées avec la balise Acumatica.  Certains des grands développeurs que j’ai appris à connaître au cours des 2 dernières années ont commencé comme contacts sur stackoverflow.  Acumatica en tant qu’entreprise et le programme Acumatica Developer MVP garantissent que toutes les questions étiquetées Acumatica sont vues.  Obtenir une bonne réponse a plus à voir avec la façon dont vous posez votre question, mais c’est un post pour un autre jour.  Disons simplement inclure autant d’informations que possible avec des exemples de code et en rester là pour l’instant.

Ce n’est pas ce que vous savez. C’est qui vous connaissez!

Comme j’ai terminé mes 6 premiers mois de développement, j’ai encore lutté constamment.  Ayant finalement adopté StackOverflow comme ma source d’aide de référence, la communauté était beaucoup plus petite qu’elle ne l’est maintenant... même il y a seulement 18 mois.  Notre partenaire Acumatica m’a mis en contact avec Mark Franks, l’évangéliste de la plate-forme chez Acumatica, et les deux m’ont dit: « Allez au sommet à la fin du mois de janvier et participez au Hackathon. »  Je me souviens d’avoir pensé: « Un Hackathon, hein?  Je n’ai pas encore assez de compétences pour faire quoi que ce soit!  J’ai dit à Mark que j’apprenais dans l’isolement virtuel et que j’avais vraiment besoin d’un moyen de mieux me brancher.  Il a répété: « Vous devez vraiment aller au Hackathon.  Nous voulons des gens de tous les domaines dans les équipes, et vous établirez des contacts qui seront en mesure de vous aider à apprendre. paraphrasé de mémoire (Note de la rédaction: Brian a une bonne mémoire.)

J’ai porté l’information à mon patron qui m’a toujours soutenu.  Sans hésitation, il a dit: « Réservez-le! »  Permettez-moi de le dire très clairement.  RIEN n’a raccourci ma courbe d’apprentissage autant qu’un week-end à mon premier Hackathon Acumatica.  Pas le Sommet.  Pas le cours de formation que j’ai suivi au Sommet. RIEN.  Le MVP de notre équipe, Joshua van Hoesen, a eu la gentillesse de répondre à mes questions, et il a donné un aperçu de choses que je ne savais même pas demander.  Quand je suis rentré chez moi, je savais comment déboguer mon code avec le débogueur intégré Visual Studio, même si mon instance de développement se trouvait sur un serveur distant.  Je n’essaie pas de vous vendre en dépensant de l’argent pour aller au Sommet et au Hackathon.  Je vous dis que ce tournant a fait passer mon expérience de « Apprenant dans l’isolement virtuel » à « Développeur à distance habilité ».

Le voyage continue

Les enseignants font les meilleurs élèves

Il y a des années, j’ai constaté que le progress email group (PEG) a propulsé mon apprentissage de manière exponentielle lorsque j’ai commencé à répondre aux questions que d’autres posaient.  Pourquoi?  Tout simplement, les enseignants font les meilleurs élèves.  La recherche et la variété au-delà de la vue quotidienne normale a la capacité innée d’enseigner à celui qui répond aux questions plus que celui qui cherche désespérément cette pépite qui résout le problème.

J’espérais répéter mon expérience d’il y a si longtemps, et le soutien de la communauté sur StackOverflow prouve que peu de choses ont changé en 20 ans.  Lorsque je pose une question, j’ai besoin d’une réponse, mais j’ai peu de capacité à ce moment-là à élargir mes pensées au-delà de la réparation de la chose qui ne fonctionne pas.  Pour partager mes connaissances, il faut réfléchir à ce qui se trouve dans la question, à ce qui, à mon avis, pourrait manquer à la question, à la façon dont je pourrais atteindre l’objectif et à la meilleure façon de transmettre ma réponse afin que la personne qui pose la question puisse la comprendre.  Mes réponses sont-elles toujours les meilleures?  Bien sûr que non!  Je ne suis que 2 ans. Mais la plupart du temps, ils aident.  Les développeurs ont souvent juste besoin d’un coup de pouce dans la bonne direction, et nous pouvons tous répondre à une question de temps en temps.

Prenez de bonnes notes

En revenant du sommet le plus récent, j’ai ressenti un profond désir de rejoindre des personnes comme Sergey Marenich et Yuriy Zaletskyy pour écrire un blog de développeur. J’avais utilisé StackOverflow comme un moyen de documenter mes difficultés (via la question que j’ai posée) et j’ai réalisé que ces leçons apprises pourraient un jour aider les nouveaux développeurs. C’est ainsi que Acumatica.dev est né.  La clé à retenir est que tout ce qui vous aide à apprendre le mieux, prenez de bonnes notes. Que ce soit dans un blog, un cahier ou en documentant vos questions et vos résultats dans les messages sur Stack Overflow, trouver un moyen de revenir aux leçons que vous avez apprises renforce ce que vous avez appris. Tout aussi important, il permet de partager cet apprentissage avec les autres afin que nous puissions tous devenir de grands développeurs à temps.

Je suis juste ici pour Hack (toux, toux) – Hackathon Année 2

À la fin du mois de janvier, j’ai eu la chance de pouvoir revenir pour mon deuxième Hackathon (oh, et oui, le Sommet qui a suivi.)  Une fois de plus, le Hackathon a été le point culminant de mon année.  Bien que j’aie établi des contacts ma première année qui m’ont aidé tout au long de l’année, j’ai pu les revoir, rencontrer d’autres grands développeurs et même contribuer activement à notre projet d’équipe cette année.  Bien que j’aie apprécié le Sommet et la session de formation du côté de l’application cette année, le Hackathon reste l’événement de l’année pour moi.  Notre MVP d’équipe, Fernando Amadoz, m’a aidé à aller au-delà de mon développement normal et à élargir ma vision du monde du développement Acumatica.

Mon voyage ne fait que commencer, mais je suis plus loin que certains d’entre vous... mais juste un peu.  Mon espoir sincère est que l’histoire de mon voyage, de mes luttes et de mon chemin vers la grandeur vous encourage, peut-être même vous éclaire, mais vous rapproche surtout un peu plus de devenir le grand développeur que nous savons tous que vous pouvez être.

Auteur du blog

Brian est le développeur principal de SETECH Supply Chain Solutions, LLC. SETECH fournit des solutions sur mesure basées sur les meilleures pratiques pour améliorer la disponibilité des matériaux indirects tout en réduisant le coût total de possession pour leurs clients.

Recevez des mises à jour de blog dans votre boîte de réception.