mirror of
https://github.com/ossu/computer-science.git
synced 2024-10-01 01:26:01 -04:00
Update readings
This commit is contained in:
parent
fa2006ad68
commit
a5549b8089
19
README.md
19
README.md
@ -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)
|
||||
|
||||
|
@ -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
|
@ -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 Snell’s 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
|
@ -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
36
extras/readings.md
Normal 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 Snell’s 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
|
Loading…
Reference in New Issue
Block a user