It’s been a while since I wrote about my progress in learning programming. I’ve been unable to write about it here amidst graduation and NYSC. But I’ve decided to write my progress here as often as I can.

Previously, I wrote about my decision to start programming, the language, the tools I use in learning and FreeCodeCamp. A lot has changed since then. While still on course, I’ve temporarily paused FreeCodeCamp course. While FreeCodeCamp is an amazing online resource for learning web development, I wasn’t feeling challenged with curriculum. Though some projects in FCC were challenging a bit. I didn’t feel the fire burning, there was little eagerness to continue with the curriculum. I figured I needed to learn in a more challenging way. I needed something to ignite the fire of code which I couldn’t find till I met CS50, I knew I had to pause FCC.

About CS50

CS50 (aka CS50x) is a Harvard University computer programming course offered through edX.

According to edX:

This is CS50x, Harvard University’s introduction to the intellectual enterprises of computer science and the art of programming for majors and non-majors alike, with or without prior programming experience. An entry-level course taught by David J. Malan, CS50x teaches students how to think algorithmically and solve problems efficiently. Topics include abstraction, algorithms, data structures, encapsulation, resource management, security, software engineering, and web development. Languages include C, Python, SQL, and JavaScript plus CSS and HTML. Problem sets inspired by real-world domains of biology, cryptography, finance, forensics, and gaming. As of Fall 2016, the on-campus version of CS50x, CS50, was Harvard’s largest course.

Why?

Broader scope

As I do not have a computer science background, I believe taking CS50 is a step in the right direction. While CS50 may not cover for a computer science degree, it’s scope encompasses a huge aspect of programming. The course is focused on C and it also covers the basics of computer science and teaches interesting topics such as algorithms, web development and Artificial Intelligence.

Problem Sets

Before CS50, I’ve always procrastinated my coding night and sessions. At the end of each week in CS50 is a problem set. Problem sets are challenging exercises that each student has to solve. These challenges are divided into Less Comfortable (less comfortable with computers) and More Comfortable (more comfortable with computers). Unlike the less comfortable, the more comfortable exercises are a bit more challenging and mostly has to do with real life problems.

Github & Code Community

With the large number of students from around the world taking the course, it’s impossible not to engage in discussion on any of the code community like StackExchange, Gitter, Reddit etc. I believe this is a great avenue to have my work criticised, and I’ve start learning to collaborate with Github by publishing my code there and actively using it. Check out the repo for my CS50 work.

Conclusion

CS50 is an interesting course with great lecture by Professor David Malan (@davidjmalan). CS50 for this year is ends in December. As I’m already a week into the course, I hope to finish the course within the time frame. I recommend that you take the course too.

Leave a comment if you have any questions, or reach out to me by eMail or Twitter.

Up next

I will be writing here about how I’m getting along with the CS50 and how I try to remain productive daily. I’ll also write about my first week, the problem set and my experiences.