{"id":13628010,"url":"https://github.com/woojiahao/reading-list","last_synced_at":"2026-02-04T15:02:20.308Z","repository":{"id":50454540,"uuid":"169060306","full_name":"woojiahao/reading-list","owner":"woojiahao","description":"List of books for software developers 📖","archived":false,"fork":false,"pushed_at":"2019-02-04T11:09:10.000Z","size":128,"stargazers_count":127,"open_issues_count":0,"forks_count":17,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-05-24T02:40:04.218Z","etag":null,"topics":["programming-books","reading","reading-list"],"latest_commit_sha":null,"homepage":"","language":null,"has_issues":false,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/woojiahao.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2019-02-04T10:16:16.000Z","updated_at":"2025-05-03T23:46:43.000Z","dependencies_parsed_at":"2022-09-24T08:40:15.840Z","dependency_job_id":null,"html_url":"https://github.com/woojiahao/reading-list","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/woojiahao/reading-list","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/woojiahao%2Freading-list","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/woojiahao%2Freading-list/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/woojiahao%2Freading-list/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/woojiahao%2Freading-list/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/woojiahao","download_url":"https://codeload.github.com/woojiahao/reading-list/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/woojiahao%2Freading-list/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":261841941,"owners_count":23217913,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["programming-books","reading","reading-list"],"created_at":"2024-08-01T22:00:42.722Z","updated_at":"2026-02-04T15:02:20.260Z","avatar_url":"https://github.com/woojiahao.png","language":null,"funding_links":[],"categories":["Uncategorized"],"sub_categories":["Uncategorized"],"readme":"# Programming Reading List\nCredits to [/u/CSMastermind](https://www.reddit.com/user/CSMastermind) for creating the list found here:\n* [Part 1](https://www.reddit.com/r/learnprogramming/comments/83xyow/must_read_books/dvmplj3/)\n* [Part 2](https://www.reddit.com/r/learnprogramming/comments/83xyow/must_read_books/dvmpmfs/)\n* [Part 3](https://www.reddit.com/r/learnprogramming/comments/83xyow/must_read_books/dvmpn75/)\n\nMore reading list resources:\n* [The Ultimate Reading List for Developers](https://docs.google.com/spreadsheets/d/1jz2dyyDzgZS1zqe_vhY8SYQrhscNzpNfdAkGusWoMUU/edit#gid=0)\n\n## Job Interview Prep\n* Cracking the Coding Interview: 189 Programming Questions and Solutions\n* Programming Interviews Exposed: Coding Your Way Through the Interview\n* Introduction to Algorithms\n* The Algorithm Design Manual\n* Effective Java\n* Concurrent Programming in Java: Design Principles and Pattern\n* Modern Operating Systems\n* Programming Pearls\n* Discrete Mathematics for Computer Scientists\n\n## Junior Software Engineer Reading List\n### Read This First\n* Pragmatic Thinking and Learning: Refactor Your Wetware\n\n### Fundamentals\n* Code Complete: A Practical Handbook of Software Construction\n* Software Estimation: Demystifying the Black Art\n* Software Engineering: A Practitioner's Approach\n* Refactoring: Improving the Design of Existing Code\n* Coder to Developer: Tools and Strategies for Delivering Your Software\n* Perfect Software: And Other Illusions about Testing\n* Getting Real: The Smarter, Faster, Easier Way to Build a Successful Web Application\n\n### Understanding Professional Software Environments\n* Agile Software Development: The Cooperative Game\n* Software Project Survival Guide\n* The Best Software Writing I: Selected and Introduced by Joel Spolsky\n* Debugging the Development Process: Practical Strategies for Staying Focused, Hitting Ship Dates, and Building Solid Teams\n* Rapid Development: Taming Wild Software Schedules\n* Peopleware: Productive Projects and Teams\n\n### Mentality\n* Slack: Getting Past Burnout, Busywork, and the Myth of Total Efficiency\n* Against Method\n* The Passionate Programmer: Creating a Remarkable Career in Software Development\n\n### History\n* The Mythical Man-Month: Essays on Software Engineering\n* Computing Calamities: Lessons Learned from Products, Projects, and Companies That Failed\n* The Deadline: A Novel About Project Management\n\n## Mid Level Software Engineer Reading List\n### Read This First\n* Personal Development for Smart People: The Conscious Pursuit of Personal Growth\n\n### Fundamentals\n* The Clean Coder: A Code of Conduct for Professional Programmers\n* Clean Code: A Handbook of Agile Software Craftsmanship\n* Solid Code\n* Code Craft: The Practice of Writing Excellent Code\n* Software Craftsmanship: The New Imperative\n* Writing Solid Code\n\n### Software Design\n* Head First Design Patterns: A Brain-Friendly Guide\n* Design Patterns: Elements of Reusable Object-Oriented Software\n* Domain-Driven Design: Tackling Complexity in the Heart of Software\n* Domain-Driven Design Distilled\n* Design Patterns Explained: A New Perspective on Object-Oriented Design\n* Design Patterns in C# - Even though this is specific to C# the pattern can be used in any OO language.\n* Refactoring to Patterns\n\n### Software Engineering Skill Sets\n* Building Microservices: Designing Fine-Grained Systems\n* Software Factories: Assembling Applications with Patterns, Models, Frameworks, and Tools\n* NoEstimates: How To Measure Project Progress Without Estimating\n* Object-Oriented Software Construction\n* The Art of Software Testing\n* Release It!: Design and Deploy Production-Ready Software\n* Working Effectively with Legacy Code\n* Test Driven Development: By Example\n\n### Databases\n* Database System Concepts\n* Database Management Systems\n* Foundation for Object / Relational Databases: The Third Manifesto\n* Refactoring Databases: Evolutionary Database Design\n* Data Access Patterns: Database Interactions in Object-Oriented Applications\n\n### User Experience\n* Don't Make Me Think: A Common Sense Approach to Web Usability\n* The Design of Everyday Things\n* Programming Collective Intelligence: Building Smart Web 2.0 Applications\n* User Interface Design for Programmers\n* GUI Bloopers 2.0: Common User Interface Design Don'ts and Dos\n\n### Mentality\n* The Productive Programmer\n* Extreme Programming Explained: Embrace Change\n* Coders at Work: Reflections on the Craft of Programming\n* Facts and Fallacies of Software Engineering\n\n### History\n* Dreaming in Code: Two Dozen Programmers, Three Years, 4,732 Bugs, and One Quest for Transcendent Software\n* New Turning Omnibus: 66 Excursions in Computer Science\n* Hacker's Delight\n* The Alchemist\n* Masterminds of Programming: Conversations with the Creators of Major Programming Languages\n* The Information: A History, A Theory, A Flood\n\n### Specialist Skills\nIn spite of the fact that many of these won't apply to your specific job I still recommend reading them for the insight, they'll give you into programming language and technology design.\n\n* Peter Norton's Assembly Language Book for the IBM PC\n* Expert C Programming: Deep C Secrets\n* Enough Rope to Shoot Yourself in the Foot: Rules for C and C++ Programming\n* The C++ Programming Language\n* Effective C++: 55 Specific Ways to Improve Your Programs and Designs\n* More Effective C++: 35 New Ways to Improve Your Programs and Designs\n* More Effective C#: 50 Specific Ways to Improve Your C#\n* CLR via C#\n* Mr. Bunny's Big Cup o' Java\n* Thinking in Java\n* JUnit in Action\n* Functional Programming in Scala\n* The Art of Prolog: Advanced Programming Techniques\n* The Craft of Prolog\n* Programming Perl: Unmatched Power for Text Processing and Scripting\n* Dive into Python 3\n* why's (poignant) guide to Ruby\n\n## Senior Level Software Engineer Reading List\n### Read This First\n* Mastery: The Keys to Success and Long-Term Fulfillment\n\n### Fundamentals\n* Patterns of Enterprise Application Architecture\n* Enterprise Integration Patterns: Designing, Building, and Deploying Messaging Solutions\n* Enterprise Patterns and MDA: Building Better Software with Archetype Patterns and UML\n* Systemantics: How Systems Work and Especially How They Fail\n* Rework\n* Writing Secure Code\n* Framework Design Guidelines: Conventions, Idioms, and Patterns for Reusable .NET Libraries\n\n### Development Theory\n* Growing Object-Oriented Software, Guided by Tests\n* Object-Oriented Analysis and Design with Applications\n* Introduction to Functional Programming\n* Design Concepts in Programming Languages\n* Code Reading: The Open Source Perspective\n* Modern Operating Systems\n* Extreme Programming Explained: Embrace Change\n* The Elements of Computing Systems: Building a Modern Computer from First Principles\n* Code: The Hidden Language of Computer Hardware and Software\n\n### Philosophy of Programming\n* Making Software: What Really Works, and Why We Believe It\n* Beautiful Code: Leading Programmers Explain How They Think\n* The Elements of Programming Style\n* A Discipline of Programming\n* The Practice of Programming\n* Computer Systems: A Programmer's Perspective\n* Object Thinking\n* How to Solve It by Computer\n* 97 Things Every Programmer Should Know: Collective Wisdom from the Experts\n\n### Mentality\n* Hackers and Painters: Big Ideas from the Computer Age\n* The Intentional Stance\n* Things That Make Us Smart: Defending Human Attributes In The Age Of The Machine\n* The Back of the Napkin: Solving Problems and Selling Ideas with Pictures\n* The Timeless Way of Building\n* The Soul Of A New Machine\n* WIZARDRY COMPILED\n* YOUTH\n* Understanding Comics: The Invisible Art\n\n### Software Engineering Skill Sets\n* Software Tools\n* UML Distilled: A Brief Guide to the Standard Object Modeling Language\n* Applying UML and Patterns: An Introduction to Object-Oriented Analysis and Design and Iterative Development\n* Practical Parallel Programming\n* Past, Present, Parallel: A Survey of Available Parallel Computer Systems\n* Mastering Regular Expressions\n* Compilers: Principles, Techniques, and Tools\n* Computer Graphics: Principles and Practice in C\n* Michael Abrash's Graphics Programming Black Book\n* The Art of Deception: Controlling the Human Element of Security\n* SOA in Practice: The Art of Distributed System Design\n* Data Mining: Practical Machine Learning Tools and Techniques\n* Data Crunching: Solve Everyday Problems Using Java, Python, and more.\n\n### Design\n* The Psychology Of Everyday Things\n* About Face 3: The Essentials of Interaction Design\n* Design for Hackers: Reverse Engineering Beauty\n* The Non-Designer's Design Book\n\n### History\n* Micro-ISV: From Vision to Reality\n* Death March\n* Showstopper! the Breakneck Race to Create Windows NT and the Next Generation at Microsoft\n* The PayPal Wars: Battles with eBay, the Media, the Mafia, and the Rest of Planet Earth\nThe Business of Software: What Every Manager, Programmer, and Entrepreneur Must Know to Thrive and Survive in Good Times * and Bad\n* In the Beginning...was the Command Line\n\n### Specialist Skills\n* The Art of UNIX Programming\n* Advanced Programming in the UNIX Environment\n* Programming Windows\n* Cocoa Programming for Mac OS X\n* Starting Forth: An Introduction to the Forth Language and Operating System for Beginners and Professionals\n* lex \u0026 yacc\n* The TCP/IP Guide: A Comprehensive, Illustrated Internet Protocols Reference\n* C Programming Language\n* No Bugs!: Delivering Error Free Code in C and C++\n* Modern C++ Design: Generic Programming and Design Patterns Applied\n* Agile Principles, Patterns, and Practices in C#\n* Pragmatic Unit Testing in C# with NUnit\n\n## DevOps Reading List\n* Time Management for System Administrators: Stop Working Late and Start Working Smart\n* The Practice of Cloud System Administration: DevOps and SRE Practices for Web Services\n* The Practice of System and Network Administration: DevOps and other Best Practices for Enterprise IT\n* Effective DevOps: Building a Culture of Collaboration, Affinity, and Tooling at Scale\n* DevOps: A Software Architect's Perspective\n* The DevOps Handbook: How to Create World-Class Agility, Reliability, and Security in Technology Organizations\n* Site Reliability Engineering: How Google Runs Production Systems\n* Cloud Native Java: Designing Resilient Systems with Spring Boot, Spring Cloud, and Cloud Foundry\n* Continuous Delivery: Reliable Software Releases through Build, Test, and Deployment Automation\n* Migrating Large-Scale Services to the Cloud\n\n## Entrepreneur Reading List\n* Disrupted: My Misadventure in the Start-Up Bubble\n* The Phoenix Project: A Novel about IT, DevOps, and Helping Your Business Win\n* The E-Myth Revisited: Why Most Small Businesses Don't Work and What to Do About It\n* The Art of the Start: The Time-Tested, Battle-Hardened Guide for Anyone Starting Anything\n* The Four Steps to the Epiphany: Successful Strategies for Products that Win\n* Permission Marketing: Turning Strangers into Friends and Friends into Customers\n* Ikigai\n* Reality Check: The Irreverent Guide to Outsmarting, Outmanaging, and Outmarketing Your Competition\n* Bootstrap: Lessons Learned Building a Successful Company from Scratch\n* The Marketing Gurus: Lessons from the Best Marketing Books of All Time\n* Content Rich: Writing Your Way to Wealth on the Web\n* The Web Startup Success Guide\n* The Best of Guerrilla Marketing: Guerrilla Marketing Remix\n* From Program to Product: Turning Your Code into a Saleable Product\nThis Little Program Went to Market: Create, Deploy, Distribute, Market, and Sell Software and More on the Internet at * Little or No Cost to You\n* The Secrets of Consulting: A Guide to Giving and Getting Advice Successfully\n* The Innovator's Solution: Creating and Sustaining Successful Growth\n* Startups Open Sourced: Stories to Inspire and Educate\n* In Search of Stupidity: Over Twenty Years of High Tech Marketing Disasters\n* Do More Faster: TechStars Lessons to Accelerate Your Startup\nContent Rules: How to Create Killer Blogs, Podcasts, Videos, Ebooks, Webinars (and More) That Engage Customers and Ignite * Your Business\n* Maximum Achievement: Strategies and Skills That Will Unlock Your Hidden Powers to Succeed\n* Founders at Work: Stories of Startups' Early Days\n* Blue Ocean Strategy: How to Create Uncontested Market Space and Make Competition Irrelevant\n* Eric Sink on the Business of Software\n* Words that Sell: More than 6000 Entries to Help You Promote Your Products, Services, and Ideas\n* Anything You Want\n* Crossing the Chasm: Marketing and Selling High-Tech Products to Mainstream Customers\n* The Innovator's Dilemma: The Revolutionary Book that Will Change the Way You Do Business\n* Tao Te Ching\n* Philip \u0026 Alex's Guide to Web Publishing\n* The Tao of Programming\n* Zen and the Art of Motorcycle Maintenance: An Inquiry into Values\n* The Inmates Are Running the Asylum: Why High Tech Products Drive Us Crazy and How to Restore the Sanity\n\n## Computer Science Grad School Reading List\n* All the Mathematics You Missed: But Need to Know for Graduate School\n* Introductory Linear Algebra: An Applied First Course\n* Introduction to Probability\n* The Structure of Scientific Revolutions\n* Science in Action: How to Follow Scientists and Engineers Through Society\n* Proofs and Refutations: The Logic of Mathematical Discovery\n* What Is This Thing Called Science?\n* The Art of Computer Programming\n* The Little Schemer\n* The Seasoned Schemer\n* Data Structures Using C and C++\n* Algorithms + Data Structures = Programs\n* Structure and Interpretation of Computer Programs\n* Concepts, Techniques, and Models of Computer Programming\n* How to Design Programs: An Introduction to Programming and Computing\n* A Science of Operations: Machines, Logic and the Invention of Programming\n* Algorithms on Strings, Trees, and Sequences: Computer Science and Computational Biology\n* The Computational Beauty of Nature: Computer Explorations of Fractals, Chaos, Complex Systems, and Adaptation\n* The Annotated Turing: A Guided Tour Through Alan Turing's Historic Paper on Computability and the Turing Machine\n* Computability: An Introduction to Recursive Function Theory\n* How To Solve It: A New Aspect of Mathematical Method\n* Types and Programming Languages\n* Computer Algebra and Symbolic Computation: Elementary Algorithms\n* Computer Algebra and Symbolic Computation: Mathematical Methods\n* Commonsense Reasoning\n* Using Language\n* Computer Vision\n* Alice's Adventures in Wonderland\n* Gödel, Escher, Bach: An Eternal Golden Braid\n\n## Video Game Development Reading List\n* Game Programming Gems - 1 2 3 4 5 6 7\n* AI Game Programming Wisdom - 1 2 3 4\n* Making Games with Python and Pygame\n* Invent Your Own Computer Games With Python\n* Bit by Bit\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwoojiahao%2Freading-list","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fwoojiahao%2Freading-list","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwoojiahao%2Freading-list/lists"}