r/learnprogramming • u/Intelligent_Role_824 • 2d ago
Best course for learning programming fundamentals in depth? HtDP, SICP, Haskell MOOC or Java MOOC?
Hey everyone!
I’ve learned some basic Python and Dart, but never really went deep or built any significant projects.
I’m looking for a course or book that takes things slowly and focuses on truly understanding programming concepts rather than just teaching syntax.
A lot of beginner courses explain how to do something, but rarely go into the what and why behind it.
I’ve been considering:
How to Design Programs (HtDP)
Structure and Interpretation of Computer Programs (SICP)
University of Helsinki’s Haskell MOOC
University of Helsinki’s Java Programming MOOC
Which of these would you recommend for someone in my position? I’m also open to other suggestions.
2
u/prism_orbit 2d ago
go with HtDP. It teaches you how to think about solving a problem before you write aIt teaches you how to think about solving a problem before you write any code, which is the exact depth you are looking for and something syntax focused tutorials simply do not provide.
1
1
u/MarkoDahl54 2d ago
With the Haskell MOOC, a lot of people get tripped up by laziness leading to space leaks, if you don't force evaluation with something like seq or strict data structures, memory use can blow up on simple-looking code.
3
u/Over-Ad113 2d ago
Of those four, HtDP matches what you're asking for best, since it's built around a step by step design process and explains the why behind each step. SICP is great but dense, and it tends to work better after you've got some programming under your belt. The Java MOOC is the most practical of the group because the exercises are checked automatically and you get steady feedback, which helps if you've struggled to finish things before. Whichever you choose, do the exercises instead of just reading, and build one small project alongside it so the concepts have something to attach to.