Sélectionner une page

Comment devenir développeur blockchain ?

Introduction

Les technologies fonctionnant grâce à la blockchain sont de plus en plus nombreuses et le besoin en main-d’oeuvre pour construire les infrastructures informatiques nécessaires se font de plus en plus ressentir. Le métier de développeur blockchain fait partie des plus recherchés, mais les étapes à suivre pour le devenir reste encore peu balisé. Comment devenir développeur blockchain ? C’est ce que nous allons voir dans cet article.

 

Qu’est-ce que la blockchain ?

La blockchain est une technologie de stockage et de transmission d’information qui fonctionne de manière décentralisée. Il peut s’agir de n’importe quel type d’information (financière, logistique, propriété, données médicales), mais elle est surtout connue aujourd’hui pour le rôle qu’elle joue dans les cryptomonnaies. Grâce à ce principe de décentralisation, aucune entité centrale n’a de contrôle privilégié ou un droit d’arbitrage sur ces transactions entre deux parties, tant que l’émetteur a bien la propriété de ce qu’il émet, ce qui est vérifié par l’ensemble des noeuds de la blockchain via des calculs informatiques.

Il existe de nombreuses ressources pédagogiques introduisant la blockchain et ses usages. Si les termes de noeud, cryptoactif ou consensus ne vous évoquent rien, voici quelques ressources vers lesquelles vous orienter pour ne pas être perdus dans la suite de cet article :

Hasheur (Owen Simonin) : Entrepreneur et vulgarisateur Youtube, il offre une vision approfondie et critique de la blockchain

Start in Blockchain vous aidera aussi à poser les bases qui vous aideront pour la suite

La blockchain a la particularité d’être immuable : on ne peut pas supprimer un transfert d’information qui a été acté et validé par les algorithmes créés dans cet optique, même si l’on peut toujours réaliser un transfert inverse.

La troisième propriété de la blockchain est sa transparence : le registre sur lequel sont stockées l’ensemble des transactions est accessible à tous (au grand public en cas de blockchain publique, ou à tous les membres d’une organisation dans le cas d’une blockchain privée).

Ces trois propriétés de décentralisation, immuabilité et transparence font de la blockchain un excellent moyen pour transférer des données de manière sécurisée.

 

Quel est le rôle d’un développeur blockchain ?

Il existe 2 grandes catégories de développeur blockchain : les développeurs de blockchain à proprement parler, appelés développeurs de blockchain principale, et les développeurs d’applications décentralisées, qui s’appuient sur ces blockchains. Voyons plus en détails leurs principales différences.

 

Les développeurs de blockchain principale (core developer)

Leur rôle est de concevoir et construire de nouvelles blockchains. Cela revient très souvent à effectuer les tâches suivantes :

  • Création et maintenance de l’architecture globale
  • Écriture des protocoles de communication
  • Mise en place du back-end
  • Sécurisation des données et transactions

Ils posent les fondations sur lesquelles viendront s’appuyer les développeur de DApps. Ils doivent avoir une solide compréhension des concepts de blockchain, des protocoles de consensus, de la cryptographie, des algorithmes de hachage, des structures de données et des bases de données distribuées.

 

Les développeurs d’application décentralisée (DApps developer)

Ce deuxième type de développeur blockchain a pour mission de créer des applications décentralisées, aussi appelées DApps (Decentralized Applications). Il va faire le lien entre le front-end, soit la partie visible pour l’utilisateur, et le back-end de l’application. Plus précisément, ses missions vont consister à :

  • Construire le front-end en fonction des besoins de l’utilisateur
  • Développeur des contrats intelligents (smart contract) avec des langages back-end spécifiques à la blockchain

On voit en cela que les développeurs web fullstack sont très souvent prisés même sans une longue expérience blockchain car ils sont déjà habitués à travailler avec les deux facettes d’une application.

Il peut arriver qu’un même développeur joue le rôle de développeur de blockchain principale et de développeur de DApps, notamment sur des projets naissants comportant des équipes réduites.

 

Pourquoi devenir développeur blockchain ?

Il existe plusieurs avantages à devenir développeur blockchain.

Tout d’abord, il s’agit d’un secteur en pleine croissance, où les opportunités sont nombreuses et les compétences encore rares, les entreprises sont par conséquent prêtes à y mettre le prix. La rémunération constitue donc un point fort indéniable dans ce choix de spécialisation.

Ensuite, il n’existe pas encore d’infrastructure maitresse ou un acteur qui ait véritablement remporté le marché : travailler dans la blockchain revient donc à construire les technologies et les architectures sur lesquelles fonctionnera le monde de demain. Jouer le rôle de pionnier dans un domaine naissant peut donc être très motivant.

