Remix.run Logo
101008 5 hours ago

> 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.

saulpw 5 hours ago | parent | next [-]

You started with logic gates. How much EE did you do, or the actual physics that makes the transistor possible? Those are the previous (deeper) levels that people had to know before they got abstracted away.

VorpalWay 5 hours ago | parent | next [-]

When I took software focused computer engineering around 2010, we still had courses that took us all the way down to transistors and even the physics of P and N junctions and how that applies to CMOS. (And even some basic analog electronics.)

Did I end up an expert at those layers? Of course not, but I know the basics and I know enough that if I need to I know where to start learning more. Just like I wasn't a C++ or hard realtime expert after university either, but now a decade and a half later I am pretty good at those (and a bunch of other skills that ended up relevant to my line of work).

Basically, none of the layers are "magic" to me. Even if I don't know the details of it, I know the general principle and I know I could learn more if I need it.

(I think you naturally end up an expert at the layer(s) you work in, and the knowledge tapers off as you go down (or up) the stack. For example, I know a fair bit about how the CPU works (cache coherency, pipeline stalls etc), I can passably read x86 assembly, etc. Because they affect the layer I work at (hard realtime systems C++ and now also Rust). I know far less about web dev than hardware.)

rapidaneurism 5 hours ago | parent | next [-]

Similar experience in the 90s, but we don't really know the intricacies of doping silicone, or smelting metal to make the pins. And what about mining it?

I think the last time people knew how things were made was in preindustrial societies because they had to build everything themselves (whatever little things they had)

dranudin 5 hours ago | parent | next [-]

I was once in a museum in Bolzano, Italy. And they had the ice man mummy there (we call him Ötzi). He died like 5000years ago. And his "axe" was made of copper from some mine very far away. So even this guy probably did not know how everything he had was made. There is a theory that he was probably very rich. So maybe less rich people were more in touch with what they owned. But still I found it fascinating that even so far back people relied on technology and materials that they didn't really know about.

VorpalWay 5 hours ago | parent | prev [-]

I partially disagree. I know the basic high level concept of all those. Would I be able to reproduce state of the art results on my own? Obviously not.

But a core part of the engineer or scientist mindset is curiosity for the sake of curiosity. Just the fact that I don't know something is enough reason for me to poke at it or otherwise learn more. Same reason I still take apart broken electronics as an adult and try to find the fault (and sometimes even repair it).

By the way, mining silicon is particularly easy: it's basically sand. The difficult part is purifying it, especially to the levels needed for modern nm scale chips.

A more useful question than making high end silicon would be: could you with reasonable tooling reproduce basic electric components? I'm talking things like light bulbs, resistors, generators, perhaps capacitors even? Just the basics crappy versions, not modern highly optimised surface mount components. And I think the anwer is yes (for me personally) if I had access to metal wire and sheet stock and industrial revolution era tools.

hatthew 4 hours ago | parent | prev [-]

Simply by the fact that you say computer engineering, you already went deeper than 99% of "computer people" in 2010

vladms 5 hours ago | parent | prev | next [-]

I have similar experience with the poster, and the way I read it is, "from the things I build here are some examples". I did learn about advanced physics topics that enable transistors, and even did some experiments, but for fundamental stuff you "don't build stuff".

Did I do all physics or all electronic circuit design or all software stacks? Definitely not. But I spent 3 years learning (and building) about lots of stuff.

alex_c 5 hours ago | parent | prev | next [-]

The one thing I appreciated about my Computer Engineering undergrad - and it took me a few years to fully appreciate it - is that yes, we did cover those levels.

The first two years were shared with Electrical Engineering. The second two years started to specialize towards Computer Engineering topics.

* Physics and chemistry.

* Circuits.

* Transistors.

* Logic gates.

* FPGAs.

* Assembly.

* Compilers.

* CPU and hardware design.

* Operating systems.

* Networking layers.

* Programming languages.

* Computer graphics.

Did I master all of the above - absolutely not. I loved some of them, struggled with others. Generally the cut-off for how my brain works is logic gates, I was never strong at the levels below that.

But we did cover them, and I could honestly say I had at least a rough understanding and mental map of everything that happens inside a computer from the point where it's plugged into an outlet, to the point where pixels show up on the screen.

4 hours ago | parent | prev | next [-]
[deleted]
jjk7 5 hours ago | parent | prev [-]

Yes, they taught that too.

8note 5 hours ago | parent | prev | next [-]

how did you make the transistors? made your own vacuum chambers?

i had to make logic gates and so on, but i wouldnt say i really learnt it, even if back in highschool i learned all the different things a 555 timer can do

OkayPhysicist 5 hours ago | parent [-]

