JavaRush /Blog Java /Random-FR /Une langue pour les gouverner tous

Une langue pour les gouverner tous

Publié dans le groupe Random-FR
Il existe un langage qui se cache sous chaque couche de code, dans n'importe quel langage de programmation. Et il attend d'être découvert... Traduction et adaptation d'un article d'Eric Girois de la communauté Better Programming sur Medium. Une langue pour les gouverner tous - 1Lorsque j'ai écrit cet article, le nombre de requêtes de recherche du style « quel langage de programmation apprendre » dépassait 517 millions (!). Chaque page de la liste des résultats de recherche indique les avantages d'un langage particulier par rapport aux autres, et dans 90 % des cas, on vous recommandera la même chose, comme Python, JavaSctipt (ou quelque chose parmi les 3 meilleures évaluations faisant autorité en matière de langages. Le La note actuelle pour juillet est ici ;) Permettez-moi d'être audacieux et d'être officiellement en désaccord avec les 517 millions de résultats et de dire que le premier langage de programmation que vous devriez apprendre est la logique . Il ne suffit pas de savoir écrire du code. Le marché est surpeuplé de diplômés de divers cours, c'est pourquoi le poste de développeur junior a pratiquement cessé d'exister. Pour réussir dans ces réalités, vous devez non seulement écrire du code, mais aussi avoir un esprit logique.

Mon premier cours d'informatique

Ma première rencontre avec l'informatique s'est produite dans un cours au choix en dixième année. Je suis arrivé en classe et j'ai ressenti un sentiment de joie : il y avait un tas de boîtes de glaces et de pots de sirops dans la classe. Lorsque nous avons pris place, le professeur a annoncé : « Aujourd'hui, nous allons faire des dimanches ( un dessert à base de glaces et de sirops - ndlr ). Mais à une condition : tu dois écrire les instructions exactes pour préparer le dessert, et je les suivrai. « Pas de doute , pensai-je, ce sera facile . » En seulement une minute, j'ai noté les instructions parfaites : Placer trois boules de glace à la framboise dans une tasse Verser deux cuillères à soupe de sirop de chocolat dans cette tasse Ajouter de la chantilly dans la tasse Ajouter des pépites et une cerise sur le dessus du dimanche Puis mon L’enseignante – agissant comme « l’ordinateur » – a suivi exactement les instructions, elle a exécuté la performance la plus caustique que j’ai jamais vue. Elle a commencé à « attaquer » furieusement la boîte en carton de glace, mais le couvercle durable est resté indemne. "D'accord, enlevez d'abord le couvercle", dis-je, dans l'espoir d'avoir un dessert rapidement. "Vous n'avez pas écrit correctement les instructions pour moi, donc malheureusement je n'ai pas pu faire Sunday NEXT pour vous!"

Avance rapide jusqu'à la tentative n°2

Ouvrir un carton de glace à la framboise en retirant le couvercle Placer trois boules de glace à la framboise dans une tasse Ouvrir le sirop de chocolat et ajouter deux cuillères à soupe dans cette tasse Ouvrir la chantilly et en ajouter dans la tasse Ajouter des pépites et une cerise sur le dessus du dimanche, j'étais sûr d'avoir réussi celui-ci une fois. Le professeur a enlevé le couvercle, a ramassé trois boules de glace et les a mises dans une tasse. Enfin, mon dimanche est sur le point d'être prêt ! Elle ouvrit ensuite le sirop de chocolat et mit deux cuillères à soupe dans la tasse. Mais pas deux cuillères de sirop - juste des cuillères, sans ! Mes instructions n'étaient encore une fois pas assez précises. Une fois tout terminé, j'ai reçu une tasse de glace, deux cuillères en métal, une tonne de crème fouettée et environ 300 boules de pépites. Il semble qu'à ce moment-là tout soit devenu clair pour moi : un ordinateur est une entité guidée par une logique pure. Il ne comprend pas le contexte et ne fait pas d'hypothèses. Il suit un ensemble d'instructions strictes et les suit à la lettre. Les instructions finales pour préparer le dimanche étaient terriblement longues, mais il fallait : S'il n'est pas déjà ouvert, ouvrir l'emballage de tous les éléments suivants : Glace Framboise, Sirop de Chocolat, Garnitures et Crème Chantilly Prendre une tasse de l'étagère et placez-la devant vous. Prenez une cuillère à glace et, une à la fois, versez et placez trois boules de glace dans une tasse. Quand tout est fait, posez la cuillère sur la table. Prenez une cuillère à sirop de chocolat si vous n'en avez pas déjà une. Prenez ensuite une cuillerée de sirop de chocolat et versez-la dans une tasse. Répétez cette action deux fois. Placez le sirop de chocolat sur une étagère une fois terminé. Retournez la bouteille de chantilly et appuyez avec votre doigt sur le bouton situé près du bec de la bouteille pendant trois secondes, puis remettez la bouteille dans sa position d'origine. Saupoudrez 40 granules de pépites sur la crème glacée et le sirop de chocolat dans la tasse, puis remettez le shaker à pépites dans sa position d'origine. Retirez une cerise du pot de cerises et placez-la soigneusement sur le dimanche. Donnez à l'élève la cuillère du dimanche et du dessert. Le dernier commandement des instructions était très important, car sans lui, l'enseignante commençait elle-même à manger le dimanche. C’est la réalité de la programmation : vous devez donner les instructions les plus précises à l’ordinateur. Essentiellement, tous les langages de programmation sont constitués d’instructions.

