4 ms·
Honestly, maybe a majority of modern engineers not being familiar with anything but the pointy tip of the stack is a good thing. I come very much from the old
by madaxe_again 3y ago
Honestly, maybe a majority of modern engineers not being familiar with anything but the pointy tip of the stack is a good thing.
I come very much from the old world - I learned to code on graph paper, as that was how you saved your work, and being able to wield a scope and iron was kinda mandatory for being able to meaningfully use a computer.
As tech grew up, so did I - and while it’s useful to be able to understand what is happening from clicking a button in a gui down to electrons tunnelling through a bandgap, particularly when it comes to debugging the truly arcane, I actually find that the level of abstraction I carry around in my head sometimes gets in the way.
I look at newer techies bouncing around with their lofty pyramids of containerised cloud based abstracted infrastructures, and I almost envy the superficiality of their engagement - I can’t help but look at it and see immense complexity, because I see behind the simple and intuitive userland, and that makes me run for vim and some nice bare metal where I know what my hardware is doing.
Maybe I’m just getting old.
- blueflow 3y agoYeah, it might look nice and easy. But this is when it works. When it doesn't they are unable to understand many kind of problems and have to resort and try&error.
- zvmaz 3y ago> I can’t help but look at it and see immense complexity, because I see behind the simple and intuitive userland, and that makes me run for vim and some nice bare metal where I know what my hardware is doing. But is it humanly possible to know details in every level of abstraction? There should be a balance between abstractions and knowing some details beneath some layers of abstraction. What do you think?
- spacecadet 3y agoWhy not? It's really not that many principles- to me, it is entities that add complexity by deviating standards or introducing esoteric nomenclature on-top of existing concepts.
- sgarland 3y agoMaybe not to an expert level (for some, undoubtedly it is), but it’s eminently possible to have a working knowledge of the stack, from hardware to the nth abstraction. I’ve recently become interested in how data makes it from {INSERT,SELECT} to the disk, and so set about understanding that. You can read Postgres or MySQL’s source code and use a debugger to understand how it goes through that layer, then strace to follow the base syscalls, then blkparse to watch it go to the device driver. From there, you can experiment with forcing OS page cache drops to see when a “disk read” isn’t really a disk read, and also observe read-ahead behavior. I’ve skipped the device driver layer for now, but beyond that you can also use dd to observe changes to the raw block device. The latter is easier on a simplistic level with a few bytes at a time. You have to be genuinely interested in this stuff though, because there are precious few companies who are going to pay you to play around like this all day.
- knome 3y agosqlite has a fantastic codebase for understanding how databases work. there's a pretty comfortable parser generator in there as well (lemon), that I found nicer than bison when I was still messing around with them instead of just defaulting to recursive descent as I do these days.
- madaxe_again 3y agoOh, it isn’t always play - sometimes you discover that you are IO bound when you shouldn’t be, and end up tracing your woes through a similar route to that which you describe to a bug in the hypervisor scheduler where network and disk IO are blocking each other due to a shared interrupt specific to the combination of disk controller and silicon that’s running the kernel. You blow a day of engineering time, but you improve performance of your product by an order of magnitude on the same hardware.
- sgarland 3y agoThat would be amazingly fun for me! Did you happen to file a bug report somewhere publicly? I’d love to read more about it.
- spacecadet 3y agoNah, but I hear you- sometimes its just knowledge bias. Much of the techie scene is dogmatic and bounces as you say, from one trend to the next. To me, this is why we are in such a low period of innovation.
- b112 3y agoYou're probably getting old, but the truth is that modern stacks are stupidly complex. Layer after layer of abstraction, along with immense bloat. I've run immensely complex web properties on hardware 20 years ago, that dwarfed what the average dev deploys today, yet without all that cruft? Well, let play php and node, and use laravel as an example. Eaily 10000x the codebase, for the same result. It's not efficient, or lean, or performant at all. But it does do one thing. Allow people without extensive security, database, and coding experience to push safe code quickly. You can throw a new grad at Laravel, and they're off to the races. I liken it to C replacing assembler. A way to abstract. It is sad though.
- nonrandomstring 3y agoDouglas Adams said this thing about how you should never consider how utterly improbable it is that miraculously complex things keep working, because suddenly they won't. I mean, if you woke up each day and pondered the intricacies of cellular mitochondia and your own endocrine system... the anxiety would be crippling. After 50 odd years of computing which began soldering my own from TTL chips and transistors in the 1980s I find the only way to navigate current levels of abstraction is to join the kids in their kind of optimistic, faith-based wishful thinking, just let go and float above it all. But every now and again something goes wrong and absolutely nobody but people like you and I can even imagine what it might be. More terrifying is meeting people with very inflated job titles, in positions of enormous wealth, power and responsibility, whose knowledge of even the most elementary physics and logic is absent. They're actually kind of proud of that, and positively celebrate ignorance all the "things they don't need to know". Part of me finds that insulting and disrespectful.
- madaxe_again 3y agoI find myself thinking about the respiratory complexes more than I probably should. It’s unbelievable that we function, at the most basic level. Molecular motors? Complexes that can only work in conjunction? Good grief.
- sibit 3y ago> I can’t help but look at it and see immense complexity, because I see behind the simple and intuitive userland An idiot admires complexity, a genius admires simplicity, a physicist tries to make it simple, for an idiot anything the more complicated it is the more he will admire it. If you make something so clusterfucked he can't understand it he's gonna think you're a god cause you made it so complicated nobody can understand it.