This is a modified version of P1xt's Computer Science and Programming guide. In this file I keep track of my progress in the curriculum and link all the stuff I have done during my learning journey. I try to complete this in 5 years but hopefully even faster.
I skipped some introductory parts of the original guide since I have already some programming experience from my studies in University of Turku. I also skipped some of the content related to mathematics as I graduated on May 2021 from University of Turku as Master of Science having mathematics as my major so I already have broad knowledge in mathematics.
I started working on this curriculum on January 2021 when I was still studying in university.
Currently I am working on Tiers 0 and 1 and the objective is to have completed them before the end of 2021.
- Web Development - Deep Dive Into Modern Web Development - Full Stack Open 2020
- Web Development - Fullstack Bootcamp - The Odin Project - Full Stack JavaScript
- Web Development - Frontend
- Web Development - Backend
- Mobile App Development
- Game Development
- Open Source Contributions
- Computer Science - Algorithms
- Computer Science - Advanced Algorithms
- Computer Science - Intensive
- Data Science I
- Data Science II
Complete the App Academy Open free online Fullstack Bootcamp.
Courses | Status | Evidence |
---|---|---|
Welcome To Coding | Done | - |
Intro to Programming | Done | - |
Software Engineering Foundations | Done | GitHub |
Ruby | Done | GitHub |
SQL | Done | GitHub |
Rails | Done | GitHub |
JavaScript | Done | GitHub |
React | Done | GitHub |
Full Stack Project | Done | GitHub / Live |
MERN Stack Curriculum | In Progress | |
Job Search | ||
Docker | ||
GraphQL | ||
Data Structures and Algorithms |
Deepen understanding of Web Development and begin learning Computer Science topics.
Courses | Status | Evidence |
---|---|---|
CS50's Introduction to Computer Science | Done | CS50x Certificate |
CS50's Web Programming with Python and JavaScript | In progress | |
Algorithms | Done | - |
Software Debugging | Done | - |
Software Testing | Done | - |
CS50's Mobile App Development with React Native | ||
Reading | Status | Evidence |
MDN HTML - Advanced topics | Done | - |
MDN CSS - Reference - Key Concepts | Done | |
MDN JavaScript - Tutorials - JavaScript Guide | Done | - |
You Don't Know JS: Get Started | Done | |
You Don't Know JS: Scope & Closures | In Progress | |
You Don't Know JS: this & Object Prototypes | ||
Practice | Status | Evidence |
Complete all Classic Puzzles - Easy on CodinGame | Done | GitHub |
Complete Google Kick Start 2018 | ||
Tier Programming Project | ||
Tier Programming Project | ||
Specialization | Status | Evidence |
Complete a Specialization |
Dive deeper into the Computer Science topics which will prove useful throughout all programming
Courses | Status | Evidence |
---|---|---|
Mathematics for Computer Science | ||
Introduction to Computer Science and Programming in Python | ||
Introduction to Computational Thinking and Data Science | ||
CS50's Introduction to Artificial Intelligence with Python | ||
Software Construction | ||
Intro to Algorithms | ||
Introduction to Algorithms | ||
Reading | Status | Evidence |
MDN JavaScript - Tutorials - Advanced | ||
MDN HTTP - Tutorials | ||
MDN Web Components | ||
You Don't Know JS: Types & Grammar | ||
You Don't Know JS: Async & Performance | ||
You Don't Know JS: ES6 & Beyond | ||
JavaScript Allongé, the "Six" Edition | ||
D3 Tips and Tricks v3.x | ||
Practice | Status | Evidence |
Complete all Classic Puzzles - Medium on CodinGame | ||
Complete all ES6 Katas here | ||
Complete Google Kick Start 2017 | ||
Complete Google Code Jam 2018 | ||
Complete FaceBook Hacker Cup 2017 | ||
Tier Programming Project | ||
Tier Programming Project | ||
Specialization | Status | Evidence |
Complete a Specialization |
Dive deeper yet, exploring algorithms and different programming paradigms
Courses | Status | Evidence |
---|---|---|
Software Architecture & Design | ||
Structure and Interpretation of Computer Programs | ||
Design and Analysis of Algorithms | ||
Linear Algebra | ||
Computability, Complexity & Algorithms | ||
Artificial Intelligence | ||
Reading | Status | Evidence |
Official docs for Angular, React, or Vue | ||
Jest Official Docs | ||
JavaScript Design Patterns | ||
Understanding ECMAScript 6 | ||
Professor Frisby's Mostly Adequate Guide to Functional Programming | ||
Functional Light JS | ||
Essential TypeScript | ||
Practice | Status | Evidence |
Complete all Classic Puzzles - Hard on CodinGame | ||
Write the CSS Necessary to create your own 12 column based grid layout - see here for an example | ||
Study The official Sass docs and convert your 12 column based grid layout to Sass | ||
Complete All Tracks (Basic Programming, Data Structures, Algorithms, Math, Machine Learning, and Python) on HackerEarth | ||
Complete Google Kick Start 2016 | ||
Complete Google Code Jam 2017 | ||
Complete FaceBook Hacker Cup 2016 | ||
Tier Programming Project | ||
Tier Programming Project | ||
Specialization | Status | Evidence |
Complete a Specialization |
Wrap up by taking a look at some specific areas of computing to complete a breadth of knowledge that can be leveraged regardless of specialty
Courses | Status | Evidence |
---|---|---|
Computation Structures | ||
Intro to Relational Databases | ||
Differential Equations | ||
Database Systems Concepts & Design | ||
Computer System Engineering | ||
Performance Engineering of Software Systems | ||
Mining Massive Datasets | ||
Compilers | ||
Reading | Status | Evidence |
How to Design Programs | ||
97 Things Every Programmer Should Know - Extended | ||
Think Java - How to Think Like a Computer Scientist | ||
Open Data Structures | ||
Node.js Docs | ||
Practice | Status | Evidence |
Complete all Classic Puzzles - Very Hard on CodinGame | ||
Study The Google Android Developer Guide and build the Android App of your choice | ||
Complete Google Kick Start 2015 | ||
Complete Google Code Jam 2016 | ||
Complete FaceBook Hacker Cup 2015 | ||
Tier Programming Project | ||
Tier Programming Project | ||
Specialization | Status | Evidence |
Complete a Specialization |
Wrap up by diving more deeply into your specialization(s). If you haven't already done an Advanced Specialization, strongly consider including it in this tier. Beyond that, feel free to laser focus on one specialization, practicing more in that area, or branch out and develop expertise across multiple specializations.
Practice | Status | Evidence |
---|---|---|
Complete a Specialization | ||
Complete a Specialization | ||
Complete a Specialization | ||
Complete a Specialization | ||
Complete a Specialization |