For me, they teach the fundamental (basic) concepts and then have you cycle through a bunch of programming languages week to week to reinforce they are simply the tool and they all have their own pros and cons. When I took it, they had javascript, c, python, php, java, snap, integrating APIs and libs... maybe more.
The course has 2 tracks which are graded the same: "regular" for those new to cs/programming and "hacker" which has a bit more of a challenge to keep it interesting, and you just do whatever one you want to do that week.
Each assignment has additional optional material explaining and reinforcing the concept so if you are a little opaque in an area you can go and study that a bit more before returning to the assignment. Ultimately, there is a walkthrough for each week that gives you about 95%+ of the answer in case you get really stuck. If you understood the concept well enough from the lecture or your own background, you can just blast right through the assignment, or put your own spin on it.
Supposedly this course is responsible for hundreds (if not thousands) of people changing their planned field of study to be more technical due to the huge accessibility of the material to what they call "less comfortable" students.
They also teach you a few adjacent things that are relevant and probably wouldn't be covered by most modern programming courses.
They teach you how to use desktop VMs for your IDE.
They teach you how to use a basic IDE.
They teach you the basics of Linux command line.
They teach you what memory leaks are and how to find them.
You're graded on style, there is an automated style checker.
For me, I got a kick out of all the sorting algorithms and how it applied to big O notation and software complexity. Previously I understood roughly how it worked but the course went deep enough where I tried implementing some of them on my own "for fun" to see if I could do it.
For my final project, I built a native android app, and although they didn't teach anything specifically about mobile app design, I had enough confidence at that point to knock it out.
On top of all those items, production value of the course seemed huge, very well done.
The course has 2 tracks which are graded the same: "regular" for those new to cs/programming and "hacker" which has a bit more of a challenge to keep it interesting, and you just do whatever one you want to do that week.
Each assignment has additional optional material explaining and reinforcing the concept so if you are a little opaque in an area you can go and study that a bit more before returning to the assignment. Ultimately, there is a walkthrough for each week that gives you about 95%+ of the answer in case you get really stuck. If you understood the concept well enough from the lecture or your own background, you can just blast right through the assignment, or put your own spin on it.
Supposedly this course is responsible for hundreds (if not thousands) of people changing their planned field of study to be more technical due to the huge accessibility of the material to what they call "less comfortable" students.
They also teach you a few adjacent things that are relevant and probably wouldn't be covered by most modern programming courses. They teach you how to use desktop VMs for your IDE. They teach you how to use a basic IDE. They teach you the basics of Linux command line. They teach you what memory leaks are and how to find them. You're graded on style, there is an automated style checker.
For me, I got a kick out of all the sorting algorithms and how it applied to big O notation and software complexity. Previously I understood roughly how it worked but the course went deep enough where I tried implementing some of them on my own "for fun" to see if I could do it.
For my final project, I built a native android app, and although they didn't teach anything specifically about mobile app design, I had enough confidence at that point to knock it out.
On top of all those items, production value of the course seemed huge, very well done.