Une langue pour tout gouverner

Caché sous une couche de code languit un langage avide d'apprendre.



Au moment de la rédaction de cet article, la requête «programmation de la langue à apprendre en premier» produit 517 millions de résultats de recherche. Chacun de ces sites fera l'éloge d'une langue particulière, et 90% d'entre eux recommanderont éventuellement Python ou JavaScript.


Sans grand prélude, je voudrais déclarer officiellement que tous ces 517 millions de sites sont faux et déclarer que la langue qui doit être étudiée en premier est une logique fondamentale .


Il ne suffit pas de savoir coder. Le marché est tellement saturé de diplômés des instituts et des cours que le poste de junior a presque cessé d'exister *. Pour réussir dans le monde d'aujourd'hui, vous devez à la fois coder et avoir une pensée logique fondamentale avancée.


* ci-après, n'oubliez pas qu'il s'agit d'une traduction, et la situation sur le marché du travail pour l'auteur et dans votre pays peut être différente (comme d'autres nuances), ce qui, cependant, n'aggrave pas en soi l'article d'origine - env. perev.


Ma première leçon d'informatique


Ma première connaissance de l'informatique a été un cours optionnel, que j'ai suivi en 10e année. Le premier jour, en entrant dans le public, j'ai été ravi de voir un grand nombre de seaux à glace et diverses garnitures devant moi. Une fois tout le monde assis, le professeur a proclamé:


«Aujourd'hui, nous goûterons la crème glacée auto-préparée. Mais à une condition: vous devez faire une liste d'instructions spécifiques sur la façon de préparer un dessert, et je les suivrai. »


Pas de problème, pensais-je, cette leçon ne sera pas longue. Environ une minute plus tard, j'ai esquissé une excellente recette de la crème glacée de mes rêves:


  1. Ramasser et mettre trois boules de glace à la framboise dans un bol
  2. Ouvrez la sauce au chocolat et ajoutez deux cuillères à soupe dans le même bol.
  3. Ajouter la crème fouettée dans un bol
  4. Saupoudrez le tout de bâtonnets de sucre et placez la cerise sur le dessus

Mon professeur, «l'ordinateur» dans cette belle métaphore, a joué une performance littérale plus sarcastique que je n'avais jamais vue auparavant. Elle a commencé à fourrer avec zèle un seau de crème glacée avec une cuillère pour boules, sans même toucher le couvercle.


"Bien, bien, mais vous devez d'abord l'ouvrir!" - m'exclamai-je, essayant de me faire plaisir au plus vite.


«Vous n'avez pas écrit cela dans les instructions, mais je n'ai pas pu vous faire de crème glacée. SUIVANT! "


On saute le temps avant la tentative n ° 2


  1. Ouvrez la glace à la framboise en retirant le couvercle.
  2. Ramasser et mettre trois boules de glace à la framboise dans un bol
  3. Ouvrez la sauce au chocolat et ajoutez deux cuillères à soupe dans le même bol.
  4. Ajouter la crème fouettée dans un bol
  5. Saupoudrez le tout de bâtonnets de sucre et saupoudrez de cerise sur le dessus

Eh bien, maintenant, il ne devrait y avoir aucun problème. Au cas où, je me suis assuré que tous les ingrédients pour faire mon chef-d'œuvre culinaire sont ouverts.


Le professeur a retiré le couvercle, a ramassé et a mis trois boules de crème glacée dans un bol. "Enfin, ma belle glace a commencé à s'incarner dans la réalité!" Elle a ensuite ouvert la sauce au chocolat et ajouté deux cuillères à soupe dans le bol. Vous n'avez pas "ajouté de sauce au chocolat à partir de deux cuillères à soupe" - vous ne pensez pas - elle, bien sûr, a mis les cuillères elles-mêmes dans un bol. Aucune sauce en eux. Encore une fois, je n'ai pas pris la peine de tout peindre à coup sûr. Après que le reste ait été fait dans le même esprit, j'ai obtenu un bol de crème glacée et deux cuillères à soupe, à peine perceptibles sous la mer de crème fouettée. Au sommet, il y avait une paire de bâtonnets de sucre.


Il semble qu'à ce moment j'ai finalement réalisé: l'ordinateur est la logique dans le vide. Il ne connaît pas les circonstances environnantes et ne fait aucune hypothèse. Il ne suit que des instructions clairement formulées et les suit mot à mot.


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


  1. Ouvrez, si ce n'est déjà fait, chacun des emballages suivants: glace à la framboise, sauce au chocolat, crème fouettée, bâtonnets de sucre.
  2. Sortez le bol et placez-le devant vous
  3. Prenez une cuillère pour la crème glacée et mettez une à une trois boules de glace à la framboise dans un bol. Mettez la cuillère à crème glacée en place.
  4. Prenez un pot de sauce au chocolat, récupérez la sauce et versez le contenu d'une cuillère à soupe dans un bol. Répétez l'opération avec une cuillère et versez la sauce une fois de plus. Mettez la cuillère et le pot en place.
  5. Prenez et retournez le paquet de crème fouettée à l'envers et, en le tenant au-dessus du bol, versez la crème glacée dessus pendant 3 secondes, puis remettez le paquet à sa place.
  6. Prenez une boîte de bâtonnets de sucre, saupoudrez une quarantaine de bâtonnets dans un bol et mettez la boîte en place.
  7. Prenez une cerise dans un bol de cerises et placez-la sur la crème glacée.
  8. Donnez à l'élève un bol de glace préparée et une cuillère.

