Download as pdf or txt
Download as pdf or txt
You are on page 1of 15

P1xt / p1xt-guides Public

Code Issues 3 Pull requests Actions Projects Security Insights

master 1 branch 0 tags Go to file Code About

Programming curricula
P1xt Merge pull request #199 from wldasf/mast… … 92ce68d on Oct 27 294 commits
# computer-science # web-development

deprecated Update YDKJS Links 4 years ago # programming # game-development

# software-engineering
specializations Update advanced-algorithms.md 2 months ago
Readme
.gitignore added .gitignore 6 years ago
MIT license
CHANGELOG.md Fix CS50 spelling 3 years ago
Activity
LICENSE.md Update license 3 years ago 6.8k stars

README.md Update README.md 2 months ago 521 watching

1.7k forks
faq.md Update the FAQ to alleviate Tier 0 confusion. 3 years ago
Report repository
project_ideas.md Update project_ideas.md 2 months ago

Releases
README.md

No releases published

Computer Science and Programming -


Version 4.0 Packages
Please read the FAQ and note that there are Tier Project Ideas to help you select No packages published

projects.

Note: Prior guides have been deprecated but are still available here Contributors 40

Table of Contents

Junior developer
+ 26 contributors
If you want to develop the skills necessary to be 'job ready' for a junior developer
position - complete tier X, 0, and 1.

tier X - Math Prep


tier X - Programming Prep Prep
tier 0 - Programming Prep
tier 1 - Getting Started

Intermediate developer

If you want to develop the skills necessary to move beyond junior to intermediate
developer - once you've finished tiers X, 0 and 1, proceed to complete tiers 2 and 3.

tier 2 - Develop More Expertise


tier 3 - Add More Rigor

Advanced developer

If you want to develop the skills necessary to move beyond intermediate to


advanced developer - once you've finished tiers X, 0, 1, 2, and 3, proceed to complete
tiers 4 and 5.
tier 4 - Polish the Rough Edges
tier 5 - Specialize

Specializations

Each tier has a 'specialization' based capstone which involves further study and
extensive practice in an area of your choosing. Web Development - Fullstack
Bootcamp - App Academy Open is highly recommended (but not required) as the
first specialization. Beyond that, feel free to complete a different specialization each
tier, or dive deeply into a specialization by selecting it during multiple tiers to explore
it in greater detail and further develop your specialized profile.

Web Development - Fullstack Bootcamp - App Academy Open (recommended,


but not required, first specialization)
Web Development - Deep Dive Into Modern Web Development - Full Stack Open
2020
Web Development - Fullstack Bootcamp - The Odin Project - Full Stack Ruby on
Rails
Web Development - Fullstack Bootcamp - The Odin Project - Full Stack
JavaScript
Web Development - Frontend
Web Development - Backend
Mobile App Development
Game Development
Open Source Contributions

Advanced Specializations
The following specializations rely on knowledge gained in earlier tiers. Additionally,
they are typically 'more difficult' or will require more work than those listed above.

Computer Science - Algorithms -Suggested for Tier 2 or later


Computer Science - Advanced Algorithms - Computer Science - Algorithms is a
pre-requisite
Computer Science - Intensive - Suggested for Tier 4 or later
Data Science I - Suggested for Tier 2 or later
Data Science II - Data Science I is a pre-requisite

Tier Programming Projects

Both tiers and specializations will require 'Tier Programming Projects', you are free
to select any programming project you want. To help combat the 'but I don't know
what I want' roadblock, Tier Programming Project Ideas lists a variety of ideas.