Enfin, après avoir acquis une certaine autonomie dans la réalisation d’applications, il vous sera possible de créer vos propres blockchain, vos propres smart contracts ou vos propres applications, qui feront grandir l’écosystème et pourront aider certaines personnes. Vous pourrez également monétiser vos créations.

Cependant, si l’aspect financier et l’enthousiasme de construire un écosystème à son image sont des critères de choix importants, il est indispensable d’avoir un réel intérêt intellectuel pour la technologie et le développement informatique, afin d’être capable de progresser, de prendre plaisir à travailler sur des sujets parfois très complexes, de se former continuellement, de passer des heures et des heures derrière son écran à corriger ses bugs, optimiser ses lignes de codes, sécuriser ses protocoles, et expliquer, démocratiser les aspects techniques à une équipe pluridisciplinaire et à ses clients.

 

Comment devenir développeur blockchain ?

Plusieurs parcours sont possibles et il n’existe pas de formation unique pour devenir développeur blockchain. Il n’est pas nécessaire d’avoir de diplôme et il est tout à fait possible de se former en autodidacte. Ce qui compte avant tout, ce sont vos compétences. Bien entendu, si vous avez un certain niveau d’études ou réalisé une formation réputée, n’hésitez pas à le mettre en valeur.

Ce qu’il faut comprendre, c’est qu’il est nécessaire de maitriser dans un premier temps les technologies du web actuel, ou le web2, avant de s’attaquer à la blockchain. La vocation du web3, qui s’appuie entre-autres sur la blockchain, n’est pas de remplacer complètement le web2, mais de cohabiter avec lui. Il se présente comme une alternative lorsque que cela est pertinent. Il est donc important d’être familier avec les deux mondes, de comprendre les besoins et habitudes des internautes, afin que le passage d’un monde à l’autre soit facile.

Pour la partie front-end notamment, l’expérience utilisateur est sensiblement la même car elle repose sur les mêmes technologies. Pour les développeur blockchain core, des notions en systèmes et réseaux peuvent être utiles.

Les formations et ressources disponibles pour apprendre le développement blockchain sont détaillés un peu plus loin dans l’article.

 

Peut-on devenir développeur blockchain en étant débutant ?

Il est tout à fait possible de devenir développeur blockchain sans expérience préalable en programmation (c’est personnellement mon cas) mais cela demandera plus de travail et d’implication. Il va être nécessaire d’apprendre les bases de l’informatique, les fondamentaux du web, avant de se former aux langages classiques du développement web, puis de basculter progressivement vers la blockchain. Ne vous découragez pas, faîtes seulement un pas après l’autre et vous y arriverez !

 

Quels sont les langages de programmation à apprendre ?

Tout dépend du type de développeur blockchain.

Pour un développeur blockchain core :

  • Go
  • C, C++ : très utilisés dans le développement de certaines blockchain telles que Bitcoin
  • Haskell : utile pour les projets sur Cardano (cryptomonnaie)
  • Rust
  • Python, et sa bibliothèque web3.py

Pour un développeur de DApp :

  • Javascript : langage phare du web, il sera utile pour le front-end et les test de DApp
  • Solidity : langage de haut niveau très proche du Javascript
  • Vyper : alternative à Solidity, plus simple et plus sécurisée mais encore récente

Quelles sont les étapes à suivre pour devenir développeur blockchain ?

Partons du principe que vous n’avez aucune expérience en programmation informatique ni de connaissances poussées dans la blockchain. Voici un plan de formation à suivre pour atteindre votre objectif. Accrochez-vous !

 

1. Comprendre les principes fondamentaux de la blockchain

Cette étape posera les bases et permettra également de confirmer ou non votre intérêt technique pour la blockchain. Vous devez être à l’aise avec les notions suivantes :

– Qu’est-ce que la blockchain ?

– Fonction de hachage

– Bases en cryptographie

– Fonctionnement de la Blockchain Bitcoin (lire le whitepaper)

– Fonctionnement de la Blockchain Ethereum et l’EVM (Ethereum Virtual Machine)

– Principe d’une Preuve de travail (Proof-of-Work)

– Principe d’une Preuve d’enjeu (Proof-of-Stake)

– Smart Contract

– Protocole IPFS

– DeFi, NFT, tokenisation

 

2. Choisir une blockchain

Parmi les blockchains sur lesquelles vous vous serez renseignées, vous allez peut-être développer une affinité pour l’une d’entre elles. En effet chaque projet blockchain présente une philosophie et des enjeux particuliers qui sont généralement expliqués dans le white paper des fondateurs.

Cette étape est importante car elle va déterminer vers quel langage de programmation vous allez vous orienter par la suite. Cependant, il peut être difficile de savoir au début ce que l’on préfère. Voici quelques éléments pour vous aider à choisir :