Le dernier point était particulièrement important, car sans lui, l'avant-dernière fois, le professeur a simplement commencé à manger ma glace.


Mais c'est de la programmation. Création stressante d'un ensemble complet d'instructions pour l'ordinateur. C'est essentiellement ce que chaque langage de programmation se résume à - écrire des instructions.




Programmation de carrière


La programmation a atteint un point où il est difficile d'en discuter en tant qu'industrie unique, tout comme il est difficile d'utiliser un seul mot «programmeur» comme description de poste. Deux développeurs peuvent être également demandés par le marché, connaissant des langues complètement différentes, ce qui signifie que la capacité de développement est plus importante que la connaissance d'une langue particulière. Un attribut universel commun à tous les développeurs qui réussissent est la logique fondamentale .


Le meilleur programmeur est capable de regarder le code sous un nouvel angle. Et cela est fondamentalement important, car la plupart des produits logiciels sont une collection de morceaux de mauvais code non documentés. Ils doivent constamment être rassemblés, comblant les lacunes au besoin. Les personnes qui ne sont pas en mesure de connecter des points dispersés sur une seule ligne devront toujours rester sur la touche.


Tout cela m'amène à une autre déclaration, cette fois audacieuse: les connaissances fondamentales ont toujours été et seront primordiales pour le programmeur .


Les langues vont et viennent. Les cadres deviennent obsolètes et les entreprises répondent à la demande en modifiant la pile de technologies utilisées. Y a-t-il une chose qui ne changera jamais? Oui - la connaissance fondamentale, c'est pourquoi on l'appelle fondamentale, qui sous-tend tout!




Comment améliorer les connaissances fondamentales


Photo de Christopher Yeshke sur Unsplash

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


Connaissez la complexité de votre programme


Également appelée Big O, la «complexité de l'algorithme» fait référence à la dépendance du temps nécessaire à l'exécution d'un programme à la taille de ses données d'entrée (n) . Se tenir au courant des algorithmes utilisés est une étape importante.


Connaissez vos structures de données


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


Les gens sont venus me voir pour une interview qui ont affirmé qu'il était plus rapide de rechercher par tableau que par table de hachage. C'était le signe le plus sûr que vous ne devriez pas les embaucher - connaître vos structures de données.


Lire / regarder / écouter


Des sites comme Udemy , Pluralsight et CodeAcademy sont d'excellents choix pour apprendre de nouveaux langages de programmation. Mais pour les bases, consultez les livres sur les principes généraux, les pratiques et les styles de codage. Les livres les plus recommandés sont Design Patterns, Refactoring. Amélioration du code existant »,« Perfect Code »,« Clean Code »et« Programmer Pragmatist ». Enfin, chaque développeur doit garder une copie des « algorithmes » à portée de main.


Pratique!


Vous ne pourrez pas faire cuire des œufs frits sans casser des œufs. Des sites comme HackerRank , CodeWars , CoderByte , TopCoder et LeetCode offrent des milliers de tâches intéressantes pour tester vos connaissances des structures de données et des algorithmes. Tentez votre chance pour résoudre le problème que vous aimez, publiez votre version sur Github, puis voyez comment les autres l'ont abordé. Ce qui nous amène au dernier point:


Lire le code de quelqu'un d'autre


La plus grande erreur qui ne peut être commise qu'en suivant le chemin du développement est de faire ce chemin seul. Le développement de logiciels est en grande partie un travail d'équipe. Ensemble, nous créons des normes, faisons des erreurs ensemble et, malgré tous les échecs, nous nous améliorons ensemble. Le temps passé à lire le code de quelqu'un d'autre sera très payant. Assurez-vous simplement qu'il s'agit d'un bon code.




Eh bien, le meilleur conseil que je puisse donner est de ne jamais avoir honte de ne pas savoir encore quelque chose. Comme déjà mentionné, notre industrie est énorme et le nombre de technologies est immense. Il faut beaucoup de temps et d'efforts pour construire une image globale, encore plus pour devenir un professionnel dans quelque chose de spécifique, et un ordre de grandeur plus pour affiner les compétences dans votre domaine. Je vous ferai savoir quand j'y arriverai moi-même.

Source: https://habr.com/ru/post/fr456342/


All Articles