← Back to context

Comment by jimbokun

4 days ago

The difference is whether or not you find computers interesting and enjoy understanding how they work.

For the people who just want to solve some problem unrelated to computers but require a computer for some part of the task, yes AI would be more “fun”.

I don’t find this to be true. I enjoy computers quite a bit. I enjoy the hardware, scaling problems, theory behind things, operating systems, networking, etc.

Most of all I find what computers allow humanity to achieve extremely interesting and motivating. I call them the worlds most complicated robot.

I don’t find coding overly fun in itself. What I find fun is the results I get when I program something that has the result I desire. Maybe that’s creating a service for friends to use, maybe it’s a personal IT project, maybe it’s having commercial quality WiFi at home everyone is amazed at when they visit, etc. Sometimes - even often - it’s the understanding that leads to pride in craftsmanship.

But programming itself is just a chore for me to get done in service of whatever final outcome I’m attempting to achieve. Could be delivering bits on the internet for work, or automating OS installs to look at the 50 racks of servers humming away with cable porn level work done in the cabinets.

I never enjoyed messing around with HTML at that much in the 90s. But I was motivated to learn it just enough to achieve the cool ideas I could come up with as a teenager and share them with my friends.

I can appreciate clean maintainable code, which is the only real reason LLMs don’t scratch the itch as much as you’d expect for someone like me.

  • What I really enjoy in programming is algorithms and bit-twiddling and stuff that might be in Knuth or HAKMEM or whatever. That’s fun. I like writing Lisp especially, and doing cool, elegant functional programs.

    I don’t enjoy boilerplate. I don’t necessarily enjoy all of the error checking and polishing and minutia in turning algorithms into shippable products.

    I find AI can be immensely helpful in making real things for people to use, but I still enjoy doing what I find fun by hand.

  • See, I do though. I enjoy the act, the craft of programming. It's intrinsically fun for me, and has been for the 25 years I've been doing it at this point, and it still hasn't stopped being fun!

    Different strokes I guess

    • Oh I totally agree! I have a lot of fun chatting with friends/coworkers who are super into programming as an art and/or passion.

      I just was pushing back on the “you aren’t into computers if you don’t get intrinsic joy out of programming itself” bit.

> The difference is whether or not you find computers interesting and enjoy understanding how they work.

I'm a stereotypical nerd, into learning for its own sake.

I can explain computers from the quantum mechanics of band gaps in semiconductors up to fudging objects into C and the basics of operating systems with pre-emptive multitasking, virtual memory, and copy-on-write as they were c. 2004.

Further up the stack it gets fuzzy (not that even these foundations are not; "basics" of OSes, I couldn't write one); e.g. SwiftUI is basically a magic box, and I find it a pain to work with as a result.

LLM output is easier to understand than SwiftUI, even if the LLM itself has much weirder things going on inside.

  • So, can you tell me everything that happens after you type www.google.com<RET> into the browser? ;)

    • Nope, but that was the example I had in mind when I chose my phrasing :)

      I think I can describe the principles at work with DNS, but not all of how IP packets are actually routed; the physics of beamforming and QAM, but none of the protocol of WiFi; the basics of error correction codes, but only the basics and they're probably out of date; the basic ideas used in private key crypto but not all of HTTPS; I'd have to look up the OSI 7-layer model to remember all the layers; I understand older UI systems (I've even written some from scratch), but I'm unsure how much of current web browsers are using system widgets vs. it all being styled HTML; interrupts as they used to be, but not necessarily as they still are; my knowledge of JavaScript is basic; and my total knowledge of how certificate signing works is the conceptual level of it being an application of public-private key cryptography.

      I have e.g. absolutely no idea why Chrome is famously a memory hog, and I've never learned how anything is scheduled between cores at the OS level.

    • Curious if anyone has turned answering this question into an entire book, because it could be a great read.