Bitcoin : première blockchain à être créé, elle est aujourd’hui la plus populaire et possède la plus grande capitalisation boursière. Elle fonctionne selon une validation type Proof-of-Work et est essentiellement monétaire.

Ethereum : deuxième principale blockchain, elle fonctionne via le Proof-of-Stake. Elle devenue très standardisée avec des règles type ERC-20, ce qui fait que beaucoup de projets blockchain repose sur Ethereum.

Solana : alternative à Ethereum qui fonctionne via un mélange de Proof-of-Stake et de Proof-of-History.

Si vous n’avez pas de préférence pour le moment, alors il peut être judicieux de s’orienter vers Ethereum qui propose des débouchés plus diverses qui dépassent l’aspect monétaire.

Dans tous les cas, il est bien sûr possible de varier les langages et les technologies tout au long de votre parcours de développeur blockchain !

 

3. Apprendre les bases du développement front-end

Cette étape est essentielle pour les futurs développeurs d’applications décentralisées. Voici les langages que vous devez apprendre :

HTML : langage de balisage qui constitue la structure de vos pages web, la manière dont elles sont agencées. C’est un des langages les plus simples à apprendre donc idéal pour débuter.

CSS : langage de stylisation qui va servir à mettre en forme tout ce que ce que vous aurez écrit en HTML (couleur, police, taille des éléments, dessins) et permet même de réaliser des animations très légères en ressource.

Javascript : langage incontournable du web, il permet aujourd’hui de gérer à la fois la partie front-end et back-end d’un site web. Il servira non seulement à développer l’interface utilisateur mais aussi à effectuer des tests sur vos DApps.

Il n’est pas nécessaire de passer plus de 2 à 3 semaines sur les langages HTML et CSS, l’objectif n’est pas de devenir développeur front-end sénior mais de comprendre comment construire des pages web simples.

L’apprentissage du Javascript prend généralement plus de temps : comptez quelques mois pour être à l’aise.

 

4. Sécuriser et accélérer ses projets avec des bibliothèques et frameworks

Une fois que vous parviendrez à faire vos premiers sites statiques, puis dynamiques grâce à Javascript, il va être nécessaire d’ajouter une couche de sécurité à votre code via le langage suivant :

Typescript : créé par Microsoft, cette extension de Javascript permet de sécuriser les types et donc de détecter des erreurs beaucoup plus tôt

Ensuite, il va très vite devenir indispensable d’apprendre des bibliothèques frameworks afin de pouvoir construire plus rapidement des projets de A à Z :

React JS : bibliothèque Javascript à l’origine développé par Facebook pour construire des interfaces utilisateurs performantes. Il est également possible d’apprendre d’autres frameworks tels que Vue, Angular ou Svelte.

Node JS : framework Javascript orienté serveur, il permettra de relier les applications décentralisées aux contrats intelligents.

Next JS : surcouche à Node JS, pour gérer plus simplement les routines

 

5. Se familiariser avec la gestion de base de données

Il est important également de se familiariser avec la gestion de base de données.

Voici les Systèmes de Gestion de Base de Données (SGBD) les plus pertinents quand on travaille dans la blockchain :

  • Les SGBD utilisant le langage SQL :
    • SQLite : SGBD léger et portable, facile à utiliser, traite des volumes de données petits
    • PostgreSQL : open-source, robuste, performant, prise en charge complète de la conformité ACID, de l’extensibilité et de la sécurité
  • Les SGDB noSQL (pour traiter de grands volumes de données non-structurées ou semi-structurées)
    • MongoDB : modèle de données orienté document (JSON). Ces documents sont rassemblés dans des collections.
    • Cassandra : modèle de données orienté colonne

À noter que MongoDB et PostgreSQL ressortent plus souvent dans les offres d’emplois.

 

6. Apprendre les langages et outils spécifiques à la blockchain

Nous allons nous intéresser ici essentiellement aux langages et outils utilisés pour créer des projets sur la blockchain Ethereum. Il existe plusieurs stack possibles mais celle présentée ci-après fait partie des plus recherchées. Nous abordons à la fin de ce chapitre d’autres alternatives tout aussi intéressantes.

Solidity : langage orienté objet de haut niveau, il vous permettra de créer vos propres smart contracts.

Metamask : portefeuille permettant de stocker et échanger des cryptomonnaies et NFT mais également de se connecter avec des dApps et interagir avec le réseau Ethereum.

Ganache : outils de développement et de simulation de smart contract Ethereum, permettant de créer ses projets en local avant de le déployer sur la blockchain principale Ethereum.

Remix : il s’agit d’un IDE (Integrated Developement Environment) en ligne où l’on peut développer, compiler, déployer et tester rapidement ses smart-contract Ethereum. Il est adapté lorsque l’on débute, avant de passer sur Hardhat ou Truffle.

