CS50 from Harvard - worth it?
I recently took the CS50 course from Harvard and do I recommend it?
Short answer - yes.
Here is the link to EDX.
Longer answer
If we start with why I took it in the first place. I am an experienced and mostly self taught programmer. Even if I did know many of the concepts of computer science from experience I have never taken a class of CS.
You could argue that you don’t need a CS degree and what not and I partially agree, but some aspects of CS is important to know especially if you want to become a better programmer at larger scale.
To get a understanding of low level languages like C has given me much better understanding of how high level languages like JavaScript and Python work under the hood. By having that understanding I can learn faster by referencing to low level languages and understand errors better.
Also learning about how RAM works and how languages like C manages it with pointers etc. is a great knowledge to have espesially with at scale systems. You also get an introduction to SQL and some database concepts that always is good.
So, now in more details about what you will learn if you take the course.
The entire course is divided in 11 week (this could change):
- Scratch
- C
- Arrays
- Algorithms
- Memory
- Data structures
- Python
- SQL
- HTML, CSS and JavaScript
- Flask
- Emoji (I did not take)
All weeks have a lecture video with David who is an amazing teacher. There are many visuals and examples with great explanation.
Also there are short videos for the week that I recommend looking at if you want more understanding of a specific subject.
Then there are Practice problems, a Lab and a Problem set for every week.
I recommend doing all problems sets, due to the knowledge you gain by implementing what you just have learned.
For me problem set 3 was the hardest, due to the amount of information and complexity behind voting systems.
After CS50
I focused primarily on Data structures and algorithms after taking CS50. Because that is also something I think is very important to understand if you want to become a better programming.
A different post of that is on the agenda