Skip to content

arnoudspammer/p1xt-guides

 
 

Repository files navigation

Computer Science and Programming - Version 4.0

Please read the FAQ and note that there are Tier Project Ideas to help you select projects.

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

Table of Contents

Junior developer

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

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.

Senior developer

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

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.

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.

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 - Programming Prep

Become familiar with Web Development basics - HTML/CSS/JavaScript plus Git and using the Editor of your choice

Courses Status Evidence
Learn Enough Command Line to Be Dangerous
Learn Enough Text Editor to Be Dangerous
Learn Enough Git to Be Dangerous
Learn Enough HTML to Be Dangerous
Learn Enough CSS & Layout to Be Dangerous
Learn Enough JavaScript to Be Dangerous
Reading Status Evidence
MDN HTML - Beginner's tutorials
MDN CSS - Tutorials
MDN JavaScript - Tutorials - For Complete Beginners
Eloquent JavaScript
Practice Status Evidence
Google Home Page
Rock Paper Scissors
Tier Programming Project
Tier Programming Project
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

Courses Status Evidence
CS50's Introduction to Computer Science
How to Learn Math: For Students
CS50's Web Programming with Python and JavaScript
Single Variable Calculus (more rigorous) or Khan Academy Calculus I and Khan Academy Calculus II (a more gentle introduction)
Algorithms
Software Debugging
Software Testing
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: Up & Going
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 will have the opportunity to complete a specialization in each tier so don't worry overmuch about picking 'the right one'. That said, for your first specialization Web Development - Fullstack Bootcamp - App Academy Open is highly recommended.



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
Software Construction
Introduction to Algorithms
Algorithms: Design and Analysis
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: 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 - 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
Probabilistic Systems Analysis and Applied Probability
Algorithms: Design and Analysis, Part 2
Multivariable Calculus (more rigorous) or Khan Academy Multivariable Calculus (a more gentle introduction)
Structure and Interpretation of Computer Programs
Design and Analysis of 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 - 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



Senior 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
Introduction to Databases - all mini-courses
Differential Equations
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 - 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.

About

Programming curricula

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published