Your Web News in One Place

Help Webnuz

Referal links:

Sign up for GreenGeeks web hosting
May 4, 2020 06:32 am GMT

Why I recommend Harvard's CS50x online course to every self-taught developer

CS50's Introduction to Computer Science is an 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

The languages used are C, Python, SQL, plus some others based on what you choose for the final project. There are a myriad of free CS courses available online, but this is the most enjoyable, engaging, and intellectually stimulating one I've found so far.

I wrote "self-taught developer" in the title because I figured that those with no formal CS education are less likely to have had a chance to sit down and learn about these topics in depth. But of course, I would recommend it to anyone who wants to do the same.

Here are three points that I love about this course, and two potential cons.

Pros

  1. Their philosophy
  2. The lectures are a joy to watch
  3. The assignments are creative

(Potential) Cons

  1. May not be useful for your day-to-day work
  2. You don't get to see staff-implemented solutions to assignments

Pros

1. Their philosophy

This course is geared towards people of all programming levels. They tell you in the first week:

what ultimately matters in this course is not so much where you end up relative to your classmates but where you end up relative to yourself when you began.

Just for reference, I have 1 year of professional experience, though none in C or Python. Some of the assignments were still very tough for me, and one week's worth of coursework would take me about 10 hours to complete, depending on the material (As a Ruby dev, the Python stuff was a lot more intuitive than C!).

The course does a great job of being beginner-friendly and challenging at the same time, because the lectures walk you through the content well but the assignments require you to really think and do more research. Also, often they give you a choice of two assignments, depending on whether you're "more comfortable" or "less comfortable".

2. The lectures are a joy to watch

In addition to being informative, Professor David Malan's lectures are well-paced, animated, and creative. Watch any of them, and you'll probably agree (available on Youtube too).

3. The assignments are creative

Rather than boring tasks like "iterate over this array in C", you get to implement programs like photo filters, spell checkers, voting systems, and Hogwarts student databases, using concepts that you learned along the way.

Another thing I like is their testing system called Check50, which gives you instant feedback when you submit your code. It's gratifying when you finally get all the tests to return a green smiley face :)

Example:
Alt Text

(Potential) Cons

1. May not be useful for your day-to-day work

For better or for worse, this is not a crash course. If you want to learn a specific topic quickly, like React for example, there are better tutorials online (complete digression, but I highly recommend Scrimba for learning front-end languages/frameworks including React).

That being said, I think learning these core concepts of computer science will be beneficial to any developer in some way.
For example, I'd been using Ruby hashes (dictionaries) for a long time, and I knew that finding a value from a hash by its key was much faster than finding a value from an array. But before I took this course, I didn't understand how hashes were implemented under the hood. Learning about hash tables and actually implementing one allowed me to also understand Ruby hashes better.

2. You don't get to see staff-implemented solutions to assignments

As I mentioned, when you submit an assignment online, your code gets tested via a system called Check50. You don't get to see the solution that the staff had in mind or do a side-by-side comparison with yours.

This wasn't always a problem and I understand their reasons, but there was one particular occasion when I wished I could see staff-implemented solutions: when I was writing SQL queries. My queries worked, and passed the Check50 tests, but there was no way to tell if they could've been optimized further. Seeing staff-implemented answers would've helped there.

If this course sounds interesting to you, I highly recommend that you check it out on edX. And if you do decide to take it, best of luck to you.

I'm also still enrolled, about to start the iOS track. Wish me luck!


Original Link: https://dev.to/risafj/why-i-recommend-harvard-s-cs50x-online-course-to-every-self-taught-developer-4a1m

Share this article:    Share on Facebook
View Full Article

Dev To

An online community for sharing and discovering great ideas, having debates, and making friends

More About this Source Visit Dev To