CS50’s Introduction to Computer Science is a free online course based on one of the most popular on-campus courses at Harvard University. In this course, you can learn about core computer science concepts, such as:
- Algorithms – binary search, bubble sort, merge sort etc.
- Data structures – linked lists, hash tables, etc.
- Memory – stack and heap
- Web and Mobile application developments
- Data Science
The languages covered are C, Python, SQL, and possibly more ones depending on the ultimate track you select. There are several free CS classes accessible online, but this is by far the most interesting and fun one I’ve come across.
As I assumed that those without a formal CS education are less likely to have had the opportunity to be exposed to these issues in-depth, I included “self-taught developer” in the title. Of course, I’d suggest it to anyone with an interest in these areas.
Here are four points that I love about this course, and two potential cons.
Pros
1. Lecturer’s amazing teaching approach and philosophy
This course is intended for programmers of all skill levels. In the first week, they tell you that what ultimately counts in this course is not where you finish up compared to your peers, but where you end up relative to yourself when you started.
Professor David J. Malan
For your information, I have four years of professional experience in the area. I remember when i was new on the CS50 platforms Some of the assignments remained difficult for me, and a week’s worth of coursework would take me approximately 10 hours to complete, depending on the topic (being a Ruby developer, the Python stuff was far more intuitive than C!).
2. Watching the lectures is enjoyable.
Professor David Malan’s lectures are not only educational, but also well-paced, energetic, and imaginative. You’ll probably agree if you watch any of them (available on YouTube too).
3. Unique Tasks and projects.
Instead of boring and repetitive tasks like “iterate over this array in C,” you get to use principles you acquired along the way to develop applications like photo filters, spell checks, voting systems, and Hogwarts student databases. Another feature I enjoy is their Check50 testing mechanism, which provides fast feedback when you submit your code. It’s satisfying when all of the tests return a green smiley face.
CS50-Check50 testing
4. Well designed IDE with Vs Code integration
The CS50 IDE is a web-based “integrated development environment” that allows you to program “in the cloud” without the need to install any software locally. Indeed, the CS50 IDE gives you your own “workspace” (i.e., storage space) to save your own files and folders (aka directories).
Cons
1. Actually not applicable to your day-to-day work
This is not a crash course, for better or worse. There are better tutorials online if you want to learn a certain topic rapidly, such as React (total digression, but I strongly suggest Scrimba for learning front-end languages/frameworks, including React).
That being said, I believe that mastering these fundamental computer science ideas will be valuable to any developer in some manner.
2. You don’t get to review staff-implemented assignment solutions.
As previously stated, when you submit an assignment online, your code is evaluated using a mechanism known as Check50. You don’t get to see the answer that the staff had in mind or compare it to yours.
This wasn’t usually a problem, and I understand why, but there was one instance where I wished I could see staff-implemented solutions: while I was creating SQL queries. My queries worked and passed the Check50 tests, but there was no means of knowing if they might have been improved further. Seeing staff-implemented solutions would have helped.
Now for my thoughts on whether or not the CS50 is right for you. As I already indicated, I think CS50 is amazing. It teaches you a lot of key CS topics and gives you the confidence to construct cool projects. It is demanding and fast-paced, but I believe it will pay off if you persevere. It’s challenging for me to explain to bootcamp students why it’s vital to start in C and master basic CS principles. Maybe I simply want it to be valued because I enjoyed it when I took it. The true reason is that neither of us is far enough along to determine what is the best way.
__________________
by: Eng. Abdullahi Mohamed Haji, Director, MTII Institute
Amazing Blog! Thanks Abdullahi.