DEV Community

Cover image for Don't Know Where To Start Programming? You Might Want To With CS50!

Posted on

Don't Know Where To Start Programming? You Might Want To With CS50!

Assuming that you’ve read the title itself, we all know why you’re here (or not).

Maybe you’re a total beginner who knows nothing about System.out.println(), or a veteran who is already working 10 years in the field, or just a passerby who just got curious.

Whoever you may be, if you want to learn something new today, then let me introduce you to CS50!

What is CS50?

CS50, or Computer Science 50 is an introductory course on computer science being taught on Harvard (and Yale University as well). It is recorded, and also available online, through edX and its website. And you know what? IT’S FREE.

There are tons of courses with CS50: here’s a list:



Is there a deadline? I wouldn’t call it a deadline (I’ll tell you why later), but you should able to finish it before the year changes. The current course year’s deadline (2020) is on December 31, 2020 at 11:59 pm (literally a minute away before fireworks start showing up).

Who Is This For?

  • total beginners who wants to learn programming
  • veterans who want to challenge themselves
  • programmers who want to solidify their knowledge about computer science concepts
  • for those who can’t afford to study Uni but want to learn CS
  • for those who doesnt want to go to Uni yet wants to learn CS in the comfort of your own home
  • SPECIALLY for those who says computer science is easy insert evil laugh

Okay. Interested. So, How Does It Go?

If you tried to visit the links I’ve mentioned above, I’m sure you are aware how to begin. But if you are still confused, let me give you certain points about how the course goes:

  • You will have a syllabus, or a set of lessons to study and finish. As of this year’s edition of the course (2020), you have a total of 9 lessons (in the 2019, the year I started, there were like… 11?), from Week 0 to 8.
  • In each lesson (example, Week 0), you will have a lecture, a problem set (shortened to pset) and probably sometime, shorts (extra videos to help you understand the lecture).

  • A lecture is the main video that you will be watching. It will be the whole topic of the lesson itself. It is usually an hour long (or more).

  • A problem set (or pset) is a set of exercises for you to answer after watching the lecture. You will need to submit this before the said deadline of the course (which is a day before new year) but don’t worry if you didn’t finish the psets this year, you will be able to continue the course, however there might be changes with the problem sets with the new course and they might suggest you start answering the psets and watching the lecture with the course’s current year, to be able to let you transition.

  • A short is a… short video about certain things you learned from the main lecture. Usually, it will be video(s) directed to a specific topic. I recommend watching it right after watching the lecture.

  • After finishing the Week 8, you would have to pass a Final Project where you can create something with the things you’ve learned from the lectures and psets. And when you finish this, you could finally say that you’ve finished the course and will get a certificate! For a verified one, you can get it if you the course in edX, however, I could guarantee you that it is optional for you to get a verified one.

I’m sure finishing the course altogether is enough, trust me.


Will it be hard?

  • Yes (for me). No sugarcoating ‘cause even as a student CURRENTLY studying CS, I’m having a hard time with the psets! But it varies!

Will it be worth it?

  • SUPER! I haven’t finished the course yet (I’m on Week 3 of the 2020 ver.) but when I write code, it’s super different from what I always write (logic-wise) that even my professor noticed (true story).

What if I don’t want to take it?

  • It’s okay! It’s not mandatory, but I really recommend as a programmer to take it.

Should I get a verified certificate when I do enroll in edX?

  • It’s up to you. I don’t really want to though. I still believe you’ll out-worth a certificate if you have a portfolio with your projects from all the things you’ve learned.

Do I Need To Know Anything Before Starting?

  • It depends. You might have a rough start if you don't know Github but I'll assure you that the course provides a detailed instructions on what you should do so I think there would be no problems at all.

What Do I Do After I Finish It?

Okay, so you are done and finally learned a TON about computer science. What should you do? There will be a lot but let’s assume there will be 3 options:

1.Go on and choose your programming niche and learn about that (game, software, web…)
2.Experiment with what you’ve learned.
3.Go for another course (Maybe another CS50 course?).

But whatever it maybe, I just hope after all that you learned a lot as a programmer.

My personal experience

I haven’t finished the course, yet. I started last year but I haven’t got to finish it (it was around October, I believe) but now I just got back from it and planning to finish this while I have the time. I am currently in Week 3, and probably to Week 4 later.

What I’ve been learning so far from it? How everything is an abstraction of something, how memory works, what stack overflow is, what a heap is… and probably more.

Honestly, I'm not really trying to promote this as something so magical that if you finish the course, you'll be great. Of course not. Nobody is going to be great in a matter of a single course. But this greatly helped me with what I needed to learn, that even my own CS course couldn't teach me for the last semester (and even this 2nd semester??).

It's you who needs to decide. I simply gave you a chance (or perhaps, an opportunity) to learn.

However, if you said yes, then what you waitin’ for? Let’s go program!

me trying to program without having a mental breakdown

Top comments (2)

codingknite profile image
Joel P. Mugalu

Am reading this now and i just finished :) Did you ever finish it?

mars profile image

I'm already on my final project ;) After I finish it, hopefully I could post another CS50-related article to help people out with solving psets!