À propos du projet
Professional Programming est une liste de lecture curatée et opinionnée, visant à aider les programmeurs à devenir des développeurs plus compétents. Plutôt que de tenter d'être exhaustif, le projet deliberately reste léger et sélectionne des ressources que l'auteur a trouvées véritablement inspirantes ou qui sont devenues des classiques intemporels. L'auteur note que l'inclusion n'implique pas l'approbation de chaque affirmation faite dans chaque ressource liée ou par ses auteurs.
La liste commence par des principes et des directives de contribution, puis présente des livres incontournables tels que The Pragmatic Programmer, Code Complete, Release It!, Scalability Rules, The Linux Programming Interface et SICP, ainsi que des livres gratuits et d'autres collections de livres de programmation gratuits. Une section d'articles incontournables relie des textes sur les conseils pratiques pour les nouveaux ingénieurs, le fait d'être un ingénieur senior, les leçons apprises en développement logiciel, les signes d'un bon programmeur, les vérités désapprises en tant que développeur junior, la construction de bons logiciels, l'ingénieur -10x et les généralistes experts.
Le matériel général comprend d'autres listes curatées, des livres comme The Imposter's Handbook et The Software Engineer's Guidebook, des articles tels que every-programmer-should-know, l'Amazon Builders' Library, awesome-falsehood, les roadmaps développeur et Teach Yourself Programming in Ten Years. Les sections axiomes et préceptes collectent des règles empiriques, et les cours pointent vers Google Tech Dev Guide, MIT's Missing Semester, coding-interview-university, Teach Yourself Computer Science et OSSU.
Le gros du dépôt est un index thématique long. Les sujets couvrent la comptabilité et l'ingénierie fintech, le codage agentique, les algorithmes et les structures de données, la conception d'API, l'attitude et les habitudes (y compris la procrastination), l'authentification et l'autorisation, l'automatisation, les meilleures pratiques, les biais, les affaires, acheter vs construire, le cache, la croissance de carrière (choisir des opportunités, atteindre le niveau staff engineer), les ensembles de caractères, les échecs, les clouds, les revues de code, le codage et la qualité du code, la communication, les compilateurs, la configuration, l'intégration continue, l'analyse de données et la data science, la sémantique des données, les bases de données (interne, NoSQL, Postgres), les formats de données, l'ingénierie des données, le débogage, le design visuel et UX, la modélisation orientée objet et les patrons d'architecture, la conception de schémas de base de données, la simplicité, l'environnement et les outils de développement, Docker, la documentation, les dotfiles, les éditeurs et IDEs (y compris Vim), l'email, le management engineering, les exercices, l'expérimentation, les polices, la programmation fonctionnelle, le développement de jeux, l'IA générative, les graphiques, le matériel, HTTP, l'humour, la gestion d'incidents et les postmortems, Internet, les entretiens, Kubernetes, les grands modèles de langage, l'apprentissage et la mémorisation, les licences, la gestion système Linux, le low-code/no-code, le bas niveau et l'assembleur, le machine learning/IA, les mathématiques, le marketing, le réseau, l'observabilité (logging, gestion d'erreurs, métriques, monitoring), l'open source, les systèmes d'exploitation, le sur-engineering, la performance, la gestion des connaissances personnelles, la productivité personnelle, la perspective, la confidentialité, la résolution de problèmes, la gestion de produit pour ingénieurs, la gestion de projet, les langages de programmation (Python, JavaScript, garbage collection), les paradigmes de programmation, la prise de parole en public, la lecture, le refactoring, les regex, la publication et le déploiement (versioning, checklists, feature flags, testing in production), la fiabilité (patterns d'intégration, résilience), la recherche, la sécurité, les papiers de recherche, le shell, le SQL, l'état, l'administration système, l'architecture système (patrons d'architecture, microservices et séparation monolithes), la scalabilité, le SRE, la dette technique, les tests, les outils, les systèmes de typage, la typographie, le contrôle de version avec Git, l'éthique professionnelle et l'équilibre travail/vie personnelle, le développement web et l'écriture et blog.
Des sections supplémentaires couvrent les ressources et l'inspiration pour les présentations, rester à jour, les concepts et les autres listes de l'auteur. Les éléments sont balisés avec des icônes indiquant le type de ressource (liste, livre, vidéo/conférence, slides, must-read, papier), et le README inclut une table des matières générée.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.