Un langage pour gouverner tous

Caché sous une couche de code se trouve un langage qui aspire à être appris.

Un langage pour gouverner tous

Au moment de la rédaction de cet article, la requête « quel langage de programmation apprendre en premier » renvoie 517 millions de résultats de recherche. Chacun de ces sites vante un langage particulier, et 90 % d'entre eux recommanderont finalement Python ou JavaScript.

Sans plus attendre, je voudrais déclarer officiellement que tous ces 517 millions de sites se trompent et affirmer que le langage à apprendre en premier est la logique fondamentale.

Savoir coder ne suffit pas. Le marché est si saturé de diplômés d'universités et de cours que le poste de junior a quasiment disparu*. Pour réussir dans le monde d'aujourd'hui, vous devez à la fois coder et posséder une pensée logique fondamentale avancée.

* ici et ailleurs, veuillez garder à l'esprit qu'il s'agit d'une traduction, et que la situation du marché du travail pour l'auteur et dans votre pays peut être différente (comme d'autres nuances), ce qui, cependant, ne rend pas l'article original moins valide — note de la traduction.

Ma première leçon d'informatique

Ma première rencontre avec l'informatique a eu lieu lors d'un cours optionnel que j'ai pris en 10ème classe. Dès le premier jour, en entrant dans la salle de classe, j'ai été émerveillé en voyant devant moi un grand nombre de seaux de glace et de garnitures variées. Une fois tout le monde installé, la professeur a déclaré :

« Aujourd'hui, nous allons déguster des glaces préparées par nos soins. Mais avec une condition : vous devez rédiger une liste d'instructions concrètes pour préparer le dessert, et moi, je vais les suivre »

« Pas de problème, » pensais-je, « ce cours ne sera pas long ». Au bout d'une minute, j'avais esquissé une excellente recette pour la glace de mes rêves :

  1. Prendre et mettre trois boules de glace à la framboise dans un bol
  2. Ouvrir la sauce chocolat et ajouter deux cuillères à soupe dans ce bol
  3. Ajouter de la crème fouettée dans le bol
  4. Saupoudrer le tout de bâtonnets de sucre et ajouter une cerise sur le dessus

Ma professeur — le « computer » dans cette métaphore charmante — a joué une représentation plus sarcastique et littérale que je n'avais jamais vue auparavant. Elle a commencé à piquer le seau de glace avec une cuillère à glace, sans même toucher au couvercle.

« Bien, bien, mais d'abord, il faut l'ouvrir ! » m'écriai-je, essayant d'obtenir la friandise au plus vite.

«Tu n'as pas écrit cela dans les instructions, et je n'ai pas pu te préparer de la glace. SUIVANT!»

Faisons passer le temps jusqu'à la tentative n°2

  1. Ouvrir la glace à la framboise en enlevant le couvercle
  2. Prendre et mettre trois boules de glace à la framboise dans un bol
  3. Ouvrir la sauce chocolat et ajouter deux cuillères à soupe dans ce bol
  4. Ajouter de la crème fouettée dans le bol
  5. Saupoudrer le tout avec des bâtonnets en sucre et mettre une cerise sur le dessus

Eh bien, maintenant il ne devrait vraiment y avoir aucun problème. J'ai même vérifié au cas où que tous les ingrédients pour réaliser mon chef-d'œuvre culinaire soient prêts.

L'enseignante a retiré le couvercle, a puisé et a mis trois boules de glace dans un bol. «Enfin, ma magnifique crème glacée commence à prendre forme dans la réalité !» Ensuite, elle a ouvert la sauce au chocolat et a ajouté deux cuillères à soupe dans le bol. Elle n'a pas «ajouté de la sauce au chocolat avec deux cuillères» — ne vous méprenez pas — elle a bien sûr mis dans le bol les cuillères elles-mêmes. Sans sauce dedans. Encore une fois, je ne me suis pas donné la peine de tout écrire précisément. Une fois le reste exécuté dans le même esprit, j'ai obtenu un bol de glace avec deux cuillères à soupe à peine visibles sous une mer de crème fouettée. Sur le dessus, il y avait quelques bâtonnets en sucre.

Il semble qu'à ce moment-là, j'ai enfin compris : l'ordinateur est une logique dans le vide. Il ne sait rien des circonstances environnantes et ne fait aucune supposition. Il exécute uniquement des instructions clairement formulées et les suit mot à mot.

Mon résultat final était le fruit d'une longue, mais nécessaire série d'essais et d'erreurs :

  1. Ouvre, si cela n'a pas encore été fait, chacune des prochaines emballages : glace à la framboise, sauce au chocolat, crème fouettée, bâtonnets en sucre.
  2. Prends un bol et place-le devant toi
  3. Prends une cuillère à glace et mets trois boules de glace à la framboise dans le bol, une après l'autre. Remets la cuillère à glace à sa place.
  4. Prends le pot de sauce au chocolat, puise de la sauce et verse le contenu de la cuillère dans le bol. Répète l'action de puiser et de verser la sauce une fois de plus. Remets la cuillère et le pot à leur place.
  5. Prends le pot de crème fouettée, retourne-le à l'envers et, le tenant au-dessus du bol, arrose la glace pendant 3 secondes, puis remets le pot à sa place.
  6. Prends le pot de bâtonnets en sucre, verse environ quarante bâtonnets dans le bol et remets le pot à sa place.
  7. Prends une cerise du bol de cerises et mets-la sur la glace.
  8. Transmets au élève le bol de crème glacée prête et la cuillère.