Carrières dans le développement de logiciels

Le développement de logiciels est à un stade de son développement où en parler comme d’une industrie distincte semble trop général. Et le poste de « développeur de logiciels » semble vague à la lumière de cela. Deux développeurs possédant des compétences différentes peuvent être également recherchés sur le marché du travail, ce qui suggère qu'une carrière réussie dans le développement nécessite plus que de simples compétences en programmation. Les développeurs expérimentés ont un trait commun distinct de la logique de programmation . Les meilleurs développeurs sont dotés d’un esprit critique. Ceci est important car la plupart des projets de développement de logiciels sont des cauchemars patchwork mal documentés. Il faudra quelqu’un doté d’un esprit critique pour collecter toutes les données et combler les lacunes. Par conséquent, les spécialistes qui ne sont pas capables de relier les faits en un tout sont à la traîne. Tout cela nous amène à une autre affirmation très importante : les principes fondamentaux de l’informatique – aujourd’hui et demain – sont primordiaux. Ils sont plus importants que la capacité à écrire du code. Les langues populaires vont et viennent. Les cadres deviennent obsolètes et les entreprises répondent aux demandes changeantes du marché en combinant la pile de technologies utilisées. Qu'est-ce qui reste inchangé ? Bases des bases.

Comment développer la pensée logique

La logique et la pensée critique peuvent et doivent être développées. Je vous conseille de faire attention aux points suivants :

1. Étudier l'efficacité des algorithmes dans les environnements d'exécution

Connue sous le nom de notation Big-O, elle est utilisée pour décrire la complexité des algorithmes. Si vous êtes capable d'évaluer votre code en termes Big O et d'analyser le nombre d'étapes effectuées par rapport au temps passé, considérez que vous avez fait le premier pas dans la bonne direction.

2. Apprenez les structures de données

La structure des données est la base de tout programme complexe. Savoir quel type est le meilleur à utiliser dans quel cas est une compétence importante. Les structures de données sont directement liées à la complexité des algorithmes, car choisir la mauvaise structure peut tuer le programme.

3. Lire/regarder/écouter

Eh bien, pour comprendre les bases, lisez des livres sur les concepts de conception, les meilleures pratiques et le style de codage. Il est fortement recommandé à ceux qui apprennent la programmation de lire :
  • « Techniques de conception orientées objet. Modèles de conception »(E. Gamma R. Helm R. Johnson J. Vlissides),
  • « Refactorisation. Améliorer le code existant » (M. Fowler),
  • « Code parfait » (S. McConnell)
  • « Code propre » (B. Martin)
  • « Programmeur pragmatique » (E. Hunt)
  • « Algorithmes : construction et analyse » (T. Cormen, C. Leiserson, R. Rivest et K. Stein)

4. Entraînez-vous !

On ne peut pas devenir un bon violoncelliste sans des centaines d’heures de pratique. La pratique quotidienne est la clé du succès de la programmation. Il existe aujourd'hui de nombreuses plateformes en ligne sur lesquelles vous pouvez trouver des milliers de tâches qui nécessitent une compréhension des structures de données et des algorithmes (HackerRank, LeetCode, CodeWars et autres).
Les problèmes de programmation Java, du simple au complexe, sont disponibles sur JavaRush. Il y en a plus de 1 200 dans le cours, ainsi que des mini-projets et des jeux de tâches .
Pour moi, le moyen le plus efficace de travailler avec de telles plateformes est de réfléchir à une approche unique du problème et de publier votre solution sur Github. Examinez ensuite les meilleures solutions à un problème similaire et analysez les approches d’autres programmeurs. Cela nous amène à notre dernier conseil :

5. Analysez le code des autres

La principale erreur dans l'apprentissage de la programmation et dans les premières étapes du travail est l'auto-isolement. Le développement de logiciels est un domaine qui dépend en grande partie du travail d'équipe. Nous créons des normes ensemble, faisons des erreurs et, au fil du temps (encore une fois, par essais et erreurs), nous déterminons ce qui fonctionne le mieux. Prendre le temps de lire le code de développeurs expérimentés sera payant. Assurez-vous simplement que le code est réellement bon.

Conclusion

Conseil personnalisé : n’ayez jamais honte de ce que vous ne savez pas (encore). Comme indiqué ci-dessus, cette industrie est énorme, le nombre de langues est incroyable et il existe une mer d'informations. Il faut beaucoup de temps et d'efforts pour se forger au moins une idée générale de la programmation, encore plus pour acquérir de l'expérience, et bien plus encore pour devenir un vrai pro. Quand j'aurai enfin réussi, je vous le ferai savoir :)
Commentaires
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION