News for hackers. Stuff that matters.
Re:Education of a Programmer by adrianratnapala on Sunday April 02, 2017 @11:57PM (#14020504)
I'm pretty sure this is not going to help "ordinary" people. Unless they already think like you and me.

When I was a kid, I wanted to know how all the black boxes worked -- one of my greatest days was when my father explained the internal combustion engine well enough that cars no longer seemed like magic.

Later I noticed that many people -- especially when talking about electronics -- would ask "How does it work?", when they actually meant "How do you use it?" I thought this was just a quirk of the Australian dialect, but as I gained more experience with people, I realised it was really an aspect of human thought.

To most people, knowing "how it works" is no more than being familiar enough with the magic spells that you can use them with confidence.

Re:Education of a Programmer by jomkr on Monday April 03, 2017 @04:51AM (#14021425)
Isn't "the magic spells that you can use", exactly how we (programmers) use interfaces.

I trust that the interface, be it the C++ standard, or boost::whatever, is well enough tested that I don't need to know "how it works".

It would be nice to know how everything works but there is only finite time in the working day.

Re:Education of a Programmer by Berobero on Monday April 03, 2017 @11:37AM (#14023577)
Is it truly possible to have a solid understanding of the interface and its use, though, without having a reasonable insight into, at least, the likely implementation of something?
Re:Education of a Programmer by aynsof on Monday April 03, 2017 @05:20PM (#14027252)
I'm sure this isn't what you meant, but how about something like movement? I've met doctors who know anatomy like the (ahem) back of their hand, but they couldn't perform coordinated physical tasks to save their life.
Re:Education of a Programmer by sullyj3 on Monday April 03, 2017 @09:15PM (#14028754)
Yes, that's the whole point of abstraction, to reduce cognitive load by ignoring irrelevant implementation details.
Re:Education of a Programmer by swiley on Monday April 03, 2017 @06:43AM (#14021816)
This is why some people don't like languages with big runtimes/standard libraries like C++.
Re:Education of a Programmer by eru on Monday April 03, 2017 @06:48AM (#14021839)
I don't see how that relates?

You can understand the source of your libraries just fine, but still be grateful that they are usually hidden behind interfaces that let the compiler help you spot silly mistakes.

(OK, less so in C++, more so in eg Haskell.)

Re:Education of a Programmer by alsetmusic on Monday April 03, 2017 @02:43AM (#14021019)
> To most people, knowing "how it works" is no more than being familiar enough with the magic spells that you can use them with confidence.

It's necessary to see beyond chosen words. I might ask how a computer program works and it could mean "how do you use it," or "how does it function." The other party has to infer my meaning.

I don't think you can take a phrase that is common in your life and apply it to everyone else. Words / phrase have different meanings in different contexts for different people.

Re:Education of a Programmer by braveo on Monday April 03, 2017 @12:13AM (#14020562)
It's a matter of time and importance.

Sure, I'd love to live forever so I could take the time to fully understand everything, but unfortunately I have to optimize my time, and learning the ins and outs of an engine just isn't that important in my day to day life.

Re:Education of a Programmer by adrianratnapala on Monday April 03, 2017 @01:36AM (#14020791)
A little defensive no?

While I tried to convey my own excitements and my dislikes, I was careful in my comment not to say that everyone most like the same things.

What I will say though is that there is a difference between known how a thing works and how to use it. Very often you only need the latter. But thinking that it equals the former is just an error.

Re:Education of a Programmer by braveo on Monday April 03, 2017 @02:34PM (#14025669)
My post wasn't defensive, it was pointing out that treating things like "magic boxes" is a purely rational decision, not an inherent character flaw in people.

But then you find a way to try and turn even that into a flaw of some sort, and continue with your narrative that it's somehow a problem that people don't take the time to fully understand everything they use.

Re:Education of a Programmer by contingencies on Monday April 03, 2017 @06:02PM (#14027630)
This week I've started reading The Design of Everyday Things after HN recommendations, and the author makes a distinction between objects themselves, and their 'conceptual models', which may differ for the designer and the user. A single user may even have multiple, conflicting conceptual models of a device and its use. These are sourced from what he calls the 'system image', or overall set of information available about the device including past experience, appearance, sales literature, manuals, websites, advertising, etc. Needless to say, people can operate successfully on an incorrect mental model as long as it serves its purpose.

PS. Australian here. Yes, people do speak like that, but I agree with your conclusion.

Re:Education of a Programmer by d0mine on Saturday April 08, 2017 @04:35PM (#14068866)
A model that you need to use a device can be much simpler than a model that you need to fix the device if it is broken which in turn may be simpler than a model required to build the device from scratch, etc.

I saw "how does it work" used as "how to use it" on American TV https://www.youtube.com/watch?v=MEFXhopARyw

Re:Education of a Programmer by adrianN on Monday April 03, 2017 @03:35AM (#14021170)
> To most people, knowing "how it works" is no more than being familiar enough with the magic spells that you can use them with confidence.

I like the (literal) treatment of this topic in Harry Potter and the Method of Rationality.

Re:Education of a Programmer by eriknstr on Monday April 03, 2017 @10:51AM (#14023132)
>Harry Potter and the Method of Rationality

Never heard of it before. For anyone else interested; http://www.hpmor.com/

Re:Education of a Programmer by adrianratnapala on Monday April 03, 2017 @04:40AM (#14021393)
Yes, and Hermoine is in no way stupid. Personally I find her more intigent the Harry (even in HPMoR). But that's probably because I finder her to be more rational than Elizer Yudkowsky.
Re:Education of a Programmer by loup-vaillant on Monday April 03, 2017 @02:50PM (#14025860)
Which version of Hermione are your referring to? Eliezer did write one of them after all…
Re:Education of a Programmer by adrianratnapala on Monday April 03, 2017 @04:17PM (#14026736)
Eliezer's one.
Re:Education of a Programmer by bittercynic on Monday April 03, 2017 @12:29AM (#14020603)
One of my greatest days also, but my take was that the explanation was good all along and I was finally able to understand.
Re:Education of a Programmer by adrianratnapala on Monday April 03, 2017 @01:21AM (#14020756)
Sorry, I didn't mean to dis my dad there. He explained it as soon as he thought I would be able to understand it.

What I meant by "well enough" is that the explanation that he gave -- or even the one that I now have in my head -- is nowhere near the truth. Engines are complicated, and I will never truly understand them. But at least they can be demystified.