I've taken CS50 a while ago and I think it is a phenomenal introduction to CS/programming.<p>Starting off with a toy language, Scratch, to six weeks of C, followed by two full web projects (Python/JS). The instructors find a wonderful balance between theoretical concepts (compilers, binary, Big-O) and practical applications in different domains: a bit of crypto, a project about finance, usage of APIs, ...<p>The course is wonderful in showing what is out there and contrasts with beginner courses that hit people with a year of data structures & algorithms (e.g. MITx's 6.001x - also good but less "real world").<p>Recommending the course is my go to answer for the question "how can I learn to program?"
CS50 was, and this is not hyperbole, life-changing for me. I took it during my last quarter of grad school, and a year and a half later left my old career to become a software developer.<p>As soon as I finished CS50, I took another MOOC. That second MOOC was so boring that, had it been my introduction to programming, I am sure I would have dismissed programming as something that I have no interest in.<p>I lucked out and took what is likely the best intro to computer programming out there.
I'm five years out of graduating university with a B.S. in Sociology. At some point in that time I realized my love for CS and design-thinking. I decided to try and make a career change. Last month I completed CS50 and should be receiving my certificate soon. I'm also now looking at degree/cert programs to continue my education.<p>The amount that one can learn from this course is incredible and it really sets you up to continue learning. I also just started the intro to game development today.
I wish I had originally started learning how to program from cs50 instead of FreeCodeCamp. I feel I would be much further than I am currently. Really, thank you for the links. I'm excited to check out what the other courses have to offer.
> I took a quick look at one the courses, and it seems the lectures are not taught by David Malan, but people in his team.<p>I think this is important to keep in mind. I watched all of CS50 and then moved on to the React Native course and the quality of the lectures was not the same. They were still informative but for anyone ready to dive into these know the experience will not be the same.