Credits to /u/CSMastermind for creating the list found here:
More reading list resources:
- Cracking the Coding Interview: 189 Programming Questions and Solutions
- Programming Interviews Exposed: Coding Your Way Through the Interview
- Introduction to Algorithms
- The Algorithm Design Manual
- Effective Java
- Concurrent Programming in Java: Design Principles and Pattern
- Modern Operating Systems
- Programming Pearls
- Discrete Mathematics for Computer Scientists
- Pragmatic Thinking and Learning: Refactor Your Wetware
- Code Complete: A Practical Handbook of Software Construction
- Software Estimation: Demystifying the Black Art
- Software Engineering: A Practitioner's Approach
- Refactoring: Improving the Design of Existing Code
- Coder to Developer: Tools and Strategies for Delivering Your Software
- Perfect Software: And Other Illusions about Testing
- Getting Real: The Smarter, Faster, Easier Way to Build a Successful Web Application
- Agile Software Development: The Cooperative Game
- Software Project Survival Guide
- The Best Software Writing I: Selected and Introduced by Joel Spolsky
- Debugging the Development Process: Practical Strategies for Staying Focused, Hitting Ship Dates, and Building Solid Teams
- Rapid Development: Taming Wild Software Schedules
- Peopleware: Productive Projects and Teams
- Slack: Getting Past Burnout, Busywork, and the Myth of Total Efficiency
- Against Method
- The Passionate Programmer: Creating a Remarkable Career in Software Development
- The Mythical Man-Month: Essays on Software Engineering
- Computing Calamities: Lessons Learned from Products, Projects, and Companies That Failed
- The Deadline: A Novel About Project Management
- Personal Development for Smart People: The Conscious Pursuit of Personal Growth
- The Clean Coder: A Code of Conduct for Professional Programmers
- Clean Code: A Handbook of Agile Software Craftsmanship
- Solid Code
- Code Craft: The Practice of Writing Excellent Code
- Software Craftsmanship: The New Imperative
- Writing Solid Code
- Head First Design Patterns: A Brain-Friendly Guide
- Design Patterns: Elements of Reusable Object-Oriented Software
- Domain-Driven Design: Tackling Complexity in the Heart of Software
- Domain-Driven Design Distilled
- Design Patterns Explained: A New Perspective on Object-Oriented Design
- Design Patterns in C# - Even though this is specific to C# the pattern can be used in any OO language.
- Refactoring to Patterns
- Building Microservices: Designing Fine-Grained Systems
- Software Factories: Assembling Applications with Patterns, Models, Frameworks, and Tools
- NoEstimates: How To Measure Project Progress Without Estimating
- Object-Oriented Software Construction
- The Art of Software Testing
- Release It!: Design and Deploy Production-Ready Software
- Working Effectively with Legacy Code
- Test Driven Development: By Example
- Database System Concepts
- Database Management Systems
- Foundation for Object / Relational Databases: The Third Manifesto
- Refactoring Databases: Evolutionary Database Design
- Data Access Patterns: Database Interactions in Object-Oriented Applications
- Don't Make Me Think: A Common Sense Approach to Web Usability
- The Design of Everyday Things
- Programming Collective Intelligence: Building Smart Web 2.0 Applications
- User Interface Design for Programmers
- GUI Bloopers 2.0: Common User Interface Design Don'ts and Dos
- The Productive Programmer
- Extreme Programming Explained: Embrace Change
- Coders at Work: Reflections on the Craft of Programming
- Facts and Fallacies of Software Engineering
- Dreaming in Code: Two Dozen Programmers, Three Years, 4,732 Bugs, and One Quest for Transcendent Software
- New Turning Omnibus: 66 Excursions in Computer Science
- Hacker's Delight
- The Alchemist
- Masterminds of Programming: Conversations with the Creators of Major Programming Languages
- The Information: A History, A Theory, A Flood
In 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.
- Peter Norton's Assembly Language Book for the IBM PC
- Expert C Programming: Deep C Secrets
- Enough Rope to Shoot Yourself in the Foot: Rules for C and C++ Programming
- The C++ Programming Language
- Effective C++: 55 Specific Ways to Improve Your Programs and Designs
- More Effective C++: 35 New Ways to Improve Your Programs and Designs
- More Effective C#: 50 Specific Ways to Improve Your C#
- CLR via C#
- Mr. Bunny's Big Cup o' Java
- Thinking in Java
- JUnit in Action
- Functional Programming in Scala
- The Art of Prolog: Advanced Programming Techniques
- The Craft of Prolog
- Programming Perl: Unmatched Power for Text Processing and Scripting
- Dive into Python 3
- why's (poignant) guide to Ruby
- Mastery: The Keys to Success and Long-Term Fulfillment
- Patterns of Enterprise Application Architecture
- Enterprise Integration Patterns: Designing, Building, and Deploying Messaging Solutions
- Enterprise Patterns and MDA: Building Better Software with Archetype Patterns and UML
- Systemantics: How Systems Work and Especially How They Fail
- Rework
- Writing Secure Code
- Framework Design Guidelines: Conventions, Idioms, and Patterns for Reusable .NET Libraries
- Growing Object-Oriented Software, Guided by Tests
- Object-Oriented Analysis and Design with Applications
- Introduction to Functional Programming
- Design Concepts in Programming Languages
- Code Reading: The Open Source Perspective
- Modern Operating Systems
- Extreme Programming Explained: Embrace Change
- The Elements of Computing Systems: Building a Modern Computer from First Principles
- Code: The Hidden Language of Computer Hardware and Software
- Making Software: What Really Works, and Why We Believe It
- Beautiful Code: Leading Programmers Explain How They Think
- The Elements of Programming Style
- A Discipline of Programming
- The Practice of Programming
- Computer Systems: A Programmer's Perspective
- Object Thinking
- How to Solve It by Computer
- 97 Things Every Programmer Should Know: Collective Wisdom from the Experts
- Hackers and Painters: Big Ideas from the Computer Age
- The Intentional Stance
- Things That Make Us Smart: Defending Human Attributes In The Age Of The Machine
- The Back of the Napkin: Solving Problems and Selling Ideas with Pictures
- The Timeless Way of Building
- The Soul Of A New Machine
- WIZARDRY COMPILED
- YOUTH
- Understanding Comics: The Invisible Art
- Software Tools
- UML Distilled: A Brief Guide to the Standard Object Modeling Language
- Applying UML and Patterns: An Introduction to Object-Oriented Analysis and Design and Iterative Development
- Practical Parallel Programming
- Past, Present, Parallel: A Survey of Available Parallel Computer Systems
- Mastering Regular Expressions
- Compilers: Principles, Techniques, and Tools
- Computer Graphics: Principles and Practice in C
- Michael Abrash's Graphics Programming Black Book
- The Art of Deception: Controlling the Human Element of Security
- SOA in Practice: The Art of Distributed System Design
- Data Mining: Practical Machine Learning Tools and Techniques
- Data Crunching: Solve Everyday Problems Using Java, Python, and more.
- The Psychology Of Everyday Things
- About Face 3: The Essentials of Interaction Design
- Design for Hackers: Reverse Engineering Beauty
- The Non-Designer's Design Book
- Micro-ISV: From Vision to Reality
- Death March
- Showstopper! the Breakneck Race to Create Windows NT and the Next Generation at Microsoft
- The PayPal Wars: Battles with eBay, the Media, the Mafia, and the Rest of Planet Earth The Business of Software: What Every Manager, Programmer, and Entrepreneur Must Know to Thrive and Survive in Good Times * and Bad
- In the Beginning...was the Command Line
- The Art of UNIX Programming
- Advanced Programming in the UNIX Environment
- Programming Windows
- Cocoa Programming for Mac OS X
- Starting Forth: An Introduction to the Forth Language and Operating System for Beginners and Professionals
- lex & yacc
- The TCP/IP Guide: A Comprehensive, Illustrated Internet Protocols Reference
- C Programming Language
- No Bugs!: Delivering Error Free Code in C and C++
- Modern C++ Design: Generic Programming and Design Patterns Applied
- Agile Principles, Patterns, and Practices in C#
- Pragmatic Unit Testing in C# with NUnit
- Time Management for System Administrators: Stop Working Late and Start Working Smart
- The Practice of Cloud System Administration: DevOps and SRE Practices for Web Services
- The Practice of System and Network Administration: DevOps and other Best Practices for Enterprise IT
- Effective DevOps: Building a Culture of Collaboration, Affinity, and Tooling at Scale
- DevOps: A Software Architect's Perspective
- The DevOps Handbook: How to Create World-Class Agility, Reliability, and Security in Technology Organizations
- Site Reliability Engineering: How Google Runs Production Systems
- Cloud Native Java: Designing Resilient Systems with Spring Boot, Spring Cloud, and Cloud Foundry
- Continuous Delivery: Reliable Software Releases through Build, Test, and Deployment Automation
- Migrating Large-Scale Services to the Cloud
- Disrupted: My Misadventure in the Start-Up Bubble
- The Phoenix Project: A Novel about IT, DevOps, and Helping Your Business Win
- The E-Myth Revisited: Why Most Small Businesses Don't Work and What to Do About It
- The Art of the Start: The Time-Tested, Battle-Hardened Guide for Anyone Starting Anything
- The Four Steps to the Epiphany: Successful Strategies for Products that Win
- Permission Marketing: Turning Strangers into Friends and Friends into Customers
- Ikigai
- Reality Check: The Irreverent Guide to Outsmarting, Outmanaging, and Outmarketing Your Competition
- Bootstrap: Lessons Learned Building a Successful Company from Scratch
- The Marketing Gurus: Lessons from the Best Marketing Books of All Time
- Content Rich: Writing Your Way to Wealth on the Web
- The Web Startup Success Guide
- The Best of Guerrilla Marketing: Guerrilla Marketing Remix
- From Program to Product: Turning Your Code into a Saleable Product This Little Program Went to Market: Create, Deploy, Distribute, Market, and Sell Software and More on the Internet at * Little or No Cost to You
- The Secrets of Consulting: A Guide to Giving and Getting Advice Successfully
- The Innovator's Solution: Creating and Sustaining Successful Growth
- Startups Open Sourced: Stories to Inspire and Educate
- In Search of Stupidity: Over Twenty Years of High Tech Marketing Disasters
- Do More Faster: TechStars Lessons to Accelerate Your Startup Content Rules: How to Create Killer Blogs, Podcasts, Videos, Ebooks, Webinars (and More) That Engage Customers and Ignite * Your Business
- Maximum Achievement: Strategies and Skills That Will Unlock Your Hidden Powers to Succeed
- Founders at Work: Stories of Startups' Early Days
- Blue Ocean Strategy: How to Create Uncontested Market Space and Make Competition Irrelevant
- Eric Sink on the Business of Software
- Words that Sell: More than 6000 Entries to Help You Promote Your Products, Services, and Ideas
- Anything You Want
- Crossing the Chasm: Marketing and Selling High-Tech Products to Mainstream Customers
- The Innovator's Dilemma: The Revolutionary Book that Will Change the Way You Do Business
- Tao Te Ching
- Philip & Alex's Guide to Web Publishing
- The Tao of Programming
- Zen and the Art of Motorcycle Maintenance: An Inquiry into Values
- The Inmates Are Running the Asylum: Why High Tech Products Drive Us Crazy and How to Restore the Sanity
- All the Mathematics You Missed: But Need to Know for Graduate School
- Introductory Linear Algebra: An Applied First Course
- Introduction to Probability
- The Structure of Scientific Revolutions
- Science in Action: How to Follow Scientists and Engineers Through Society
- Proofs and Refutations: The Logic of Mathematical Discovery
- What Is This Thing Called Science?
- The Art of Computer Programming
- The Little Schemer
- The Seasoned Schemer
- Data Structures Using C and C++
- Algorithms + Data Structures = Programs
- Structure and Interpretation of Computer Programs
- Concepts, Techniques, and Models of Computer Programming
- How to Design Programs: An Introduction to Programming and Computing
- A Science of Operations: Machines, Logic and the Invention of Programming
- Algorithms on Strings, Trees, and Sequences: Computer Science and Computational Biology
- The Computational Beauty of Nature: Computer Explorations of Fractals, Chaos, Complex Systems, and Adaptation
- The Annotated Turing: A Guided Tour Through Alan Turing's Historic Paper on Computability and the Turing Machine
- Computability: An Introduction to Recursive Function Theory
- How To Solve It: A New Aspect of Mathematical Method
- Types and Programming Languages
- Computer Algebra and Symbolic Computation: Elementary Algorithms
- Computer Algebra and Symbolic Computation: Mathematical Methods
- Commonsense Reasoning
- Using Language
- Computer Vision
- Alice's Adventures in Wonderland
- GΓΆdel, Escher, Bach: An Eternal Golden Braid
- Game Programming Gems - 1 2 3 4 5 6 7
- AI Game Programming Wisdom - 1 2 3 4
- Making Games with Python and Pygame
- Invent Your Own Computer Games With Python
- Bit by Bit