- Tier 0 - prep
- Tier 1 - Non-Python frontend necessities for Web Development
- Tier 2 - Python Basics
- Tier 3 - More Python and Basic CS
- Tier 4 - Wrap everything up and prep for interviews
- What now?
- FAQ for this guide
Goal: Be comfortable with git by midway through Tier 1, and comfortable with Precalculus by midway through Tier 2.
Anything in Tier 0 can be studied before beginning Tier 1, or alongside the rest of the guide as you progress through the other Tiers.
- Book: College Algebra or Course: College Algebra and Problem Solving or thorough knowledge of Algebra.
- Book: Precalculus or Course: Precalculus or Khan Academy or thorough knowledge of Precalculus
- Course: Try Git and/or How to not f-up your local files with Git part1, part2 and part 3
Goal: Become Proficient with HTML, CSS and JavaScript, including the frontend framework/library of your choice plus D3.
- Book: You Don't Know JS: Up & Going
- Book: You Don't Know JS: Scope & Closures
- Course: Learn to Code HTML & CSS
- Project: Pick a template from here, here or here and implement the frontend of a website with it as your inspiration (do not use its assets)
- Book: You Don't Know JS: this & Object Prototypes
- Course - Programming for the Web with JavaScript
- Project: Pick a template from here, here or here and implement the frontend of a website with it as your inspiration (do not use its assets)
- Book: You Don't Know JS: Types & Grammar
- Book: You Don't Know JS: Async & Performance
- Project: Select an API from Todd Motto's API List and build a frontend-only application powered by data fetched from the API you chose.
- Course: Learn to Code Advanced HTML & CSS
- Book: You Don't Know JS: ES6 & Beyond
- Course: Data Visualization and D3.js
- Project - Clone this Admin template using React, Angular, or Vue
- Book: JavaScript Allongé, the "Six" Edition
- Project: Select an API from Todd Motto's API List and build a frontend-only application powered by data fetched from the API you chose.
- Book: JavaScript Design Patterns
- Project: Clone this online resume template
- Project: Do a one week Speedrun of the FreeCodeCamp Projects, finishing as many as you can in seven days.
Goal: Become familiar with Python, MongoDB, and the Flask or Django framework and begin building proficiency with creating full stack web applications with Python on the backend.
- Challenge: Python Interview Prep on Hackerrank. Sign up now and work problems alongside the guide as you progress.
- Course: MongoDB for Developers - note: this course is only intermittently offered, sign up at the start of the Tier, then proceed to the other courses and return to this one when it's in session
- Course: Introduction to Computer Science and Programming Using Python
- Study: The Flask User Guide or the Django documentation - pick based on which is more prevalent in your area, which you personally prefer, or any other criteria you choose, but pick one and study it thoroughly. Do the tutorials, read it all, learn testing, auth, databases, all of it.
- Project: Clone Twitter using Python on the backend, and your frontend framework/library of choice. Include all basic features: signup/login/logout, follow user, search, tweet, like/retweet, home page with stream of recent tweets.
- Course: Single Variable Calculus
- Project: participate in one Bot Programming competition.
- Book: Think Python
- Study: The pytest testing tool read the docs thoroughly, experiment with the examples and become proficient with pytest (including unittest and nose).
- Project: participate in one Bot Programming competition.
- Project: Clone Medium. Include: create account, create post, publish post, edit post, add topic to post, follow user, follow topic, cheer for post, and home page with feed of recent posts, followed users, and followed topics.
- Project: Do a one week Speedrun of the FreeCodeCamp Projects, finishing as many as you can in seven days.
Goal: Learn Python to a deeper level, ensuring you understand the algorithms and data structures you're likely to encounter in interviews (and on the job).
- Project: Finish all classic puzzles on CodinGame from easy through hard by the end of the Tier.
- Course: Introduction to Computational Thinking and Data Science
- Project: Your choice - Clone Netflix, Slack, Reddit, or Facebook (or a comparably involved site of your choosing). The clone should be functional and include all basic features.
- Course: Mathematics for Computer Science
- Course: Introduction to Algorithms (requires book purchase) or Book - Open Data Structures
- Project: participate in one Bot Programming competition.
- Course: Intro to Machine Learning
- Project: Titanic: Machine Learning from Disaster
- Course: Database Mini-Courses - take all mini-courses
- Project: Your choice - Clone Netflix, Slack, Reddit, or Facebook (or a comparably involved site of your choosing). The clone should be functional and include all basic features.
- Project: Create a Portfolio highlighting your best work.
- Project: House Prices: Advanced Regression Techniques
- Project: Do a one month Speedrun of the FreeCodeCamp Projects, finishing as many as you can in 30 days.
Goal: Interview with confidence.
- Project: Finish any questions you have remaining from Python Interview Prep
- Project: Refine and polish your Portfolio.
- Project: Create and polish your Resume/CV.
- Project: Cracking the Coding Interview on HackerRank
- Project: Continue honing your skills as you interview. Participate in more bot competitions on CodinGame, participate in competitions on Kaggle, contribute to open source JavaScript or Python projects, work on side projects that illustrate your frontend skill.
- If you really enjoyed the dip into Machine Learning - hit the Data Science Guide
- If you preferred the Algorithms and Data Structures - hit the CS-WD Guide
- If you mostly enjoyed the Web Development - hit the WD-CS Guide
The most notable difference between this and the original Job Ready guide is that it is significantly longer but still begins with YDKJS. This is because in order to use Python for web development, you also need some proficiency with the primarily frontend topics as well (HTML, CSS, JavaScript).
Python is typically used for far more than just server-side web development so I've tried to at least touch on the "grander scheme" without bogging down too much.
There is far more focus on algorithms - this reflects what you can expect in industry, you're far more likely to be rigorously tested on algorithms and data structures in a python interview than a general or frontend web development interview.
For all projects - store your code on GitHub, GitLab or BitBucket (GitHub preferred if you want it to later be seen by potential employers) and for web projects deploy the code on the web using the service of your choice (GitHub or GitLab projects or Surge.sh are ideal for frontend only projects, while Heroku is a free alternative for backend/fullstack).
When you get to Tier 2 - I highly recommend installing the Python 3 version of Anaconda for use in the Python-centric portion of the guide. It containerizes your Python environment to ensure nothing you do impacts the rest of your machine, contains all the plugins you're likely to need, and even provides the Spyder IDE which is an ideal starter setup for Python development.