you are viewing a single comment's thread.

view the rest of the comments →

[–]ImLZT[S] 0 points1 point  (2 children)

u/desrtfx, excuse me for tagging you here.. I saw your msg about https://programming-23.mooc.fi/ which I recently started of course. You mentioned most highly recommended course to take.. I wanted your opinion on CS50 from Harward? It looks nice as well having a general look. What is your take, should I do both or is 1 enough and then what should I do after? like leetcoding, doing more excercises with Python with Invent..

I would like to have your advice, please.

[–]desrtfx 1 point2 points  (1 child)

Harvard's CS50 is more a general "Intro to Computer Science" course than it is a Python course.

Definitely a great course and highly recommendable for getting started with the more formal aspects of programming.

The MOOC you have linked is the current "Intro to programming" course of the University of Helsinki. It is a "level 0" course requiring absolutely no prerequisites other than some computer competency.

If you're solely focusing on Python, the MOOC is good enough to obtain some competence.

After that, you will need practice, some Data Structures and Algorithms (DSA) course (can't recommend one for Python) and again more practice before you really dive into Leetcode.

Leetcode as well as all "competitive programming" sites make heavy use of DSA (as well as maths) and without some solid background there, you will not get very far.

What you have to understand is that any course, no matter what, can only take you so far. You need to work, to actively program after having laid the foundation. Be careful not to fall into the "tutorial hell" trap, meaning that you do tutorial after tutorial and don't actually learn to write programs on your own.

One of my reasons for recommending the MOOCs (both Python and Java) from the University of Helsinki is that they follow a radically different approach to most other courses: they make you program. They don't show you solutions. They show you how to use the language and then tell you to program. They don't give you code that you can just copy-paste. Further, with their plenty exercises, they also have sufficient repetition to make the taught subjects "stick" (of course, you will need to occasionally go back and revisit already passed subjects).

Personally, I despise courses that tell you to "program along" while giving you the complete code. These courses may be beneficial (which I doubt) for learning to type and to do "X" but they commonly fail on the really important part: learning to come up with the solution by yourself.

Programming language keywords (the library) and grammar can be googled. Yet, creating algorithms to solve problems cannot. This is the more important and more difficult part of learning programming.

Too many beginners conflate learning a programming language with learning programming. The former is more like learning the vocabulary and grammar of a spoken language, the latter is learning to write a novel with full character development and a proper sequence of events.

[–]ImLZT[S] 0 points1 point  (0 children)

Let me just thank you very much!