Cuisiner et Coder même combat

Fabbook Life and Dev

Quand le codeur et le cuisinier parle le même langage

Cuisiner et coder, voilà deux verbes que l'on n'a pas l'habitude d'associer. Pourtant voilà deux activités assez similaires. Comment bien coder et bien cuisiner ? Petites explications :

Nettoyer son environnement

Garder votre cuisine propre

Lorsque vous cuisinez, gardez votre plan de travail le plus net possible, cela vous évitera de perdre du temps surtout si vous devez préparer plusieurs plats. Et si jamais votre cuisine est sale vous risquez de rendre les gens malades.

Gardez votre code propre

Refractorez, refractorez, refractorer, en effet enlevez ce qui ne sert plus à rien. Cherchez toujours à faire le job avec le moins de ligne possible. Renommez ce qui n'est pas clair et évitez de vous répéter. Plus votre code est propre, moins vous vous rendrez malade quand vous irez dans votre code.

Tester ce que vous faites

Goûter toujours et tester

Comment savoir si votre sauce manque de goût ? Il faut goûter … Parfois pour certaines recettes (meringue italienne par exemple) vous devez tester la température de vos ingrédients, où faire en sorte que la pâte ait une certaine consistance pour continuer … Bref on attend pas que la recette soit terminée pour tester son plat.

Tester votre code

Comment savoir si vous n'allez pas casser une fonctionnalité ? Où comment savoir si votre code fonctionne ? Lorsque le code est testé vous savez que vous faites ce qu'il faut. Et ainsi, vous n'attendrez pas que votre test soit en production pour le tester.

Utilisez les bons outils

En cuisine

Par exemple une cocotte minute vous permettra de cuire plus rapidement et mieux. Une balance vous permettra de doser avec plus de précision. Plus vous serez équipé de matériel utile et efficace plus vos recettes seront réussies. L'inconvénient c'est que vous serez toujours limité par votre budget et la disponibilité des différents ingrédients en magasin. En terme de cuisine j'ai une préférence pour les outils suivants : - Cocotte-minute, cela permet de gagner un temps fou - Une balance - Un rouleau à pâtisserie - etc … Après, tout dépend du type de plats que vous cuisinez (si vous ne faites que des omelettes, tout cela peut être superflu !!! )

En code

L'avantage quand on développe c'est que beaucoup d'outils sont accessibles très facilement. Les frameworks et les outils de dev sont très faciles à trouver. De mon coté j'ai une préférence pour : - Rails - Git - Sublime text - chef server, pour fabriquer un serveur - Systeme Unix - etc … Après tout dépend de vos contraintes, mais c'est toujours mieux d'être à l'aise avec ses outils.

“Keep it simple, stupid”

Ce n'est pas parce qu'une recette est complexe que le résultat en sera meilleur

En effet certaines recettes sont terriblement compliquées avec un nombre considérable d'étapes, pour quelque fois un résultat médiocre. Ma mère avait l'habitude de faire des confitures en ajoutant toutes les épices qu'elle pouvait trouver. Moralité : le résultat n'avait pas toujours le goût du fruit principal ce qui est triste dans le cas d'une confiture. Bref tout ça pour dire que la simplicité ça paye…

Trouver des solutions simples à des problèmes complexes

En effet les très bons développeurs se font fort de trouver des solutions simples à des problèmes complexes. Plus votre code sera compliqué moins il sera maintenable et plus difficile à reprendre par un autre.

Entre la science et l'art

En cuisine

En effet la cuisine c'est à la fois de la chimie et de l'art. Vous devez savoir comment certains éléments vont réagir chimiquement ensemble. Mais vous devez être capable d'être créatif et composer avec cette science. La chimie c'est une boite à outils, après vous êtes libre d'en faire ce que vous voulez

En code

la encore on est entre les maths et la prose. Vous devez être rigoureux avec ce que vous écrivez, mais vous pouvez être créatif sur la façon de le formuler. En gros il faut écrire des histoires en utilisant le minimum de mot et le maximum d'information. Si les développeurs étaient poètes ils écriraient des haiku. Et l'aiku représente le but ultime du développeur, tout exprimer avec le minimum de mot.

Tenez-vous à jour

Suivez les chefs cuistos

Avec Internet il y a maintenant de très bons chefs qui partagent leurs trucs sur intenet. J'ai une préference pour les podcasts maintenant et j'aime les amateurs qui partagent une recette où les gros sites comme 750 grammes qui font des vidéos très bien faites et très accessibles.

Suivez les gourous du dev

Pour le dev c'est la même chose, il y a de très bons developeurs qui partagent leurs connaissances. Pour rails il y a une excellente séries de podcast railscasts qui est vraiment un puit de science. Je suis sur twitter différentes “personnalités” du dev (pour php par exemple : Fabien Potencier ) J'aime aussi humancoder qui permet de centraliser la veille de différents endroits.

Bref dévorez tout ce que vous trouverez cela vous donnera toujours du terreau pour faire pousser vos idées.

Conclusion

Voilà une réflexion qui me trottait dans la tête depuis un moment. Maintenant le tout c'est de ne pas confondre les activités sinon vos ordinateurs ni survivront pas. Et vous, vous pensez que coder ressemble à une autre activité ? Si oui laquelle ?