Une maîtrise complète de l’intégration n’est plus possible

Lu chez James Hague, « Une compréhension complète n’est plus possible » :

Supposons que vous venez juste d’acheter un MacBook Air, et que votre objectif est de devenir maître de la machine, de comprendre comment elle fonctionne à tous les niveaux.

Le livre « Mac OS X Internals: A Systems Approach » d’Amit Singh est un bon début. Ça ne parle pas tant de programmation que de discours approfondis sur la façon dont toutes les parties du système d’exploitation fonctionnent entre elles : ce que fait le firmware, les séquences d’événements durant le démarrage, ce que les drivers font, et ainsi de suite. A 1680 pages, ce n’est pas une petite lecture.

Pour vraiment comprendre le matériel, Intel a gentiment mis à disposition une documentation gratuite en 7 volumes. Je vais rester simple en recommandant la lecture de Intel 64 and IA-32 Architectures Software Developer’s Manual Volume 1: Basic Architecture (550 pages) et les deux volumes décrivant les jeux d’instructions (respectivement 684 pages et 704 pages).

[…]

Le total de tout ça, c’est plus de 11 000 pages de lecture. J’ai omis d’inclure les pages man pour des centaines d’utilitaires système et la documentation d’Xcode. Et je n’ai même pas encore abordé les connaissances graphiques nécessaires pour faire quoi que ce soit d’intéressant avec OpenGL, ou comment écrire du bon C ou Objective-C ou quoi que ce soit concernant la conception orientée objet, et…

Son article touche un très bon point, et ça m’a rappelé cette vidéo de l’excellent Richard Feynman  (prix nobel de physique et joueur de bongo) qui remets un journaliste à sa place quand il lui demande comment fonctionnent des aimants. Si vous ne connaissez pas Richard Feynman, rendez-vous service et regardez cette vidéo.

Feynman: Magnets  FUN TO IMAGINE  4  But see NEW UPDATED file at https://tinyurl.com/ycphc432

Le journaliste : Quand vous tenez deux aimants, et que vous les poussez l’un contre l’autre, vous sentez cette pression entre les deux. Et quand vous les retournez, et ils se collent l’un avec l’autre. Qu’est-ce que c’est cette sensation entre deux aimants ?

Richard Feynman : Qu’entendez-vous par « qu’est-ce que c’est cette sensation ? »

Le journaliste : Et bien, il se passe quelque chose. Cette sensation, il y a quelque chose…  quand vous collez deux aimants l’un contre l’autre.

Richard Feynman : Ecoutez ma question : qu’entendez-vous par « quelle est cette sensation » ? Bien sûr qu’il y a quelque chose. Mais que voulez-vous savoir ?

Le journaliste : Ce que je veux savoir, c’est ce qui se passe, entre ces deux morceaux de métal.

Richard Feynman : Les aimants se repoussent l’un l’autre.

Le journaliste : Oui mais qu’est-ce que ça signifie ? Ou pourquoi est-ce qu’ils font ça ? Ou comment est-ce qu’ils font ça ? … J’estime que c’est une question parfaitement raisonnable.

Richard Feynman : Bien sûr ! C’est même une excellente question ! Mais le problème, c’est quand vous demandez « Pourquoi quelque chose se passe ». Comment quelqu’un réponds à une question comme ça ?

Par exemple, Tante Minny est à l’hôpital. Pourquoi ? Parce qu’elle a glissé sur la glace et qu’elle s’est cassée la hanche. Cette réponse satisfait les gens. Mais ça ne satisferait pas quelqu’un qui vient d’une autre planète et qui ne connaît rien de nous. Par exemple pourquoi quand on se casse la hanche on va à l’hôpital ? Comment vous rendez-vous à l’hôpital quand votre hanche est cassé ? Et bien son mari a vu qu’elle s’était cassé la hanche, il a appelé l’hôpital pour que quelqu’un vienne la chercher. Tout ceci est compris implicitement par les gens.

Quand vous expliquez « Pourquoi », vous devez être dans un cadre de travail qui permets à quelque chose d’être vrai. Sinon vous continuerez éternellement de demander pourquoi.

Pourquoi est-ce que le mari a appelé l’hôpital ? Parce que le mari est intéressé par le bien être de sa femme. Mais tous les maris ne sont pas toujours intéressés dans le bien être de leur femme, quand ils sont soûls et en colère. Et donc vous commencez à avoir une compréhension très intéressante du monde et toutes ses complications. Si vous essayez de poursuivre la moindre branche, vous irez de plus en plus loin dans différentes directions.

Je pense que c’est vrai également pour le métier d’intégrateur. Avec toutes les nouveautés techniques apparues rapidement ces dernières années (HTML5, CSS3, Canvas, WebGL, …), et la mise en avant massive des technologies côté client en dehors du web (applications mobile, Windows 8, …), il n’est plus possible pour un intégrateur de maîtriser l’ensemble des technologies mises à sa disposition. Le métier d’intégrateur et plus largement de développeur front-end va alors se diviser en de nouvelles branches, tout comme il y a 10 ans le métier d’intégrateur s’était détaché du métier de webdesigner.

On en arrive alors à ce que vous aimez faire. Qu’est-ce que vous préférez ? Est-ce l’organisation de contenus basés sur la sémantique HTML ? Ou la mise en page en CSS ? Ou le développement d’interactions en JavaScript ? Est-ce que vous souhaitez continuer à faire des sites web ? Ou est-ce que vous voulez vous spécialiser dans le développement d’applications web (pour mobiles ou pour les OS dédiés) ?

Peu importe la réponse, trouvez ce que vous aimez, et creusez le sujet à fond. Car peu importe votre spécialité, ça deviendra votre plus grand atout.