14 ms·
"After a while, more and more, you’ll find yourself in moments of awe, stunned by the size and fragility of it all; the mountains of work and talent and creativ
by rufus_foreman 6y ago
"After a while, more and more, you’ll find yourself in moments of awe, stunned by the size and fragility of it all; the mountains of work and talent and creativity and foresight and intelligence and luck that went into it. And you’ll reach for the word “magic” because you won’t know how else to describe it and then you lean back and smile, wondering how someone could not."
I guess I wish I felt like that about programming. But more and more, I feel like this:
"You are an expert in all these technologies, and that’s a good thing, because that expertise let you spend only six hours figuring out what went wrong, as opposed to losing your job. You now have one extra little fact to tuck away in the millions of little facts you have to memorize because so many of the programs you depend on are written by dicks and idiots."
-- https://www.stilldrinking.org/programming-sucks https://www.stilldrinking.org/programming-sucks
- superbcarrot 6y ago> because so many of the programs you depend on are written by dicks and idiots Out of all the problems with programming as a job, this is around the bottom of my list.
- rufus_foreman 6y agoI'm working on an app that calls other internal services inside our company, one of them is a call to update an account balance. We were running into this issue where we were getting a 504 Gateway Timeout on the update balance call so I eventually found the Slack room for that team and asked about it. They ignored me for a couple weeks, but I kept asking and eventually someone answered and said yeah you'll get the 504 Gateway Timeout if you try to update the account balance to the same value that it already has. OK, that makes sense to you? What if there was an actual gateway timeout? You would also get a 504 Gateway Timeout in that case. They apparently have no plans to modify this service's behavior. I let it go, I just moved on with my life. I did not find myself awed or stunned with the mountains of work and talent and creativity and foresight and intelligence and luck that went into it.
- infogulch 6y agoI can guarantee you that 5 other teams rely on that specific behavior and don't have the will/independence ("budget") to implement that change if the api was fixed. Not only that, but if they did make that change, their manager would instantly have a handful of directors down their throat demanding an explanation why they just added work to their teams that are busy with Feature Work (TM).
- reaperducer 6y agodon't have the will/independence ("budget") to implement that change So, dicks and idiot middle managers. I think you made his point.
- philosopher1234 6y agoNo. This is such a small issue who honestly cares if it gets fixed? I guarantee you this is not the most important thing anyone involved could be working on. Too many perfectionists on this website.
- sixstringtheory 6y agoThe person who brought up the story mentioned account balances. Someone will definitely care when a latent combination of bugs is triggered and the company loses money because of it. See Knight capital and the more recent Citi debacles.
- WrtCdEvrydy 6y agoThis is a total failure to follow any sort of standard. A 504 is a gateway timeout due to the server failing to complete the action, hell, a 400-level for "you fucked up" would be preferable.
- fastball 6y ago4xx would be what you want anyway, no?
- jbob2000 6y agoOr this: “Find creative ways around standards, limits, laws, processes, morals, etc. so I can make a quick buck and pass you some table scraps”
- xwdv 6y agoOr worse than table scraps: pieces of paper that may be worth something someday if you keep working hard enough.
- fiddlerwoaroof 6y agoI just treat startup equity as a lottery ticket: but, I find the work itself interesting and would be programming even if it wasn’t my career.
- xwdv 6y agoTry buying some FDs on the stock market for an actual lottery ticket that might pay better than startup equity ever will.
- Bakary 6y agoThe system and forces that make this table scrap arrangement possible are the same forces that generally drive the salaries and perks of tech workers much higher than the average for other professions. It's healthy to be cynical but it's also important to look at the overall balance of power of the social classes. The 9% versus 90% makes more sense than the 99%
- xwdv 6y agoYes but if you go from 99% to 90% you increase your number of enemies 10x.
- andrewflnr 6y agoI feel both, depending on how my day is going. They're both true.
- beaconstudios 6y agoAwe and contempt are basically the same feeling, but with the charge flipped. The author is amazed that it works to the degree that it does, you're amazed a how things don't work the way you want them to. Such is the power of framing, I guess.
- throwawayboise 6y agoI used to get emotional like this about programming, both the awe and the contempt depending on circumstances. Now, after 30 years, it's just work. I don't really feel anything about it. And that's kind of the way everything is. Nothing is new or exciting. I wake up, work, do household stuff, eat, go to bed. That's life. Not interesting, not depressing, just neutral.
- carlmr 6y ago>Not interesting, not depressing, just neutral. The absence of feelings sounds exactly like depression.
- beaconstudios 6y agoDepression is a bit more complex than that though. You can be emotionally neutral if you're just not strongly affected by what you're doing, it's probably the default state if you've done something for a while. I'm emotionally neutral when I brush my teeth.
- carlmr 6y agoTrue, let me rephrase what I meant then, if everything, day in, day out, feels emotionally neutral, that's very depressive sounding.
- beaconstudios 6y agoYeah for sure. Anhedonia (no longer enjoying things you used to) is a strongly associated symptom. Of course it could just be a rut and you need to shake up your routine, introduce some variety, but that's matter of severity rather than category.
- jhauris 6y agoI've felt both ways at different times. Both are true. The fact that anything ever works is part of the magic.
- cmrdporcupine 6y agoThe longer I am in this profession (and it's been over 20 years) the less I see my peers as "dicks and idiots" but more as victims of the same broken game. I work with very smart people, to be honest. It's the technology and the employers and the culture of development that's the problem. Retiring sounds good right about now.
- PragmaticPulp 6y agoHow so? The job situation for good developers has never been better. We can make salaries that would have seemed unthinkable two decades ago while working from home and doing something we enjoy.
- Grimm1 6y agoThat's true but that is to offset the really negative aspects. How many places never let dev's actually design systems that stand up to scrutiny because the execs don't care if BS is pumped out because as long as the business floats then it doesn't matter. Then the code base becomes a mass of spaghetti that at this point the revolving door of devs have to both figure out and keep alive in ever increasingly stressful situations until they either burn out or move on for greener pastures perpetuating that cycle. So far in my career the split is 60:30:10 places who don't care about actual engineering and run their business on crap, those who recognized things are biting them but the amount of inertia you need to counteract things and rebuild is huge and then the very fine percentage of places that actually have a good culture around engineering. The first is horrible because you're a fungible asset and the job is miserable the second is better but still bad because at this point they do see you as valuable but you're going to be spending your time digging them out of a grave and then the third is just a magical experience where you're valued and the codebase isn't constantly a light breeze away from collapsing. The majority of the industry is in position 1 and I guess we'll see if it ever makes it to 2 or 3. Worth noting that I made high salaries and could work from home in every case but it would be correct to say I continue to enjoy programming in spite of the industry. I also don't think it's a coincidence that companies who are in group 3 are typically leagues ahead of 1 and 2.
- LordHumungous 6y agoSo all the difficulties in engineering are due to "dicks" and "idiots", unlike like the author who is presumably the only clever person in the entire industry. Here is an example of one thing I actually don't like about this profession: too many emotionally stunted egomaniacs.
- disgruntledphd2 6y agoTo be fair, it's actually a pretty entertaining article, and if you haven't read it, it's definitely worth taking the time for it.
- aspaceman 6y agoWrite more code - solve fewer problems. Engineers solve problems. We use our expertise to take stressful and difficult problems and reduce them into simpler ones. You cut through bureaucracy and a healthy amount of talky bullshit to solve problems. The better you are at this, the more you're rewarded as an engineer. But this is a taxing process. Writing code is creative. You find your own problems, and solve the ones you want to solve. If you don't want to solve something, you let it fester - or nurture it - as you wish. Take a look at Racket. Read a book about Lisp games programming. Find an old C64 and learn some BASIC. Check out PICO-8. Or see Inigo's SDF website and try out some shadertoy. Ignore practicality, or focus only on your individual practicality. Engineering is a discipline and that makes it tiring over time. You don't always have to be improving something.
- pschw 6y ago> Read a book about Lisp games programming Any recommendations?
- aspaceman 6y agohttps://nostarch.com/lisp.htm https://nostarch.com/lisp.htm Land of Lisp by Conrad Barski. I picked it up in a humble bundle for a couple of bucks and really enjoyed it. It was unabashedly nerdy and fun, and I really liked being exposed to that again.
- dmingod666 6y agoI don't know about most people but devs should have their own personal knowledge management system ( do it on any tool, notion, evernote..) but it's an absolute must. These facts you talk about are fleeting and in the moment the revelations of the learnings seem so clear, but 4 weeks and all the little details go out the window. Save all your little Linux command pipe chains. Config values that worked and few sentences of caution to your future self of what to do and not to do. Otherwise you're just going to make the same mistakes in an years time...
- rektide 6y agoCan I get a raise of hands for folks who think "Dream Machines" is the #1 book on software? How about for those who believe that Engelbart's Augmenting Human Intellect is a driving force for humanity? And that software is a radical embodiment of that all? I think we can get a modest show of hands; I've seen enough confirming points of view from about. (Would that I have a memex to highlight all the mentions I've seen, all the other endorsements!) Elsewhere I've talked a bit about whether we are romantically engaged in software development. Or whether we are justifying ourselves, merely up to fun. And I think this comment hones in a lot on what the real chase of this all is, on where we can be radically romantic & hopeful & builders of enduring meaning. It's good advice, for just trying to get better. But this act of enhancing ourselves, learning, cobbling together pools of wisdom: it's the meta-act, it's what software development enables, for software & for other areas. A push for excellence. Software both requires us to improve ourselves, to learn, but it's also a tool for learning, for augmenting ourselves, for becoming more than what limited things we might otherwise be constrained to develop into. Working not just with but on personal information systems, is, in my view, a nearly sacrosanct act. I see developers like Karli Coss[1] as vanguards of humanity, a bringer about of higher orders & new ranks of human development, via software. Don't merely just use a knowledge management system, develop them! This is the core point, the core enablement of software, and it's not automation or products or ai that has ultimate relevance: it's this human development, this getting better at getting better. Invest yourself into knowledge management systems, build them to further reaches. Pick up really good open source tools like Foam (built as a vscode extension!) & build plugins, expand, grow! Excel! Keep expanding the reach that your mind can travel, by actively engaging yourself in building better bicycles of the mind. [1] https://github.com/karlicoss https://github.com/karlicoss [2] https://github.com/foambubble/foam https://github.com/foambubble/foam
- pmarreck 6y agoEven the smartest programmer will eventually fail to understand every detail and implication of a system due to cognitive load limits, and thus bugs. Which is why languages that feature less cognitive load to understand (such as functional immutable languages) are a better direction for tomorrow’s code. If a function called from your known scope cannot modify anything you pass to it, that’s an entire class of bugs made impossible to create.
- arcticbull 6y agoThat’s my favorite essay of all time, and an incredibly accurate.
- aidenn0 6y agoMost programmers are not idiots, and whatever degree they are dicks, little of the dickish behavior is directed towards leaving traps for future developers. That poor code gets written is due mostly due to the constraints (both technical and non technical) around writing code. As a further aside, I've never been in fear of losing my job if I couldn't solve a bug. If you have been (for any other reason than the fact that not solving the bug would be an existential threat to your employer), then may I suggest finding a better employer?