Skip to content

Latest commit

 

History

History
664 lines (620 loc) · 45.9 KB

book-lists.md

File metadata and controls

664 lines (620 loc) · 45.9 KB

What Books should I read?

Pick freely from any of the book lists below. Note, there are a variety of links to books which are free at the top of the list, following them are a variety of books to buy or borrow if you've exhausted the free list or just want to invest in a few book purchases.

If there is some book not on the list that you find essential, read it, you can write it in and it'll count for points!

Computer Science / Web Development

For those following the Computer Science Intensive (Free Version) path.

Data Science

For those following the Data Science Intensive (Free Version) path.

Misc Software Engineering

Additional free options for any path.

Algorithms

Machine Learning

Mathematics

Open Source

C++

Elixir

Golang

Haskell

JavaScript

Python

PHP

Git

Algorithms Texts

For those following the MITOCW "borrow or purchase books" path.

Algorithms in a Nutshell
Data Structures and Algorithms Made Easy
A Common Sense Guide to Data Structures and Algorithms
Algorithms Iluminated Part 1
Algorithms Part 1
Algorithms Part 2
An Introduction to the Analysis of Algorithms
Algorithms in C Parts 1-4
Algorithms in C Part 5
Algorithms in C++ Parts 1-4
Algorithms in C++ Part 5
Learning JavaScript Data Structures and Algorithms
Problem Solving in Data Structures and Algorithms using C++
Data Structures and Algorithms with Python
Data Structures and Algorithms with JavaScript
Think Data Structures
Computational Probability
Graphs Algorithms and Optimization
Mobile Applications Development with Android: Technologies and Algorithms
Algorithmic Game Theory
Twenty Lectures on Algorithmic Game Theory
Grokking Algorithms
Unsupervised Learning Algorithms
Elementary Functions: Algorithms and Implementation
Algorithms and Networking for Computer Games
Algorithms: A functional programming approach
Data Structure Practice for Collegiate Programming Contests
The Colossal Book of Mathematics
Analytic Combinatorics
Everyday Data Structures

Programming Texts

For those following the MITOCW "borrow or purchase books" path.

21st Century C: : C Tips from the New School
Advanced Programming in the UNIX Environment
C Interfaces and Implementations
Expert C Programming: Deep C Secrets
Programming in C
The C Programming Language
C: From Theory to Practice
Pointers in C
Shell Programming in Unix, Linux, and OSX
Build Your Own Lisp.
C++ Coding Standards
C++ Concurrency In Action
Effective C++
Effective Modern C++: 42 Specific Ways to Improve Your Use of C++11 and C++14
Effective STL
Exceptional C++
More Exceptional C++
Exceptional C++ Style
Modern C++ Design
C++ Template Metaprogramming
C++ Templates: the Complete Guide
C++ Concurrency in Action
Advanced Metaprogramming in Classic C++
The C++ Standard Library
Programming: Principles and Practice Using C++
C++ Programming: Program Design including Data Structures
Introducing Go
Go Systems Programming
Functional Reactive Programming
Developing Web Apps with Haskell and Yesod
Haskell Design Patterns
Learn You a Haskell for Great Good
Parallel and Concurrent Programming in Haskell
Real World Haskell
Android Programming - The Big Nerd Ranch Guide
Computer Science: An Interdisciplinary Approach
Core Java
Effective Java
Hello, Android
Java Concurrency in Practice
Professional Android
Thinking In Java
Effective JavaScript: 68 Specific Ways to Harness the Power of JavaScript
JavaScript Allonge
JavaScript Patterns: Build Better Applications with Coding and Design Patterns
Secrets of the JavaScript Ninja
YDKJS
Fluent Python: Clear, Concise, and Effective Programming
Python Cookbook
Python Crash Course: A Hands-On, Project-Based Introduction to Programming
Think Python
The Hitchhiker's Guide to Python
Computer Science Distilled
Fortran for Scientists and Engineers

Software Engineering Texts

For those following the MITOCW "borrow or purchase books" path.

Code Complete: A Practical Handbook of Software Construction
The Pragmatic Programmer: From Journeyman to Master
The Mythical Man-Month
Refactoring: Improving the Design of Existing Code
Clean Code: A Handbook of Agile Software Craftsmanship
Introduction to Algorithms
Patterns of Enterprise Application Architecture
Peopleware: Productive Projects and Teams
Working Effectively with Legacy Code
Design Patterns: Elements of Reusable Object-Oriented Software
Code: The Hidden Language of Computer Hardware and Software
Domain-Driven Design: Tackling Complexity in the Heart of Software
Head First Design Patterns
Structure and Interpretation of Computer Programs
Programming Pearls
Coders at Work: Reflections on the Craft of Programming
The C Programming Language
The Art of Computer Programming
Continuous Delivery: Reliable Software Releases through Build, Test, and Deployment Automation
Rapid Development: Taming Wild Software Schedules
Agile Software Development, Principles, Patterns, and Practices
The Design of Everyday Things: Revised and Expanded Edition
Don't Make Me Think, Revisited: A Common Sense Approach to Web Usability
Gödel, Escher, Bach: An Eternal Golden Braid
The Clean Coder: A Code of Conduct for Professional Programmers
User Stories Applied: For Agile Software Development
Enterprise Integration Patterns: Designing, Building, and Deploying Messaging Solutions
Release It!: Design and Deploy Production-Ready Software
The Passionate Programmer: Creating a Remarkable Career in Software Development
About Face: The Essentials of Interaction Design
Designing Web Usabillity
A Pattern Language: Towns, Buildings, ruction (Center for Environmental Structure)
The Visual Display of Quantitative Information
Extreme Programming Explained: Embrace Change
Smalltalk Best Practice Patterns
Software Systems Architecture: Working With Stakeholders Using Viewpoints and Perspectives
Refactoring to Patterns
Agile Estimating and Planning
Zen and the Art of Motorcycle Maintenance: An Inquiry Into Values
Cracking the Coding Interview: 189 Programming Questions and Solutions
Apprenticeship Patterns: Guidance for the Aspiring Software Craftsman
Pragmatic Thinking and Learning: Refactor Your Wetware
The Art of Agile Development
Soft Skills: The software developer's life manual
Succeeding with Agile: Software Development Using Scrum
Growing Object-Oriented Software, Guided by Tests
Java Concurrency in Practice
Software Estimation: Demystifying the Black Art (Developer Best Practices)
Effective Modern C++: 42 Specific Ways to Improve Your Use of C++11 and C++14
Algorithms
Seven Languages in Seven Weeks: A Pragmatic Guide to Learning Programming Languages (Pragmatic Programmers)
Debugging: The 9 Indispensable Rules for Finding Even the Most Elusive Software and Hardware Problems
Rework
Cracking the IT Architect Interview
Coding Interview Questions