Hacker News new | past | comments | ask | show | jobs | submit login

What about the approach of Middle Out: where you neither build anything beyond copy and pasting code nor learn why doing comparisons on floats is a deal with the devil?

Joking aside, it does seem that a mix of the two is nice. Bottom Up is boring when you just want to get things done and Top Down is magic until you try to leave the playground. The problem arises that each student will have different tolerances of each of those approaches.

Edit: Maybe an interactive book, or app, that lets you see a problem from both angles and let's you pick the problem you want to solve. Here is a problem: "Given this graph data summarize and display it". Bottom Up you learn DFS and Top Down you learn d3. With if you pick one or the other your given a library to fill in the part you don't like. You could always return and do the other part latter as well.




Middle out is how I learned to program actually.

I started with basic lessons on Codecademy to learn the basic concepts and jumped between reading books and researching concepts and building small projects. I feel like I got the best of both worlds. When I hit a concept I didn't understand or needed clarity on, I went and researched the underlying fundamentals.

I've seen developers that have gone top down and they struggle with basic programming logic because they don't have the fundamental knowledge. On the flip side, I can't imagine studying CS and learning all the CS fundamentals without going ahead and building stuff the whole time.


I'd say a middle out is probably more common. Instead of going for Rails or some other framework, or figuring out what's happening in memory and what the compiler is doing, start with writing code with a high level language. You move on to learning frameworks and CS fundamentals. So you're much closer to the top than the bottom, but you're still starting with some pretty basic stuff.

Anyway, learning without building stuff is very un-fun. I can't imagine trying to learn programming by just reading books for months and months without access to a computer.


I usually pick the most difficult part first, and try the bottom up approach. Assuming it works then I go for the top down approach for to fill in the other details.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: