Blog Arolla

Au secours Léonard ! (Partie 2/2)

Au temps de Léonard de Vinci, un érudit pouvait encore espérer avoir lu et assimilé l’ensemble du savoir produit par ses pairs ; aujourd’hui, la quantité d’information produite par les humains et les machines double toutes les 12 heures. Toute information n’est peut-être pas digne d’être érigée au rang de savoir, mais on conçoit que plus personne aujourd’hui ne puisse espérer en digérer autant.

Or toute personne s’intéressant à un champ de savoir particulier doit être en mesure d’en faire une synthèse suffisante s’il veut l’utiliser ou, peut-être, le prolonger. Comment y parvenir ?

Au travers d’un premier article, nous avons illustré la problématique par l’exemple de la montée en puissance fulgurante du JavaScript, devenu en quelques années un environnement de développement à part entière. Puis, sans toutefois prétendre mener une étude sociologique sur le rapport employeurs et employés, nous avons vu pourquoi l’évolution de ce dernier est une incitation supplémentaire à être acteur de sa propre formation.

Être acteur de sa propre formation ? Comment faire ? Le temps est une denrée précieuse et l’on n’a pas l’opportunité de faire un démonstrateur pour chaque technologie dont on souhaite comprendre l’apport ! Voici donc cinq considérations simples et pratiques susceptibles d’aider à positionner le curseur et à choisir les technologies de manière éclairée sans aller nécessairement dans le détail.

1. Favorisez la sérendipité

pissenlit

Photo by Dawid Zawiła on Unsplash

Ne vous bridez pas. Votre intérêt premier est pour l’intelligence artificielle ? Gardez quand-même un œil sur les technologies et savoir-faire du Web. Qui sait ce que vous pourriez y trouver ? Des mécanismes de pensée à transposer ? Un champ d’application possible ? Une porte ouverte vers un autre domaine ? Soyez curieux. Faites des choses sans idée de ce qu’elles pourraient vous apporter. Autrement dit, favorisez la sérendipité.

2. Savoir qu’une technologie existe, ça n’a pas de prix

La seule information de l’existence d’une technologie est en soi d’une grande valeur, parce qu’elle pourra être mobilisée ultérieurement quand il s’agira de résoudre un problème.

Il s’agit donc, au moment d’aborder une nouvelle solution, de comprendre à quoi elle sert, ce qui a motivé sa création, quelles autres technologies elle concurrence ou complète et, idéalement, le principe de son fonctionnement. Ceci afin de nous prémunir contre une utilisation à contresens, telle l’utilisation de MongoDB avec des réflexes issus du SQL, malheureusement fréquente. Ou bien d’utiliser une technologie pour tout faire, surtout ce à quoi elle n’est pas destinée… parce qu’on ne connaît que celle-là ! Par exemple, utiliser MongoDB comme solution de cache.

3. Savoir ce que je ne sais pas

Nul ne peut avoir pour ambition de mener une veille technologique au même niveau de granularité dans tous les domaines, ceux-ci pouvant être aussi larges que l’informatique de gestion, le big data ou l’intelligence artificielle. Les journées ne faisant que 24 heures, une ambition réaliste pourrait être de « savoir ce que je ne sais pas ». Autrement dit, être en mesure d’apprécier l’étendue de sa propre ignorance et la quantité de travail déjà fournie par la communauté sur un sujet.

Une des plus grandes inefficacités serait en effet de réinventer la roue, avec de surcroît la quasi-certitude de n’y jamais arriver.

Cette veille, aussi simple soit-elle, permet a minima de décider des domaines sur lesquels se former prioritairement et par là-même de construire sa feuille de route d’auto-formation.

bibliotheque

Photo by Alex Block on Unsplash

4. Les technologies s’envolent, les concepts restent

Connaissez-vous Cycle.js ? Peut-être pas. Cependant, vous en aurez une idée assez précise dès que vous saurez qu’il s’agit d’une librairie JavaScript Front-End qui permet l’écriture de Single Page Applications dans un style fonctionnel et réactif. Fonctionnel parce que vous n’écrivez que des fonctions pures, les interactions avec le monde extérieur (DOM virtuel, requêtes HTTP etc.) étant assurées par des drivers ; et réactif du fait de l’utilisation d’observables, qui autorisent la manipulation de flux de données à l’aide de méthodes généralement utilisées pour des structures de données, la fonction map() par exemple. Le tout permet l’écriture d’un code hautement testable, toute entrée pouvant faire l’objet d’un mock, même le temps !

Personne n’en doute, mais les concepts, patrons de conception et paradigmes qui sous-tendent l’informatique sont autant de bouées qui permettent d’appréhender rapidement une nouvelle technologie.

5. Rien ne sert de courir… faut-il partir ?

Autrement dit, un peu de recul ne fait jamais de mal. Il y a quelques mois encore, un développeur Web désireux de se former aux applications mobiles avait le choix entre le développement natif (Android ou iOS) et l’utilisation de frameworks tels que Cordova (WebView + code natif), React Native (pilotage de composants natifs par un thread JavaScript) ou Flutter (Dart compilant en code natif).

Or, si à l’origine les sites Web ne soutenaient pas la comparaison face aux applications mobiles en termes d’expérience utilisateur, il n’en est plus rien aujourd’hui grâce au JavaScript. D’ailleurs, on parle bien d’applications Web. Partant de ce constat, les navigateurs ont évolué depuis 2015 pour abolir la frontière entre sites Web et applications mobiles. On accède à présent à une page Web en plein écran et en mode offline de la même manière qu’on accède à une application, et ce grâce à l’adjonction de quelques mécanismes de synchronisation (Service Workers). Ce sont les Progressive Web Apps. Le bénéfice est grand, parce qu’il n’est plus nécessaire de gérer un site Web d’une part et N applications mobiles d’autre part.

Cet exemple illustre le fait qu’il est parfois « urgent d’attendre », puisqu’il ne sera peut-être plus nécessaire de se former au développement mobile.

chaussures

Photo by Christian Chen on Unsplash

Ouverture

Face au rythme soutenu de la production des savoirs et du renouvellement technologique, la capacité à mener une veille technologique active et efficace est autant une nécessité pour l’individu qu’une compétence à part entière que les entreprises gagneraient à rechercher parmi les candidats à l’embauche.

Cette compétence est d’ailleurs peut-être le propre d’un bon « généraliste » du développement, un individu dont la qualité première serait la capacité à manipuler concepts et méthodes à haut niveau tout en conservant celle d’aller dans le détail si nécessaire.

Vous avez dit un architecte ?

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *