Home

Awesome

V6 will be coming in December 2024. Please read https://github.com/P1xt/p1xt-guides/issues/208#issuecomment-2470295618 for recommendations on productive things you can be doing right now to be learning before I release V6. If you don't want to read that, everything currently listed in V5 below will be a productive use of your time. Yes, I know that Tier 3 is currently empty. V6 will correct that.

My goals:

The only reason I make this guide is to save you the time, headaches, and heartache of wasting time on resources that are inefficient and not respectful of the value of your time. Your time is your most valuable asset, and my only goal here is to point you to where it might be best used to get you where you want to be without falling into the rabbit holes of time wasting inefficient resources.

Best to you all, There WILL be a monumental update in December 2024, Don't sleep on learning math, P1xt

<!-- TOC --><a name="p1xt-guides-version-50"></a>

P1xt Guides - Version 5.0

Please take a moment to read the notes at the bottom of the page. They explain some of my philosophy of learning and contain some suggestions and tips which might help you make the most of your learning journey (particularly as it relates to the resources contained here.)

<!-- TOC start -->

Table of Contents

<!-- TOC end --> <!-- TOC --><a name="tier-1-web-development-foundation"></a>

Tier 1 - Web Development Foundation

Goal

The goal of Tier 1 is to gain a robust foundational knowledge of web development and become confident at coding beginner to intermediate-level web projects. It should provide a stepping stone for branching into other facets of development or for diving deeper into more advanced web development.

Instructions:

ActivityStatusEvidence
Course: HTML & CSS Crash Course
Course: Learn Flexbox
Course: Learn CSS Grid
Project: Profile card component
Project: Social links profile
Project: NFT preview card component
Project: Order summary component
Project: Product preview card component
Project: Stats preview card component
Project: Results summary component
Project: Recipe page
Project: 3-column preview card component
Project: Single price grid component
Project: Huddle landing page with a single introductory section
Project: Four card feature section
Project: Social proof section
Course: Build a Space Travel Website with Frontend Mentor
Course: Learn JavaScript
Course: Introduction to ES6+
Project: FAQ Accordion
Project: Interactive rating component
Project: Article preview component
Project: Base Apparel coming soon page
Project: Intro component with sign-up form
Project: Ping single column coming soon page
Course: Learn TypeScript
ReadingStatusEvidence
MDN HTML
MDN CSS
MDN JavaScript
Eloquent JavaScript
CSS Tricks
<!-- TOC --><a name="tier-2-practice"></a>

Tier 2 - Practice

Goal

The goal of Tier 2 is to gain substantial hands-on programming practice. You have three options for selecting where you'd prefer to dedicate that practice.

Pick one of the three paths below:

Tier 2 - Option 1 - JavaScript via Bootcamps

Instructions:

CoursesStatusEvidence
The Odin Project Foundations
The Odin Project Full Stack JavaScript
Full Stack Open
MongoDB Node.js Developer Path
ReadingStatusEvidence
GraphQL
Node.js
Express

Tier 2 - Option 2 - Computer Science focus

Instructions:

CoursesStatusEvidence
CS50x
CS50's Web Programming with Python and JavaScript
CS50's Introduction to Databases with SQL
MongoDB Python Developer Path
ReadingStatusEvidence
W3 Schools C Programming
Python
SQLBolt

Tier 2 - Option 3 - Java Deep Dive

Instructions:

CoursesStatusEvidence
Computer Science: Programming with a Purpose
Computer Science: Algorithms, Theory, and Machines
Algorithms, Part I
Algorithms, Part II
MongoDB Java Developer Path
ReadingStatusEvidence
Oracle's Java Documentation
<!-- TOC --><a name="tier-3-interview-prep"></a>

Tier 3 - Interview Prep

Tier 3 is currently being revised

<!-- ### Goal The goal of Tier 3 is to gain skills that will serve you well as you begin a job search. Both soft skills and technical skills which will help you interview and work well on teams should be your target in this tier. You will have the option to select a programming language for practicing technical interview skills. ### Instructions: - Proceed through the courses in order - Always be practicing. Ideas for practice: - Challenges on [CodinGame](https://www.codingame.com/training) in the language of your choice - Challenges on [LeetCode](https://leetcode.com) in the language of your choice (there's a lot on LeetCode, the [Top Interview 150](https://leetcode.com/studyplan/top-interview-150/) is a good place to focus) - Challenges on [HackerRank](https://www.hackerrank.com/dashboard) in the language of your choice - Start creating a [Resume / CV](https://www.hackerrank.com/resume) - Math progression on [Khan Academy](https://www.khanacademy.org/math) - [Ask ChatGPT to assign you a programming challenge](./RequestingChallengesFromAI.md) - Take time to read from the reading list - Near the end of this tier, polish up two of your best projects, showcasing your best work, for potential leverage in creating your portfolio in Tier 4. ### Soft Skills for interviewing and the workplace | Courses | Status | Evidence | | :------------------------------------------------------------------------------------------------------------------ | :----: | :------: | | [Behavioral Interview Practice for Computer Science Students](https://learn.codesignal.com/preview/course-paths/65) | | | | [How to Win Friends & Influence People in Practice](https://learn.codesignal.com/preview/course-paths/70) | | | | [Leading High-Impact Engineering Teams](https://learn.codesignal.com/preview/course-paths/69) | | | | [Running Effective 1-1 Meetings for Engineering Managers](https://learn.codesignal.com/preview/course-paths/67) | | | | [Overcoming The Five Team Dysfunctions Through Practice](https://learn.codesignal.com/preview/course-paths/86) | | | ### Miscelaneous "Things you should just know" | Courses | Status | Evidence | | :-------------------------------------------------------------------------- | :----: | :------: | | [The Missing Semester of Your CS Education](https://missing.csail.mit.edu/) | | | **Pick one of the three paths below:** ### Tier 3 - Option 1 - JavaScript Focus | Courses | Status | Evidence | | :------------------------------------------------------------------------------------------------------------------ | :----: | :------: | | [Mastering Algorithms and Data Structures in JavaScript](https://learn.codesignal.com/preview/course-paths/10) | | | | [Fundamental Coding Interview Preparation with JavaScript](https://learn.codesignal.com/preview/course-paths/80) | | | | [Four-Week Coding Interview Prep in JavaScript](https://learn.codesignal.com/preview/course-paths/97) | | | | [Advanced Coding Interview Preparation with JavaScript](https://learn.codesignal.com/preview/course-paths/89) | | | | [Coding Interview Prep for Senior Engineers in JavaScript](https://learn.codesignal.com/preview/course-paths/102) | | | | [Advanced Interview Prep for Senior Engineers in JavaScript](https://learn.codesignal.com/preview/course-paths/101) | | | | Reading | Status | Evidence | | :---------------------------------------------------------------------------- | :----: | :------: | | [The Algorithms - JavaScript](https://the-algorithms.com/language/javascript) | | | ### Tier 3 - Option 2 - Python Focus | Courses | Status | Evidence | | :------------------------------------------------------------------------------------------------------------- | :----: | :------: | | [Mastering Algorithms and Data Structures in Python](https://learn.codesignal.com/preview/course-paths/5) | | | | [Fundamental Coding Interview Preparation with Python](https://learn.codesignal.com/preview/course-paths/19) | | | | [Four-Week Coding Interview Prep in Python](https://learn.codesignal.com/preview/course-paths/51) | | | | [Advanced Coding Interview Preparation with Python](https://learn.codesignal.com/preview/course-paths/20) | | | | [Coding Interview Prep for Senior Engineers in Python](https://learn.codesignal.com/preview/course-paths/33) | | | | [Advanced Interview Prep for Senior Engineers in Python](https://learn.codesignal.com/preview/course-paths/28) | | | | Reading | Status | Evidence | | :----------------------------------------------------------------- | :----: | :------: | | [The Algorithms - Python](https://thealgorithms.github.io/Python/) | | | ### Tier 3 - Option 3 - Java Focus | Courses | Status | Evidence | | :----------------------------------------------------------------------------------------------------------- | :----: | :------: | | [Mastering Algorithms and Data Structures in Java](https://learn.codesignal.com/preview/course-paths/9) | | | | [Fundamental Coding Interview Preparation with Java](https://learn.codesignal.com/preview/course-paths/66) | | | | [Four-Week Coding Interview Prep in Java](https://learn.codesignal.com/preview/course-paths/100) | | | | [Advanced Coding Interview Preparation with Java](https://learn.codesignal.com/preview/course-paths/73) | | | | [Advanced Interview Prep for Senior Engineers in Java](https://learn.codesignal.com/preview/course-paths/93) | | | | Reading | Status | Evidence | | :---------------------------------------------------------------- | :----: | :------: | | [The Algorithms - Java](https://the-algorithms.com/language/java) | | | --> | <!-- TOC --><a name="tier-4-develop-a-portfolio"></a>

