Update readings

This commit is contained in:
Joshua Hanson 2017-02-28 20:20:15 -05:00
parent fa2006ad68
commit a5549b8089
6 changed files with 44 additions and 237 deletions

View File

@ -173,7 +173,6 @@ Courses | Duration | Effort | Prerequisites
#### Readings
- **Required** since Nand2Tetris does not go deep enough into operating systems: [Operating Systems: Three Easy Pieces](http://pages.cs.wisc.edu/~remzi/OSTEP/)
- Supplemental: [Computer Networking: A Top-Down Approach](https://www.amazon.com/gp/product/0133594149?pldnSite=1)
### Core theory
@ -245,11 +244,6 @@ Courses | Duration | Effort | Prerequisites
\* **Required** if you intend not to go past Core CS;
**strongly recommended** even for those who will continue on to Advanced CS.
#### Readings
- Supplemental: [Transaction Processing: Concepts and Techniques](https://www.amazon.com/Transaction-Processing-Concepts-Techniques-Management/dp/1558601902)
- Supplemental: [Data and Reality: A Timeless Perspective on Perceiving and Managing Information in Our Imprecise World](https://www.amazon.com/Data-Reality-Perspective-Perceiving-Information/dp/1935504215)
- Supplemental: [Architecture of a Database System](http://db.cs.berkeley.edu/papers/fntdb07-architecture.pdf)
## Advanced CS
After completing **every single required course** in Core CS, students should choose a subset of courses from Advanced CS based on interest.
@ -417,11 +411,14 @@ These aren't the only specializations you can choose. Check the following websit
- Coursera: [Specializations](https://www.coursera.org/specializations)
- Udacity: [Nanodegree](https://www.udacity.com/nanodegree)
After spending some time in the industry, you should also sharpen your coding and software management skills with the following **readings**:
- Recommended: [Clean Code](https://www.amazon.com/Clean-Code-Handbook-Software-Craftsmanship/dp/0132350882)
- Recommended: [Code Complete](https://www.amazon.com/Code-Complete-Practical-Handbook-Construction/dp/0735619670)
- Recommended: [The Pragmatic Programmer](https://www.amazon.com/Pragmatic-Programmer-Journeyman-Master/dp/020161622X)
- Recommended: [The Mythical Man-Month](https://www.amazon.com/Mythical-Man-Month-Software-Engineering-Anniversary/dp/0201835959/ref=sr_1_1?s=books&ie=UTF8&qid=1488071430&sr=1-1&keywords=Mythical+Man-Month)
### Where to go next?
- Look for a job as a developer!
- Check out the [readings](extras/readings.md) for classic books you can read that will sharpen your skills and expand your knowledge.
- Join a local developer meetup (e.g. via [Meetups.com](https://www.meetups.com/)).
- Pay attention to emerging technologies in the world of software development, such as:
- [Elixir](http://elixir-lang.org/), a new functional programming language for the web based on the battle-tested BEAM VM!
- [Rust](https://www.rust-lang.org/), a systems language which uses borrowing and lifetimes to achieve memory safety without a garbage collector!
![keep learning](http://i.imgur.com/REQK0VU.jpg)

View File

@ -1,96 +0,0 @@
# Computer Science - Extra Resources
## Articles
- [Introduction to Computer Science](#introduction-to-computer-science)
- [Math (Mathematical Thinking)](#math-mathematical-thinking)
- [Program Design](#program-design)
- [Math (Discrete Math)](#math-discrete-math)
- [Algorithms](#algorithms)
- [Programming Paradigms](#programming-paradigms)
- [Software Testing](#software-testing)
- [Math (Calculus)](#math-calculus)
- [Software Architecture](#software-architecture)
- [Theory](#theory)
- [Software Engineering](#software-engineering)
- [Math (Probability)](#math-probability)
- [Computer Architecture](#computer-architecture)
- [Operating Systems](#operating-systems)
- [Computer Networks](#computer-networks)
- [Databases](#databases)
- [Cloud Computing](#cloud-computing)
- [Math (Linear Algebra)](#math-linear-algebra)
- [Cryptography](#cryptography)
- [Security](#security)
- [Compilers](#compilers)
- [Parallel Computing](#parallel-computing)
- [UX Design](#ux-design)
- [Computer Graphics](#computer-graphics)
- [Artificial Intelligence](#artificial-intelligence)
- [Machine Learning](#machine-learning)
- [Natural Language Processing](#natural-language-processing)
- [Big Data](#big-data)
- [Data Mining](#data-mining)
- [Internet of Things](#internet-of-things)
---
### Introduction to Computer Science
### Math (Mathematical Thinking)
### Program Design
### Math (Discrete Math)
### Algorithms
### Programming Paradigms
### Software Testing
### Math (Calculus)
### Software Architecture
### Theory
### Software Engineering
### Math (Probability)
### Computer Architecture
### Operating Systems
### Computer Networks
### Databases
### Cloud Computing
### Math (Linear Algebra)
### Cryptography
### Security
### Compilers
### Parallel Computing
### UX Design
### Computer Graphics
### Artificial Intelligence
### Machine Learning
### Natural Language Processing
### Big Data
### Data Mining
### Internet of Things

View File

@ -1,123 +0,0 @@
# Computer Science - Extra Resources
## Free Books
- [Introduction to Computer Science](#introduction-to-computer-science)
- [Math (Mathematical Thinking)](#math-mathematical-thinking)
- [Program Design](#program-design)
- [Math (Discrete Math)](#math-discrete-math)
- [Algorithms](#algorithms)
- [Programming Paradigms](#programming-paradigms)
- [Software Testing](#software-testing)
- [Math (Calculus)](#math-calculus)
- [Software Architecture](#software-architecture)
- [Theory](#theory)
- [Software Engineering](#software-engineering)
- [Math (Probability)](#math-probability)
- [Computer Architecture](#computer-architecture)
- [Operating Systems](#operating-systems)
- [Computer Networks](#computer-networks)
- [Databases](#databases)
- [Cloud Computing](#cloud-computing)
- [Math (Linear Algebra)](#math-linear-algebra)
- [Cryptography](#cryptography)
- [Security](#security)
- [Compilers](#compilers)
- [Parallel Computing](#parallel-computing)
- [UX Design](#ux-design)
- [Computer Graphics](#computer-graphics)
- [Artificial Intelligence](#artificial-intelligence)
- [Machine Learning](#machine-learning)
- [Natural Language Processing](#natural-language-processing)
- [Big Data](#big-data)
- [Data Mining](#data-mining)
- [Internet of Things](#internet-of-things)
---
### Introduction to Computer Science
Name | Author(s)
:-- | :--:
[Structure and Interpretation of Computer Programs](https://mitpress.mit.edu/sicp/full-text/book/book.html) | Hal Abelson, Jerry Sussman, Julie Sussman
[Introduction to Computing: Explorations in Language, Logic, and Machines](http://www.computingbook.org/) | David Evans
### Math (Mathematical Thinking)
### Program Design
### Math (Discrete Math)
Name | Author(s)
:-- | :--:
[Applied Discrete Structures](http://faculty.uml.edu/klevasseur/ads2/) | Alan Doerr, Ken Levasseur
### Algorithms
### Programming Paradigms
### Software Testing
### Math (Calculus)
Name | Author(s)
:-- | :--:
[Calculus Made Easy](http://www.gutenberg.org/ebooks/33283) | Silvanus P. Thompson
### Software Architecture
### Theory
### Software Engineering
### Math (Probability)
Name | Author(s)
:-- | :--:
[Grinstead and Snells Introduction to Probability](https://math.dartmouth.edu/~prob/prob/prob.pdf) |Charles M. Grinstead, J. Laurie Snell
### Computer Architecture
### Operating Systems
### Computer Networks
### Databases
### Cloud Computing
### Math (Linear Algebra)
### Cryptography
### Security
### Compilers
Name | Author(s)
:-- | :--:
[Compiler Construction](http://www.ethoberon.ethz.ch/WirthPubl/CBEAll.pdf) | Niklaus Wirth
### Parallel Computing
### UX Design
### Computer Graphics
### Artificial Intelligence
### Machine Learning
Name | Author(s)
:-- | :--:
[Deep Learning](http://www.deeplearningbook.org/) | Ian Goodfellow, Yoshua Bengio and Aaron Courville
[Bayesian Reasoning and Machine Learning](http://web4.cs.ucl.ac.uk/staff/D.Barber/pmwiki/pmwiki.php?n=Brml.HomePage) | David Barber
### Natural Language Processing
### Big Data
### Data Mining
### Internet of Things

View File

@ -39,7 +39,6 @@
Name | Author | ISBN
:-- | :--: | :--:
[Introduction to Computation and Programming Using Python](https://www.amazon.com/Introduction-Computation-Programming-Using-Python/dp/0262525003/) | John V. Guttag | 978-0262525008
### Math (Mathematical Thinking)
@ -49,13 +48,11 @@ Name | Author | ISBN
Name | Author | ISBN
:-- | :--: | :--:
[Discrete Mathematics with Applications(4th Edition)](http://www.amazon.com/Discrete-Mathematics-Applications-Susanna-Epp/dp/0495391328/) | Susanna S. Epp | 9780495391326
### Algorithms
Name | Author | ISBN
:-- | :--: | :--:
[Introduction to Algorithms(3rd Edition)](http://www.amazon.com/Introduction-Algorithms-3rd-MIT-Press/dp/0262033844/) | Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, Clifford Stein | 9780262033848
### Programming Paradigms
@ -77,14 +74,11 @@ Name | Author | ISBN
Name | Author | ISBN
:-- | :--: | :--:
[Modern Operating Systems(4th Edition)](http://www.amazon.com/Modern-Operating-Systems-Andrew-Tanenbaum/dp/013359162X/) | Andrew S. Tanenbaum, Herbert Bos | 9780133591620
### Computer Networks
Name | Author | ISBN
:-- | :--: | :--:
[Computer Networking: A Top-Down Approach (6th Edition)](http://www.chegg.com/textbooks/computer-networking-6th-edition-9780132856201-0132856204) | James F Kurose, Keith W Ross | 9780132856201
[Computer Networks (5th Edition)](http://www.amazon.com/Computer-Networks-5th-Andrew-Tanenbaum/dp/0132126958/) | Andrew S. Tanenbaum, David J. Wetherall| 9780132126953
### Databases
@ -100,7 +94,6 @@ Name | Author | ISBN
Name | Author | ISBN
:-- | :--: | :--:
[Compilers: Principles, Techniques, and Tools (2nd Edition)](http://www.amazon.com/Compilers-Principles-Techniques-Tools-2nd/dp/0321486811/) | Alfred V. Aho, Monica S. Lam, Ravi Sethi, Jeffrey D. Ullman | 9780321486813
### Parallel Computing

36
extras/readings.md Normal file
View File

@ -0,0 +1,36 @@
# Computer Science - Great Readings
This document consists of great books or articles on computer science.
Some are here because there is a course covering the same material;
some are just great books that you should read at some point in your career.
Once you have made it through most of the curriculum, knowing whether a book is worth your time will become easier.
Or, if you are struggling in one of the courses, perhaps reading a book on the subject will help.
Name | Author(s)
:-- | :--:
[Introduction to Computation and Programming Using Python](https://www.amazon.com/Introduction-Computation-Programming-Using-Python/dp/0262525003/) | John V. Guttag
[Discrete Mathematics with Applications (4th Edition)](http://www.amazon.com/Discrete-Mathematics-Applications-Susanna-Epp/dp/0495391328/) | Susanna S. Epp
[Transaction Processing: Concepts and Techniques](https://www.amazon.com/Transaction-Processing-Concepts-Techniques-Management/dp/1558601902)
[Data and Reality: A Timeless Perspective on Perceiving and Managing Information in Our Imprecise World](https://www.amazon.com/Data-Reality-Perspective-Perceiving-Information/dp/1935504215)
[Architecture of a Database System](http://db.cs.berkeley.edu/papers/fntdb07-architecture.pdf)
[Introduction to Algorithms (3rd Edition)](http://www.amazon.com/Introduction-Algorithms-3rd-MIT-Press/dp/0262033844/) | Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, Clifford Stein
[Modern Operating Systems (4th Edition)](http://www.amazon.com/Modern-Operating-Systems-Andrew-Tanenbaum/dp/013359162X/) | Andrew S. Tanenbaum, Herbert Bos
[Computer Networking: A Top-Down Approach (6th Edition)](http://www.chegg.com/textbooks/computer-networking-6th-edition-9780132856201-0132856204) | James F Kurose, Keith W Ross
[Design Patterns: Elements of Reusable Object-Oriented Software](https://www.amazon.com/Design-Patterns-Elements-Reusable-Object-Oriented/dp/0201633612) | Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides
[Refactoring](https://www.refactoring.com/) | Martin Fowler
[The Architecture of Open Source Applications](http://aosabook.org/en/) | Michael DiBernardo (editor)
[Compilers: Principles, Techniques, and Tools (2nd Edition)](http://www.amazon.com/Compilers-Principles-Techniques-Tools-2nd/dp/0321486811/) | Alfred V. Aho, Monica S. Lam, Ravi Sethi, Jeffrey D. Ullman
[Computer Networks (5th Edition)](http://www.amazon.com/Computer-Networks-5th-Andrew-Tanenbaum/dp/0132126958/) | Andrew S. Tanenbaum, David J. Wetherall
[Clean Code](https://www.amazon.com/Clean-Code-Handbook-Software-Craftsmanship/dp/0132350882)
[Code Complete](https://www.amazon.com/Code-Complete-Practical-Handbook-Construction/dp/0735619670)
[The Pragmatic Programmer](https://www.amazon.com/Pragmatic-Programmer-Journeyman-Master/dp/020161622X)
[The Mythical Man-Month](https://www.amazon.com/Mythical-Man-Month-Software-Engineering-Anniversary/dp/0201835959/ref=sr_1_1?s=books&ie=UTF8&qid=1488071430&sr=1-1&keywords=Mythical+Man-Month)
[Structure and Interpretation of Computer Programs](https://mitpress.mit.edu/sicp/full-text/book/book.html) | Hal Abelson, Jerry Sussman, Julie Sussman
[Introduction to Computing: Explorations in Language, Logic, and Machines](http://www.computingbook.org/) | David Evans
[Applied Discrete Structures](http://faculty.uml.edu/klevasseur/ads2/) | Alan Doerr, Ken Levasseur
[Calculus Made Easy](http://www.gutenberg.org/ebooks/33283) | Silvanus P. Thompson
[Grinstead and Snells Introduction to Probability](https://math.dartmouth.edu/~prob/prob/prob.pdf) |Charles M. Grinstead, J. Laurie Snell
[Compiler Construction](http://www.ethoberon.ethz.ch/WirthPubl/CBEAll.pdf) | Niklaus Wirth
[Deep Learning](http://www.deeplearningbook.org/) | Ian Goodfellow, Yoshua Bengio and Aaron Courville
[Bayesian Reasoning and Machine Learning](http://web4.cs.ucl.ac.uk/staff/D.Barber/pmwiki/pmwiki.php?n=Brml.HomePage) | David Barber