This has always been the fun part of programming to me. I know most people hate it, but I really don’t mind being on-call (ok I hate being woken up) and fixing weird bugs that users run into. All these small edge cases that people run into because reality is odd. Of course I’m in scientific programming so that probably colors my view.
It’s always a little disappointing to me when I think I’ve run into something unique but it ends up being user error or something.
I echo this. The kind of entropy that real users bring has been refreshing to face as a founder.
Being a founder has a lot of SRE like activities. Fortunately I used to actually like troubleshooting and hence love being a founder but I know a lot of people quit this path because of the "suprising amount of details" in reality!
The first time I built a freestanding bookshelf, I put a lot of effort into making the feet level and the back straight and at a right angle to the feet. Once I put it up against the wall I'd built it for, I realized I'd solved completely different problem than the problem I really had. I needed crooked bookshelf, since the wall was totally tilted.
In the end I screwed some wall shelves in and called it good enough.
One of my first real DIY projects during a summer in college nearly 20 years ago was replacing the rotted out basement bulkhead doors on the ~120 year old house I grew up in. I took measurements of the old ones, bought some nice tongue-and-groove cedar and high-quality hardware, and built the new doors in the garage. When they were fully assembled, I carried them over to install on the old stone frame. I took off the old ones, put mine in their place...and they didn't fit properly at all.
Momentarily baffled, I realized that, despite appearances, the old frame was actually not square, in fact it was a parallelogram. I'd measured the height and width and assumed it was square. The previous (experienced) carpenter who'd built the doors I was replacing had clearly noticed this, and simply allowed for the misalignment in his design. He built perfectly square-appearing doors that mounted to the not-square frame. I had to go back and rework mine considerably for them to fit without looking ridiculous. They're still there and holding up well, but I also still think of this lesson on a regular basis in my day to day life now.
You notice this when you start to learn drawing (at least I did) - it's not that you don't know how to draw, say a horse, it's that you have no idea what a horse really looks like. Ordinarily you just jump to a whole lot of conclusions.
I recognized this submission from its title but did not remember what it was about. For some reason this anecdote reminded me. Yes now I know it's about the man who built staircases with his father.
Coincidentally just had this realization last night. Leaned a piece of furniture against the wall, realized the ~perfectly straight/level edge didn't lean smoothly against the wall -- the wall is not perfectly straight!! :-O
A related thing that took me a while to accept when I started woodworking is that wood moves, a lot.
If you built the bookshelf in wood, it will be expanding, contracting and shifting over time with temperature and humidity variation throughout the day and season. And asymmetrically depending on the grain.
The straight right angles won't stay that way, and it's better to design such that they change in complementary ways, rather than remain perfect.
The country home I grew up in had uneven floors and door frames.
Then I studied abroad in Italy and realized the phenomenon was global.
Then I moved to San Francisco and realized it was a joke at this point.
Building codes are a joke!
Brunelleschi drank wine all day. Sure he basically invented pulleys and designed the sickest dome in human history, but he was a drunk and I can't blame him because architecture and all of math is a joke if you look close enough.
It's not the codes, but the physics. The first two years after a building is build, it will change it's geometry until it settles. That happens because building has a significant weight and the earth under the building was unsettled, and now is under a pressure.
Not very noticeable in a light weight houses, but even small brick one-family house will do that.
Building codes account for that, but it's better and significantly cheaper to build that way then to build a totally rigid structure. Rigid is brittle.
When I worked as a camera guy on film sets, this was a typical occurrence. You level out the camera trypod with the magic eye on the tripod. The magic eye being a small amount of liquid with a single bubble inside, pointing always upward.
Soon you realize that an surprising amount of walls are just not straight or level.
This is what molding is for. A lot of people view it as "ornate" or old fashioned, but it served a functional purpose originally and then people started making it fancier.
Hah, yeah same. I grew up in a house built with hand tools sometime around 1910 (family bought it from an old lady whose father built it), not a single corner was square (though things were generally good vertically by some miracle), but it wasn’t noticeable until whenever were doing major work.
Also learned that lath and plaster needs some special consideration when screwing/nailing things for securement, as the lath (wood strips) could split, causing a subsequent crack in the plaster. Basically for screws or bigger nails, it’s a good idea to drill a small hole first to lessen the pressure, or do a bigger hole and use a spring bolt anchor.
I once measured a 80s-communally-built event space with a laser meter (it was useful to have digital floor maps for event planning). No measurement was a perfectly round number. No angle was perfectly right. Nothing really lined up. Except… there was this one set of stairs leading up to the stage. It was perfect. Every step was exactly the same in all dimensions, to the millimeter. It was perfectly level. I always wondered who this stair craftsman was, who prided themselves on doing such professional work among the presumed chaos. :-)
Sounds about right. I approached this in a different way in my office.
The walls aren't straight, either vertically or horizontally, and they're not even consistently wonky along any given axis.
So I installed uprights vertically, using transparent polycarbonate spacers of different depths at the attachment points[0]. I then installed shelves on the uprights and aligned them horizontally.
The variation is only +/- 6mm or so (for around 12mm variation across the 2.5m x 2.44m wall) but, if I hadn't done this, my shelves wouldn't be level, and wouldn't even be consistently non-level, so would have been awkward to install along the full length of the wall, would all be misaligned with eachother, and would have looked incredibly janky.
[0] In hindsight I wish I'd gone for these in different colours rather than just plain transparent, to make more of a feature of them. The walls are white so I think orange, blue, red, and yellow would have worked well.
I put up a notice board in my kitchen when I moved into a new place, and it looked squint even though my level said it was straight. I flipped the spirit level end-for-end, still straight - if the level was off and the workpiece was straight, then flipping it would make it read wrong.
Nope. Level was okay. Checked the wall, wall is plumb. Wait a sec - the wallpaper is not straight.
So the notice board went on lined up with the wallpaper, not reality.
The other one was fitting a six metre aluminium pole with a two metre aerial on top to a brand new multi-million pound building. The brackets and pole were absolutely straight and plumb. Got back down off the cherry picker, walked back across the yard to the van, pole looks really squint.
After much upping and downing and to-ing and fro-ing, it became clear that I needed to pack the aerial pole mounting to lean it over by a couple of degrees so it didn't look wrong!
The pole was straight, the multi-million pound brand new high end amazing building was distinctly on the piss with not one truly plumb vertical component anywhere.
My father, (who by profession was a CA with MBA, but is exceptionally handy) has regularly reminded me that walls/floors and ceilings are pretty much never straight and level, and over here they're brick and mortar, not wood.
This must be a well-known fact to all trades people who work on cupboards, tiling, door mounting, etc. But when you understand this, then you realize that everything is built to be forgiving of this reality.
E.g. prefabricated bedroom cupboards will always be fitted with fillers on each side and a kickboard for the bottom. This allows you to use feet/wedges underneath the cupboard to make it stand-up perfectly straight (which is not necessarily parallel with the floor and/or walls), but because of the fillers/kickboard being wide/tall enough and cut to fit the irregular/skew shape, you don't tend to notice.
Beading around wooden door frames is for the same reason, it hides the little gap that is invariably at points around it, either due to the hole in the wall being skew and/or slightly arched.
As I got a downvote I can only assume my tone came across as “how could you not know this?”, but my feeling when I wrote this was that it’s a bit of a funny and interesting anecdote the parent wrote and I’ve been similarly frustrated with how I easily make mistakes with seemingly simple tasks such as putting up a shelf, to which I have to laugh at myself about when thinking about it many years later.
I definitely prefer that with software it can be “perfect” and easily changed later if you find it’s not.
The fact that machine learning can learn highly detailed patterns is the very reason why AI is so useful. So what you’re saying doesn’t really make much sense
> The fact that machine learning can learn highly detailed patterns is the very reason why AI is so useful.
AI doesn't deal with reality, it deals with tokens. This is why all those vibe-coded harnesses, little more than glue between various text IO interfaces, are several hundreds of thousands of source lines of code.
It's why a SOTA model took 100kSLoK to write a C compiler to compile one specific project.
It's why, when I asked for a simple markdown -> ansi escape codes converter (for terminal output) in Python, SOTA Claude and SOTA ChatGPT both give me +- 150 SLoC when my own LUT-based version came to under 10 lines of code + a LUT.
Reality has a surprising amount of detail, but LLMs don't exist in reality, they exist in a virtual world made up off tokens.
Do you exist in reality? Or just in a virtual world made up of sensory signals? Do you have access to the Ding an sich any more than a (multimodal) LLM?
How would you know? You have no external frame of reference; a virtual world of sensory signals would be identical from your perspective. (I agree that "reality" is the most parsimonious explanation by far, btw, but that's never been the point of the simulation thought experiment.)
I think the more interesting corollary of this article is that if we're living in a simulation, it's an impossibly, improbably detailed one. I really want some compute time on the HPC that's running it.
Reality is by definition our physical reality, which is about an infinite number of levels more detailed than the, you know, _virtual_ digital world computers exist in.
Whatever world we construct for LLMs, no matter how detailed we make it, will always be a blocky projection of the real domain onto a virtual one.
It follows then that any insight gained in the virtual world is at best a rough approximation which can be quite useful at times but also utterly faulty on occasion.
How often it is useful vs. wrong is (partially) a function of how complete the real-to-virtual approximation for a given domain.
Certain domains, given their limited degrees of freedom, can be quite accurately modeled, such as a subway map.
But many domains cannot, and it's important to be aware of that inherent limitation in digital models including but not limited to LLM """reasoning"""
>Whatever world we construct for LLMs, no matter how detailed we make it, will always be a blocky projection of the real domain onto a virtual one.
I don't know exactly why but I never really understood this argument. Might be some kind of control thing? Because for me it's pretty simple, it's basically free to give access to reality. Just add "sensory organs" as it were. I can argue you can make them perceive reality even better than we (humans) do, just enlarge the audio/video spectrums. Bam...more reality. The whole point of the argument is we're missing information.
Again, I get the need for controlling the environment for what LLM/AI/AGI/whatever will be, but that will always cost more than giving them access to like...reality. Same reason I don't really believe in the whole simulation argument, it's just more expensive all around, loses resolution, let alone control. I don't doubt there will be some people that would indulge in neverending hedonism but not all people. You need to give up control for that.
The discretization of those tokens can be manipulated to get any result you want. If it meaningfully benefits the AI to have a more fine-grained discretization, then you can do that. AI only compresses as much as we want it to. I understand your sentiment, but the logical conclusion of what you’re saying is that no form of compression is ever valuable. That’s just not a defensible argument.
All information gets compressed. Even your own perception of reality gets compressed.
Right but the 'surprising level of detail' can often exhibit itself as exactly not a pattern. There are many jobs where you employ a human not because of the rote/pattern based work, but their ability to handle all the edge cases that are just frequent enough to need them, but not frequent enough for AI to be able to handle. That is the events that in this example would require the AI to ask the human to make some decision for them.
In the spirit of the article, what detail in the decision making of layoffs might you be missing?
I expect there's a lot of detail that I'm unaware of relating to running a company (planning; risk; legal; ...) that might make a decision foolish to me, but make sense if given more context.
Base I what is the level of detail to reality suprising. To me suprising means mysteriously or improbably unexpected. Why should we expect reality to be simple. Note complex and simple are somewhat subjective. The human brain evolved to just sufficient baseline level be able to handle the level of complexity of reality. So why would it be unexpected that humans find realty complex when our brains are calibrated just enough to handle it.
Reality does not have amount of details, it is infinite in all directions. Its only that we perceived certain amount of details, some more some less. One can spend their whole life mastering one simple aspect and there always will be room to improve.
Yeah that's why all models are wrong and everything ultimtately comes down to intution like supreme court's I know it when I see it.
It's just that intuition doesn't scale and a lot of common cases can be handled with models, rules, definitions etc. People continue to be confused that just adding more rules eventually solves reality but it never has anywhere for anything so continuing to believe it will is wild
I can't prove it in scientific ways, the thing is at some point scientists defined an atom as something indivisible, today we know they study sub atomic particles, and even finer things, waves or strings or whatever. In the same way 100 years from now our science will look primitive, physics will be few levels deeper, but there always be the next thing. Its like a pattern of nature.
I'm saying this from a perspective of practicing powerful spiritual practices and having certain experiences. They actually make one experience infinitive nature of consciousness, and somehow realize this is the way everything is made.
Even human perception is able to peek into the infinite nature of things, not the intellect though, the intellect can only work with limited and defined "things".
It's unknowable through current means of science. There are ways to experience that, I did some of them so I'm talking from my experience. And no, I can not prove it, if it was provable like that it would be already done.
> If you’re a programmer, you might think that the fiddliness of programming is a special feature of programming, but really it’s that everything is fiddly, but you only notice the fiddliness when you’re new, and in programming you do new things more often.
I think I'm drawn to programming because the fiddliness is tractable, and fixable.
In which other domain can I:
* introspect the relevant processes/state, step by step
* snapshot/undo
* fix niggles, once and for all, and for everyone; and get their fixes too
* probe and test my inputs and outputs, checking for quality. Get notified if a part changes in a way that breaks me.
And the only tool I need is a commodity general purpose PC.
When I try woodwork, or even electronics, I'm struck by much friction is in even simple tasks: tools, parts, lead time, safety, space, physical effort, cost, ...
Unless you have endless budget, many things can be one-shot. You can't do a test run first, or roll back a cut if the length is too short. You can patch misplaced nail holes, or re-dig a hole (messing up filling a hole with concrete is another matter) and hope you don't kill a tree transplanting it, but the end result isn't clean.
The best I could do with woodworking in the end to approximate programming was live with wasting some timber, leave a lot of margin on the main cuts and size all the pieces as a whole.
Woodworking taught me a lot about planning and design. As a young person, I was like the authors brother. I just wanted to do the thing, not draw a diagram and figure out how much wood I need, or build a fixture to mark the stair lines.
Woodworking (the more constructive, furniture-making kind), rewards a deliberate, controlled process and it savagely penalizes mistakes. Those lessons transfer well to other disciplines. I’d have been a much better student if I’d learned wood working in high school.
I think this is a very common sentiment among a lot of people, including me.
And also that’s why AI tools create mix reactions. A couple of months ago a post went viral which was really insightful on what I was originally drawn to cs.
The fiddliness isn't necessarily fixable though, at least in business code. The code has to represent the real-world, and if the real-world is fiddly then the code must be fiddly too. The only way to 'fix' this is to restrict your code's representation of the world to some non-fiddly sub-set, but this isn't always possible.
Contemplating the details of a thing is really satisfying. At times I find myself sitting there and trying to decompose the astonishing amount of work, research, both evolutionary and revolutionary progress that has gone into reaching the current level of something. Buying myself a coffee and stare at the local ferry and acknowledge that someones life's work went into figuring out how to make the paint stick to metal.
Naturally the other point also sticks.. I too often get stuck on the details. :P
I agree, that conclusion made me reflect on my existence. What I think I know versus the infinite amount of detail I'm missing. It's good to be reminded that there's so much we don't know that we even don't know.
I think we have all written some code that looks bulletproof to us. We run a set of tests with all the inputs we can think of, and it passes with flying colors (after several iterations of course).
Then we give it to someone else and it fails on their first or second attempt. They simply tried to use it in a way that we did not anticipate. It doesn't mean that we are dumb for not thinking of those possibilities; it just means that we did not think of every one of them.
And it pretty much is most times. For us. But indeed I did run into the "why would they use it like that though" scenario, where it fails. So I have to patch that usecase. At which point I go all "ok now it's really done" until another fringe usecase pops up and so on and so forth. And I did think about how sure I was it was bulletproof, humbling moment.
I have read this article already and "reality has a surprising amount of detail" has become a phrase for me. But, I read it again today because the writing is so good. This guy is a gifted writer.
I want to thank you for the following reasons:
- that's an amazing, mind-opening essay;
- I've been looking for this toy (Meccano) for my entire adult life. I remember playing with a set that my mom got me when I was a kid, but I didn't know what it was called, and neither did my mom. And when I describe it to people, everyone kept telling me it was Lego (Lego is a much better-known toy brand in this part of the world). I had pretty much given up on ever finding it, thinking it might have just been a niche toy that had ceased production. Words are not enough to describe my joy when I opened the link and saw images of Meccano pieces!
Yes but what about AI? (Perhaps the most annoying words written in the last few years mostly on LinkedIn).
But actually in the years since this was written, I do think the world has shifted. Doing things on a computer used to be really hard. Even just installing a framework or getting >python to call the right python on windows. Then install Django and get Django to work with nginx etc. It was just a lot of thankless, frustrating work to get from zero to 1%.
Aside from AI, the tools and packages and culture of computing has gotten better. But AI means you just get all the trivial but difficult stuff for free. And I think a lot of people who would have given up now make it through to see something work and they’ll feel the thrill of building something. It’s just better and easier now.
One thing he didn't mention is getting the first and last steps to be the same vertical distance as the others. Nothing will trip you up (literally!) so easily as a final step that is a different height than the other steps.
I thought of this because this morning I was putting a small fence around some plants we want to protect from deer. The fence consisted of 20 sections (bought on Amazon), each about 24 inches wide. Our ground is like rock, and the fence was not that sturdy, so I had to pound a heavy spike into the ground to the depth of the fence posts, then pull the spike out and put each section's legs in, leaving room for the next section's leg to go into the same spike hole. I wanted to be sure I was putting each section in at the right position, lest I end up with a 12 inch gap and have to go back and adjust lots of sections. Long story short, I pretty much succeeded, although when it cools down I may adjust a few sections. But the problem was sort of like the stairs: I wanted an integer number of fence sections, each the same length, to exactly fit around the bushes---just like you want an integer number of vertical steps in a diagonal stair, each of the same (more or less standard) height.
> Surprising detail is a near universal property of getting up close and personal with reality.
> As you learn, notice which details actually change how you think.
Lovely article. The older I get the more I appreciate this.
One point worth making: in many cases, after learning to see & appreciate the details, you gain the power to ignore the details that don't matter to you. This can be quite freeing.
123 comments of 129
[ 3.6 ms ] story [ 64.5 ms ] threadIt’s always a little disappointing to me when I think I’ve run into something unique but it ends up being user error or something.
Being a founder has a lot of SRE like activities. Fortunately I used to actually like troubleshooting and hence love being a founder but I know a lot of people quit this path because of the "suprising amount of details" in reality!
In the end I screwed some wall shelves in and called it good enough.
Momentarily baffled, I realized that, despite appearances, the old frame was actually not square, in fact it was a parallelogram. I'd measured the height and width and assumed it was square. The previous (experienced) carpenter who'd built the doors I was replacing had clearly noticed this, and simply allowed for the misalignment in his design. He built perfectly square-appearing doors that mounted to the not-square frame. I had to go back and rework mine considerably for them to fit without looking ridiculous. They're still there and holding up well, but I also still think of this lesson on a regular basis in my day to day life now.
I can never look at staircases the same.
If you built the bookshelf in wood, it will be expanding, contracting and shifting over time with temperature and humidity variation throughout the day and season. And asymmetrically depending on the grain.
The straight right angles won't stay that way, and it's better to design such that they change in complementary ways, rather than remain perfect.
Then I studied abroad in Italy and realized the phenomenon was global.
Then I moved to San Francisco and realized it was a joke at this point.
Building codes are a joke!
Brunelleschi drank wine all day. Sure he basically invented pulleys and designed the sickest dome in human history, but he was a drunk and I can't blame him because architecture and all of math is a joke if you look close enough.
It's not the codes, but the physics. The first two years after a building is build, it will change it's geometry until it settles. That happens because building has a significant weight and the earth under the building was unsettled, and now is under a pressure.
Not very noticeable in a light weight houses, but even small brick one-family house will do that.
Building codes account for that, but it's better and significantly cheaper to build that way then to build a totally rigid structure. Rigid is brittle.
Soon you realize that an surprising amount of walls are just not straight or level.
Also learned that lath and plaster needs some special consideration when screwing/nailing things for securement, as the lath (wood strips) could split, causing a subsequent crack in the plaster. Basically for screws or bigger nails, it’s a good idea to drill a small hole first to lessen the pressure, or do a bigger hole and use a spring bolt anchor.
Hate hate hate hate hate
The walls aren't straight, either vertically or horizontally, and they're not even consistently wonky along any given axis.
So I installed uprights vertically, using transparent polycarbonate spacers of different depths at the attachment points[0]. I then installed shelves on the uprights and aligned them horizontally.
The variation is only +/- 6mm or so (for around 12mm variation across the 2.5m x 2.44m wall) but, if I hadn't done this, my shelves wouldn't be level, and wouldn't even be consistently non-level, so would have been awkward to install along the full length of the wall, would all be misaligned with eachother, and would have looked incredibly janky.
[0] In hindsight I wish I'd gone for these in different colours rather than just plain transparent, to make more of a feature of them. The walls are white so I think orange, blue, red, and yellow would have worked well.
I put up a notice board in my kitchen when I moved into a new place, and it looked squint even though my level said it was straight. I flipped the spirit level end-for-end, still straight - if the level was off and the workpiece was straight, then flipping it would make it read wrong.
Nope. Level was okay. Checked the wall, wall is plumb. Wait a sec - the wallpaper is not straight.
So the notice board went on lined up with the wallpaper, not reality.
The other one was fitting a six metre aluminium pole with a two metre aerial on top to a brand new multi-million pound building. The brackets and pole were absolutely straight and plumb. Got back down off the cherry picker, walked back across the yard to the van, pole looks really squint.
After much upping and downing and to-ing and fro-ing, it became clear that I needed to pack the aerial pole mounting to lean it over by a couple of degrees so it didn't look wrong!
The pole was straight, the multi-million pound brand new high end amazing building was distinctly on the piss with not one truly plumb vertical component anywhere.
This must be a well-known fact to all trades people who work on cupboards, tiling, door mounting, etc. But when you understand this, then you realize that everything is built to be forgiving of this reality.
E.g. prefabricated bedroom cupboards will always be fitted with fillers on each side and a kickboard for the bottom. This allows you to use feet/wedges underneath the cupboard to make it stand-up perfectly straight (which is not necessarily parallel with the floor and/or walls), but because of the fillers/kickboard being wide/tall enough and cut to fit the irregular/skew shape, you don't tend to notice.
Beading around wooden door frames is for the same reason, it hides the little gap that is invariably at points around it, either due to the hole in the wall being skew and/or slightly arched.
I definitely prefer that with software it can be “perfect” and easily changed later if you find it’s not.
AI doesn't deal with reality, it deals with tokens. This is why all those vibe-coded harnesses, little more than glue between various text IO interfaces, are several hundreds of thousands of source lines of code.
It's why a SOTA model took 100kSLoK to write a C compiler to compile one specific project.
It's why, when I asked for a simple markdown -> ansi escape codes converter (for terminal output) in Python, SOTA Claude and SOTA ChatGPT both give me +- 150 SLoC when my own LUT-based version came to under 10 lines of code + a LUT.
Reality has a surprising amount of detail, but LLMs don't exist in reality, they exist in a virtual world made up off tokens.
Yes.
> Or just in a virtual world made up of sensory signals?
No, definitely reality. Things affect my thought whether I sense them or not.
I think the more interesting corollary of this article is that if we're living in a simulation, it's an impossibly, improbably detailed one. I really want some compute time on the HPC that's running it.
Reality is by definition our physical reality, which is about an infinite number of levels more detailed than the, you know, _virtual_ digital world computers exist in.
Whatever world we construct for LLMs, no matter how detailed we make it, will always be a blocky projection of the real domain onto a virtual one.
It follows then that any insight gained in the virtual world is at best a rough approximation which can be quite useful at times but also utterly faulty on occasion.
How often it is useful vs. wrong is (partially) a function of how complete the real-to-virtual approximation for a given domain.
Certain domains, given their limited degrees of freedom, can be quite accurately modeled, such as a subway map.
But many domains cannot, and it's important to be aware of that inherent limitation in digital models including but not limited to LLM """reasoning"""
I don't know exactly why but I never really understood this argument. Might be some kind of control thing? Because for me it's pretty simple, it's basically free to give access to reality. Just add "sensory organs" as it were. I can argue you can make them perceive reality even better than we (humans) do, just enlarge the audio/video spectrums. Bam...more reality. The whole point of the argument is we're missing information.
Again, I get the need for controlling the environment for what LLM/AI/AGI/whatever will be, but that will always cost more than giving them access to like...reality. Same reason I don't really believe in the whole simulation argument, it's just more expensive all around, loses resolution, let alone control. I don't doubt there will be some people that would indulge in neverending hedonism but not all people. You need to give up control for that.
All information gets compressed. Even your own perception of reality gets compressed.
I expect there's a lot of detail that I'm unaware of relating to running a company (planning; risk; legal; ...) that might make a decision foolish to me, but make sense if given more context.
Infinite is a very big claim.
It's just that intuition doesn't scale and a lot of common cases can be handled with models, rules, definitions etc. People continue to be confused that just adding more rules eventually solves reality but it never has anywhere for anything so continuing to believe it will is wild
I'm saying this from a perspective of practicing powerful spiritual practices and having certain experiences. They actually make one experience infinitive nature of consciousness, and somehow realize this is the way everything is made.
[citation needed]
It's unknowable whether this is true.
I think I'm drawn to programming because the fiddliness is tractable, and fixable.
In which other domain can I:
* introspect the relevant processes/state, step by step
* snapshot/undo
* fix niggles, once and for all, and for everyone; and get their fixes too
* probe and test my inputs and outputs, checking for quality. Get notified if a part changes in a way that breaks me.
And the only tool I need is a commodity general purpose PC.
When I try woodwork, or even electronics, I'm struck by much friction is in even simple tasks: tools, parts, lead time, safety, space, physical effort, cost, ...
The best I could do with woodworking in the end to approximate programming was live with wasting some timber, leave a lot of margin on the main cuts and size all the pieces as a whole.
Woodworking (the more constructive, furniture-making kind), rewards a deliberate, controlled process and it savagely penalizes mistakes. Those lessons transfer well to other disciplines. I’d have been a much better student if I’d learned wood working in high school.
And also that’s why AI tools create mix reactions. A couple of months ago a post went viral which was really insightful on what I was originally drawn to cs.
https://news.ycombinator.com/item?id=46881264
With wood you are up against nature. With software you are up against corporations and comities.
You're up against your wood vendor. Anyone familiar with Home Depot "fresh from the tree" lumber has discovered this.
Contemplating the details of a thing is really satisfying. At times I find myself sitting there and trying to decompose the astonishing amount of work, research, both evolutionary and revolutionary progress that has gone into reaching the current level of something. Buying myself a coffee and stare at the local ferry and acknowledge that someones life's work went into figuring out how to make the paint stick to metal.
Naturally the other point also sticks.. I too often get stuck on the details. :P
> you could be intellectually stuck right at this very moment, with the evidence right in front of your face and you just can’t see it.
Then we give it to someone else and it fails on their first or second attempt. They simply tried to use it in a way that we did not anticipate. It doesn't mean that we are dumb for not thinking of those possibilities; it just means that we did not think of every one of them.
And it pretty much is most times. For us. But indeed I did run into the "why would they use it like that though" scenario, where it fails. So I have to patch that usecase. At which point I go all "ok now it's really done" until another fringe usecase pops up and so on and so forth. And I did think about how sure I was it was bulletproof, humbling moment.
https://contraptions.venkateshrao.com/p/truth-in-inconvenien...
Venkatesh Rao is an amazing writer as well, I invite you to read some other of his posts. One of my personal favourites: Text is All You Need.
https://contraptions.venkateshrao.com/p/text-is-all-you-need
https://xkcd.com/1741/
But actually in the years since this was written, I do think the world has shifted. Doing things on a computer used to be really hard. Even just installing a framework or getting >python to call the right python on windows. Then install Django and get Django to work with nginx etc. It was just a lot of thankless, frustrating work to get from zero to 1%.
Aside from AI, the tools and packages and culture of computing has gotten better. But AI means you just get all the trivial but difficult stuff for free. And I think a lot of people who would have given up now make it through to see something work and they’ll feel the thrill of building something. It’s just better and easier now.
I thought of this because this morning I was putting a small fence around some plants we want to protect from deer. The fence consisted of 20 sections (bought on Amazon), each about 24 inches wide. Our ground is like rock, and the fence was not that sturdy, so I had to pound a heavy spike into the ground to the depth of the fence posts, then pull the spike out and put each section's legs in, leaving room for the next section's leg to go into the same spike hole. I wanted to be sure I was putting each section in at the right position, lest I end up with a 12 inch gap and have to go back and adjust lots of sections. Long story short, I pretty much succeeded, although when it cools down I may adjust a few sections. But the problem was sort of like the stairs: I wanted an integer number of fence sections, each the same length, to exactly fit around the bushes---just like you want an integer number of vertical steps in a diagonal stair, each of the same (more or less standard) height.
> As you learn, notice which details actually change how you think.
Lovely article. The older I get the more I appreciate this.
One point worth making: in many cases, after learning to see & appreciate the details, you gain the power to ignore the details that don't matter to you. This can be quite freeing.