Il m’arrive souvent de déplorer que nous n’utilisons pas nos ordinateurs de la bonne façon, que cela soit notre smartphone, notre tablette ou notre poste de bureau. La plupart du temps, nous nous contentons d’utiliser des logiciels couvrant nos besoins quotidiens pour communiquer, partager de l’information, travailler… on retouche à peine ses photos, on fait quelques montages vidéo de nos vacances… on utilise un logiciel pour gérer son budget, établir sa généalogie ou faire les plans de l’aménagement de sa cuisine. Et ça, ce sont les utilisations les plus avancées… On imagine souvent qu’un programmeur, c’est quelqu’un qui automatise tout, qui trouve une solution à chaque problème sous la forme d’un logiciel, même quand à l’origine ce n’est pas un problème informatique. Et il est vrai qu’il y a une quarantaine d’années, c’était assez vrai. En même temps, il n’y avait pas internet dans chaque foyer et tout un tas de logiciels qui couvrent les besoins les plus courants… voire quelques fois les plus exotiques. Aujourd’hui, un développeur travaille rarement pour lui-même. C’est un métier, et chacun s’est spécialisé de façon à être très bon dans un domaine particulier, qui intéresse l’entreprise, mais qui ne lui apporte bien souvent rien sur un plan personnel.
Il est temps pour moi d’assumer ma part de responsabilité. Le plus souvent, sur ce blog, je vous présente une technologie, un logiciel… quelques astuces pour commencer son apprentissage… présumant qu’il y a un besoin à la base – et que vous avez un minimum de compétences pour comprendre ce que je vous dit, et ensuite, tirer partie de l’aide que vous donne pour démarrer votre étude. Et ce faisant, je laisse sur le carreau la plupart d’entre-vous… qui ne comprennent tout simplement pas le besoin d’apprendre telle ou telle chose… de connaître ce langage ou cette librairie. Et c’est normal… mes articles vont intéresser celui qui a déjà un besoin particulier et qui n’a pas trouvé de solution adéquate dans l’immédiat.
Ce n’était pourtant pas le crédo de mon blog au départ. Je voulais partager ma passion, au plus grand nombre, mais sans sacrifier le contenu. C’était peut-être un doux rêve, mais je prends conscience aujourd’hui que je n’ai pas pris le problème dans le bon sens. Je ne vous ai pas montré ce que, dans mon idéal, devrait être un bon programmeur – c’est à dire celui que j’ai défini plus haut. C’est quelqu’un qui as certes des connaissances et un savoir-faire, dispose d’une boite à outil dont il sait se servir, mais surtout, qui passe son temps à développer des outils, des scripts, des solutions, pour gagner du temps, pour gagner en qualité de vie, pour faire les choses mieux et plus vite, pouvoir appliquer une certaine scalabilité dans sa démarche. Bien entendu, il ne passe pas son temps à réinventer la roue ! Il sait aller chercher ce dont il a besoin dans cette immense magasin qu’est internet, mais il sait aussi adapter le code, relier les outils, refondre le tout en fonction de ses besoins. Et pour ça, la spécialisation, ça n’aide pas …
De fait, je me dis que cela fait longtemps que je ne correspond plus à ce profil là moi non plus. Ai-je arrêté d’être un programmeur ? Vous avez-vu, j’évite d’utiliser le terme « développeur »… trop connoté, trop… beurk. Mais par pitié, ne dites pas « programmateur » svp ! De temps en temps il m’arrive de prendre une journée ou deux pour créer un outil dont j’ai besoin et qui va me faire gagner du temps. Il y a encore quelques jours, j’ai pris du temps pour faire une passerelle entre une boutique et un LMS pour automatiser la création de comptes et leur gestion. Je n’ai pas terminé, mais c’est rare que je m’autorise une telle chose. J’avais créé aussi il y a quelques mois une appli pour m’aider dans la création de vidéo sur youtube, pour automatiser une partie de la démarche, une autre pour faire un peu de domotique chez moi à distance… Sur un an, cela doit correspondre à 3 ou 4 jours de travail. C’est fort peu. La raison que j’évoquerais pour le disculper, c’est que tout va très vite, que tout change trop vite, que je n’ai pas le temps d’investir du temps maintenant, sans être certain de le récupérer ensuite… Mais c’est assez hypocrite en réalité. C’est juste qu’il me faut un coup de pied aux fesses que je ne me donne pas assez souvent. Paresse, fatigue… en retard de partout et sur tout. Qui trop embrasse mal étreint, je le sais fort bien: je pratique beaucoup.
Qu’est-ce que j’essaye de vous dire ? J’en tire des conclusions pour moi-même, mais aussi des recommandations pour vous. D’une part, en ce qui me concerne, je vais arrêter de « collectionner » des connaissances et du savoir-faire, sans avoir de projet direct en tête, c’est à dire « potentiellement utile« . C’est une course sans fin, mais aussi relativement stérile. Bien entendu, je vais rester ouvert à la veille et aux tests, tant qu’ils restent raisonnables (au max, quelques heures pour approfondir un sujet). Être consultant, donner des conseils, cela fait partie de mon métier et de ce que j’aime faire. Je vais davantage me laisser guider par mes besoin et rechercher une façon d’y répondre. Je vais donc communiquer d’avantage en ce sens, et proposer des ateliers pratiques sur cette base. Je vous ai parlé d’Haxe dans un article précédent. Je ne vous proposerai pas un atelier d’initiation à Haxe… Même si je n’en ai trouvé aucun de bien réalisé et que la documentation est assez faiblarde quoi qu’on en dise. Mais peut-être je serais amené à vous proposer d’utiliser Haxe dans un cadre bien précis… Je n’ai aucune idée derrière la tête en vous disant cela, ce n’est qu’un exemple. Peut-être je n’utiliserais jamais Haxe ni Armory3D. Comment reprendre le pouvoir sur nos appareils du quotidien ? Comment les exploiter au mieux, les « hacker » de telle façon à ce qu’ils répondent mieux à nos attentes. Voici mon nouveau crédo.
Et pour vous, quels sont mes conseils ? Ne cherchez pas à apprendre telle ou telle chose juste pour « savoir le faire ». Tout ce que vous aurez appris ne sera peut-être plus utile dans 5 ans. Combien de personnes aujourd’hui apprennent Unity ou Unreal Engine pour savoir faire des jeux, mais sans apprendre à faire des jeux en réalité ! Souvent, ils vont faire un joli level, quelques FX, une amorce de gameplay… et voilà – pas de jeu. Et dans 5 ans, il faudra réapprendre peut-être sur un autre moteur, ou réapprendre une partie des techniques acquises… On s’est attaché à la forme et non au fond – faire du jeu, c’est apprendre le game design, le level design, le storytelling… c’est pas uniquement apprendre à savoir se servir d’un éditeur 3d et créer une classe C#. Orientez d’avantage votre apprentissage en fonction de vos besoins. Sachez découvrir vos besoins car ce n’est pas évident : on est tellement habitué à être des utilisateurs qu’on en oublie souvent d’être les prescripteurs ! Imaginez les solutions, faites des recherches actives de solutions existantes, apprenez à joindre des outils, des librairies entre-elles… Travaillez de façon inverse : en « dépilant ». A chaque inconnue, on empile « une recherche à faire » ou « une connaissance à acquérir ». Et quand on arrive au bout, on retire le dernier de la liste, on l’étude, ou apprend ce qui nous manque… en empilant de nouvelles choses. La technique est secondaire ! Sachez demander de l’aide à ceux qui savent… créez votre réseau de compétences – rendez leur service pour qu’ils daignent aussi vous aider le moment venu. C’est ainsi qu’on apprend et c’est vrai pour presque tous les domaines. Même si vous n’êtes pas un as des algorithmes, de la logique formelle, que vous ne connaissez aucun langage… rien n’est insurmontable quand on en éprouve l’envie. Et l’envie, ça vient avec le besoin. Il faut avoir quelque chose à gagner pour accepter de sacrifier temps et énergie. Voilà, c’était mon sermon du dimanche !
0 commentaires