Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/leniquenoralez/computer-science-self-study-plan

My Computer Science Slef Study Plan
https://github.com/leniquenoralez/computer-science-self-study-plan

Last synced: 23 days ago
JSON representation

My Computer Science Slef Study Plan

Awesome Lists containing this project

README

        

# Computer Science Self Study Plan

![Computer Science Image](https://cdn0.tnwcdn.com/wp-content/blogs.dir/1/files/2017/09/bUcvrRc-1-796x398.jpg)

> “Plan Your Work And Work Your Plan.” - Napoleon Hill

My personal guide to learning fundamental and advanced Computer Science subjects. The purpose of this plan is to create a solid foundation as a Software Engineer. This repo only includes computer science learning material. It previously contained materials to help with job interview preparation but I removed all them.

The best way to improve as a software developer is to work on projects. You can view [this repo](https://github.com/leniquenoralez/awsome-software-development-projects) that I'll be updating with great project ideas to apply your skills to improve as a developer.

## Table Of Content

- [My Current Progress](#my-current-progress)
- [Introduction To Programming](#introduction-to-programming)
- [Computer Architecture](#computer-architecture)
- [Algorithms And Data Structures](#algorithms-and-data-structures)
- [Database](#database)
- [Networking](#networking)
- [Further Studying](#further-studying)
- [Operating Systems](#operating-systems)
- [Distributed Systems](#distributed-systems)
- [Artificial Intelligence](#artificial-intelligence)
- [Machine Learning](#machine-learning)

=========================================

## Introduction To Programming

Learn fundamental programming concepts and build a strong programming foundation

- [CS50's Introduction to Computer Science](https://www.edx.org/course/cs50s-introduction-to-computer-science)

## Computer Architecture

Understand how the system works that you are writing code on

- Great Ideas in Computer Architecture - [Lecture Notes](http://inst.eecs.berkeley.edu/~cs61c/sp15/), [Lecture Videos](https://archive.org/details/ucberkeley-webcast-PL-XXv-cvA_iCl2-D-FS5mk0jFF6cYSJs_)

- Computer Organization and Design - [Buy On Amazon](https://www.amazon.com/Computer-Organization-Design-Fifth-Architecture/dp/0124077269?pldnSite=1)
- C Programming Language - [Buy On Amazon](https://www.amazon.com/Programming-Language-2nd-Brian-Kernighan/dp/0131103628/ref=sr_1_1?s=books&ie=UTF8&qid=1518908013&sr=1-1&keywords=c+programming+language)
- The Data center as a Computer - [Online PDF](http://inst.eecs.berkeley.edu/~cs61c/resources/WSCBarrosoHolzle.pdf)

## Algorithms And Data Structures

Improve Your Problem Solving Skills and learn techniques to write well optimized code

- Skiena's Algorithms Lectures - [Lecture Notes](https://bit.ly/2Miw0zL), [Lecture Videos](https://bit.ly/2MKtf74)
- The Algorithm Design Manual - [Buy Book on Amazon](https://amzn.to/2MkzLRP)

#### Optional Resources

- Data Structures and Algorithms in Python - [Buy Book On Amazon](https://amzn.to/2LS9ga5)
- Grokking Algorithms - [Buy Book On Amazon](https://amzn.to/2Ku6AKe)

## Database

Learn how to store and manipulate data stored in databases.

- CMU 15-445/645 - Database Systems - [YouTube Playlist](https://www.youtube.com/playlist?list=PLSE8ODhjZXja3hgmuwhf89qboV1kOxMx7) , [Lecture Notes](https://15445.courses.cs.cmu.edu/fall2018/)

#### Optional Courses

- [SQL - Full course for beginners (YouTube Video)](https://www.youtube.com/watch?v=HXV3zeQKqGY)
- [SQL Crash Course - Beginner to Intermediate (YouTube Video)](https://www.youtube.com/watch?v=nWeW3sCmD2k)
- [An Introduction To NoSQL Databases (YouTube Video)](https://www.youtube.com/watch?v=uD3p_rZPBUQ)
- [NoSQL Tutorial for Beginners (YouTube Video)](https://www.youtube.com/watch?v=2yQ9TGFpDuM)
- [MongoDB Complete Introduction & Summary(YouTube Video)](https://www.youtube.com/watch?v=VELru-FCWDM)

## Networking

- Introduction To Networking - [MOOC Stanford](https://stanford.io/1GXRYzS)
- Computer Networking: A Top-Down Approach - [Buy Book On Amazon](https://amzn.to/2vju3Jz)
- Computer Networks - [YouTube Playlist](https://m.youtube.com/playlist?list=PLEbnTDJUr_IegfoqO4iPnPYQui46QqT0j)

## Further Studying

### Operating Systems

- [Operating Systems by Gate Lectures ](http://bit.ly/2BDbPGQ)
- [UC Berkeley Computer Science 162 - Fall 2010](http://bit.ly/2BAAjAF)
- [CS162 Lecture Notes](http://bit.ly/2HtvtWn)
- [Operating System Concept](http://amzn.to/2EOJFuB)
- [Modern Operating Systems](http://amzn.to/2CvAERS)
- [Operating Systems: Three Easy Pieces(Online PDF)](http://pages.cs.wisc.edu/~remzi/OSTEP/)
- [Operating Systems: Principles and Practice](http://amzn.to/2ommQEq)

### Distributed Systems

- [Distributed Systems Definition](https://m.youtube.com/watch?v=nH9uwoyczFc)
- [Introduction to Distributed Systems Design](http://bit.ly/13KaEko)
- [Distributed Systems In One Lesson](http://bit.ly/2sJA3MU)
- [Distributed Systems - Fast Tech Skills](http://bit.ly/2EDAwBw)
- [What is a distributed system?](http://bit.ly/2EDP5ZX)
- Distributed Systems - [Online PDF](http://bit.ly/2wQshO0), [Buy Book On Amazon](http://amzn.to/2sAcoOE)

### Artificial Intelligence

- CS188 Intro to AI - [Lecture Notes](https://bit.ly/2KtbA1K), [Lecture Videos](https://bit.ly/25TQnXW)
- [Artificial Intelligence: A Modern Approach](https://amzn.to/2vBfQXO)
- [Machine Learning](https://www.coursera.org/learn/machine-learning)

### Machine Learning

- [Machine Learning By Stanford University on Coursera](https://www.coursera.org/learn/machine-learning)
- [Machine Learning A-Z™: Hands-On Python & R In Data Science on Udemy](https://www.udemy.com/machinelearning/)