“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 that I'll be updating with great project ideas to apply your skills to improve as a developer.
- My Current Progress
- Introduction To Programming
- Computer Architecture
- Algorithms And Data Structures
- Database
- Networking
- Further Studying
=========================================
Learn fundamental programming concepts and build a strong programming foundation
Understand how the system works that you are writing code on
-
Great Ideas in Computer Architecture - Lecture Notes, Lecture Videos
-
Computer Organization and Design - Buy On Amazon
-
C Programming Language - Buy On Amazon
-
The Data center as a Computer - Online PDF
Improve Your Problem Solving Skills and learn techniques to write well optimized code
- Skiena's Algorithms Lectures - Lecture Notes, Lecture Videos
- The Algorithm Design Manual - Buy Book on Amazon
- Data Structures and Algorithms in Python - Buy Book On Amazon
- Grokking Algorithms - Buy Book On Amazon
Learn how to store and manipulate data stored in databases.
- CMU 15-445/645 - Database Systems - YouTube Playlist , Lecture Notes
- SQL - Full course for beginners (YouTube Video)
- SQL Crash Course - Beginner to Intermediate (YouTube Video)
- An Introduction To NoSQL Databases (YouTube Video)
- NoSQL Tutorial for Beginners (YouTube Video)
- MongoDB Complete Introduction & Summary(YouTube Video)
- Introduction To Networking - MOOC Stanford
- Computer Networking: A Top-Down Approach - Buy Book On Amazon
- Computer Networks - YouTube Playlist
- Operating Systems by Gate Lectures
- UC Berkeley Computer Science 162 - Fall 2010
- CS162 Lecture Notes
- Operating System Concept
- Modern Operating Systems
- Operating Systems: Three Easy Pieces(Online PDF)
- Operating Systems: Principles and Practice
- Distributed Systems Definition
- Introduction to Distributed Systems Design
- Distributed Systems In One Lesson
- Distributed Systems - Fast Tech Skills
- What is a distributed system?
- Distributed Systems - Online PDF, Buy Book On Amazon
- CS188 Intro to AI - Lecture Notes, Lecture Videos
- Artificial Intelligence: A Modern Approach
- Machine Learning