"The result by the term's end, we hope, is that students understand how things work from the bottom up and better yet, explain as much" - David J. Malan, the computer science professor who teaches CS50.
This is CS50!
I enrolled in the Harvard university's introduction to the intellectual enterprises of computer science and the art of programming (CS50) in October of 2022. Before that time, I was already adept in web technologies like HTML, CSS, JavaScript, and Angular. I kept having this reoccurring thought; I didn't want to learn just how to write code, I wanted to thoroughly understand what was going on under the hood and CS50 did that for me.
It started with Scratch which is a high-level block-based visual programming language, then moved to C, Python, SQL, HTML, CSS, and JavaScript. Hold up, no you're not learning all this at the same time. The different languages and technologies were introduced at strategic points in the course.
CS50 stood out to me because it didn't just teach what computers were and how to code after. It took away a level of abstraction by diving deep into topics like computer memory, algorithms, data structures, and a lot of other fun topics. It also taught me how to think like a programmer. All this was taught at a beginner-friendly level. It was more like understanding the computer system.
The best part for me was the in-class demonstrations which gave me a crisp mental picture of all that was taught. Professor David J. Malan did a great job of delivering the content of each lecture in full detail each week.
Now let's talk about the Labs and the problem sets. I had issues with this because as much as I had so much fun solving them and was super excited whenever my code worked, I found them quite challenging too. It was worth it though.
Will CS50 teach you what's going on under the hood? Definitely.
Can someone with zero programming experience take this course? Absolutely.
Here's a little advice though, you might find the labs and problem sets difficult to tackle and that's okay. Do your best to solve them on your own. But if you can't crack it alone, there are resources on Google and YouTube that will help.
"What matters ultimately is not where you end up relative to anybody, but where you end up relative to yourself when you began" - David J. Malan, the computer science professor who teaches Harvard's CS50.
This was CS50!