r/learnprogramming • • 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.

11 Upvotes

6 comments sorted by

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.

1

u/MoodyPhosphorus8077 1d ago

htdp is probably the best fit for what you're describing, it forces you to think about data definitions and design recipes before writing any code. sicp is brilliant but can be a bit much if you haven't done much functional programming yet

the helsinki java mooc is great too but it's more about getting you writing real programs quickly than diving into the why behind everything

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

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.