Closed LShun closed 5 years ago
When the changes to edX were announced I didn't think it was going to be as bad as it is. But if P1xt plans on updating the guides for different resources I'd be more than willing to help look for them.
Also, at this point I think coursera would be a better option over the edx classes. Most of the classes don't have a paywall, atleast the ones that I've taken.
Yea feels like I'm missing out a ton unless I pay. Some other CS roadmaps like OSSU also utilizes edX, and they don't seem to have any plans on replacing them as far as I know, so I was wondering if they are still perfectly fine without all the graded assessments
Coursera is actually far worse about paywalls than edX. On their paywalled courses, there is no access to assessments at all (from day one) without paying.
I will look for replacements for the edx paywalled courses - though they are going to be quite difficult to find replacements for (the How to Code series is brilliant).
My recommendation in the meantime is to take your 21 day restriction as a challenge to finish within 21 days.
Actually, I've had a 2.0 version in the works for some time now. It may be time to put the finishing touches on it and publish soon.
If you want a preview - this is it's current (still needs editing and review) state:
Please see the end of this guide for About/FAQ information.
Math which 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 |
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 over the course of this Tier. Use this as an opportunity to create a portfolio of your projects, notes, blog posts, etc. |
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 over the course of this Tier. Use this as an opportunity to create a portfolio of your projects, notes, blog posts, etc. |
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 | ||
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 | ||
Tier Programming Project | ||
Tier Programming Project | ||
Capstone | Status | Evidence |
Create a website highlighting what you learned and built over the course of this Tier. Use this as an opportunity to create a portfolio of your projects, notes, blog posts, etc. |
Dive deeper into the Computer Science topics which will prove useful throughout all programming
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 | ||
Differential Equations | ||
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 | ||
Capstone | Status | Evidence |
Complete a Specialization - note: you may complete another round of the specialization you selected in Tier 2 for deeper focus on that 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 | ||
Linear Algebra | ||
Introduction to Databases - all mini-courses | ||
Computer System Engineering | ||
Performance Engineering of Software Systems | ||
Mining Massive Datasets | ||
Compilers | ||
Reading | Status | Evidence |
Human JavaScript | ||
97 Things Every Programmer Should Know | ||
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 | ||
Capstone | Status | Evidence |
Complete a Specialization - note: you may complete another round of the specialization you selected in Tier 2 or 3 for deeper focus on that specialization |
Expand beyond Computer Science into Statistics, Probability and Data Science
Pick one specialization
Pick a frontend library/framework (Angular, React, Vue) and complete the following: Note: include complementary technologies such as TypeScript, NgRx, and RxJS for Angular, Redux and React Router for React, etc. Note: All Projects should use your selected framework/library
Reading | Status | Evidence |
---|---|---|
FireBase | ||
WebPack | ||
Practice | Status | Evidence |
Study all docs for the library/framework of your choice | ||
Tier Programming Project | ||
Tier Programming Project | ||
Identify Blogs and Twitter users to follow to stay up to date on your chosen framework/library and begin 'reading up' on a weekly basis to stay current | ||
Tier Programming Project | ||
Tier Programming Project | ||
Tier Programming Project | ||
Open Source Contribution | ||
Participate in the community surrounding your chosen framework/library - begin regularly interacting on twitter and other's blogs, and posting relevant content yourself | ||
Tier Programming Project | ||
Tier Programming Project | ||
Open Source Contribution | ||
Tier Programming Project | ||
Capstone | Status | Evidence |
Create a website highlighting what you learned and built over the course of this Tier. Use this as an opportunity to create a portfolio of your projects, notes, blog posts, etc. |
Pick a backend language and library/framework and complete the following:
Note: include complementary technologies related to your choice: for instance, if you chose Python, consider the entire ecosystem of developing Python applications, including a framework such as Flask or Django. Note: Pick any Backend language you like, some ideas include - Golang, Rust, Elixir, JavaScript, Java, C#, Python, PHP, Ruby Note: All Projects should use your selected language and framework/library
Courses | Status | Evidence |
---|---|---|
M001: MongoDB Basics | ||
M220J, M220JS or M200P | ||
M310: MongoDB Security | ||
Reading | Status | Evidence |
TravisCI | ||
Kubernetes | ||
Practice | Status | Evidence |
Study all docs for your chosen language and it's ecosystem | ||
Tier Programming Project | ||
Tier Programming Project | ||
Identify Blogs and Twitter users to follow to stay up to date on your chosen language and it's ecosystem and begin 'reading up' on a weekly basis to stay current | ||
Tier Programming Project | ||
Tier Programming Project | ||
Tier Programming Project | ||
Open Source Contribution | ||
Participate in the community surrounding your chosen language and it's ecosystem - begin regularly interacting on twitter and other's blogs, and posting relevant content yourself | ||
Tier Programming Project | ||
Tier Programming Project | ||
Open Source Contribution | ||
Tier Programming Project | ||
Capstone | Status | Evidence |
Create a website highlighting what you learned and built over the course of this Tier. Use this as an opportunity to create a portfolio of your projects, notes, blog posts, etc. |
Pick your targeted mobile platform and complete the following:
Note: All Projects should target your selected mobile platform
Reading | Status | Evidence |
---|---|---|
FireBase | ||
Practice | Status | Evidence |
Study all docs for your chosen platform and it's ecosystem | ||
Tier Programming Project | ||
Tier Programming Project | ||
Identify Blogs and Twitter users to follow to stay up to date on your chosen platform and it's ecosystem and begin 'reading up' on a weekly basis to stay current | ||
Tier Programming Project | ||
Tier Programming Project | ||
Tier Programming Project | ||
Tier Programming Project | ||
Participate in the community surrounding your chosen platform and it's ecosystem - begin regularly interacting on twitter and other's blogs, and posting relevant content yourself | ||
Tier Programming Project | ||
Tier Programming Project | ||
Tier Programming Project | ||
Tier Programming Project | ||
Capstone | Status | Evidence |
Create a website highlighting what you learned and built over the course of this Tier. Use this as an opportunity to create a portfolio of your projects, notes, blog posts, etc. |
Pick your targeted platform, programming language, and related framework and complete the following:
Note: Choices include, but are not limited to
Note: Each Tier Programming Project in this Tier should be a game you create - it can be a clone, or a new idea, but the deliverable for each project is a completed game. Do not deploy non-original (clone) games to app stores - you'll get sued - you've been warned.
Practice | Status | Evidence |
---|---|---|
Study all docs for your chosen platform and it's ecosystem | ||
Tier Programming Project | ||
Tier Programming Project | ||
Identify Blogs and Twitter users to follow to stay up to date on your chosen platform and it's ecosystem and begin 'reading up' on a weekly basis to stay current | ||
Tier Programming Project | ||
Tier Programming Project | ||
Tier Programming Project | ||
Participate in the community surrounding your chosen platform and it's ecosystem - begin regularly interacting on twitter and other's blogs, and posting relevant content yourself | ||
Tier Programming Project | ||
Tier Programming Project | ||
Complete an Itch.io Game Jam | ||
Tier Programming Project | ||
Tier Programming Project | ||
Complete an Itch.io Game Jam | ||
Capstone | Status | Evidence |
Create a website highlighting what you learned and built over the course of this Tier. Use this as an opportunity to create a portfolio of your projects, notes, blog posts, etc. |
This guide is a merge of the original cs-wd and wd-cs guides with a comprehensive content overhaul.
Why? Coursera and edX have continually ramped up 'paywall' efforts over the past couple years, thus rendering many of the 'open' (as in free) course options available on their platforms increasingly unavailable for those without the funds to do more than audit.
CS50 remains, however the sequence beyond has been re-evaluated to use courses unlikely to hit the paywall issues. There are now a couple courses listed which may require the purchase or borrowing of a book, but the majority of the courses are self contained and books (like Cormen's Algorithms) should be freely available from your public library.
You'll note that each Tier has Courses, Reading, and Practice sections. It appears that Readings come after Courses, and Practice comes after Reading - but you need not take that literally. Take the Courses in order, stopping to Read or Practice as you like, aiming to finish everything in the Tier before moving to the next Tier.
See the end of this guide for ideas if you're at a loss for what to choose for your programming projects.
An important note about Programming Projects - you may elect to clone templates, apps, or games for your programming projects. When doing so, always use your own assets (images, audio, etc.) or assets you know are legal to use, and mark your project as 'inspired by' the original, giving full credit to the original author. Don't try to put their ideas off as your own, or (worse yet) try to put your project up on app stores as an original app. These are practice projects - don't go out and clone Tetris, toss it up on the app store, and get sued for copyright infringement and blame me - I warned you.
Each item includes a link or description of the Course, Reading or Practice, plus columns for Status (Started, Completed, In Progress) and Evidence (the paper trail showing what you learned: blog posts, repositories, project demos, notes, pull requests, etc.) You'll want to keep the Evidence updated for ease of creating your Capstone overview of the tier (or for later use creating a portfolio.)
There are multiple Tier Programming Projects each tier. These can be any programming project you wish: web development, mobile development, games, applications, command line utilities, browser extensions, compilers, anything. They can be small to large endeavors. Pick something you want to code, that will provide you practice with existing skills or stretch you to grow new skills. Ideas: clone a popular website, clone a website template, create or clone a game, build a command line utility, enter a hackathon/programming competition. Note that the projects within a Specialization require that you focus on your chosen specialization.
Clone one or more of the following Website Templates (or the frontend of any website or theme you like) as a web or mobile app:
Clone a Web Application as a Web, Mobile, or Desktop App:
Create a new Web, Mobile, or Desktop App in a typical category:
Clone a favorite game (or create a new one) as a Web, Mobile, or Desktop App
Complete any of the following archived coding competitions prior to 2015:
Complete a CodinGame Sponsored Contest Complete one or more sections on HackerRank
Contribute to Open Source
This site has a ton of information about how to break into open source.
Enter a hackathon
Clone one of the following (note, do NOT publish as your own, you'll get sued)
Awesome! I'm most upset about the How to Code courses. Those were invaluable in my journey through the guides, they introduced me to functional programming. I would love to go back to those, but it's ridiculous that the testing and even some of the learning material is behind a paywall now.
The How to Code courses are the ones that troubled me the most as well. They really are fantastic courses. There are other options for getting to the same place though. I was expecting they'd go paywall eventually because edx was toying with it last year. I'd been planning a few more months of research, but might speed that up and release the revamped guide sooner rather than later, I just need to review it all and double check it against the old to ensure I've not omitted any major topics.
Looks like I missed out some hot stuff then. But the new guide is awesome, looks like it solves the paywall issues. As an aside, it also seems much more approachable than the original one (example, the Code Jam 2008's "Fly swatter"). I'll close this issue once the new guide is up officially.
I have several questions, I hope its ok.
By the way, the new CSWD guide is awesome and I really like it and wanted to do it because I don't want to be just in front end development, however I find it daunting to tackle... seems its aimed at those who has a lot of time to spare for several years...
I only have a few hours of spare time a day to do the guide (family and work), to estimate, by browsing the guide, it would probably take me 5 to 10 years to complete the new cswd guide.
Seems I'm stuck with JS v3.0
@garymdurante
If you really want the new CSWD guide, do it. Ok, you might only finish Tier 1 in the time it took you to do the JSJR 3.0, But, you'll be in the same place from a learning perspective. From a learning perspective, the most important thing isn't 'did I pick the right one', it's am I busy learning from the one I picked and not out spending all potential learning time googling for a different resource.
Looks like I missed out some hot stuff then. But the new guide is awesome, looks like it solves the paywall issues. As an aside, it also seems much more approachable than the original one (example, the Code Jam 2008's "Fly swatter"). I'll close this issue once the new guide is up officially.
"Fly Swatter" did exactly what it was supposed to. It challenged you. Heck, it's a problem you still remember. Sometimes you have to tackle 'the hard stuff' to get good at tackling 'the hard stuff'.
I'm (slowly) working my way through the Python guide right now, actually.
@jmccarty10 Thanks for letting me know. Knowing who's using what helps me prioritize what to update first. I won't forget Python ;)
I'm also slowly working my way through the Python guide. Appreciate your work. There's plenty of stuff out there about Javascript but good Python resources seem to be harder to find. Thank you. Regina
On Tuesday 03/19/2019 at 08:29, P1xt wrote:
@jmccarty10 Thanks for letting me know. Knowing who's using what helps me prioritize what to update first. I won't forget Python ;) — You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub, or mute the thread.
Well just to throw my two cents in, I'm working through the Data Science guide if it needs updating too.
Piggybacking off this thread, I would like to add that the Safari Books links now require a subscription. Eg: Modern Java EE Design Patterns
You can read the first chapter but everything else is behind a paywall.
@p1xt
Why not use htdp book which the how to code course is based on? https://htdp.org/
Or Berkley lectures for SICP book? https://archive.org/details/ucberkeley-webcast-PL3E89002AA9B9879E?sort=titleSorter
https://mitpress.mit.edu/sites/default/files/sicp/full-text/book/book.html
@rna7 htdp book is a great idea.
I doubt I'll add Berkeley lectures though - they have quite a few good courses but are prone to taking them offline without really any notice.
@p1xt I meant the Brian Harvey's Berkley lectures for Stricture and Interpretation of Computer Programs (SICP). It is fully uploaded for 2015 version on the archive.org link in my previous comments. The course materials and lecture notes are fairly easy to find as well with a quick google search.
Regarding pay walled edX courses, I haven't experienced this yet, but have thought of taking a 'backup' of the videos and course materials.
For those that don't want to go down that route, the guy from How to Code series has a YouTube channel with older version of the same content. I'm not sure how far into the material he goes though.
I was just reading this thread, I am from india and here we have a MOOC provider which provides moocs and assignments(which have deadlines and are checked also) , it's powered by government so its free for everyone and anyone from any country can access it, it provides all courses in english language too. https://nptel.ac.in/
@P1xt Hi just came across your awesome guides and was seeking some advice. I have already completed How to Automate the boring stuff, MIT 6.00.1X and CS50, and I'm halfway through 6.00.2X. I'm currently most interested in the back end. But was wondering whether would it be beneficial to complete Python Guide then Move onto the CSBE java guide or start the CSBE guide straightaway. Also I Have completed the the first Course in Duke's Java series here and wanted to know if these courses are any sort of replacement for the how to code series considering what has happened on edx. The java course i took over half the questions were graded and the ungraded questions were still visible.
@shivendrarox I took a look through that site and it has an amazing bunch of resources. Unfortunately, many (most) I looked at just had video lectures, with no projects, quizzes, or problems to solve.
@masterseeker were I in your position right now, I'd take a look at the work in progress revamped guide I posted here: https://github.com/P1xt/p1xt-guides/issues/90#issuecomment-471812536
... and, do Tier 1 for now - ensuring all your Tier projects involve backend development with Python.
@p1xt nptel provides quizzes and assignments during a semester for duration ranging from 4 week to 12 weeks. After this time the course instructors close the assignments and quiz submission window. This is usually done near the semester end. Since this semester is finished in nearly all of india, so you will not be able to see the assignments portal, but here i have a sheet for next semesters schedule for all the courses in the platform, during which the assignments window will be available
@P1xt ok Thanks for the reply will do. Also in your math prep section on revamped guide you omitted Geometry is this not needed to prepare myself for calculus. Asking as I have nearly gone through the algebra 1 section and was about to start geometry
@masterseeker geometry is awesome and fantastic to know - however, trig/algebra are far more pertinent at that point
@masterseeker geometry is awesome and fantastic to know - however, trig/algebra are far more pertinent at that point
Closed with https://github.com/P1xt/p1xt-guides/commit/4376d0252966a4718d1f9e77eba880038ec597d2 which revises the entire curriculum to focus on core topics and specializations with a strong selection of resources not likely to be paywalled.
"Coursera is actually far worse about paywalls than edX. On their paywalled courses, there is no access to assessments at all (from day one) without paying."
It's exactly what Edx do now, and Coursera is now a far better option, because ALL Edx courses are now paywalled.
That's not quite true @PERCE-NEIGE - There are still some courses that are completely not paywalled on both platforms.
The Stanford Algorithms courses by Sedgewick on Coursera, and the Harvard CS50 courses on edX come immediately to mind.
It's so uncommon though, to find a non-paywalled course, on either platform that those courses I listed are really the exceptions that prove the rule.
Just started on How to Code: Simple Data and noticed edX implemented a new paywall system that blocks all graded assignments and limits access to course to around 21 days. Is there any plannings on creating alternatives to the courses on edX?