365 jours avec un développeur front-end

1 an d’utilisation de Codeivate — le quantified self des programmeurs

1 an de code en chiffre : 500h, expert Ruby Slim & Sass
Par David Leuliette le

Cela fait 365 jours que j’utilise Codeivate avec Sublime Text. Ce plugin – utilisé avec n’importe quel éditeur de texte ou IDE – analyse en temps réel le type de fichier sur lequel vous travaillez, et permet d’extraire différentes statistiques.

Plus vous codez, plus vous gagnez de points (je suis actellement niveau 20). Grâce à Codeivate j’ai appris à mieux connaître mes langages de prédilection & les moments de la journée les plus productifs.

Moment les plus productifs de ma journée

500 heures de code

365 jours, le plugin se déclenche seulement quand vous utilisez votre éditeur de texte. Si l’on considère une journée classique de travail de 8 heures cela donne (365 jours * 8 heures) / 500 heures = 5,84 heures de code par jour.

1247 branches, j’utilise la logique de branches pour travailler efficacement avec Git. Je passe en moyenne (500h * 60 minutes) / 1247 branches = 24 minutes par feature.

1 heure 9 minutes, c’est ma meilleure série sans interruption. Je n’ai pas investigué au bout de combien de temps le compteur s’arrête, mais je pense que lire de la documentation – même 5 minutes – coupe le timeur.

Rating Novice, en suivant la logique du livre Outliers : The Story of Success, il faut 10 000 heures pour être expert dans un domaine. En suivant le même rythme, devenir expert développeur front-end demande 20 années de travail.

Langages majeurs

Ruby Slim Level 8

J’utilise le langage de templating slim pour gagner du temps car la syntaxe HTML est réduite au maximum (tout comme Jade en Node.js).

Sass Level 8

Pour avoir un design maintenable et évolutif, j’utilise Sass.

Markdown Level 3

Pour gérer les documents de type texte, j’écris TOUT en markdown. Si l’on vous demande d’en faire un beau document il est toujours possible de l’exporter en .pdf

Langages mineurs

YAML Level 2

J’applique le principe de single point of failure pour gérer certaines informations comme les identifiants & mot de passe, la localisation, les media sociaux…

JavaScript Level 2

J’utilise quotidiennement ce langage. Force est de constater que je n’en code pas tant que ça, peut être parce que – dans certains cas – Angular élimine complètement le besoin d’écrire du JavaScript.

Ruby Level 0

Je ne me ballade jamais dans les controlleurs ou les modèles, mais il m’arrive de créer mes propres helpers en ruby.

Image d’analyse de 1 an de code

Vous pouvez consulter la liste complète sur mon profil Codeivate.

5 ordinateurs

Une statistique interessante est le nombre de machines utilisées. En 1 an j’ai travaillé sur 5 ordinateurs différents, principalement sur OSX et un peu de Linux. Si l’on prend en compte le temps d’un setup complet d’une nouvelle machine de devéloppeur front-end cela donne environ (2 jours x 5 machines) 40 heures d’installation, soit une semaine de travail à regarder des barres de chargement.

C’est pour cette raison que j’utilise des solutions comme Boxen de GitHub ou encore Laptop de Thoughtbot. Si vous souhaitez être efficace dans votre travail il est – à mon avis – indispensable d’automatiser ce processus pour pouvoir être efficace.

Whatever you do, make sure you are automating, because if you aren’t, all you are doing is making it harder for yourself when you revisit the problem, and making it even harder for the next person who will inevitably have to reproduce your solution.