Skip to content

Instantly share code, notes, and snippets.

@sbuggay
Last active October 13, 2021 23:30
Show Gist options
  • Select an option

  • Save sbuggay/8959b63210472004af717c0c5fafa6bc to your computer and use it in GitHub Desktop.

Select an option

Save sbuggay/8959b63210472004af717c0c5fafa6bc to your computer and use it in GitHub Desktop.
List of books to read, from u/CSMastermind

Books

Job Interview Prep

  • 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

Junior Software Engineer Reading List

Read This First

  • Pragmatic Thinking and Learning: Refactor Your Wetware

Fundementals

  • 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
  • Understanding Professional Software Environments
  • 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

Mentality

  • Slack: Getting Past Burnout, Busywork, and the Myth of Total Efficiency
  • Against Method
  • The Passionate Programmer: Creating a Remarkable Career in Software Development

History

  • 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

Mid Level Software Engineer Reading List

Read This First

  • The Pragmatic Programmer: From Journeyman to Master
  • Personal Development for Smart People: The Conscious Pursuit of Personal Growth

Fundementals

  • 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

Software Design

  • 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

Software Engineering Skill Sets

  • 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

Databases

  • 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

User Experience

  • 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

Mentality

  • The Productive Programmer
  • Extreme Programming Explained: Embrace Change
  • Coders at Work: Reflections on the Craft of Programming
  • Facts and Fallacies of Software Engineering

History

  • 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

Specialist Skills

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

Computer Science Grad School Reading List

  • 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
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment