Mon setup que je n'aurais jamais pensé serait si productif

Après 15 ans d’utilisation de Windows comme système d’exploitation principal, j’ai fait le saut vers Linux. Ce n’était pas une décision purement technique — c’était un besoin d’efficacité qui a complètement changé ma façon de travailler.

C’est le setup qui me permet d’être productif en tant que développeur solo, me concentrant sur la résolution de vrais problèmes au lieu de lutter avec mon environnement de travail.

Le changement : Windows → Linux

Pendant longtemps, j’avais voulu tirer le meilleur parti du système d’exploitation. La mémoire RAM (j’ai actuellement 16 Go) était toujours le problème principal : consommation excessive insoutenable ; après un certain temps, la lenteur avec laquelle le système d’exploitation se comportait est devenue ingérable.

Après y avoir beaucoup réfléchi et avoir vu mes possibilités de changer le matériel, je n’ai eu d’autre option que de donner une chance au système d’exploitation qui m’a appelé l’attention pendant longtemps (j’avais de l’expérience à le gérer précédemment avec plusieurs VM sur AWS) mais maintenant pour de plus grands objectifs, l’utiliser dans mon travail quotidien (Développeur Solo).

Le changement vers Ubuntu a été très fluide, en raison de la parité qu’il a avec Windows, mais au début c’était un peu difficile. J’utilise beaucoup de raccourcis qui ne se trouvaient actuellement pas de la même manière ou avec la même facilité.

En faisant la transition vers l’open source, je ne pouvais pas obtenir le même produit, ni avec les mêmes finitions, mais il avait les mêmes qualités.

À partir de mon changement mental : “Ne cherchez pas le même produit, cherchez la solution la plus viable et possible”. Ce changement m’a fait comprendre que le monde open source était tout un labyrinthe, et en même temps un univers de personnalisations, oubliant les détails, je pouvais obtenir la même fiabilité au prix d’apprendre et d’évoluer avec ma productivité.

Mon expérience : Je n’ai jamais pensé qu’en faisant simplement le passage à Linux je pourrais révolutionner ma productivité, être plus efficace, aimer plus le processus sans attendre le résultat.

Matériel minimaliste : Linux n’a pas besoin de puissance brute

Une des plus grandes révélations : vous n’avez pas besoin d’une machine de dernière génération.

Mon matériel actuel

Laptop avec moniteur externe - setup de développement

  • Moniteur(s) :

  • CRUA 27’ Moniteur CRUA de 27 pouces


  • Dell 23’ Moniteur Dell de 23 pouces

  • Périphériques :


Souris :
Souris sans fil

Et en ce qui concerne le clavier, j’aime utiliser le clavier intégré du laptop, simple, ergonomique et assez silencieux.

Pourquoi ça marche ?

Linux est incroyablement efficace :

  • Moins de surcharge du système d’exploitation
  • Pas de processus inutiles en arrière-plan
  • Contrôle total sur ce qui s’exécute et quand
  • Des mises à jour qui ne vous interrompent pas

Le terminal : Pourquoi ai-je arrêté de cliquer ?

C’était le changement le plus transformateur. Le terminal n’est pas seulement “plus rapide” — il est fondamentalement supérieur pour le développement.

Avantages de la ligne de commande

Vitesse :

# GUI : Ouvrir l'app → Chercher le dossier → Clic → Clic → Clic
# Terminal :
cd projet && code .

Reproductibilité : Chaque commande peut être documentée, partagée et automatisée.

Composabilité :

# Trouver les fichiers Python modifiés aujourd'hui et compter les lignes
find . -name "*.py" -mtime -1 | xargs wc -l

Puissance :

  • Opérations par lots instantanées
  • Manipulation de texte avec sed/awk/grep
  • Scripts qui automatisent les tâches répétitives
  • Contrôle total du système

Mon shell : zsh

Configuration personnalisée :

  • Alias que j’utilise quotidiennement
  • Fonctions personnalisées pour les tâches courantes
  • Prompt informatif mais minimaliste

Outils essentiels du setup

Mon stack est intentionnellement simple. Chaque outil a un objectif clair.

1. GitHub : Au-delà de git

Pas seulement le contrôle de version :

  • CLI gh pour les PR et issues
  • GitHub Actions pour CI/CD
  • Gestion de projets et de tâches
  • Documentation centralisée

Commandes que j’utilise quotidiennement :

gh repo clone utilisateur/repo
gh pr create
gh issue list

2. VS Code : L’éditeur polyvalent

Mes extensions clés :

  • AutoDocstring
  • AWS toolkit (aussi dans le shell avec le SDK natif)
  • Astro (pour ce blog/journal)
  • JavaScript and TypeScript nightly
  • ES7 + React/Redux/React-Native
  • Highlight Matching Tag (important quand il y a beaucoup de tags dans le développement)
  • Import Cost (j’aime être efficace lors de l’importation)

Pourquoi VS Code ?

  • Équilibre parfait entre simplicité et puissance
  • Excellente intégration avec le terminal
  • Développement à distance
  • Extensibilité infinie

3. Claude/ChatGPT : Copilote d’apprentissage

Cela mérite une attention particulière. Je ne les utilise pas pour “générer du code magiquement”, je les utilise pour :

Apprentissage accéléré :

  • Explications de concepts complexes
  • Compréhension du code legacy
  • Exploration de nouvelles technologies
  • Débogage de problèmes obscurs
  • Revue de code / Apprentissage des meilleures pratiques