Note: In specializations, the Tier Programming Projects might have extra criteria
(such as 'if you're doing a mobile app development specialization your projects
must be mobile apps')

Junior developer

Tier X - Math Prep

Math will be relevant throughout the guide. Begin it as you start the guide, and
incrementally work through it alongside the guide. (You need not finish this before
moving to tier 0, or tier 1, but be actively working on it alongside them.)
Courses Status Evidence

Algebra I

Algebra II

Trigonometry

Precalculus

Tier X - Programming Prep Prep

A very gentle introduction, complete if feel you would benefit from it, skip if you'd
rather dive right into tier 0

Courses Status Evidence

Intro to JS: Drawing & Animation

Intro to HTML/CSS: Making webpages

Intro to SQL: Querying and managing data

Advanced JS: Games & Visualizations

HTML/JS: Making webpages interactive

Capstone Status Evidence

Create a website highlighting what you learned and built


during this tier. Use this as an opportunity to create a
portfolio of your projects, notes, blog posts, etc.
Tier 0 - Web Development - Fullstack Bootcamp - App Academy
Open

Complete the App Academy Open free online Fullstack Bootcamp. See FAQ for
alternatives.

Courses Status Evidence

Welcome To Coding

Full Stack Online - Intro to Programming

Full Stack Online - Software Engineering Foundations

Full Stack Online - Ruby

Full Stack Online - SQL

Full Stack Online - Rails

Full Stack Online - JavaScript

Full Stack Online - React

Full Stack Online - Full Stack Project

Full Stack Online - MERN Stack Curriculum

Full Stack Online - Job Search

Full Stack Online - Docker

Full Stack Online - GraphQL

Full Stack Online - Data Structures and Algorithms


Courses Status Evidence

Capstone Status Evidence

Create a website highlighting what you learned and built


during this tier. Use this as an opportunity to create a
portfolio of your projects, notes, blog posts, etc.

Tier 1 - Getting Started

Deepen understanding of Web Development and begin learning Computer Science


topics.

If you didn't do App Academy Open in Tier 0, please consider doing it as your
Specialization in this Tier.

Courses Status Evidence

CS50's Introduction to Computer Science

How to Learn Math: For Students

CS50's Web Programming with Python and JavaScript

Do this: Single Variable Calculus (more rigorous)

Or, this: Khan Academy Calculus I and Khan Academy


Calculus II (a more gentle introduction)

Algorithms

Software Debugging

Software Testing
Courses Status Evidence

CS50's Mobile App Development with React Native

Reading Status Evidence

MDN HTML - Advanced topics

MDN CSS - Reference - Key Concepts

MDN JavaScript - Tutorials - JavaScript Guide

You Don't Know JS: Get Started

You Don't Know JS: Scope & Closures

You Don't Know JS: this & Object Prototypes

Practice Status Evidence

Complete all Classic Puzzles - Easy on CodinGame

Complete Google Kick Start 2018

Tier Programming Project

Tier Programming Project

Specialization Status Evidence

Complete a Specialization - note: you may elect to


complete another round of a specialization you selected
in a prior tier, or branch out and complete a different
specialization.
Intermediate Developer

Tier 2 - Develop More Expertise

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


Courses Status Evidence

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 Meta Hacker Cup 2017

Tier Programming Project

Tier Programming Project

Specialization Status Evidence

Complete a Specialization - note: you may elect to


complete another round of a specialization you selected
in a prior tier, or branch out and complete a different
specialization
Tier 3 - Add More Rigor

Dive deeper yet, exploring algorithms and different programming paradigms

Courses Status Evidence

Software Architecture & Design

Multivariable Calculus (more rigorous) or Khan Academy


Multivariable Calculus (a more gentle introduction)

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
Courses Status Evidence

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 Meta Hacker Cup 2016

Tier Programming Project

Tier Programming Project

Specialization Status Evidence

Complete a Specialization - note: you may elect to


complete another round of a specialization you selected
in a prior tier, or branch out and complete a different
specialization
Advanced Developer

Tier 4 - Polish the Rough Edges

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


Courses Status Evidence

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 Meta Hacker Cup 2015

Tier Programming Project

Tier Programming Project

Specialization Status Evidence

Complete a Specialization - note: you may elect to


complete another round of a specialization you selected
in a prior tier, or branch out and complete a different
specialization

Tier 5 - Specialize
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

Capstone Status Evidence

Create a website highlighting what you learned and built


during this specialization. Use this as an opportunity to
create a portfolio of your projects, notes, blog posts, etc.

You might also like