orgmode-to-gemini-blog/gemini-capsules/non_trié/20160421131007_cipherbliss_blog_1_le-petit-printf.gmi
2024-11-08 17:40:06 +01:00

86 lines
34 KiB
Plaintext
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Le petit Printf
J'ai été conquis par l'histoire du petit printf, que j'ai découvert
=> http://www.hteumeuleu.fr/the-little-printf/ par Hteumeuleu
,
=> http://ferd.ca/the-little-printf.html écrit par Fred T-H
c'est presque comme le petit prince mais version pour les codeurs, avec toute sa poésie et sa réflexion sur les absurdités de ce que l'on fait. Comme il est écrit en English et qu'il faudrait carrément que plein de codeurs le lisent, et pas forcément des plus spécialisés en Angliche j'ai entrepris de vous le traduire.''
=> http://ferd.ca/static/img/printf/printf.png [IMG]
**Le petit printf, pourquoi codons nous?**
## **Chapitre 1**
J'ai eu la chance d'être né avant que les ordinateurs et les jeux vidéo étaient omniprésents. J'ai eu la chance de jouer à l'extérieur avec des amis et mon frère, et d'inventer nos propres jeux.
Nous pourrions être nos propres héros, utilisez une brindille qui pouvait soudainement devenir un arc, une arme à feu, une épée, ou un télescope. La brindille pouvait devenir n'importe quoi, sauf peut-être un boomerang, car une fois que vous jetez le bâton, il faut aller le chercher.
À un certain moment j'ai grandi, et il est devenu embarrassant de jouer de cette façon. Vous ne pouvez pas traiter une pomme de pain comme une grenade et faire semblant d' avoir des pouvoirs magiques lorsque les autres enfants pensent qu'être un adulte est cool. ça ne vous correspond plus.
On finit par être forcé de grandir. Pourtant, ça reste une enfance chanceuse.
À un certain moment j'ai eu la chance de jouer à des jeux vidéo, et d'utiliser des ordinateurs.
Il pourrait croire que c'était comme avoir le monde imaginaire que vous aviez voulu tout ce temps, matérialisé en face de vous.
Cela vous consume, et pendant un moment vous vivez une vie différente. Mais il y a quelque chose de commun à la plupart des jeux vidéo : vous ne créez pas, vous réagissez, vous consommez. J'ai fait du théâtre d'improvisation étant adolescent. Alors, de nouveau, il était normal d'être avec les gens et de créer et de faire semblant à partir de rien. Bien sûr, le théâtre d'improvisation au Québec est différent ; il y a une patinoire là, tout n'est que hockey. Quand je suis arrivé à une école professionnelle pour étudier le multimédia à partir de 2005 jusqu'à 2008, j'ai finalement débarqué dans le domaine de la programmation. Je l'ai trouvé incroyable! La créativité était encore là, et ça pouvait m'apporter de l'argent! Je me suis alors conçu le mécanisme de mon premier jeu, et c'était époustouflant.
=> http://ferd.ca/static/img/printf/game.png [IMG]
Ce n'est pas un vrai jeu vidéo, m'a-t-on dit. C'est juste un formulaire HTML. Vous devriez avoir utilisé un tableau pour le texte et les options qu'il aurait été mieux. Le code a besoin de nettoyage. J'étais un peu découragé ; le jeu était vraiment sur les 11 pages de texte que j'avais écrites pour son aspect " choisissez votre aventure ". Mais je compris que si je voulais faire les choses de sorte que bien plus de gens pensaient qu'il s'agissait d'un bon jeu, j'avais beaucoup à apprendre. Je dois apprendre " la vraie programmation ". Passer de JScript dans une boîte à outils de GUI pour quelque chose de mieux, comme PHP. Alors j'appris sur le tas, avec le Javascript. Puis finalement on m'a dit d' apprendre à faire de nouveau de la vraie programmation; PHP est atroce. On m'a dit d'essayer peut-être Python, que j'ai donc appris. Mais les vrais programmeurs connaissent des choses plus impressionnantes, et les noobs de python ne pouvaient résister à l'appel, la programmation orientée objet n'était pas où je voulais être. Lire le SICP (Structure and Interpretation of Computer Programs) serait la prochaine bonne étape, m'a-t-on dit, parce qu'elle était comme la bible de la science informatique.
=> http://ferd.ca/static/img/printf/sicp.png [IMG]
Cela m'a fait entrer dans le moule. Et j'ai pris le livre de K & R, car les vrais programmeurs dans le monde réel font du C, et je me suis inscrit pour les cours à temps partiel à mon université locale tout en jonglant avec mon travail, parce que de vrais programmeurs connaissent les structures de données et les mathématiques, Choses que j'ai appris dans une certaine mesure. Je commencé à lire des documents et des livres, parce que de vrais programmeurs restent à jour et connaissent des algorithmes incroyables. à un moment donné je me suis essayé au Erlang et j'ai commencé à en faire une carrière. J'ai écrit un livre sur le sujet. Curieusement, personne n'a jamais remis en question si j'étais un véritable auteur, ou un véritable écrivain, ou un vrai illustrateur. C'était dingue, j'ai obtenu un poste d'enseignant en Erlang sans jamais l'avoir utilisé dans un système en production.
## **Chapitre 2**
Donc, je vivais ma vie en faisant le tour du monde, en disant aux gens comment faire les choses que je n'avais parfois jamais fait, alors tout le monde semblait soudain croire que j'étais un vrai programmeur, pour des choses que je faisais qui la plupart du temps n'avaient aucun lien avec la programmation. Un jour, j'étais coincé dans un aéroport en revenant d'une conférence, en tapant furieusement sur un terminal, quand une voix douce et étrange me demanda : "Si vous plaît, concevez moi un système! -Quoi?! Concevez -moi un système !" Je levai les yeux de mon écran, surpris par la demande. Je regardai autour et ai vu ce gamin qui aspirait à être un développeur et attendait de moi de l'appeller " printf", un nom que je trouvais très stupide et fantaisiste. Il ressemblait à peu près à ça:
=> http://ferd.ca/static/img/printf/printf-nocover.png [IMG]
"Je ne sais pas encore grand chose à propos des ordinateurs, mais on dirait que vous oui. Je veux écrire des programmes, faire un blog sur eux et que les gens les utilisent et les lisent. S'il vous plaît, concevez moi un système!" Voilà une demande surprenante, et j'avait été éveillé pendant les 20 dernières heures, je n'étais pas trop sûr d'avoir bien compris ou si j'en avais envie. Je lui ai dit les systèmes étaient compliqués. Je ne savais pas vraiment quel système il voulait faire, comment il voulait le faire échouer, combien de lecteurs il devrait supporter, où il voudrait l'héberger, et je ne pouvais donc pas concevoir un système approprié avec si peu d'informations. "Cela n'a pas d'importance. Concevez-moi un système." Je fis donc le schéma d' architecture suivante:
=> http://ferd.ca/static/img/printf/arch1.png [IMG]
Il regarda et dit : "Non, ce système n'est pas assez bon. Faites-moi une autre." Donc je l'ai fait:
=> http://ferd.ca/static/img/printf/arch2.png [IMG]
et je lui ai donné un aperçu de la façon dont cela fonctionnerait. Mon nouvel ami sourit poliment. "Cela ne fait pas ce que je veux, il est beaucoup trop complexe et fait beaucoup de choses dont je ne ai pas besoin" Je me sentais un peu insulté, après avoir examiné la redondance, la surveillance, les sauvegardes, les caches et d'autres mécanismes pour réduire la charge, le processeur de paiement externe pour la protection juridique, les basculements, le déploiement facile, et tout le reste. Je pourrais l'avoir décemment facturé en tant que frais de consultation pour cela! à bout de patience, je dessinais ceci:
=> http://ferd.ca/static/img/printf/blackbox.png [IMG]
Et j'ajouté : "Voici la conception. Le système que tu veux est à l'intérieur de la boîte noire", espérant cette réponse pourrie me laisse tranquille. Mais je fus surpris d'entendre de retour : "C'est exactement comme je le voulais !" Et voilà comment je fis la connaissance du petit printf.
## **Chapitre 3**
J'ai rapidement fait un tour sur le portefolio de ce petit bonhomme. Ses dépôts ne sont que de petits programmes, des pages web simples avec des formulaires, des utilitaires en ligne de commande triviales. Ils étaient peu spectaculaires, venaient rapidement à la vie, et disparaîtraient aussitôt. Puis à un moment donné, il a commencé à travailler sur un programme plus vaste, qui a utilisé plusieurs modules. Il fallait des sockets, accéder au disque, parler à une base de données réelle. Quand il l'a compilé et fait tourner correctement, le petit printf a été émerveillé. Mais le programme n'a pas encore assez. Il fallait refactoriser, de meilleurs tests, de la documentation, de la vérification et de l'analyse. Le programme marchait pendant un certain temps, et un matin, il crasha. Et il est crasha encore et encore. Les configurations étaient mauvaises, les journaux ne se recyclaient pas, le disque avait une vitesse imprévisible, le réseau avait le hoquet, les bugs défilaient, les encodages étaient confondus, la base de données avait besoin de nettoyage, les transactions se suspendaient, les certificats expiraient, les vulnérabilités continuaient à venir, et les mesures restaient silencieuses.
=> http://ferd.ca/static/img/printf/spaghetti.png [IMG]
ça n'arrêtait pas de faire des spaghetti. Il m'a dit : le fait est que je ne sais rien ! J'aurai du concevoir selon mes besoins. J'ai eu la prétention de vouloir écrire un système perfectionné, et j'ai passé tellement de temps à le réparer, ça a annulé le temps qu'il était censé me faire gagner. J'aurais dû savoir que c'était trop beau pour marcher vraiment. Un matin, il décide de quitter son bureau. "Au revoir" dit-il à une faible lueur qui semblait s'être éteinte. Il est parti pour voir ce que le monde du logiciel avait à offrir en dehors de son petit serveur salissant. Les journaux continuaient à s'accumuler, jusqu'à ce que le disque dur ne puisse plus en ajouter.
## **Chapitre 4**
=> http://ferd.ca/static/img/printf/building.png [IMG]
Il vint à un espace de travail, à la recherche de développeurs expérimentés de qui obtenir des conseils et de l'aide. Le premier qu'il a rencontré était un ingénieur senior très fier qui semblait se sentir plutôt supérieur.
=> http://ferd.ca/static/img/printf/pro.png [IMG]
"Ah, voici un apprenant ! Bienvenue dans mon domaine, dont je suis l'expert" at-il dit. "Un expert?" Demanda le petit printf. Est- ce que cela signifie que vous pouvez programmer quoi que ce soit avec tous les langages ?" "Oui!" répondit l'expert. Il a ajouté "Enfin presque ; Je programme uniquement les programmes qui valent le coup de les programmer. Je ne perds pas mon temps sur des futilités. Il est de nombreux programmes que je n'ai jamais écrit, mais je pourrais le faire avec toute la facilité dans le monde." "Ah, pourriez-vous m' aider avec mon système?" Dit le petit printf qui commença à présenter son entreprise, l' expert du domaine l'interrompit : "Je suis désolé, mais je ne vois vraiment pas l'intérêt de le faire." "Pourquoi pas?" "L'expérience. Je suis bon à la programmation des choses que je programme, et je programme des choses pour lesquelles je suis bon. En améliorant cet ensemble assez restreint de choses pour lesquelles je suis déjà bon, je fais en sorte d'être plus précieux que jamais dans ce domaine. Appelez ça la sécurité d'emploi, la survie du plus fort, mais voilà comment je marche." "Et pourquoi vous ne pouvez pas m'aider?" "Eh bien, vous voyez, en prenant mon temps avec vous, signifie que je me détourne de mon auto-investissement important pour faire avancer les progrès réalisés par d'autres - ce qui est une stratégie perdante pour moi. La meilleure façon d'apprendre pour toi est la façon dont je m'y suis pris: lutter très dur et comprendre par soi-même. Ca te forgera le caractère." "Cela ne semble pas très efficace..." "Eh bien, tu peux aller à l'école et apprendre, ou tu peux apprendre par toi même. Vraiment ce qu'il faut pour distinguer les des mauvaises herbes des autres c'est de virer les paresseux qui veulent juste que ça soit facile, tout ce qu'il faut c'est faire en sorte que ceux qui restent ici sont ceux qui le méritent vraiment. Le moment où nous laissons les glandeurs entrer, la valeur même du travail que je produis s'amoindrit." "Ne pensez-vous pas la coopération ou collègues pourrait vous aider?" "Pas vraiment. Je travaille mieux lorsqu'on me laisse seul loin des distractions. Chaque fois que je suis forcé de travailler avec les autres, il est presque impossible de faire marcher le tout ensemble. Je finis, exaspéré, par prendre leur travail et le réécrire en grande partie d'une façon plus saine; puis il fonctionne bien." Le petit printf a été surpris de rencontrer un expert qui semblait si désintéressée d'aider les autres, tout en étant si contrarié par leur manque apparent de compétence. Il était un peu triste que cet homme dont l'étroite vision de lui-même le réduisait au seul domaine qu'il connaissait, au point où il ne fait rien d'autre que créer des problèmes qu'il devrait lui-même réparer! "Je vois... eh bien je suppose que je suis heureux que vous ne me donnerez pas votre aide", dit mon petit ami "Que voulez-vous dire?" demanda l'homme méritocratique, dont la valeur semblait soudainement déclassé. Vous ne pensez pas le travail que je fais est intéressant ? "Oh si. Il semble juste comme vous me voyez comme un obstacle et une gêne plus que toute autre chose, et ce que je cherche de l'aide, et non pas l'affliction." Et le petit printf sortit rapidement, laissant l'expert se rendre compte qu'il avait fait de lui-même un intouchable à plus d'un titre que concernant uniquement sa sécurité d'emploi.
## **Chapitre 5**
=> http://ferd.ca/static/img/printf/books.png [IMG]
Sur son chemin, le petit printf est allé en face de la porte d'un bureau occupé par un homme entouré de livres à la couverture rigide et épaisse, avec des images géniales sur la couverture comme des sorciers et des dragons et des fractales et des modèles mathématiques. "-Jolis livres, monsieur," dit printf "-Merci. Je pense qu'ils sont un matériau essentiel pour les programmeurs. Si vous ne les avez pas, vous n'êtes pas vraiment un pro" "-Je suppose que je ne suis pas un pro alors", dit le petit printf. "-Lequel est votre préféré?" "-Oh, eh bien je n'ai pas lu la plupart d'entre eux." "-N'êtes-vous pas un bon programmeur alors?" "-Non, je ne suis pas." Le développeur ajouta fièrement: "En fait, je suis un programmeur affreusement mauvais." "C'est une honte, dit le petit printf, qui a continué: Personnellement je m'améliore. -Avez-vous entendu parler de l'effet Dunning-Kruger ?, demanda l'homme. -Non c'est quoi? -C'est une question de biais cognitif. Cet effet dit essentiellement que les gens qui sont moins compétents ont tendance à surestimer leurs qualifications, et les gens qui sont compétents ont tendance à sous-estimer systématiquement les leurs. -Donc, si je pense que je suis bon, je ne suis probablement pas bon. -Oui exactement. Vous êtes probablement mauvais. D'autre part, je dis ouvertement que je suis un programmeur horrible. Mais selon Dunning-Kruger, je vais probablement me sous-estimer, et cela fait de moi un bon développeur, ne voyez-vous pas? -J'imagine? -En effet, l'auto-dévalorisation est un outil essentiel du développeur. Le moment où vous sentez que vous êtes bon, vous allez vous détendre et arrêter l'amélioration. -Est-ce que cela signifie pas que le moment vous vous sentez être bon vous-même, vous êtes en route vers l'échec et alors vous devriez vous sentir mal? -Oui. Mais le chemin à parcourir à ce sujet est de dire que tout est terrible, même si vous avez pas de solutions à offrir. De cette façon, vous avez l'air intelligent, même si vous n'avez pas grand chose à apporter. -Que voulez-vous dire? -Disons que je me ballade sur le net que que je tombe sur un projet que je n'aime pas. L'astuce est de souligner tout ce qui ne va pas, sans donner plus d'informations que cela. Vous pouvez aussi faire subtilement remarquer que les façons dont la personne qui a fait la chose est un idiot sans problème. -Et comment s'améliore-t-on avec cela? -Eh bien, j'aime à penser qu'ils sont meilleurs en sachant qu'ils sont sur la mauvaise voie, et je suis un bienfaiteur pour eux de le leur montrer. C'est un peu de fumée et des miroirs. Personne ne sait ce qu'il fait, mais cette façon, il semble que moi je sais ce que je fais. -Et qu'est ce qui se passe quand on vous demande de l'aide et que vous ne pouvez rien faire à ce sujet? -Voilà où vous pouvez revenir à dire tout est pourri; que vous auriez plein de coupes franches à faire, qu'il faudrait améliorer d'autres choses, tout en étant bien pessimiste. Ils sont livrés à eux-mêmes. -Donc, c'est juste une posture? Vous jouez un personnage pour faire votre chemin et esquiver ? Vous êtes la personne qui prétend être incompétent sur des choses qu'ils savent, ce qui rend les gens qui ne savent vraiment rien à se sentir encore pire, et vous êtes la personne qui prétend être compétent à des choses que vous ne savez pas, de sorte que les gens qui essaient de s'y améliorer aussi se sentent mal. -Dans tous les cas, la compétence a très peu à voir avec tout cela. La réputation est très important cependant. Les gens embauchent des amis, et les personnes qui ne sont pas aimé et get non essentiels se font virer en premier; essayez de changer le système et vous devenez détesté. Tout est un jeu très social. C'est comme ça que ça fonctionne dans l'industrie, et probablement dans le milieu universitaire aussi, bien que je ne sais pas? Tout est une question de qui vous connaissez, il faut savoir vous vendre, et faire connaître votre marque personnelle vous savez? Voilà comment vous obtenez des emplois dans ce buisness. -Si cela est la façon dont les choses sont et que vous devez vous sentir mal et de faire en sorte que d'autres se sentent mal lorsqu'ils font bien les choses, peut-être que je ne veux pas un emploi dans ce buisness, dit le petit printf, avant de sortir.
## **Chapitre 6**
=> http://ferd.ca/static/img/printf/realprog.png [IMG]
Pendant le temps qui aurait été la pause déjeuner, Printf interrompu une personne qui avait apparemment oublié de manger, regardant un sandwich devenir de plus en plus froid à côté d'elle, assis à son bureau et en regardant leur écran. Cela semblait être une personne très occupée qui savait ce qu'elle faisait. Printf demande: "Si une base de données primaire peut crasher, la suivante peut elle échouer aussi? -Tout ce que vous avez, dit la personne, peut et va échouer tôt ou tard. -Même les choses qui vous disent des choses ont échoué? -Oui, même ceux-ci. Tous les grands systèmes sont dans un état d'échec partiel à un moment donné. -Mais, à quoi bon essayer de faire des systèmes fiables alors? -La personne ne savait pas, à ce moment là, qu'elle essayait de répondre à une page (pour éviter que le ciel ne lui tombe sur la tête en raison d'un cloud brisé) qui lui demandait la même chose. -Donc, rendre les systèmes fiables, pour quoi faire? appuya à nouveau le petit printf. énervé, car la personne avait affaire à un problème de production, avec ce gamin qui ne voulait pas le lâcher et un sandwich qui allait se perdre, la personne avec impatience balança: -C'est complètmeent inutile. Toute programmation est de la merde de toute façons. -oh !", s'étonna-t-il. Puis il y eut un moment de silence complet.
=> http://ferd.ca/static/img/printf/trashcan.png [IMG]
Le petit gars a répondu, avec un soupçon de ressentiment: "Je ne vous crois pas. Les programmes sont fragiles, mais les programmeurs peuvent faire de bons efforts et améliorer les choses, et les rendre utiles." Aucune réponse est revenue. À ce stade, la personne avait ouvert le document expliquant comment démarrer une nouvelle copie de l'ensemble du cluster à partir de zéro, et les choses semblaient aller de mal en pis. "Et vous croyez vraiment que les bons progr-" -Oh non!" s'écria la personne. "Non non Non! Je ne crois pas à de bons programmes ou fiables! Plus maintenant! Ils sont tous dégueulasses! Je viens de vous dire la première chose qui vient à ma tête parce que je fais face à un de ces systèmes de merde en ce moment. Ne voyez-vous pas que je suis en train de tenter de garder en vie ce genre de choses? Cette merde est en fait de la conséquence. Printf regarda ailleurs, avec une expression choquée. "En fait, des conséquences? Vous parlez comme un «vrai programmeur»." Il a ajouté: "Vous mélangez tout, vous confondez tout. Il y a eu des millions de programmes, et pour les années qu'ils ont été en cours d'exécution ils meurent tous de la même manière. Et les gens les ont utilisés et en ont eu besoin. Et je connais certains programmes qui fonctionnent nulle part, sauf sur un seul ordinateur portable, et en une seule erreur pourrait détruire des communautés entières, sans même que personne ne le remarque. Et vous pensez que cela n'a pas d'importance?" La personne resta silencieuse.
## **Chapitre 7**
=> http://ferd.ca/static/img/printf/frameworks.png [IMG]
Le quatrième espace de travail de mon ami visita avait un homme dont l'ordinateur a été couvert de tant d'autocollants que personne ne pouvait dire quelle marque il était. "moteur-mvc, quadrangulaire JS, GoQuery, cometeor, quelque chose sonnant japonais,..." "-Salut, l'interrompit printf. Qu'est-ce que tu fais?" "Alchimiste, bongodb, mochascript, walktime.js, portasql,...," l'homme poursuivit. "Que fais-tu ?," demanda-t-il à nouveau, plus fort cette fois. "Oh, je suis en train d'essayer de nouveaux frameworks, des outils, des bases de données, les langues. -Whoa, vous semblez aller vite, peut-être aussi vite que 10 programmeurs mis ensemble! -Oui! Enfin, l'industrie se déplace aussi très vite !" il regarda son téléphone pour une seconde, et il a ajouté " Voilà! le framework de cardboard.io a sorti sa version 3.5 qui a brisé la compatibilité avec la 3.4 et cela a abouti à 4 fourchettes dans la communauté! Je dois les essayer tous de savoir lequel choisir! -et que faites-vous à apprendre tout cela? -Je suis un des premiers. Si vous ne restez pas à jour, vous restez coincé à écrire du COBOL ou du MUMPS pour vivre. Vous voulez trouver la prochaine grande chose, et surfer sur la vague vers le haut! -ça a déjà fonctionné? -Oh oui! J'ai appris Rails avant qu'il ne soit grand, et j'ai compris node.js avant qu'il soit connu, et j'étais sur les premières bêta de Redis, MongoDB et Riak! J'étais le premier à utiliser Vagrant et je nous ai fait passer à Docker mais bien sûr, maintenant le truc ce sont les Unikernels.. -Cool, et toutes ces choses où vous étiez à l'avant-garde, ça a payé? -oh non; Le temps que Rails devienne énorme j'étais passé à la prochaine grande chose, donc je ne me suis pas retrouvé hors du coup. De même, pour les autres. Il me reste de l'espoir pour les unikernels cependant -Je vois, ajouta le petit printf, pensif. Quels problèmes avez-vous résolu avec tous ces frameworks alors? Oh, je fais en sorte que nous n'utilisons pas quelque chose qui ne va pas être grand, de sorte que cette société n'aille pas de miser sur des technologies qui n'ont aucun avenir. C'est un travail très important, parce que si vous ne faites pas cela, vous ne pouvez pas trouver quelqu'un à embaucher en dehors de vieilles barbes grises du fond des âges passés, et que vous voulez fonceurs auto-motivés, qui sont aussi les premiers à adopter les nouvelles technos, dit l'homme. -C'est drôle, renchérit notre ami. -C'est très dur! dans le monde des startups, si vous voulez des joueurs alphas, vous avez besoin d'une bonne technologie pour les mettre en appétit! Sinon, vous êtes coincé avec les retardataires inflexibles. Personne ne veut être un retardataire inflexible. -Le petit printf intervint: Non, ce n'est pas ce que je veux dire." et il ajoute ensuite "ce que je veux dire, il est drôle que les outils sont destinés à résoudre des problèmes pour nous, mais pour vous, les outils eux-mêmes sont devenus un problème." Et tandis que l'homme se tenait là en silence (sur son nouveau bureau à roulettes trop cool), le petit printf se dirigea hors de la salle.
## **Chapitre 8**
=> http://ferd.ca/static/img/printf/ops.png [IMG]
Dans le bureau d'à côté se trouvait un employé fatigué, avec des dizaines de tasses à café vides, recroquevillée sur ton clavier, à taper avec énervement. "Salut, dit le petit printf." La femme n'a pas arrêté ce qu'elle faisait. Elle a continué à taper furieusement. "Bonjour?" demanda-t-il à nouveau. La femme s'arrêta d'un coup, pris un flacon d'un tiroir dans son bureau, et a pris une gorgée. "J'ai un travail terrible, dit-elle. Je fais DevOps. ça avait bien commencé, la plupart du temps je développais et puis parfois je debuguais des choses, mais plus le temps passait, plus à a a empiré. J'ai commencé à lutter contre les incendies dans notre pile, puis plus d'incendies ont commencé à se produire. Je me suis débarrassé de la plupart d'entre eux, tirant de petits miracles ici et là pour ensuite respecter les délais de dev sur des choses que je devais aussi faire en plus. -Et ont-ils embauché quelqu'un pour aider? -Non, c'est ça le truc. Les petits feux continuent de se produire ici et là, et en raison du temps que je prends pour les combattre, je ne peux pas être aussi prudente qu' avant avec le dev, donc je crée plus de feux tout le temps. Maintenant, je lutte contre les incendies toute la journée et toute la nuit et je déteste mon travail. -Pourquoi votre employeur ne fait pas quelque chose? -Je suis douée à faire mon travail, et je suis parvenu à garder les choses sous contrôle assez longtemps que tout le monde s'y soit habitué. Lorsque vous prenez l'habitude de petits miracles, les gens sont habitués. Ensuite, vous êtes coincé à faire des miracles tout le temps ou ils vont penser que vous ne faites pas votre travail du tout. -Cela semble très triste -ça l'est; et parce que vous êtes la personne la plus familière avec ces feux, vous obtenez seulement de travailler sur eux de plus en plus, jusqu'à ce que votre employeur embauche quelqu'un d'autre pour couvrir votre ancien emploi, celui que vous aimiez. Si vous vous souciez assez dur sur votre travail pour être celui qui fait les choses que tout le monde déteste, on vous remerciera en vous donnant de plus en plus de ce travail qui ne vous plaît pas, jusqu'à ce que ce soit tout ce que vous faites. Et puis il n'y a plus rien pour vous plaire dans votre job. -Alors, vous êtes malchanceuse," dit le petit printf. Et son pager sonna encore. "Cette femme," dit le petit printf à lui-même, en continuant plus loin son voyage, "cette femme serait méprisée par tous les autres: par l'expert spécialisé, par le développeur de rockstar, par l'adoptant premier. Néanmoins, elle est la seule d'entre eux tous à sembler utile. Peut-être est parce qu'elle pense à autre chose qu'à elle-même.
## **Chapitre 9**
=> http://ferd.ca/static/img/printf/architect.png [IMG]
A l'angle du bâtiment, printf trouvé un grand bureau avec de grandes fenêtres donnant une vue imprenable sur la région. Dedans, est assis un vieux monsieur avec des rames de documentation sur son bureau. "Ah, voici un développeur!" s'écria l'homme, alors que printf se tenait à la porte. "Entrez!" En regardant à travers les fenêtres, le petit printf a remarqué qu'ils étaient pleins d'écriture. Avec l'aide d'un stylo effaçable à sec, la vue sur le monde extérieur a été masqué par des tonnes de cercles, des flèches, des cylindres, et les nuages. Alors qu'il était curieux les nuages de l'homme nécessaire tirées où les vrais pouvaient être vus à l'extérieur, tout l'ensemble était plus intrigant. "Qu'est-ce que c'est ?," demanda notre ami, en montrant les fenêtres. "Oh ça? Ceci est notre système de production!" Dit l'homme, en pensant non pas une seule fois que la question portait sur le monde extérieur. "Je suis un architecte logiciel. -Qu'est-ce qu'un architecte logiciel? -La plupart du temps, il est quelqu'un qui sait comment structurer au mieux et coordonne les composants d'un grand système pour que tout aille bien ensemble. Il est quelqu'un qui doit connaître les bases de données, des langages, des framewords, des éditeurs de code, des formats de sérialisation, des protocoles et des concepts tels que l'encapsulation et la séparation des préoccupations. -Très intéressant! dit le petit printf, voici quelqu'un qui peut répondre à toutes mes questions! Il regarda les diagrammes d'architecture. Votre système est très impressionnant. Est-il très rapide à fonctionner? -Je ne pouvais pas vous dire, dit l'architecte. ça doit être le cas, je pense. -Comment est le code alors, est-il bon? -Je ne pouvais pas vous dire -les utilisateurs sont-ils heureux? -Je ne pouvais pas vous dire non plus, je crains -Mais vous êtes un architecte logiciel! -Exactement! Mais je ne suis pas un développeur. Ce n'est pas l'architecte qui va et écrit les modules et les classes, combine les bibliothèques. L'architecte logiciel est beaucoup trop important pour aller toucher au code. Mais il parle avec les programmeurs et les développeurs, leur pose des questions, leur donne des conseils. Et si le problème se trouve être assez intéressant, l'architecte prend en charge la planification. -Et pourquoi ça? -Parce que nous sommes plus expérimentés. Nous en savons plus sur les systèmes et ce qui fonctionne ou non. Les développeurs peuvent alors être une extension de nos connaissances pour produire de grands systèmes! -Mais comment savez-vous si les choses vont bien sans s'impliquer avec le code? -Nous faisons confiance aux développeurs -Donc, vous leur faites confiance pour mettre en œuvre vos idées correctement, mais pas assez pour venir avec leurs propres idées?" L'architecte logiciel était visiblement ébranlé par ce commentaire. "Je suppose que je pourrais avoir été un peu déconnecté," il a finalement admis. "Le problème est que, après un certain temps, vous êtes invité à travailler avec des idées tellement vous ne disposez pas d'un bon moyen de les faire tester ou vérifier..." Il baissa les yeux, pensif. "Parfois, un architecte logiciel ne fait ni logiciel, ni architecture, on dirait." Le petit printf a quitté la salle, ayant terminé de sa visite, il quitta le bâtiment.
## **Chapitre 10**
=> http://ferd.ca/static/img/printf/charity.png [IMG]
le petit printf, une fois à l'extérieur, a rencontré un homme collectant de l'argent pour la charité. "Salut, dit l'homme. Que diriez vous d'aider quelqu'un aujourd'hui? -ça m'aiderait sans doute à me faire sentir mieux, répondit printf. Je suis allé dans ce bureau toute la journée, et maintenant je suis plus confus que jamais. -Ah, je vois. Ces personnes sont tous les développeurs. Ils ne sont pas vraiment utiles, n'est-ce pas? Ce qu'ils aiment à dire est qu'ils changent le monde, et ils ont pas mal réussir à à le faire, en fait. -Pourquoi est ce que je me sens si gêné, alors? questionna le petit printf. -Eh bien, le meilleur qu'ils font est souvent d'aider à convertir les emplois de certaines personnes dans des programmes, ou de rendre les loisirs de tout le monde plus tranquilles. Le logiciel est en train de manger le monde et de lui faire changer de visage, c'est certain... mais au fond, c'est le même vieux monde, avec un visage mutilé. La raison pour laquelle on se sent gêné est que le changement de cette façon ne veut pas dire les choses deviennent mieux. Nous avons les mêmes défauts et les problèmes que nous avons toujours eu, les mêmes trous à combler à l'intérieur. -Alors, comment puis-je me sentir mieux?" le petit printf était visiblement anxieux. L'homme a pensé pendant un certain temps, et a offert printf à venir l'aider à aider les autres, car c'était la façon que cet homme avait de se sentir mieux. Au cours de l'après-midi, printf raconta à l'homme ses problèmes et son aventure. Après un long silence, l'homme dit: "Les jeux que les gens jouent, les rôles et les réputations qu'ils poursuivent et entretiennent, le plaisir éphémère qu'ils tirent de la résolution de problèmes complexes, c'est amusant pendant un certain temps. En fin de compte, si vous ne résolvez pas quelque chose de valable, si vous oubliez les personnes impliquées, ça ne va jamais être vraiment satisfaisant. Et cela peut être très bien, ou ça pourrait ne pas l'être, et vous pouvez ou ne pouvez pas obtenir cela par ailleurs que sur votre lieu de travail quand vous grandissez. Le travail peut être un travail; il peut être pour l'argent, il peut être pour le plaisir. C'est bon. Tant que vous parvenez à obtenir de l'accomplissement quelque part dans votre vie. À la fin cependant, il est seulement quand vous résoudre les problèmes avec un visage humain que vous pouvez vraiment sentir bien; Ce qui est essentiel est invisible pour l'ordinateur. C' est le temps que vous avez passé sur votre système qui le rend si important », l'homme a ajouté," et quand vous avez perdu de vue pourquoi il était logique de passer du temps là-dessus, quand il est devenu un jeu d'orgueil, alors il a causé plus de douleur que de soulagement. Les développeurs ont souvent oublié cette vérité; Si vous perdez de vue des choses, travailler sur votre système devient son propre problème, et la solution la plus efficace est de se débarrasser du système, étant donné qu'il est le problème." "C'est seulement quand vous résolvez les problèmes avec un visage humain que vous pouvez sentir vraiment bien", répéta le petit printf à lui-même, de sorte qu'il s'en souvienne.
## **Chapitre 11**
=> http://ferd.ca/static/img/printf/printf-end.png [IMG]
Printf, qui est maintenant assis juste en face de moi, est sur le chemin du retour. Parler avec lui m'a fait réaliser à quel point ce que je fais m'éloigne ce que je voulais, ce pour quoi j'ai commencé à programmer. Chacune des personnes que le petit Printf a rencontré sont les rôles que je me vois prendre moi-même un jour ou l'autre au fil du temps. J'ai été encouragé par eux pour devenir comme eux, et j'ai probablement encouragé des gens à faire la même chose. Lorsque je me suis lancé dans le jeu d'essayer de devenir un véritable programmeur, Printf ne l'a pas fait. Il a dit qu'il était correct de ne pas être un vrai programmeur, qu'il préférait être un programmeur avec un visage humain. Aujourd'hui, je suis coincé dans la situation où je regarde en arrière, je dois comprendre si je peux, aussi, devenir un programmeur avec un visage humain ; ou si tout ce que je fais est juste un emploi. Il ne semble pas y avoir tellement de choses qui vaille la peine entre-deux. En tous les cas, là où printf a estimé qu'il n'a pas besoin d'être un vrai programmeur, je pense que je ressens la même chose maintenant.