This is a collection of books that I've researched, scanned the TOCs of, and am currently working through. The books are selected based on quality of content, reviews, and reccommendations of various 'best of' lists.
The goal of this collection is to promote mastery of generally applicable programming concepts.
Most topics are covered with Python as the primary language due to its conciseness, which is ideal for learning & practicing new concepts with minimal syntactic boilerplate.
JavaScript & Kotlin are listed in the Tooling
section; as they allow extension of VS Code
and the IntelliJ
suite of IDEs, which cover most development needs.
- Pro Git
- Git Version Control Cookbook - 90 Recipes to Transform your Development Workflow and Boost Productivity
- Learning the vi and Vim Editors: Text Processing at Maximum Speed and Power
- Practical Vim - Edit Text at the Speed of Thought
- Mastering Regular Expressions
- Regular Expressions Cookbook - Detailed Solutions in Eight Programming Languages
- VS Code - Documentation
- VS Code - Extensibility Reference
- VS Code - Extension Authoring
- JavaScript: The Definitive Guide
- Clean Code - A Handbook of Agile Software Craftsmanship
- Code Complete: A Practical Handbook of Software Construction
- Clean Architecture - A Craftsman's Guide to Software Structure and Design
- Software Architecture with Python
- Refactoring - Improving the Design of Existing Code
- Enterprise Architect - Documentation
- Compendium of Enterprise Architect from SparxSystems
- UML for Java Programmers
- Apprenticeship Patterns
- Code - The Hidden Language of Computer Hardware and Software
- Coders at Work - Reflections on the Craft of Programming
- Facts and Fallacies of Software Engineering
- Pragmatic Thinking and Learning - Refactor Your Wetware
- Programming Pearls
- Slack - Getting Past Burnout, Busywork, and the Myth of Total Efficiency
- Software Craftsmanship - The New Imperative
- The Complete Software Developer's Career Guide
- The Pragmatic Programmer
- The Software Craftsman - Professionalism, Pragmatism, Pride
- Think Like a Programmer
- Automate the Boring Stuff with Python - Practical Programming for Total Beginners
- Python Crash Course - A Hands-On, Project-Based Introduction to Programming
- The Hitchhiker's Guide to Python: Best Practices for Development
- Fluent Python - Clear, Concise, and Effective Programming
- Python Essential Reference
- Learning Python
- Programming Python - Powerful Object-Oriented Programming
- Mastering Object-oriented Python
- Python 3 Object-Oriented Programming
- Python in Practice - Create Better Programs Using Concurrency, Libraries, and Patterns
- Python Programming - An Introduction to Computer Science
- The Python 3 Standard Library by Example
- Cracking the Coding Interview - 189 Programming Questions and Solutions
- Functional Python Programming
- High Performance Python - Practical Performant Programming for Humans
- Problem Solving with Algorithms and Data Structures Using Python
- Essential SQLAlchemy - Mapping Python to Databases
- Flask Web Development - Developing Web Applications with Python
- Hands-On Machine Learning with Scikit-Learn and TensorFlow - Concepts, Tools, and Techniques to Build Intelligent Systems
- Python Data Science Handbook - Essential Tools for Working with Data
- Web Scraping with Python - Collecting More Data from the Modern Web
- Don't Make Me Think, Revisited - A Common Sense Approach to Web Usability
- The Design of Everyday Things
- Agile Principles, Patterns, and Practices in C#
- Release It! - Design and Deploy Production-Ready Software
- The Agile Samurai - How Agile Masters Deliver Great Software
- Design Patterns - Elements of Reusable Object-Oriented Software
- Head First Design Patterns
- Practical Object-Oriented Design in Ruby - An Agile Primer
- Test-Driven Development with Python - Obey the Testing Goat - Using Django, Selenium, and JavaScript
- Test-Driven Python Development
- Test Driven Development - By Example
- The Art of Unit Testing - with examples in C#
- Domain-Driven Design Distilled
- Domain-Driven Design
- Patterns, Principles, and Practices of Domain-Driven Design
- Enterprise Integration Patterns - Designing, Building, and Deploying Messaging Solutions
- Patterns of Enterprise Application Architecture
- Peopleware - Productive Projects and Teams
- Soft Skills - The software developer's life manual
- The Clean Coder - A Code of Conduct for Professional Programmers
- The Mythical Man-Month - Essays on Software Engineering
- Structure and Interpretation of Computer Programs
- The Art of Computer Programming, Volumes 1-4A Boxed Set