Having started programming in the early 2000s, I was used to having sparse resources for learning anything. Fast-forward 10 years, as I was in my 3rd year of engineering, I came across an excellent programming course by Stanford’s Mehran Sahami called Programming Methodology. Although I was already proficient in programming by then, but I still watched the videos and did the assignments because the instructor was so captivating.
This course takes someone who has never done any programming, and then turns them into productive programmers. By the 3rd programming assignment (Lecture 10), you’re creating a breakout game. That’s amazing progress of a class full of newcomers.
Years later, when I actually got a tour of Stanford from a friend who graduated from there, I asked him, “Have you heard of Mehran Sahami?” (well, he was the only Stanford professor that I knew about). He replied, “His classes are one of the most popular.” Which was to be expected given his amazing style and the way he could communicate programming concepts.
If you’re a newcomer who has learnt programming only through online blog posts and stuff, this course could help you unlock your ability. You probably are capable of creating much more complex programs than what these online tutorials make apparent.
Finally, don’t be put off by Java. This course is valid even if Java is not going to be your primary language in the future.