Vie de développeur et programmeur : Renaud et Guillaume répondent à nos questions
A l’occasion de la journée mondiale des développeurs, nous avons choisi de donner directement la parole à ces derniers. Car qui mieux qu’un développeur ou un programmeur pour parler de programmation et de la vie de développeur ? Guillaume et Renaud, consultants Delane SI, ont donc répondu à nos petites questions !
« Voir comment les choses fonctionnent plutôt que savoir ce qu’elles font »
Pourquoi avoir choisi de devenir développeur, de vous tourner vers la programmation ?
Guillaume : Parce que j’aime voir comment les choses fonctionnent plutôt que savoir ce qu’elles font.
Renaud : Sorti d’un BAC S, spécialité Mathématiques, j’ai intégré l’Université, en DEUG de MIAS (L1 désormais). Là, j’y ai découvert la programmation en langage C et l’algorithmique. J’ai tout de suite été séduit par les possibilités offertes par ce mode de développement, car cela me permettait d’entrevoir des utilisations natives des nombreuses fonctions mathématiques vues en Algèbre linéaire et autres. J’ai rapidement intégré la notion de langage machine et depuis, cette faculté m’a suivi tout au long de mon parcours.
« JAVA est un bon langage pour commencer »
Quel est selon vous le meilleur langage pour débuter dans la programmation ?
Guillaume : Java est un bon langage pour commencer. Accessible et éprouvé depuis plus de 20ans, les formations et aides en ligne sont facilement abordables. De plus il est aujourd’hui très couramment utilisé dans le monde de l’entreprise. Beaucoup de technologies et autres langages se sont développés autour de JAVA, ce qui lui permet d’être utilisé dans de nombreux contextes.
Renaud : Le langage C pour débuter l’algorithmique. Le PL SQL pour la base de données. Le HTML pour le Web. Le JAVA pour l’objet.
Avez-vous un (ou plusieurs ! ) conseils pour apprendre un langage ?
Guillaume : Comme dit précédemment, il existe de nombreux sites en lignes qui proposent des tutoriaux pour s’initier à ce langage. Il est également couramment enseigné dans les cursus informatiques post bac. Il existe aussi beaucoup d’organismes qui proposent des formations.
Renaud : La théorie c’est bien, mais seule la (longue) pratique de ces langages permet vraiment d’intégrer leur mode de fonctionnement et leur subtilités. Après 7 ans de pratique de PL SQL en entreprise, je découvre toujours de nouvelles choses et nouvelles optimisations possibles.
D’après vous, votre expérience… qu’est-ce qui caractérise un « bon » développeur ? (exemple : parcours, habitudes de travail, bonnes pratiques…)
Guillaume : Être un bon développeur n’est pas simplement bien programmer selon moi. Il faut avoir des bonnes facultés d’écoute, de synthétisation et d’anticipation. L’écoute évidemment pour satisfaire au mieux les demandes. Un esprit synthétique pour être le plus efficace que possible. Et l’anticipation, pour appréhender les futurs besoins, c’est-à-dire permettre la modularité de son travail afin de faciliter le travail pour les personnes qui seront amenés à faire évoluer ou à poursuivre notre travail.
Renaud : Le meilleur développeur, c’est celui qui ne code pas (ou peu). Il a réalisé en amont de ses projets, toutes les briques nécessaires à des assemblages rapides en fonction des besoins (tables de paramétrages, packages, fonctions, scripts automatiques, etc…). Le but n’est pas de réécrire du code en permanence mais d’utiliser des fonctions génériques qui seront utiles pour tous les besoins actuels et futurs.
Quelles sont les qualités indispensables ou au moins, importantes, pour travailler dans la programmation ou travailler comme développeur ?
Renaud : La bonne compréhension des besoins clients (EDB, SFG, SFD), la bonne logique algorithmique et l’auto gestion (savoir par quel bout commencer).
Un (ou plusieurs) langages que vous n’appréciez pas du tout ? (question subsidiaire : pourquoi ? )
Renaud : JAVA : C’est un bon langage pour débuter l’objet mais en contrepartie, les notions d’optimisation de codes sont compliquées à mettre en place à cause de la gestion automatisée de la machine virtuelle. Les DESIGN PATTERN sont également des notions un peu rébarbatives.
Qu’est-ce qui énerve le plus un développeur ?
Guillaume : Un environnement lent, quand un outil lui manque ou encore un bug qu’il n’arrive pas à isoler.
Renaud : Quand le client ne sait pas ce qu’il veut ou qu’il ne veut plus ce qu’il a demandé une fois le besoin mis en production.
Que pensez-vous des nouveaux systèmes et plateformes de type « OpenClassrooms » qui permettent de se former seul ? Peut-on en sortir développeur ?
Guillaume : Plutôt utile pour un besoin ponctuel sur un sujet et une bonne entrée en matière pour débuter sur une technologie. Néanmoins une formation réalisée par des professionnels est toujours un plus pour progresser plus rapidement. De plus on peut profiter également de l’expérience du formateur pour appréhender les bonnes pratiques.
Renaud : Pourquoi pas mais je pense que le contact humain pour de la formation sera toujours nécessaire.
Pensez-vous que l’on puisse être réellement autodidacte dans ce type de professions et dans ce domaine ?
Guillaume : Tout dépend du niveau d’expertise que l’on souhaite atteindre selon moi.
Renaud : Oui mais on a toujours quelque chose à apprendre de ses collègues.
Quelles sont vos astuces et pratiques pour maintenir vos connaissances à jour ?
Guillaume : Je pense qu’il n’y a rien de mieux que la pratique d’une technologie pour entretenir ses connaissances. Malheureusement le temps ne nous le permet pas tout le temps.
Renaud : Les changelog des outils utilisés.
On parle beaucoup, au travers du net, de programmation avec des enfants, pensez-vous que cela soit adapté ?
Guillaume : La nouvelle génération est née dans le tout numérique. Elle aura selon moi des facilités de pratique de la programmation dans la mesure où elle sera plus familière avec cet environnement que les générations précédentes. La programmation est aussi un moyen pour les enfants de mieux comprendre le fonctionnement de choses qu’ils utilisent tous les jours. Pour moi cela ne parait pas inadapté mais cela devrait se faire sur la base du volontariat.
Renaud : Oui. Je trouve que la notion d’informatique est trop peu présente dans l’environnement scolaire. De la programmation dès l’école primaire serait un vrai plus pour l’Éducation Nationale.
Avez-vous des références dans le domaine ? Des livres phares, des ressources incontournables, des blogueurs ou autres « figures » médiatiques à suivre ?
Guillaume : Il n’y a pas de meilleure ressource qu’internet. Les forums d’entraide pullulent ainsi que les sites explicatifs, tout en passant par les documentations des éditeurs etc …
Renaud : Pas spécifiquement. Google is my friend.
Si l’on vous demandait de décrire votre poste et vos missions actuelles dans les grandes lignes, qu’est-ce que ça donnerait ?
Guillaume : Je dirai que ma mission est de participer à la maintenance et à l’évolution des outils satellites tournés autour d’un progiciel de financement. Pour dire les choses simplement : cela consiste à corriger des bugs et faire évoluer des programmes et applications.
Renaud : Ingénieur d’études. Analyse les besoins technico-fonctionnels afin de retranscrire ceux-ci en code informatique et générer les données nécessaires aux publications de l’entreprise.
Et dans l’exercice de votre métier, êtes-vous plutôt amené à travailler seul ou en équipe ?
Guillaume : Je n’ai connu que le travail en équipe. D’ailleurs je ne sais pas s’il existe un poste dans l’informatique où l’on puisse travailler seul de bout en bout (à part peut-être dans des petites structures). Dans le cadre de mon travail je suis en contact régulier avec les équipes MOA (qui expriment le besoin) de manière à répondre au mieux à leurs demandes. Je dois également me synchroniser avec mes collègues développeurs car je ne suis pas seul à travailler sur les applications et programmes du client. Dans le cadre de projets, les tâches sont divisées entre les membres de l’équipe. L’ensemble de ces tâches doit aboutir à un ensemble cohérent, il est donc primordial de travailler dans le partage et l’échange.
Renaud : Je suis dans une équipe mais je suis toujours leader sur mes projets. Il m’arrive de travailler en coordination avec un architecte IHM.
Avez-vous une journée type ?
Guillaume : Mis à part les morning meetings, rien n’est gravé dans le marbre. La quantité de travail et les tâches peuvent différer selon les jours et les périodes de l’année.
Renaud : Arrivé au bureau ;
Vérification de la production si des traitements ont tourné ou planté ;
Analyse des nouveaux besoins ;
Développements ;
Tests ;
Validation ;
Qualification ;
Déploiement ;
Mise en Production ;
Rentrer à la maison.
Pour vous, existe-t-il un projet « ultime » ? Quelque chose sur quoi vous travaillez personnellement, un projet que vous bichonnez particulièrement ?
Renaud : J’ai réalisé plusieurs projets perso dans le cadre de mon travail. Des outils destinés à faciliter mon travail ainsi que celui de mes collègues comme par exemple les recopie automatisées des données inter environnements. Des heures de travail manuel ont ainsi été économisées.
« Les start-up sont vraiment des écoles de la vie »
Quels conseils pourriez-vous donner à un étudiant pour bien choisir son stage ?
Guillaume : S’il veut toucher à beaucoup de choses et être libre d’un point de vue technique, je lui conseillerais une petite structure. S’il souhaite travailler en collaboration avec beaucoup d’équipes et développer ses capacités relationnelles, je lui conseillerais une grande structure.
Renaud : Les start-up sont vraiment des écoles de la vie et peuvent ouvrir la porte sur des montées rapides en compétences.
Y-a-t-il un ou plusieurs éléments concernant la vie professionnelle que vous auriez aimé connaître avant d’amorcer cette orientation ?
Renaud : Si on aime pas ce que l’on fait, il ne faut pas hésiter à faire autre chose.
Les commentaires dans le code font l’objet d’un certain débat. Aux yeux de certains, ils seraient inutiles dans un code propre et efficace… Quelle est votre position sur la question ?
Guillaume : Je suis d’accord sur le fait qu’ils sont inutiles dans un code propre et efficace… Mais la notion de propreté et d’efficacité est propre à chacun, voilà le problème. Ce qui est propre et efficace pour une personne ne l’est peut-être pas pour son collègue. Là où une personne pensera que son code est assez clair pour ne pas être commenté, le développeur suivant pensera lui que le code n’est pas clair et aurait dû être commenté. Là est tout le problème, c’est une question d’appréciation.
Renaud : Toujours commenter les grandes lignes. C’est important pour soi et ceux qui doivent reprendre le code après.
Dans l’ensemble, qu’énonceriez-vous comme « bonnes pratiques » de développement ?
Guillaume : Modularité, évolutivité, maintenabilité devraient être selon moi les principaux objectifs à garder en tête pour un développeur.
Renaud : Analyse et réutilisation de l’existant au maximum.
Quels sont les clichés et stéréotypes auxquels vous êtes le plus confronté au quotidien ? Qu’en pensez-vous : vous les jugez réalistes ?
Guillaume : Le cliché le plus régulier est de penser qu’un informaticien ou développeur peut résoudre tous les problèmes sur un pc parce que c’est son outil de travail. On m’a déjà demandé de l’aide pour régler des problèmes sur Word, Excel, des virus et même des problèmes de hardware. Or ce n’est évidemment pas mon métier. Cela vient du fait que les gens ne connaissent pas la variété de domaines que comprend l’informatique mais aussi qu’ils la confondent parfois avec la bureautique.
Renaud : « Tu es ingénieur en informatique, tu peux me réinstaller Windows ? ». Sans commentaire.
L’univers scientifique et particulièrement estampillé comme « geek » fait partie intégrante de la pop-culture actuelle. Entre des séries comme « The big bang theory », « IT Crowd » ou encore un film tel que « The social network », on peut dire que cet univers intrigue et inspire. Cette représentation est-elle, à vos yeux, proche de la réalité ou plutôt complètement biaisée ? Qu’auriez-vous à conseiller pour qui veut mieux cerner votre domaine professionnel et parfois personnel ?
Guillaume : Le terme Geek est assez vaste. C’est d’ailleurs un amalgame de dire qu’on est geek parce que on l’est développeur ou qu’on travaille de l’informatique, et inversement, un geek n’est pas forcément un informaticien.
Renaud : J’adore TBBT mais ce sont des cas extrêmes de geek voir no life. En entrant dans le monde du travail, peu de personnes conservent ce genre d’attitudes et beaucoup rentrent dans le moule. Ceux qui restent coincés dans la SF auront forcément du mal à s’épanouir dans une vie de famille ou un environnement professionnel qui ne leur soit pas favorable culturellement parlant. Ils restent une caste marginale des informaticiens.
Le seul moyen pour que les non informaticiens s’en rendent compte est de leur faire passer 1h ou 2 sur notre lieu de travail à observer comment on procède.
Et enfin, concernant cet aspect personnel : peut-on dire que la programmation, le développement peuvent relever de la passion ? Et dans votre cas ? Est-ce que vous pratiquez dans votre vie privée ?
Guillaume : Non, la programmation et le développement ne sont pas ma passion. J’aime ça mais ce n’est pas une passion. J’ai d’autres passions dans ma vie privée qui ne laissent donc pas la place lors de mon temps libre pour le développement que je pratique déjà à raison de 5 jours par semaine.
Renaud : Je ne pratique pas ou plus la programmation dans ma vie privée à cause d’impératifs familiaux. En revanche j’aime ce que je fais à mon travail et je m’y épanouis pleinement.
Merci à Renaud et Guillaume, consultants Delane SI, d’avoir participé et de nous avoir fait part de leurs avis éclairés !