We had a photolithography lab when I was at school. It's not that complicated to make a few npn transistors. The difficult part is doing it well.

hatefulheart 5 hours ago | parent | prev | next [-]

Exactly.

Please get used to this sort of depressive, absurd and out of touch tone from HNers, it’s literally all they do now. Don’t bother calling people here hackers anymore, they have checked out emotionally and spiritually.

esikich 5 hours ago | parent | next [-]

What's absurd is thinking because you took a logic class and made a flip flop 30 years ago that that is the ground floor and that it means you "understand how it all works". You're not building a CPU from logic gates and you don't know how it works. If I put you or OP in a room for a year I highly doubt you could build an 8 bit Atari-like CPU from scratch. I worked with wires and logic too but I'm not arrogant enough to say that I know how it all works.

vladms 5 hours ago | parent | next [-]

Don't you think there is a difference from "knowing how it works" and "reproducing every aspect of it at the level of the state of the art" ?

Also, your example seems flawed if you restrict to a certain product. Can I build a compiler from scratch? Yes. Can I reproduce in a year a compiler with LLVM/GCC performance level? No. Can I build a compiler from scratch in a year from a room if I need to starting mining from metals, building transistors, then building the first assembler and then implementing the compiler? You can imagine the answer.

esikich 5 hours ago | parent [-]

Not really, at least not in this discussion. An assembly programmer gets logic gates, a C programmer gets assembly, etc etc. And each one can say to the one above "well you don't really get it if you can't bang out some meaningful work". Otherwise idk what we're even talking about here. Having a vague understanding of something isn't "knowing how it works".

lelanthran 5 hours ago | parent | next [-]

Yeah, but if we use your criteria, people have to invent their own atoms out of individual electrons, protons, neutrons, quarks, etc before you'd admit that "hey, they did build a compiler from scratch".

I think a fair bar for "from scratch" is stopping at the point they need an expensive fab process (or how else will they reproduce the workings of semiconductors?)

hparadiz 5 hours ago | parent | prev [-]

Code: The Hidden Language of Computer Hardware and Software

https://www.amazon.com/dp/0137909101

Explains how to build an 8 bit calculator with wires, switches, and light bulbs and then keeps on going.

lelanthran 5 hours ago | parent | prev | next [-]

> If I put you or OP in a room for a year I highly doubt you could build an 8 bit Atari-like CPU from scratch.

I believe I can, depending on what "from scratch" means. With nothing but transistors, resistors, inductors, coils, capacitors, I can probably do apretty poor general-purpose CPU. Maybe something like a stack-based ISA or, if I had more time, an accumulator-based processor like a 6502, but with an 8-bit bus.

If you're going to ask me to create transistors themselves, well I believe that needs specialised equipment.

hatefulheart 5 hours ago | parent | prev | next [-]

This is a very cringe take.

Me and OP aren’t super heroes, we can’t do what a team of talented individuals created even if that team existed many moons ago. That isn’t the point.

We both questioned the tone and the conclusion of the comment.

ThrowawayR2 4 hours ago | parent | prev | next [-]

The parent post's argument can be boiled down to "You don't know absolutely everything therefore it's fine to know little or nothing." It's the Chewbacca defense of AI boosterism.

hirvi74 5 hours ago | parent | prev [-]

That was one the major criticism I have of my CS degree's program. Perhaps the knowledge I wish for is not truly CS in the mathematical/theoretical perspective, but I believe it would have been absolutely valuable to learn.

bix6 5 hours ago | parent | prev | next [-]

Name checks out

apsurd 5 hours ago | parent | prev [-]

come on now.

so even if you're right, checking out emotionally and spiritually just means more life lived. That ain't some kind of bad thing.

life is good sometimes. hard sometimes. and it's long sometimes, so give people a break.

xpct 5 hours ago | parent [-]

> checking out emotionally and spiritually just means more life lived

What exactly about checking out makes it 'more living'? I sense a false dichotomy here

apsurd 5 hours ago | parent [-]

easy: we all need breaks. breaks are not bad. living doesn't only mean "doing actions"

xpct 5 hours ago | parent [-]

I don't think OP argued for any type of relentless work.

everyone 5 hours ago | parent | prev [-]

Yes, thats exactly what uni is for.. To learn all those previous centuries of stuff before you can either start contributing to the corpus yourself, or go get a job (Where you will pick up more immediately useful stuff)

We really dont understand how AI is working, even the earliest "genetic algorithms" could be incomprehensible, but computer systems in general, they're not really that complicated.. its like an audio mixing desk..it looks insanely complicated until you realise it's just the same few knobs repeated many times for many channels. High level languages, compilers, assembly, machine code, nand, mosfets. A single person really can understand it all.