Hacker News new | ask | show | jobs
by jeffdavis 4936 days ago
"Has anyone learned that way and found it useful? Do you learn a few things in a familiar context while cargo-culting the rest and then fill in the gaps later? Does it just click all of a sudden?"

That's how I learned to write my first useful programs.

Maybe there is a better way, but that is the direct answer to your direct question.

Except I wouldn't say that it clicks "all of a sudden". It's a long process of learning. One day something doesn't work, and you think it should, and you just keep narrowing it down and eventually come to some deeper realization. It's the top-down approach to learning.

I've been trying to learn haskell bottom-up for a while, and I've done a few things and have some understanding of the theory. But I don't have anything to show for it. Every time I learn some new theoretical thing, I think "wow, what could I program with this?", at which point I've already lost. Because once I start thinking about the language rather than the utility, I'm not likely to create anything amazing.

I think that I'd be more successful if the next idea I had I just coded up in haskell (even though I don't really know it) and pushed through to a solution by any means necessary. But for me, learning a new language is secondary to realizing my visions; and my visions rarely start from an empty file any more.

That being said, I think a mix of bottom-up and top-down is probably best. There are some fundamental things that you need to learn deeply at some point to be good. Not sure the exact stages that these things should be learned, though.

1 comments

Interesting, I did bottom up first and then when I started to feel that same itch to actually build something useful things were more top down.

I agree that a mix of bottom-up and top-down is probably best, I was curious about other paths because I found that starting with bottom-up worked really well for me and wondered if that generalized to other people or was just well suited to my learning style. My experience makes me think that a solid foundation is essential but it's entirely likely that's just "that's the way i learned" bias.