Hacker News new | ask | show | jobs
by atdt 5433 days ago
There is a rather breathless presumption that underlies many of the comments to this article, and it is this: that the only way to learn anything thoroughly is to learn it from the inside out: to start from first principles and gradually pile up complexity and abstraction. There is something very compelling about this approach, probably because it purports to model the mind after nature. Just like complex phenomena in nature is built up of smaller, fundamental particles, so too understanding will be built up from atomic units. But stop and think for a moment: how many things in life are really learned that way? Isn't it more often the case that you hack around and only later come to understand what it was that you were doing? I think the fact that it is so intuitively compelling disguises the fact that this conception of learning is really quite bizarre and implausible.
2 comments

We learn mathematics from the most basic principles and upwards. I don't think there is a way that you could start with higher level concepts and figure out the theory later. It would be incredibly confusing.

Programming is quite different of course. It's not terribly difficult to write a simple program to keep a database of your puzzle collection or build a website to share your puppy photos. One could start from such humble beginnings and build ever-more clever programs and have a steady career doing so. Computers are just machines after all.

But I don't think that's what computer science is really about. IMO it's the study of the nature of computation. Given it's theoretical nature it only makes sense to me that one would start with small foundational concepts and work their way up the ladder as one does in mathematics.

"We learn mathematics from the most basic principles and upwards."

Interesting point, although I'm not sure it's 100% true.

For instance, we learn mathematical skills that are readily applicable to life at an early age. Solving a word problem might be the mathematical equivalent of writing a working program that actually does something. And we memorize "formulas", like the simple one to multiply large numbers, at an early age, but don't learn why it works for quite a while.

Induction and abstract algebras might be considered more fundamental, but are introduced much later.

Agreed.

I also think that bottom-up learning might lead to a false sense of completeness, a sort of "now I know everything". But in reality, there is always some other perspective that will really improve understanding.

That being said, I think learning fundamentals is very valuable, of course.