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.

Revisions

  1. sbuggay revised this gist Jun 9, 2019. 1 changed file with 2 additions and 1 deletion.
    3 changes: 2 additions & 1 deletion books.md
    Original file line number Diff line number Diff line change
    @@ -7,7 +7,7 @@
    - Introduction to Algorithms
    - The Algorithm Design Manual
    - Effective Java
    - Concurrent Programming in Java™: Design Principles and Pattern
    - Concurrent Programming in Java: Design Principles and Pattern
    - Modern Operating Systems
    - Programming Pearls
    - Discrete Mathematics for Computer Scientists
    @@ -51,6 +51,7 @@

    ### Read This First

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

    ### Fundementals
  2. sbuggay revised this gist Jun 9, 2019. 1 changed file with 1 addition and 8 deletions.
    9 changes: 1 addition & 8 deletions books.md
    Original file line number Diff line number Diff line change
    @@ -1,11 +1,4 @@
    ---
    title: Must Read
    tags: [IRC/General]
    created: '2019-06-09T01:02:30.882Z'
    modified: '2019-06-09T01:10:56.162Z'
    ---

    # Must Read
    # Books

    ## Job Interview Prep

  3. sbuggay revised this gist Jun 9, 2019. 1 changed file with 128 additions and 118 deletions.
    246 changes: 128 additions & 118 deletions books.md
    Original file line number Diff line number Diff line change
    @@ -1,168 +1,178 @@
    ---
    title: Must Read
    tags: [IRC/General]
    created: '2019-06-09T01:02:30.882Z'
    modified: '2019-06-09T01:10:56.162Z'
    ---

    # Must Read

    ## 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
    - 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
    - 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
    - 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

    - 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

    - 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

    Personal Development for Smart People: The Conscious Pursuit of Personal Growth
    - 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
    - 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
    - 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
    - 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
    - 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
    - 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
    - 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
    - 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
    - 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
    - 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

  4. sbuggay created this gist Jun 9, 2019.
    168 changes: 168 additions & 0 deletions books.md
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,168 @@
    # Must Read

    ## 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

    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