Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Etre développeur: grandir et se développer

Etre développeur: grandir et se développer

Développeur est un métier d’artisanat : il ne s’apprend pas en 1 jour. Particularité, son matériau principal ne cesse d’évoluer. Comment maintenir l’équilibre et continuer à se développer dans ce métier ? Comment faire face à l’afflux permanent de nouvelles modes et technos ? Comment continuer à réinventer son métier ?
Cette présentation livrera quelques clés :
- Au-delà de l’ingénierie logicielle, utiliser son intuition
- Au-delà de penser tech, se concentrer sur le produit et sa valeur
- Au-delà de l’exploit individuel, le travail en équipe
Pour évoluer, notre zone de confort et nos habitudes sont nos pires ennemies.

ELEOUET Gaëtan

April 21, 2022
Tweet

Other Decks in Programming

Transcript

  1. 2

  2. Red-Blue 9 Un serveur Web Endpoints GET /red GET /blue

    Persistance {"message": "0/1"} {"message": "TIE"}
  3. Callisthénie 20 1. Un seul niveau d’indentation par méthode 2.

    Ne pas utiliser le mot clé ELSE 3. Envelopper tous les types primitifs et les string
  4. Callisthénie 21 1. Un seul niveau d’indentation par méthode 2.

    Ne pas utiliser le mot clé ELSE 3. Envelopper tous les types primitifs et les string 4. Collections “de première classe”
  5. Callisthénie 22 1. Un seul niveau d’indentation par méthode 2.

    Ne pas utiliser le mot clé ELSE 3. Envelopper tous les types primitifs et les string 4. Collections “de première classe” 5. Un point par ligne
  6. Callisthénie 23 1. Un seul niveau d’indentation par méthode 2.

    Ne pas utiliser le mot clé ELSE 3. Envelopper tous les types primitifs et les string 4. Collections “de première classe” 5. Un point par ligne 6. Ne pas abréger
  7. Callisthénie 24 1. Un seul niveau d’indentation par méthode 2.

    Ne pas utiliser le mot clé ELSE 3. Envelopper tous les types primitifs et les string 4. Collections “de première classe” 5. Un point par ligne 6. Ne pas abréger 7. Maintenir toutes les classes petites
  8. Callisthénie 25 1. Un seul niveau d’indentation par méthode 2.

    Ne pas utiliser le mot clé ELSE 3. Envelopper tous les types primitifs et les string 4. Collections “de première classe” 5. Un point par ligne 6. Ne pas abréger 7. Maintenir toutes les classes petites 8. Aucune classe avec plus de deux variables d’instance
  9. Callisthénie 26 1. Un seul niveau d’indentation par méthode 2.

    Ne pas utiliser le mot clé ELSE 3. Envelopper tous les types primitifs et les string 4. Collections “de première classe” 5. Un point par ligne 6. Ne pas abréger 7. Maintenir toutes les classes petites 8. Aucune classe avec plus de deux variables d’instance 9. Pas de Getters / Setters / Properties
  10. Le fruit d’une histoire 27 2000 to 2015: Lightweight methodologies

    1990 to 1999: Prominence of the Internet 1985 to 1989: "No Silver Bullet" 1965 to 1985: The software crisis 1945 to 1965: The origins “Those who do not remember the past are condemned to repeat it.” George Santayana Wikipédia
  11. Les manifestes 28 Agile Software Development Les individus et leurs

    interactions plus que les processus et les outils Des logiciels opérationnels plus qu’une documentation exhaustive La collaboration avec les clients plus que la négociation contractuelle L’adaptation au changement plus que le suivi d’un plan 2001
  12. Les manifestes 29 Software Craftsmanship Pas seulement des logiciels opérationnels,

    mais aussi des logiciels bien conçus. Pas seulement l'adaptation aux changements, mais aussi l'ajout constant de la valeur. Pas seulement les individus et leurs interactions, mais aussi une communauté de professionnels. Pas seulement la collaboration avec les clients, mais aussi des partenariats productifs. 2008
  13. SOLID 31 Principes : • Responsabilité unique (S) • Ouvert

    / fermé • Substitution de Liskov • Ségrégation des Interfaces • Inversion des Dépendances Robert C. Martin (2000)
  14. CUPID 32 Propriétés : • Composable • Philosophie Unix •

    Prévisible • Idiomatique • Basé sur le Domaine Dan North (2021)
  15. CUPID 33 Propriétés : • Composable • Philosophie Unix •

    Prévisible • Idiomatique • Basé sur le Domaine Dan North (2021) La solution modélise le domaine du problème en langage et structure Se marie bien avec les autres Fait bien une chose Fais ce que l’on attend Se sent naturel
  16. CUPID 34 Propriétés : • Composable • Philosophie Unix •

    Prévisible • Idiomatique • Basé sur le Domaine Dan North (2021) La solution modélise le domaine du problème en langage et structure Se marie bien avec les autres Fait bien une chose Fais ce que l’on attend Se sent naturel Communiquer
  17. Pièges 45 Zone de confort Excès de confiance Mauvaises pratiques

    Isolement (dénigrement du non technique) Isolement (super héros)
  18. Être Développeur ? 46 Valoriser ses réussites Se faire plaisir

    Trouver sa raison d’être Savoir focus & dé-focus En forme Ensemble Elever ses exigences
  19. La passion 47 Transformer une activité, en être un acteur

    Permet de conserver « la flamme » qui permet d’être impliqué
  20. La passion 48 Transformer une activité, en être un acteur

    Permet de conserver « la flamme » qui permet d’être impliqué MAIS Attention être développeur c’est résoudre les problèmes importants et pas seulement les problèmes intéressants
  21. Se comporter 51 Il n’y a pas de « questions

    bêtes » Tu n’es pas ton code La revue de code est bienveillante L’épuisement dégrade la qualité Tu n’es pas seul … Egoless The Psychology of Computer Programming Gerald M. Weinberg (1971)
  22. Créer une culture 52 Ne pas se contenter de faire,

    connaitre la théorie Apprendre à comprendre Expliciter ses choix Se confronter à d’autres façons de voir Ne pas figer ses schémas mentaux
  23. Développeur expérimenté 55 • Even your favorite developers may not

    know many things that you know. • Experienced developers have valuable expertise despite knowledge gaps. Dan Abramov • Même vos développeurs préférés peuvent ne pas savoir beaucoup de choses que vous savez. • Les développeurs expérimentés ont une expertise précieuse malgré des lacunes dans leurs connaissances.
  24. Développeur expérimenté 56 Être expérimenté, ce n’est pas trouver les

    bonnes réponses, C’est trouver les bonnes questions
  25. Conclusion ? 57 « Nous sommes tous des apprentis dans

    un métier où personne ne devient jamais maître. » - Ernest Hemingway “We are all apprentices in a craft where no one ever becomes a master.”
  26. Biblio 59 https://alexewerlof.medium.com/my-guiding-principles-after-20-years-of-programming-a087dc55596c https://homepage.cs.uri.edu/~thenry/resources/unix_art/ch01s06.html https://spring.io/guides/topicals/spring-security-architecture https://overreacted.io/things-i-dont-know-as-of-2018/ https://shecancode.io/blog/my-software-engineer-roadmap-by-joana-carneiro https://github.com/kamranahmedse/developer-roadmap https://www.frameworklessmovement.org/ https://evansdata.com/reports/viewRelease.php?reportID=9

    Fireside Chat #33: What is a Minimum Viable Professional? https://www.youtube.com/watch?v=q-w0N9VqTk0 “It’s like coding in the dark” https://www.catharsisinsight.com/reports https://shirleyalmosni.wordpress.com/2022/02/08/il-etait-une-fois-le-syndrome-de-limposteur/ https://blog.cleancoder.com/uncle-bob/2015/08/06/LetTheMagicDie.html https://williamdurand.fr/2013/06/03/object-calisthenics/ https://lankydan.dev/perfect-is-the-enemy-of-good https://twitter.com/Devoxx/status/1513416906186887171 https://makandracards.com/makandra/31937-differences-between-transactions-and-locking https://javalin.io/ https://jdbi.org/