Le dernier point était particulièrement important, car sans lui, pour la pénultième fois, l'enseignante a simplement commencé à manger ma glace.

Mais c'est cela la programmation. Créer avec soin un ensemble d'instructions pour l'ordinateur. En essence, c'est à cela que chaque langage de programmation se résume — à l'élaboration d'instructions.

Carrière en programmation

La programmation a atteint un point où il est difficile d'en discuter comme une seule industrie, tout comme il est complexe d'utiliser un seul mot « programmeur » pour décrire un poste. Deux développeurs peuvent être également demandés par le marché, en connaissant des langages totalement différents, ce qui signifie que la capacité à concevoir est plus importante que la connaissance d'un langage spécifique. Un attribut universel commun à tous les développeurs performants — la logique fondamentale.

Le meilleur programmeur est celui qui peut regarder le code sous un nouvel angle. Et c'est fondamentalement important, car la plupart des produits logiciels sont un ensemble de fragments de mauvais code non documentés. Ils doivent constamment être assemblés, comblant les lacunes au besoin. Les personnes incapables de relier des points disparates en une ligne cohérente devront toujours être en seconde position.

Tout cela me conduit à une autre déclaration, cette fois en gras : les connaissances fondamentales ont toujours été et resteront prioritaires pour un programmeur.

Les langages vont et viennent. Les frameworks deviennent obsolètes, et les entreprises réagissent à la demande en changeant leur pile technologique. Y a-t-il quelque chose qui ne change jamais ? Oui — les connaissances fondamentales, qui sont appelées fondamentales parce qu'elles sont à la base de tout !

Comment améliorer vos compétences fondamentales

Un langage pour gouverner tousPhoto de Christopher Yeske sur Unsplash

Si vous cherchez un point de départ pour améliorer votre pensée logique fondamentale, essayez de commencer ici :

Connaissez la complexité de votre programme

Également appelée Big O La « complexité d'un algorithme » fait référence à la dépendance du temps d'exécution du programme par rapport à la taille de ses données d'entrée (n). Garder un œil sur les algorithmes utilisés est une étape importante.

Connaissez vos structures de données

Les structures de données sont à la base de tout programme moderne. Savoir quelle structure utiliser dans quel cas est une discipline à part entière. Les structures de données sont directement liées à la complexité d'exécution et le choix d'une mauvaise structure peut entraîner des problèmes fondamentaux de performance. La recherche d'un élément dans un tableau est égale à O(n), ce qui indique le coût élevé de l'utilisation des tableaux comme données d'entrée. La recherche dans une table de hachage est O(1), ce qui signifie que dans ce cas, le temps de recherche d'une valeur ne dépend pas du nombre d'éléments.

Des candidats sont venus passer des entretiens chez moi, affirmant qu'il était plus rapide de chercher dans un tableau que dans une table de hachage. C'était un signe indéniable qu'il ne fallait pas les embaucher — connaissez vos structures de données.

Lis / regarde / écoute

Des sites comme Udemy, Pluralsight et CodeAcademy sont un excellent choix pour apprendre de nouveaux langages de programmation. Mais pour les bases, référez-vous à des livres sur les principes, pratiques et styles de codage généraux. Les livres les plus recommandés sont «Design Patterns», «Refactoring: Improving the Design of Existing Code», «Code Complete», «Clean Code» et «The Pragmatic Programmer». Enfin, chaque développeur doit garder un exemplaire de «Algorithms» à portée de main.

Pratiquez !

On ne peut pas faire d'omelette sans casser des œufs. Des sites comme HackerRank, CodeWars, CoderByte, TopCoder et LeetCode proposent des milliers de défis intéressants pour tester vos connaissances en structures de données et algorithmes. Tentez votre chance pour résoudre un problème qui vous plaît, soumettez votre solution sur Github, puis voyez comment les autres s'y sont pris. Ce qui nous amène au dernier point :

Lisez le code des autres

La plus grande erreur que l'on puisse faire en suivant le chemin du développement est de le faire seul. Le développement logiciel est en grande partie un travail d'équipe. Nous établissons ensemble des normes, faisons des erreurs ensemble et, malgré tous les échecs, nous nous améliorons ensemble. Le temps passé à lire le code des autres sera largement récompensé. Assurez-vous simplement qu'il s'agit d'un bon code.

Le meilleur conseil que je peux vous donner est de ne jamais avoir honte de ne pas tout savoir. Comme je l'ai déjà mentionné, notre secteur est immense et les technologies sont innombrables. Il faut beaucoup de temps et d'efforts pour construire une vue d'ensemble, encore plus pour devenir un professionnel dans un domaine spécifique, et beaucoup plus pour perfectionner son expertise. Je vous informerai quand j'y parviendrai moi-même.

Source : habr.com

Acheter un hébergement fiable pour les sites avec protection DDoS, serveurs VPS VDS 🔥 Acheter un hébergement fiable pour les sites avec protection DDoS, serveurs VPS VDS | ProHoster