Vous aimez ce que vous lisez sur ce blog ?
Envie d'aller plus loin avec véritable formation d'expertise en Java ?
Venez suivre ma formation Masterclasse Expertise Java !

"Même un développeur experimenté a besoin de continuer à apprendre. Et dans cette formation... j'ai appris beaucoup !" - A.G., Java Champion

Sessions intra-entreprises sur demande : contact[at]mokatech.net.
Inscrivez-vous vite !

Flashback : pourquoi je passe Freelance

J'ai commencé la programmation très tôt. Parce que c'était amusant.

D'abord, sur l'Apple II de mon grand-père.
Il était composé (l'ordinateur, pas le grand-père) d'une unité centrale avec clavier intégré, surplombé de deux lecteurs disquettes 5"1.4, et finalement d'un écran en noir et jaune. Une disquette (recto/verso) permettait de booter l'OS et de le monter en mémoire. D'autres disquettes permettaient ensuite de charger des programmes (tableur, jeux[1]...) et de sauvegarder les documents.

L'OS en ligne de commandes proposait quelques commandes simples, et c'est ainsi que j'ai tapé pour la première fois le traditionnel "print "hello"" et que, miracle, ça a effectivement affiché "hello". C'était magique.

Note

[1] Dont Olympic Games qui demandait de sérieusement matraquer le clavier pour faire courir les personnages

A l'école

Collège

En entrant au collège, j'ai eu une petite calculatrice Casio. Un modèle tout simple, qui ne faisait guère plus que les opérations mathématiques les plus courantes, mais qui était programmable. J'ai passé quelques heures à éplucher le mode d'emploi, recopier des programmes fournis par les magazines de l'époque, et bien sûr "sauvegarder" (hem...) mes formules de maths et de physique dedans...

A la même époque, je me liai d'amitié avec un camarade de classe, également prénommé Olivier. Il habitait au bout de ma rue et possédait un PC i386 avec, tenez-vous bien, 4 Mo de RAM. Une bête de course !
Entre deux sessions de Doom (au joystick) ou de Day of the Tentacles[1], nous avons commencé ensemble à apprendre le Pascal puis l'assembleur x86, en déchiffrant quelques manuels (en anglais) et en faisant des expériences sur son PC. En troisième, nous étions capables de coder des petits jeux (snake, pacman) et d'y inclure quelques morceaux d'assembleur pour gérer la souris, passer en "mode X" (320x200) et changer les couleurs de la carte graphique.

C'était l'époque des démo-parties, et on trouvait sur les CD accompagnant les magazines des bouts de code assez bluffants, des cubes qui tournent, des tunnels infinis, des blobs en mouvement ! Tout ça en 4k ou moins. Nous avons eu beau étudier tout ça de près, le seul effet dont nous avons percé le secret est celui du feu[2]. Mais c'était amusant et instructif.

Lycée

A l'époque du lycée, j'ai pu découvrir Visual Basic et son approche WYSIWYG. Avec ce langage j'ai découvert la notion d'objet (plus ou moins), et j'ai codé le logiciel de réservation et d'attribution des salles de l'établissement, ainsi qu'un front-end graphique pour pkzip (l'outil de compression/décompression à la mode à cette époque), qui a pas mal été utilisé par la famille et les amis. Enfin des logiciels utiles !

A la même époque, j'ai enfin eu mon premier ordinateur personnel (Pentium 90, Windows 95). J'y ai installé Apache httpd, et j'ai appris comment réaliser des sites webs dynamiques avec PHP 3 et MySQL grâce à un livre de chez MicroApplications. A l'époque, je vous prie de croire que l'intégration httpd / php n'était pas simple, et HTML2 n'était pas très sexy (surtout sous IE5...). La documentation papier était maigre, et sur internet[3]...

EFREI

Vint alors l'époque des études supérieures, à l'EFREI.
L'école nous proposait un accès à Internet haut débit, ainsi qu'une adresse email personnelle. Le 21° siècle avant l'heure.

J'y ai effectué deux années de classes préparatoires et trois ans de cursus ingénieur, au cours desquels j'ai successivement fait du Pascal (j'avais de l'avance), de l'assembleur 68k, du C puis du C++, du Prolog[4], et enfin... du Java.

Oh, pas grand-chose, juste un module de quelques semaines dans le courant de l'an 2000. Comme le professeur semblait découvrir le langage en même temps que nous, j'ai acheté et étudié les livres de chez Sun, Core Java 1 & 2. La version 1.3 venait de sortir, et les IDE n'étaient pas les fusées que l'on a aujourd'hui[5]... J'apprenais les API par coeur, je programmais sous Notepad, je compilais en ligne de commande, et comme à l'époque on pouvait coder une application sans importer un million de librairies tierces, ça marchait plutôt bien.
Mon projet de fin d'études proposait une interface en Swing, des communications réseau par sockets, et du stockage sur disque par sérialisation (la grande mode du XML est arrivée plus tard). Oui, j'en étais fier.

Pendant mes stages, j'ai développé applications sérieuses comme une plateforme d'édition de contenu XML pour Travelprice, et d'autres plus étranges comme une applet multi-utilisateurs et temps réel servant de support à une expérience sociale[6]. C'était fun.

Au travail

Cril Technologies

A la sortie de l'EFREI, il a fallu chercher du boulot, et j'ai atterri chez Cril Technologies. Je n'y suis pas resté longtemps, moins d'un an - peu de perspectives d'évolution, et peu de projets en Java dans le pipeline. En attendant mieux, je me suis occupé en développant un framework MVC en PHP pour un client, et en apprenant à me servir d'Oracle. J'ai également eu la chance de travailler avec deux vrais chefs de projet (salut Hugues et Jérôme).

Soat

Lorsque le marché a repris, je suis donc parti chez Soat, qui m'a accepté à l'issue d'un entretien qui a davantage testé mes connaissances en SF qu'en Java[7]. J'y suis resté presque cinq ans, acquérant de l'expérience et découvrant au fil des missions la richesse de l'univers opensource.

A cette époque, le nombre de librairies par projet restait encore très raisonnable (en général, deux ou trois libs Apache comme Log4J, JUnit et peut-être Axis), et Ant suffisait largement à gérer tout ça. Facile. Lorsque j'ai découvert Spring (1.2), ça a commencé à se compliquer. J'ai mis un certain temps à comprendre son principe et l'intérêt du concept d'inversion de dépendance - à l'époque, c'était une nouveauté radicale par rapport aux design patterns et blueprints Sun. Mais sa documentation était excellente, et j'ai fini par l'introduire sur le projet d'un client.

C'est également chez Soat que j'ai commencé à donner des formations. En tant que Manager Technique, j'avais sous ma houlette un groupe de 6 à 8 juniors volontaires pour se prêter à l'expérience. Une fois par mois, je les réunissais en soirée pour leur faire découvrir un outil (Ant, JUnit, Log4j, Spring, les nouveautés de Java5...), slides et exercices à l'appui. Cela m'a demandé beaucoup de travail, mais je pense que ça leur a plu.

J'ai quitté Soat fin 2008, en très bons termes, et avec la certification Java5 en poche. La société me plaisait, je n'avais rien à reprocher à personne, mais... je voulais apprendre de nouvelles choses.

Zenika

J'ai donc commencé à participer activement aux conférences parisiennes. Et c'est là que j'ai rencontré Zenika.

A l'époque, c'était un pari sur l'avenir : 4 directeurs eux-mêmes développeurs, une secrétaire/comptable/RH, une petite poignée d'excellents consultants, une certaine vision d'expertise technique, et des idées plein la tête. Un modèle agile avant l'heure, en quelque sorte. Cela m'a plu.

Entre les missions, j'ai eu la chance rencontrer Heinz Kabutz pour me perfectionner en Java, et Julien Dubois qui a signé ma certification Spring (collector !). J'ai également découvert Hibernate, Wicket, l'agilité... Et mis un pied dans l'univers de la formation professionnelle.

Je ne sais pas combien de sessions j'ai animé en presque 6 ans, mais dans l'ensemble, j'en garde un excellent souvenir. J'espère que mes étudiants aussi !
C'est un exercice épuisant, mais c'est toujours sympa de rencontrer des développeurs de tous horizons et de partager nos connaissances et expériences. J'ai plein d'anecdotes, amusantes ou rocambolesques : cette fois où on m'avait envoyé un jour en avance chez le client (oups) ; cette autre où mon ordinateur a lâché en pleine formation ; et toutes ces fois où j'ai été désespéré de voir un stagiaire effectuer un Ctrl-C avec deux index...

Depuis, Zenika a beaucoup évolué. La petite startup affûtée s'est muée en SSII classique, et vers la fin, je peinais à y trouver ma place et à y faire valoir mes idées. Ce n'était plus amusant. J'en ai tiré la conclusion qu'il était, à nouveau, temps de voguer vers d'autres horizons.

Freelance !

J'ai donc décidé de tenter l'aventure en freelance, sous le label Moka Technologies (http://mokatech.net).

C'est un troisième volet de ma vie qui s'ouvre.
Après tout, pourquoi pas ? Avec un bon CV, des contacts et pas mal d'huile de coude, il devrait être possible de s'en sortir ? On verra si l'avenir me donne raison (toute aide est la bienvenue !), et je vous tiendrai au courant.

Stay tuned, l'aventure continue !

Notes

[1] Ah, les jeux LucalArts de l'époque...

[2] Chaque pixel est calculé à partir de la moyenne des couleurs des trois pixels de la ligne du dessous, et du pixel deux ligne en-dessous.

[3] On a eu internet à la maison (par modem 56k) à l'époque où Oreka offrait 6 heures de surf, en contrepartie de l'affichage de publicités qui prenaient un bon quart de l'écran. Ce n'était pas fulgurant, mais comme il n'y avait pas grand-chose à y lire non plus...

[4] Yes.

[5] Forte4Java, JBuilder, et même Netbeans !

[6] http://poietic-generator.net/

[7] Faites gaffe, le boss est très calé !


Commentaires

1. Le vendredi 21 novembre 2014, 15:58 par Deadlock

Tu est fruiuuuiitt ;)

2. Le dimanche 25 janvier 2015, 22:36 par Pierre

Salut Olivier,

Tu es l'un de mes premier collègues, et tu resteras l'une des personnes qui m'a le plus marqué, et fait aimé le Java. Je suis aussi attiré par le freelance, même si je n'ai pas franchi le pas (pas encore :p).

J'ignore si tu te souviens de moi, mais ce serait avec plaisir que je reprendrai contact... de loin, puisque je suis à Lyon. Ma fois, tu dois avoir mon adresse pas loin, si ça te dis, fais moi un petit mot, qu'on se remette en contact!

A plus,

Ajouter un commentaire

Le code HTML est affiché comme du texte et les adresses web sont automatiquement transformées.