Ether JS : fait la liaison entre la partie frontend et la partie « backend » d’une application décentralisée, sachant que ici la partie backend n’est pas stockée sur un serveur centralisé, mais dans les noeuds du réseau blockchain. Tout comme un site Web2 utilise généralement des API pour communiquer avec les bases de données situées sur les serveurs, un site Web3 utilisera des smart contracts pour interagir avec la blockchain.

Hardhat ou Truffle : autre IDE Ethereum qui offre la possibilité d’effectuer une copie entière d’Ethereum afin de s’approcher au plus près de la réalité lors de ses tests unitaires.

En somme, la liste des langages et outils nécessaires peut sembler intimidante mais il n’est pas nécessaire de maitriser chacun sur le bout des doigts pour travailler sur un projet concret.

Combien de temps pour devenir développeur blockchain ?

La durée d’apprentissage va dépendre de plusieurs facteurs tels que votre passé en informatique, votre niveau de connaissance et de compréhension de la blockchain, votre motivation, le temps que vous pouvez vous permettre d’allouer à votre formation, la qualité de la formation que vous aurez choisie, ainsi que de vos capacités intellectuelles.

En effet, avoir déjà programmé auparavant ou même avoir une expérience dans la cryptographie, la sécurité, ou si vous vous intéressiez de longue date à des sujets tels que les cryptomonnaies, la tokenisation, toutes ces facteurs vous feront bien sûr gagner du temps.

En résumé, il est généralement admis que pour devenir développeur blockchain, il faut entre 3 et 6 mois pour une personne ayant de l’expérience en programmation, et environ 1 an à temps plein pour une personne qui n’a jamais touché à une seule ligne de code.

Quelles sont les ressources disponibles pour se former ?

Les ressources pour se former à la blockchain restent encore relativement rare et les formations universitaires sont pour l’instant inexistantes en France.

 

Ressources gratuites

Youtube :

Ben BK

Cours de FreeCodeCamp pour apprendre Solidity

Plateforme d’apprentissage par la pratique :

Cryptozombies

 

Ressources payantes

Il existe également des formations payantes qui ont le mérite d’aller à l’essentiel pour rendre les apprenants aptes à trouver rapidement un emploi.

Blockchain A-Z : cours Udemy très complet sur la blockchain

Alyra : école propose une formation de développeur blockchain très complète réalisée par des professionnels de l’écosystème. Elle offre un certificat reconnu dans le marché du travail et un réseau de partenaires très riche.

 

Comment trouver un emploi en tant que développeur blockchain ?

Les plateformes de recrutement classiques

Pour espérer trouver un emploi ou une mission, utilisez dans un premier temps les plateformes de recrutement courantes qui offrent déjà beaucoup de choix :

Les plateformes de recrutement spécialisée dans le Web3

Certains sites se sont spécialisés dans les métiers du Web3 et proposent des offres dans le monde entier :

OnChainJobs

Cryptocurrency Job 

Crypto Job Lists

 Deelance

 

Comment maximiser ses chances de trouver une mission ?

Lorsque l’on est développeur, l’un des éléments les plus importants pour trouver son premier emploi ou sa première mission est d’avoir un portfolio de 2 ou 3 projets qui attestent des compétences et de l’intérêt que l’on porte à telle ou telle technologie. C’est toujours vrai dans le cas d’un développeur blockchain, cependant des variantes sont également appréciées.

Tout d’abord, il est possible de « prouver » son implication et sa contribution dans le monde du Web3 et de la blockchain en général en participant de manière transparente à des projets blockchain. C’est déjà le cas avec Github mais d’autres plateforme telles que xxx peuvent permettre d’illustrer son travail aux yeux de potentiels recruteurs ou clients.

Par ailleurs, il est très valorisé de participer à des évènements tels que des hackatons, car cela prouve que vous êtes capables de sortir de votre zone de confort, de travailler en équipe, pendant des périodes de rush parfois très longues, et de peecher un projet. Les hackatons sont également un excellent moyen de se construire un réseau, d’enrichir ses connaissances et de monter rapidement en compétences. Et en fonction du lieu, cela peut être une expérience humaine incroyable. Il existe des épreuves en ligne et en présentiel, parfois gratuites, parfois payantes.

Conclusion

Devenir développeur blockchain nécessite de maitriser un vaste panel de langages et d’outils, ce qui peut sembler intimidant au premier abord. Il est donc important de savoir dans quoi on s’engage avant de commencer. Cependant, travailler dans la blockchain permet de participer à des projets passionnants qui remettent en cause les technologies actuelles, pour un traitement des données plus juste, plus fiable et plus transparente. Bon courage !