The issue with this is that we don't know how it works. Generally speaking, we know how the level of abstraction that we were born with works. We might have some understanding of one or two previous levels, but that decreases the farther down you go. We might understand the next level, and some of the next after that, but eventually people will be making things that we don't have the context to understand without having to unlearn a lot of what we know now.
I'm old enough to see this process in action; I used to be young and in possession of esoteric knowledge that made me infinitely in demand and now most of the things that young people have esoteric knowledge about is things that I don't particularly care about, and I'm left with a lot of finely honed skills to solve problems that have mostly been abstracted away.
I'm not sure that's true - you may be over generalizing
Probably not many here know the processes needed to turn sand into silicon and the expertise needed for hand grinding fancy lenses used in lithography. But we do know those things are needed and the approximate philosophical concepts behind these needs.
I think the danger comes when or if we fully automate a lot of the low level infrastructure tasks to the point where future generations do not even have the conceptual framework for how the tech they use is created
I agree, but having abstractions allow us to learn things in a system that are broadly applied.
This is out the door for AI generated systems. Unless extreme care is taken there is is no consistency in these new-found codebases. New paradigms are introduced left and right, because in the eye of the LLM, and the prompter, they worked.
It didn't matter that the same pattern was repeated 37 times in a slightly different manner.
So your knowledge now is no longer portable.
It used to be that you could look at code, and ask why? And usually (not always) the answer was something like: 'I tried x, y, and z, and those didn't work', either by past experience or current experimentation. (we could argue if the current experimentation should be documented).
But for LLMs they put in something complex for no other reason than that it does what is requested. Reading a string from a valid source byte by byte until you hit \0 is valid, and it'll work. But if you take a step back at, read the API docs of what you're consuming, and then consider: if the API says X, why am I testing whether that's correct?
Exactly, I find this sort of nostalgizing to be unhelpful. I am not _that_ old but I did cut my teeth on C++ and learned about manual memory management, programming language design and had a few (even at the time) esoteric courses about assembly language. I am not assembly fluent and have no desire to be - but getting an understanding of how higher level code compiles into lower level assembly/machine statements is invaluable to get a sense of how performance can be manipulated and the how impactful it can be to do "silly" things like unroll loops to minimize the number of instructions needed for some higher level operation.
Issac Newton/Bernard of Chartres said we stand on the shoulders of giants and that allows us to see further afield but it also loses the detail of the ground beneath us - modern folks will no longer have the broad expertise that someone struggling through building a computer from transistors would gain through overcoming that[1], but we should learn about it academically to garner the bits of knowledge that remain salient. It is incredibly useful when experts in these highly specific fields have the communication skills and knowledge to share what is relevant to others without overwhelming them[2] with detail.
1. Real modern consumer grade computers are far too complex to understand fully without dedicating your life (or a significant portion of it) solely to that. It is more pragmatic to allow specialization and small realm expertise instead.
2. Of course, if you want to geek out and learn the minutiae that's awesome - but we can only geek so much in our limited time here.
> Generally speaking, we know how the level of abstraction that we were born with works
I'd say it's generally true that the majority of jobs of an era deal with a similar level of abstraction, and that's why most people stay on it. However, I frame this as being born with technical debt, and it's my obligation as an engineer to understand what the previous generations have built, and where it makes sense for me to work, directionally.
I think it's more that "Some human some time has known how it works", not that "Any given human knows how it (all) works.".
But yea this glosses over a bit trial-and-error designs and, so to speak, "genetic optimization" kinds of designs where we just try random stuff and say "Hey, this works. Not sure why, but it works.".
If you wish to make an apple pie from scratch you must first invent the universe
The level of abstraction when I started was that you had to solder the components (resistors, capacitors, chips - well IC holders, chips were expensive) to the PCB board - that was "building your computer", none of this nancy-boy rubbish of "plugging stuff together" with "slots that can only take one type of card".
I'm fairly certain I know how it works. Being a physicist helps with the even-lower-level-details if you want to start talking about transistor doping, or electrical circuit theory, for example
> The issue with this is that we don't know how it works. Generally speaking, we know how the level of abstraction that we were born with works.
What? Definitely not. I went to university and my first two years were subjects where I had to understand really deep levels of abstractions. I had to build logic gates, I had to work with hardware, wires, etc. I didnt see the point back then (I never used any of that professionally). The same about algorithms, databases, and a lot of things. But now I find it valuable and thankful that my professors (and whoever designed the career) considered important topics that I had to lear.
Wait a second, its layers all the way down
Exactly, I'm over 50 and I remember all the complaints about script kiddies who looked at windows bat files as opposed to all the 'real programmers' who knew C and Assembly and used VIM and linux (which is still going strong)
(ie https://www.explainxkcd.com/wiki/index.php/378:_Real_Program...)
but now also as an AI engineer we have to learn how harnesses, sys prompts, various models, tokens LLMs etc all work so a new abstraction is born..
layers changes, nerds and ultra-specialist nerds will remain
nostaliga is always for the last layer- the one you remembered from your teens and 20s.
I do think there's something to be said for the big difference in the current abstraction layer jump - the loss of determinism. It is meaningfully different.