đ
UNâŻCHOIXâŻDIFFICILE
- Les saouler avec ma vie jusquâĂ ce que mort sâensuive
- Les saouler avec des anecdotes sur Python jusquâa ce que mort sâensuive
- Les saouler avec mon livre jusquâĂ ce que mort sâensuive
- Leur donner des conseils que jâaurais aimĂ© avoir Ă la sortie de lâETML
â
â
â
â
â
BONJOUR
- đȘȘ Sylvain Fankhauser
- âđ§âđ DiplĂŽmĂ© de lâETML en 2005
- đ§âđ DiplĂŽmĂ© de la HEIG-VD en 2009
- đ€ DĂ©veloppeur web depuis 20 ans
Les maths me détestent
(mais lâinformatique mâaime â€ïž)
Premier job

CE QUE JâAIâŻAPPRIS
- Les hiérarchies traditionnelles laissent peu de liberté
- LâĂ©volution traditionnelle peut empĂȘcher de continuer Ă faire ce quâon aime
- Lâimage dâune entreprise reflĂšte rarement la rĂ©alitĂ©
- Le premier job est bon moyen de savoir ce quâon veut⊠et surtout ce quâon ne veut pas
DeuxiĂšme job
CâESTâŻQUOIâŻLIIPâŻ?
- Agence web suisse créée en 2007
- PrĂ©sente Ă ZĂŒrich, Fribourg, Berne, BĂąle, St. Gall & Lausanne
- + de 200 employé·e·s
- SpĂ©cificitĂ©sâŻ: dĂ©veloppement agile, gouvernance partagĂ©e



LESâŻPROJETS
ĂVOLUTION DE LIIP
- Ouverture de bureaux Ă Lausanne en 2011 avec
2 autres personnes - PHP uniquement, pas de discussion possible
- 2014âŻ: lancement dâune Ă©quipe Python / Django
- 2021âŻ: presque 40 personnes Ă Lausanne
CE QUE JâAIâŻAPPRIS
- La gouvernance partagée apporte de la responsabilisation
- LâagilitĂ© bien appliquĂ©e est un super outil
- La revue de code (code review) est indispensable pour créer un produit de qualité
- Lâaugmentation de salaire permet de baisser son taux dâoccupation
- Les « avantages » (p.ex. formation) sont aussi importants que le salaire
INTERLUDE
Quelle est la proportion dâhommes dans la salleâŻ?


Câest Ă nous dâinverser cette tendance
INTERLUDE




ETâŻMAINTENANTâŠ
CâESTâŻQUOIâŻEHRO ?
- Plateforme de gestion de bénévoles créée en 2019
- Création de Sà rl en 2021
- PrÚs de 800 événements, plus de 40'000 bénévoles
- 2 salarié·e·s









QUELQUES-UNS DE NOS CLIENTS
CE QUE JâAIâŻAPPRIS
- Le travail sur un produit crée plus de pression que celui en agence
- La priorisation est un art difficile Ă maĂźtriser
- Avec la liberté viennent les responsabilités

ETâŻMAINTENANT⊠(BIS)

CâESTâŻQUOIâŻPETZI ?
- Association faßtiÚre des clubs et festivals de musique indépendants suisses
- Existe depuis 1996
- Plus de 200 salles de concerts et festivals
- Offre des services Ă ses membres, p.ex. service de billetterie
- Alternative aux billetteries commerciales
CE QUE JâAIâŻAPPRIS
- Rencontrer les personnes qui utilisent les systĂšmes quâon dĂ©veloppe est trĂšs instructif
- Le secteur de la Culture manque de financements
- Le dĂ©veloppement dâune fonctionnalitĂ© a un coĂ»t immĂ©diat + un coĂ»t de maintenance
- Les associations ont besoin de bĂ©nĂ©volesâŻ!
Questions�
Et maintenant quelques conseils
Privilégiez les approches simples, toujours
CONSEIL 1/12
Réalisez des projets personnels
Si vous en avez la possibilité
CONSEIL 2/12
Apprenez les structures de données de base
Liste, map, set, etc.
CONSEIL 3/12
Rendez les états impossibles⊠impossibles
CONSEIL 4/12
đ©
class Order:   is_cancelled: bool   cancelled_at: datetime | None
đ
class Order:   cancelled_at: datetime | None       def is_cancelled(self):     return self.cancelled_at is not None
đ©
class Request:
is_loading: bool
is_error: bool
error_message: str
is_success: bool
đ
class Request:
status: RequestStatus
class RequestStatus:
pass
class RequestStatusLoading(RequestStatus):
pass
class RequestStatusError(RequestStatus):
error_message: str
class RequestStatusSuccess(RequestStatus):
pass
Les commentaires devraient expliquer le pourquoi plutÎt que le quoi
CONSEIL 5/12
đ©
def synchronize_user(user_id):
# Initialize the API client
client = ApiClient()
# Fetch the user from the API
user = client.fetch_user(user_id)
# Set nb_orders
user.nb_orders = user.nb_orders or 0
# Persist the user
DatabaseRepository().persist_user(user)
def synchronize_user(user_id):
client = ApiClient()
user = client.fetch_user(user_id)
# The API returns null if the user has
# no orders
user.nb_orders = user.nb_orders or 0
DatabaseRepository().persist_user(user)
đ
Ăcrivez des tests automatisĂ©s
CONSEIL 6/12
Essayez un langage fonctionnel
Par exemple Elm
CONSEIL 7/12
Apprenez à utiliser un débogueur
En Python: breakpoint()
CONSEIL 8/12
Apprenez Ă utiliser git en ligne de commande
CONSEIL 9/12
Apprenez à négocier
un salaire
CONSEIL 10/12
Rendez-vous à des meetups et conférences, restez en contact
CONSEIL 11/12
Ne cherchez pas à résoudre tous les problÚmes avec la technologie
DERNIER CONSEIL
Pourquoi đâŻ?

POURQUOI đâŻ?
- Logiciel libre
- Un des langages les plus populaires actuellement
- Utilisé par de grosses organisations (Google, Wikipedia, CERN, NASA, Instagram, Spotify, etc)
- Une syntaxe Ă©purĂ©e et lisible, proche de lâanglais
- Une librairie standard riche
- Une communauté foisonnante
LE ZEN DE PYTHON
PréfÚre:
   la beauté à la laideur,
   l'explicite à l'implicite,
   le simple au complexe
   et le complexe au compliqué.
Prends en compte la lisibilité.
Ne passe pas les erreurs sous silence.
Il ne devrait y avoir qu'une et une seule façon de procéder.
Si l'implémentation s'explique difficilement, c'est une mauvaise idée.
Si l'implĂ©mentation s'explique aisĂ©ment, c'est peut-ĂȘtre une bonne idĂ©e.
>>> import this
RESPONSABILITĂS ĂTHIQUES
- La technologie et les programmes sont omniprésents
- ConsĂ©quenceâŻ: grands enjeux sociaux
- La technologie nâest pas neutre
- «âŻLa fonctionnalitĂ© que je dĂ©veloppe a-t-elle un impact positif sur les gensâŻ?âŻÂ»
- « Comment augmenter la diversitĂ© dans mon milieuâŻ?âŻÂ»
- Gardez toujours un regard critique sur la technologie
«âŻUn grand pouvoir implique de grandes responsabilitĂ©sâŻÂ»
đ
Sylvain Fankhauser
geniesducode.com
@sephi@tooting.ch
sylvain@fankhauser.name
đš
MerciâŻ!
etml
By Sylvain Roflmao
etml
- 107