vendredi 27 février 2009

Software Development Meme

Petit questionnaire trouvé au hasard de mes lectures
À quel âge avez-vous commencé à programmer?

J’ai écrit mon premier programme à l’âge de 15 ans en secondaire 3.


Comment avez-vous commencé à programmer?

C’était au cours de mathématique. J’aurais pu commencer l’année précédente mais ça ne m’intéressait pas encore à ce moment là. Surprenant n’est-ce pas? Il y avait un vieux terminal à papier thermique et un modem acoustique qu’on branchait ministère de l’Éducation de l’époque. Chaque fois qu’on était en avance sur nos apprentissages nous avions la permission d’expérimenter et d’apprendre à programmer.


Quel a été votre premier langage?

Le premier langage que j’ai appris est le Basic. Le bon vieux Basic, rien de visuel comme aujourd’hui, avec une capacité d’édition limité du code source. Pour corriger une ligne on la retapais avec le même numéro de ligne pour remplacer et de nombreuse commande RENUM pour renuméroter les lignes si par malheur il ne restait plus d’espace entre deux numéros de ligne pour en insérer de nouvelles. Ah! Des variables à une seule lettre, toutes globales, pas de fonction juste des GOSUB. Et énormément, énormément de GOTO!


Quel est le premier vrai programme que vous avez écrit?

Définissez vrai programme! Mon premier programme complet était un jeux de roulette de casino. 22, rouge, pair et passe! Je me souviens avoir dû le découper en deux parce que la section « Comment jouer » était devenue trop grande pour la quantité de mémoire disponible. Les jeux sont toujours une puissante motivation pour programmer.


Quels sont les langages que vous avez utilisés depuis que vous avez commencé à programmer?

Wow! Quelle question! J’ai fait plusieurs programmes en Basic évidement, puis APL, COBOL, FORTRAN, RPG (berk!), PASCAL, Forth, C, C++, Logo, JCL, SPSS, COMAL, Langage machine pour micro-processeur 6502, 6510, 8080, Zilog-80, 8086, Assembleur IBM-360, PDP-11/70 et enfin HTML, JavaScript, ASP, CSS, PHP, C#, Ladder Logic, PL/SQL, XQuery, XSLT. Désolé, pas de LISP, PL/I, ADA, ni de Java (honte à moi) ou Perl.


Quel a été votre premier mandat professionnel de programmation?

La première fois a été au cégep, au département d’expérimentation pédagogique, pour un emploi d’été. J’ai écrit un programme pour facilité la correction d’examen par ordinateur. C’était une sorte d’interface interactive d’entrée de donnée et qui refilait ensuite les informations formatées pour un programme en lot à être exécuté à distance.

Cependant, le premier programme que j’ai écrit pour quelqu’un d’autre que moi ou d’un ami était un programme d’inventaire de stock que j’ai écrit « à la volée » directement sur le comptoir d’un Radio-Shack, sur un TRS-80 Model 1. Je n’ai pas été payé pour ce programme là, je voulais simplement que le vendeur me laisse tranquille car il trouvait que je passait vraiment « trop de temps à taponner » sur l’ordinateur sans jamais acheter quoi que ce soit.


Si vous saviez ce vous vous savez maintenant, est-ce que vous auriez commencé à programmer?

Et comment! Je suis vraiment fait pour programmer. C’est la chose la plus satisfaisante que j’ai jamais fais de ma vie. C’est comme un match entre toi et la machine. En fait, c’est plus un défi à soi-même de logique et de persévérance. Un jeu mental au règle claire. Ça passe ou ça plante.


S’il y a une chose que vous avez appris durant toutes ces années que vous vous voudriez dire aux nouveaux développeurs, qu’est-ce que cela serait?

Ne pensez jamais que vous en savez assez. Lisez du code. Lisez le code de grand programmeur. Écrivez du code. Écrivez des programmes qui génère du code. Écrivez des outils qui vous aide à voir le portrait complet, à voir les détails. Écrivez des super-outils qui travailles avec les outils que vous avez fait. Apprenez comment, couche par-dessus couche, les choses collaborent entre-elles. Ouvrez les boîtes noires, regardez à l’intérieur, dessous, derrière, les à côté du code. Découvrez comment ça marche. N’arrêtez jamais d’apprendre.


Quelle est la chose la plus amusante que vous ayez... programmé?

C’est moins une chose spécifique qu’un mode de pensée. Programmer un outil qui vous sert ensuite de levier pour faire autre chose. C’est comme construire un moule, puis de mouler un outil comme un marteau et s’en servir pour bâtir une maison. Vous connaissez les secrets les plus intimes de votre outil, ce qu’il peut faire, et plus encore, avoir des projets pour continuer à l’améliorer.

Au cégep, il y avait un générateur de labyrinthe qui était très populaire parmi les étudiants. Un jour j’ai décidé d’écrire un programme capable résoudre le labyrinthe à partir de la sortie du générateur. Un véritable expérimentation sur la récursivité.

Il y avait aussi un portrait d’Einstein en Ascii-Art. J’ai voulu en imprimer des versions géantes mais je détestais l’aspect d’escalier carré qui en résultait. J’ai alors essayer d’écrire un programme qui faisait une sorte d’anticrénelage pour assouplir l’agrandissement même pour des affiches de dix pieds par dix pieds.

Et les maths! J'ai fais un programme qui calculait tous les chiffres de 213071 - 1. Je soupçonnais à l'époque que ça pouvais être un nombre premier et je cherchais à démontrer.

En français, j'avais un rapport à remettre et je l'avais tapé sur l'ordinateur mais l'imprimante coupais les mots à 80 caractères par ligne. J'ai alors écrit un petit programme pour découper les mots selon les syllabes à partir de seulement une quinzaine de règle. Ab-so-lu-ment! C'était en 1978, bien avant les traitements de texte.

C'est évidemment sans compter mon fidèle Commodore 64...

Des heures et des heures et des heures et des heures...

Aucun commentaire: