Hacker News new | ask | show | jobs
by Kaveren 2013 days ago
> That attitude is actually how I program—with scripted languages I write code and see what happens, if it didn’t work I write it again.

This is an incredibly harmful attitude towards learning, but it feels nice because it's a lot less effort than actually trying to read or listen to something to learn. It's just laziness.

Learning C++ this way is how someone would end up with a buffer overflow every 30 lines of code they write. It's the reason some self-taught developers can't give you the fuzziest definition of the difference between O(n) and O(n^2).

The closest approximation of this is how kids learn to speak, but this is incredibly inefficient, and they receive many years of formal education anyway.

1 comments

It isn't only guesswork -- there is a lot of reading and researching involved too. I figured that was obvious but perhaps it was not. The point is that it is learning by doing rather than rote memorization and recall. It is easier for me to do something, see the result, and figure out what went wrong if it didn't work. It allows me to understand the function behind something, versus just being told "this is how to do something and you should always do it this way" without an explanation as to why.

What works for you isn't what works for everybody. And I'm absolutely not denying the importance of learning theory.

The better alternative is just to learn thoroughly and apply knowledge as much as you can. You can explore without guesswork.
I have to chorus GP. Learning by doing before I have a great understanding or perhaps sometimes far earlier (of course talking about studies on my own time) makes me think through the how and why more thoroughly partly because there is a tanglible goal of getting the piece of code to function as intended versus a more nebulous guess at having understood or not.
I honestly think we’re talking about doing the same thing.