Tier 4 - Develop a Portfolio

Goal

The goal of Tier 4 is to polish a portfolio of your best work.

Instructions:

<!-- TOC --><a name="tier-5-dive-deeper"></a>

Tier 5 - Dive Deeper

Goal

The goal of Tier 5 is to enhance your knowledge and abilities by deep diving into areas of particular interest to you. Select one or more focus areas as your interests dictate.

Select any area that interests you for further study:

Tier 5 - Focus Area - React

You will notice that the resources listed here for React are not courses,YouTube playlists, or podcasts where other people teach you React. This section lists the official docs. This is because:

Instructions:

ResourceStatusEvidence
React
Next.js React Foundations
Next.js Tutorial
Next.js
Recoil
Redux
TypeScript
WebPack
React Testing Library
Jest
Storybook

Tier 5 - Focus Area - Angular

You will notice that the resources listed here for Angular are not courses, YouTube playlists, or podcasts where other people teach you Angular. This section lists the official docs. This is because:

Instructions:

ResourceStatusEvidence
TypeScript
Angular
NGRX
Nx
Jasmine
Karma
Storybook
Angular Material

Tier 5 - Focus Area - Mathematics

Note: For this Focus Area, feel free to dive into it in its entirety, or just do a course or two here and there to supplement one of the other focus areas. You will notice that if you start working through the Computer Science Focus Area, from time to time, one of the Mathematics courses from this Focus Area will be listed as a pre-requisite.

CoursesStatusEvidence
Single Variable Calculus
Mathematics for Computer Science
Multivariable Calculus
Introduction to Probability and Statistics
Differential Equations
Linear Algebra

Tier 5 - Focus Area - Computer Science

Note: This focus area dives a bit deeper into nitty-gritty computer science topics. Feel free to jump around and take whichever courses sound most interesting to you. (Structure and Interpretation of Computer Programs is one of my favorites.) You will, at times, find that a course has a mathematics course pre-requisite - those courses may be found in the Mathematics Focus Area above.

CoursesStatusEvidence
Introduction to Computer Science and Programming in Python
Introduction to Computational Thinking and Data Science
Structure and Interpretation of Computer Programs
Introduction to Algorithms
Software Construction
Probabilistic Systems Analysis and Applied Probability
Design and Analysis of Algorithms
CS50's Introduction to Artificial Intelligence with Python
Artificial Intelligence
Performance Engineering of Software Systems
Compilers

<!-- TOC --><a name="notes"></a>

Notes

Before you start, please let me introduce a bit of my philosophy for learning how to be a top-notch programmer.

Programming, software engineering, web development, whatever you want to call it, however you want to approach it, has one immutable characteristic - it's a field in flux, and there are new advances every day - don't let this discourage you, but do let it instill in you an excitement for learning. Learning new technologies should be an exciting opportunity for growth, not a disappointing drudgery. Start, from day one, with a celebratory mindset about learning new things - that mindset will skyrocket your progress.

You’ll learn a lot from taking courses. You’ll learn a lot from watching videos. You’ll learn a lot from “reading the docs.” All of these are important, in fact crucial, on your path. If you want to retain all that great learning, you need to practice it. Practice will transform something you've been exposed to into something you can “reliably do.” Lean heavily into practicing.

You're learning, you're practicing - do you want to excel? Yes? Then find opportunities to help others learn. There is no other activity that will prepare you better to interview well than consistently helping others. It teaches you to interact well with others and communicate technical concepts.

Yeah, yeah, yeah, you can find a billion people on the internet who will tell you you don't need math to be a good programmer. I agree, to a certain extent. That said, math is about learning to solve increasingly complex problems. And, knowing how to logically go about solving increasingly complex problems is what programming is all about. Don't sleep on math, every little extra bit you learn will make you that much better at problem-solving. Yeah, you “can do fine” without the math, but with it, you fly!

Helpful (non-programming) resources

Curriculum advice

General advice


<!-- TOC --><a name="general-math-progression"></a>

General math progression

Note: As I said above, don't stress about math. Should you desire to leverage a greater understanding of math to improve your logical problem solving ability, the following sequence will serve you well. Please feel free to skip (or test out of) any topics you already know well.

CoursesStatusEvidence
Arithmetic
Pre-algebra
Algebra I
Geometry
Algebra II
Trigonometry
Precalculus
Calculus I
Statistics and Probability
Calculus II
Multivariable Calculus
Differential Equations
Linear Algebra