Additional Books

Additional Books

These are here so you can dive into a topic you find interesting.
  • Head First Design Patterns

    • A gentle introduction to design patterns

  • Design Patterns: Elements of Reusable Object-Oriente​d Software

    • AKA the "Gang Of Four" book, or GOF

    • The canonical design patterns book

  • Algorithm Design Manual (Skiena)

    • As a review and problem recognition

    • The algorithm catalog portion is well beyond the scope of difficulty you'll get in an interview

    • This book has 2 parts:

      • Class textbook on data structures and algorithms

        • Pros:

          • Is a good review as any algorithms textbook would be

          • Nice stories from his experiences solving problems in industry and academia

          • Code examples in C

        • Cons:

          • Can be as dense or impenetrable as CLRS, and in some cases, CLRS may be a better alternative for some subjects

          • Chapters 7, 8, 9 can be painful to try to follow, as some items are not explained well or require more brain than I have

          • Don't get me wrong: I like Skiena, his teaching style, and mannerisms, but I may not be Stony Brook material

      • Algorithm catalog:

        • This is the real reason you buy this book

        • About to get to this part. Will update here once I've made my way through it

    • Can rent it on Kindle

  • Write Great Code: Volume 1: Understanding the Machine

    • The book was published in 2004, and is somewhat outdated, but it's a terrific resource for understanding a computer in brief

    • The author invented HLA, so take mentions and examples in HLA with a grain of salt. Not widely used, but decent examples of what assembly looks like

    • These chapters are worth the read to give you a nice foundation:

      • Chapter 2 - Numeric Representation

      • Chapter 3 - Binary Arithmetic and Bit Operations

      • Chapter 4 - Floating-Point Representation

      • Chapter 5 - Character Representation

      • Chapter 6 - Memory Organization and Access

      • Chapter 7 - Composite Data Types and Memory Objects

      • Chapter 9 - CPU Architecture

      • Chapter 10 - Instruction Set Architecture

      • Chapter 11 - Memory Architecture and Organization

  • Introduction to Algorithms

    • Important: Reading this book will only have limited value. This book is a great review of algorithms and data structures, but won't teach you how to write good code. You have to be able to code a decent solution efficiently

    • AKA CLR, sometimes CLRS, because Stein was late to the game

  • Computer Architecture, Sixth Edition: A Quantitative Approach

    • For a richer, more up-to-date (2017), but longer treatment

  • Programming Pearls

    • The first couple of chapters present clever solutions to programming problems (some very old using data tape) but that is just an intro. This a guidebook on program design and architecture

Last updated

Was this helpful?