Productivité réelle :

  • Générer rapidement du boilerplate
  • Suggestions de refactoring
  • Documentation automatique
  • Pair programming virtuel

“En tant que développeur solo, Claude est mon canard en caoutchouc intelligent”

Mon workflow avec l’IA :

  1. Comprendre le problème commercial
  2. Concevoir la solution
  3. Utiliser l’IA pour accélérer l’implémentation
  4. Réviser, adapter et gérer le code généré
  5. Apprendre du processus

4. Ma bibliothèque personnelle : Connaissances curées

Les livres techniques ne sont pas de la décoration — ce sont des références actives.

Mes références constantes :

  1. The Essential Data Warehouse library - Pour tout ce qui concerne l’entrepôt de données.
  2. Streaming Systems - Pour tout ce qui se réfère aux processus de streaming
  3. Data Management at Scale - Pour toute la gestion des équipes d’information
  4. Programming Scala - Pour tout ce qui implique la programmation avec scala
  5. Introduction to Data Mining - Pour les processus de data mining
  6. Think Bayes - Ma source de référence pour python et la pensée bayésienne
  7. Programming Typescript - Pour tous les petits détails qui sont toujours oubliés en typescript
  8. Effective TypeScript - Ma source de référence sur les sujets avancés de typescript
  9. Design Patterns: Elements of Reusable Object-Oriented Software - La bible des modèles de conception pour la programmation orientée objet. entre autres…

Comment je les utilise :

  • Consultation rapide de concepts
  • Approfondissement quand Stack Overflow ne suffit pas
  • Fondamentaux qui ne changent pas avec les modes
  • Perspectives d’experts validées

Markdown : Mon système nerveux organisationnel

Fichiers .md pour TOUT :

Listes de tâches

## Sprint Actuel
- [ ] Feature X
- [ ] Bug fix Y
- [x] Refactor Z

Documentation technique

# Projet XYZ

## Architecture
- Diagramme
- Décisions techniques

## Setup
- Étapes d'installation
- Variables d'environnement

Notes de réunions

# Réunion Client - 2024-10-13
- Problème identifié
- Solution proposée
- Prochaines étapes

Base de connaissances personnelle

# Comment faire X en Python
# Erreur Y et sa solution
# Modèles qui fonctionnent

Avantages :

  • Versionnable avec Git
  • Lisible dans n’importe quel éditeur
  • Exportable vers n’importe quel format
  • Recherchable avec grep

Philosophie : Efficacité plutôt que facilité

C’est le noyau de ma productivité.

Comprendre le problème commercial d’abord

Avant d’écrire du code :

  1. Quel problème cela résout-il ?
  2. Pour qui ?
  3. Comment mesure-t-on le succès ?
  4. Quel est le vrai MVP ?

“La meilleure ligne de code est celle que vous n’avez pas à écrire”

Solution efficace ≠ Solution facile

Facile : Utiliser le framework X parce que tout le monde l’utilise Efficace : Évaluer si vous avez besoin d’un framework ou si vanilla suffit

Facile : Copier-coller depuis Stack Overflow Efficace : Comprendre le pourquoi et adapter

Facile : Ajouter une dépendance pour tout Efficace : Écrire 10 lignes personnelles quand cela a du sens

Contraintes créatives

Linux m’a forcé à :

  • Penser avant d’installer
  • Comprendre ce que fait chaque commande
  • Dépendre moins des GUI
  • Automatiser le répétitif

Ces “limites” m’ont rendu meilleur développeur.

Comment cela me rend productif en tant que développeur solo

Avantages de mon setup :

1. Démarrage rapide De l’arrêt à l’écriture de code : < 3 minutes

2. Pas de distractions

  • Terminal = focus
  • Pas de notifications invasives
  • Contrôle total de l’environnement

3. Reproductible Tout mon setup est dans des dotfiles :

git clone mes-dotfiles
./install.sh
# Terminé

4. Évolutif Les outils grandissent avec moi :

  • Les scripts deviennent plus sophistiqués
  • Les alias évoluent
  • Le workflow s’optimise constamment

Défis et compromis

Courbe d’apprentissage :

  • Les premières semaines sont difficiles
  • Nécessite de la discipline
  • Tout n’a pas de GUI

Maintenance :

  • Vous êtes votre propre support IT
  • Le dépannage nécessite des connaissances
  • Les mises à jour cassent occasionnellement des choses

Est-ce que ça en vaut la peine ? Absolument.

Conclusion : Productivité intentionnelle

Mon setup productif n’est pas le plus commun ni le plus “cool”. Il est intentionnel.

Chaque outil a une raison d’être :

  • Linux : efficacité et contrôle
  • Terminal : vitesse et puissance
  • Markdown : simplicité et portabilité
  • IA : apprentissage accéléré
  • Livres : fondations solides

Le setup ne vous rend pas productif — vos décisions le font.

Ma productivité ne vient pas du matériel ou des outils. Elle vient de :

  1. Comprendre les problèmes avant de les résoudre
  2. Choisir l’efficacité plutôt que la commodité
  3. Apprendre constamment
  4. Automatiser le répétitif
  5. Tout documenter
  6. Maintenir une attitude positive face à l’inconnu

Quel est votre setup ? Quels outils considérez-vous essentiels ? J’aimerais connaître votre workflow.


Ressources mentionnées :

Connectez-vous avec moi :