Live data from Hacker News

A Complete Understanding is No Longer Possible

prog21.dadgum.com

21–30 of 80 posts

Re: A Complete Understanding is No Longer Possible

#21
post #20
post #14

Yes, the author's observation is true, but I don't think it's particularly interesting for two reasons: 1) This isn't anything new. A complete understanding is not only no longer possible, it was never possible. What level of detail counts as a "complete" understanding? Even when computers were much simpler, you probably wouldn't have a thorough understanding of every layer of abstraction, from software to hardware t…

…never possible… I disagree. Consider a computer like the Apple ][. I didn't 'completely understand' it at the time, but with what I've learned since (including a CS degree), it is now very plausible to me that it could be exhaustively understood, down to every wire and line of OS/firmware code. I can see the boundaries of the areas I don't know clearly, and know that a bounded amount of extra effort could get me dow…

What I think was possible was understanding down to the level that you could reliably know what caused the Apple II to act in any given way.

Was it possible all the way down to the transistor level? Maybe not, but it didn't have to be in order to understand the behavior.

It was certainly possible down through the IC level, and there were any number of people who achieved that sort of mastery.

I don't believe that's still possible with any consumer general purpose computer. I think there are people out there with that level of understanding of specialized devices, probably up to and including things like Xbox and PS3. I don't know if there are people that understand an airbook to that level, or a desktop PC, or their webserver. Maybe, but it seems unlikely.

Re: A Complete Understanding is No Longer Possible

#22
post #3

That's not true. You can have complete understanding. You actually should have, if you want to be recognized in the industry. You need more than just learning, you need to live it. Pick an Operating System, and an environment. I'm using Windows, for more than 10 years now. And that's why I'm not moving to OS X any time soon. I'm incredibly good with Windows, and it can handle all of my daily business work, and softwa…

> You can have complete understanding.

No you can't. Nobody can. Literally. So you're using Windows right now. I suppose you know that a complete windows desktop takes more than 200 millions lines of code ? That's about 10,000 books.

If you really want _complete_ understanding of your system, you really have to read and understand 10,000 technical books. Let's say you learn really really fast, and you can read 1 book each week. That's about 50 books per year. Reading everything therefore would takes you 200 years. I suggest you sign up for cryonics, or donate to an anti-ageing research program.

You may think counting actual lines of code is not fair, but what else? Systems have bugs and limitations that you need to be aware of, if you want to really comprehend them. Also, I have not counted the design of the hardware.

Nevertheless, I think there is hope: http://vpri.org/html/work/ifnct.htm

Re: A Complete Understanding is No Longer Possible

#23

as usual, it's already written in the bible: http://www.joelonsoftware.com/articles/LordPalmerston.html "There was a time when if you read one book by Peter Norton, you literally knew everything there was to know about programming the IBM-PC"

I'll take a guess and say that that time was well in the past by 1990. I remember the confusion over XMS / EMS and how to write programs that could use extended / expanded memory.

It all depends on how far into the system you want to look. How many users of the FAT file system actually learnt the innards of NTFS? How many programmers specialized on Borland IDEs rather than WatCom? There's not really that much more to learn these days if you want to just write software; understanding the entire system is a matter of jumping down the rabbit hole. If I understand how electron tunneling prevents processor architecture going much beyond the current state of the art, do I have a greater understanding of computers than someone who knows the OpenGL API backwards?

Re: A Complete Understanding is No Longer Possible

#24
A 'complete' understanding including every single tiny detail has never been possible in any complex subject ever and this isn't bad as you seem to think. Certain knowledge has more utility in your craft than other knowledge [0].

Also, and more importantly, some knowledge when held with other knowledge creates emergent understanding of other knowledge. You are able to intuit from core principles. The ability to understand is far more important than the ability to recall.

[0] http://en.wikipedia.org/wiki/Pareto_principle

Re: A Complete Understanding is No Longer Possible

#25
Article makes a good point. However, no one mentioned Google.

I think people are afraid to admit how often they Google search things.

I started teaching myself programming when I was 7. I am 34 now. There is plenty of stuff that I remember, but a lot more that I don't and I don't try to. And I find out about a new piece of software, service or whatever every day or every few days.

I am proud of the fact that I Google so much.

I think its actually more important and more useful to be able to Google things and quickly get the gist of a new thing (or look up some old syntax) and drill down into a solution than it is to know lots of stuff off the top of your head.

Mainly because there are so many tools, frameworks, programming languages coming out that if you don't Google first you will usually end up wasting a lot of time.

I think the main thing holding science and technology (including information technology of course) back right now is the limited ability to integrate knowledge and thought and its application. Google is the closest we have come to a solution to that problem.

But I think we may see something like a metasystem transition resulting in some higher-level integration and organization for knowledge, technology, and its application to problem solving. It could come through some kind of artificial general intelligence, or maybe just some type of advanced knowledge/semantic engineering/collaboration system. Or maybe high bandwidth brain-computer interfaces will allow brains to be networked and even integrated wirelessly.

Re: A Complete Understanding is No Longer Possible

#26

I agree with the point of this article, and I find this quite ennoying. The problem is not that a single individual cannot master everything but that the reward for learning a part of the book pile becomes lower and lower in proportion to the required effort. This trend is clearly discouraging students to "jump" in some of these fundamental reference books. And teachers find it probably very difficult to provide appl…

If you learn the basics well (of logic, hardware, functional programming, imperative programming etc) (and by well I do not mean a bit of practical tinkering; I mean a few years of studying theoretical foundations in-depth and applying those on several non-trivial practical cases), this will be useful in 5 years. It will be useful the rest of your life.

My theoretical foundations in CS, AI, Math (esp discrete) and physics from the late 80s/begin 90s allow me to read cutting edge papers (memristors, spintronics), learn new languages fast, read 'modern' source code and understand modern hardware architectures. This is 'knowledge' from 20 years ago; not that much has changed tbh on low levels.

Actually ; my dad enjoyed his education under Dijkstra in Eindhoven (and others, but this I now find cool :) and he also understands hardware and software on a low level after almost 50 years.

I don't see this panicky 'what you learn is obsolete when you finish uni'; might be for some studies, but for math/physics/cs it definitely isn't (again IFF the education is not flaky; there are plenty uni's I know of which are teaching CS courses which are WAY too practical ; students coming from there 'know' C# and find it very hard to do anything else. That's not a solid foundation at all. Example; university of Dubai.).

Re: A Complete Understanding is No Longer Possible

#27
A complete understanding if you ask me is one which requires no impenetrable "black-box abstractions" to be substituted in the abstraction hierarchy. In the case of a CPU, you would have to have a full gate level understanding of it and an understanding of how the gates operate.

To be honest, the "complete understanding" died way before the original post. It was the moment that they started building computers with integrated circuits inside them (before 1970) and complexity rocketed logarithmically. It died doubly so the moment that electrical engineering and the practical side of computer science diverged into "them" and "us".

If you want to use something which you understand, you will probably need to buy a crate of transistors, resistors and diodes and wirewrap yourself an entire computer from scratch PDP-7 style.

This fact is a warning: We really are building things with too deep abstraction hierarchies causing knowledge to be divided. One day we will never hope to comprehend anything in a lifetime.

Re: A Complete Understanding is No Longer Possible

#28

as usual, it's already written in the bible: http://www.joelonsoftware.com/articles/LordPalmerston.html "There was a time when if you read one book by Peter Norton, you literally knew everything there was to know about programming the IBM-PC"

I'll take a guess and say that that time was well in the past by 1990. I remember the confusion over XMS / EMS and how to write programs that could use extended / expanded memory. It all depends on how far into the system you want to look. How many users of the FAT file system actually learnt the innards of NTFS? How many programmers specialized on Borland IDEs rather than WatCom? There's not really that much more to…

I agree. And in case you have some specific bottleneck you can always go into that. As knowledge grows, it happens in every science. However, it's another feeling when you have a good grasp of the entire system.

Re: A Complete Understanding is No Longer Possible

#29
post #27

A complete understanding if you ask me is one which requires no impenetrable "black-box abstractions" to be substituted in the abstraction hierarchy. In the case of a CPU, you would have to have a full gate level understanding of it and an understanding of how the gates operate. To be honest, the "complete understanding" died way before the original post. It was the moment that they started building computers with in…

I do all my "fun" computing these days on a BBC Micro, in assembly language. I don't have total understanding of the ICs, it's true. But in its 64k of addressable memory (32k RAM), I've a pretty good idea of where everything is and what happens when. Very satisfying.

Re: A Complete Understanding is No Longer Possible

#30
post #29
post #27

A complete understanding if you ask me is one which requires no impenetrable "black-box abstractions" to be substituted in the abstraction hierarchy. In the case of a CPU, you would have to have a full gate level understanding of it and an understanding of how the gates operate. To be honest, the "complete understanding" died way before the original post. It was the moment that they started building computers with in…

I do all my "fun" computing these days on a BBC Micro, in assembly language. I don't have total understanding of the ICs, it's true. But in its 64k of addressable memory (32k RAM), I've a pretty good idea of where everything is and what happens when. Very satisfying.

Any idea where someone (such as me) born too late to have an original Micro might be able to get hold of one?
Post reply on HN