I only find it to be painful when done for the corporate world... when I go home, even after 7 hours at the office, I find it therapeutic to push to main, not have a CI, not write tests, test in production, commit with one-liners like I'm asking someone if they want a beer, and overall just code any random idea that crosses my mind... even more so now with AI, because now I can get my ideas out there faster, and believe me, this is serious crapware, but who cares? I don't...
Programming doesn't cause me pain or feel like work. I build projects in my free time because I enjoy solving problems.
One thing I love about programming is that it forces me to understand ideas at a much deeper level than simply reading about them. Writing code requires both step by step reasoning and high-level abstraction. That combination often leads to better solutions and a clearer understanding of the problem.
I often ask myself, "Would I still do this if I weren't getting paid?" The answer is usually yes. That's why many of my projects are completely free, with no ads or subscriptions.
Aside from the human side of it which is often nothing to do with programming itself, I'd say anything that is captivating is only so because its agonizing. If you have a problem to solve and instantly know the solution, there was no problem, just manual labour left not done (using that in the most technical sense). Solving problems is captivating, but it has to be hard or there'd be no problem at all.
Yea solving hard problems can be quite enjoyable, but can easily become a burden on your mind/body over time. When you're clearly making progress, then everything feels wonderful even if it's challenging. But when you're stuck, when your code/model isn't working as designed, if there is a clear gap between your current state of understanding and the amount required to solve the problem effectively, then you can fall quickly into despair. It's made worse when you see others doing similar work to what you do, but being far more successful at it. And made even worse, when you tie parts of your identity to the problem you're trying to solve, and the code you write. But that's the nature of what you're trying to do, so it isn't all bad.
Nah, I have another one: Being confronted with my own stupidity and my own limits in mental capacity. The shocking thing is that this never goes away, even after decades of practice.
For me the agonizing part are all the arbitrary things you have to memorize or lookup, that do not follow from the flow of the code or the principles on which the system is built. Struggling to find the right keywords to find which particular frob needs to be foozled for the program to start working, which may or may not be documented anywhere or written up by someone who already somehow stumbled across the answer.
> Your goals are set by others; information and resources are provided by others. The programmer rarely controls his working conditions, sometimes not even his objectives. In management terms, "one's authority is not commensurate with his responsibility."
I mostly find programming fun, I’ve been doing it most of my life, but I will admit that engineering can be pretty agonizing. I enjoy the stuff, I enjoy the algorithmic stuff, and I enjoy implementing the math and algorithms, but that’s only about half of any programming job I have had.
I derive zero enjoyment from Kubernetes configs, or Terraform, or fucking around with log settings, or screwing around with all the knobs for Kafka. That stuff is agonizing.
> I derive zero enjoyment from Kubernetes configs, or Terraform, or fucking around with log settings, or screwing around with all the knobs for Kafka. That stuff is agonizing.
The click for me was thinking in terms of outcomes and system dynamics. So I make sure to get a good understanding of the final state. Tweaking without a goal is just playing around, or joyless work if you do not enjoy the process.
For me it's the exact opposite. I don't like math. I have very little intuition for it. Programming is not math for me even though people try to tell me that it is.
Programming is my way to create something. It's like drawing or woodworking. It is creative and logical. That's why I don't mind or even like sysadmin stuff. But I know a lot of coworkers that don't like ops and in my company you don't have to do that. We have teams for that.
I love this comment. I never looked at it that way before. I wasn't able to articulate it but "an excuse to do math" is perfect. This resonates with me.
I love writing JavaScript. I like React well enough. I'm not sold on NodeJS, though I'll accept that its struggles are no different than any other package manager.
I just wish the whole thing would stand still for a minute. It's seriously exhausting to keep up with all of the deprecations, rewrites, new "best" frameworks, etc.
I only find it to be painful when done for the corporate world... when I go home, even after 7 hours at the office, I find it therapeutic to push to main, not have a CI, not write tests, test in production, commit with one-liners like I'm asking someone if they want a beer, and overall just code any random idea that crosses my mind... even more so now with AI, because now I can get my ideas out there faster, and believe me, this is serious crapware, but who cares? I don't...
Programming doesn't cause me pain or feel like work. I build projects in my free time because I enjoy solving problems.
One thing I love about programming is that it forces me to understand ideas at a much deeper level than simply reading about them. Writing code requires both step by step reasoning and high-level abstraction. That combination often leads to better solutions and a clearer understanding of the problem.
I often ask myself, "Would I still do this if I weren't getting paid?" The answer is usually yes. That's why many of my projects are completely free, with no ads or subscriptions.
Aside from the human side of it which is often nothing to do with programming itself, I'd say anything that is captivating is only so because its agonizing. If you have a problem to solve and instantly know the solution, there was no problem, just manual labour left not done (using that in the most technical sense). Solving problems is captivating, but it has to be hard or there'd be no problem at all.
Yea solving hard problems can be quite enjoyable, but can easily become a burden on your mind/body over time. When you're clearly making progress, then everything feels wonderful even if it's challenging. But when you're stuck, when your code/model isn't working as designed, if there is a clear gap between your current state of understanding and the amount required to solve the problem effectively, then you can fall quickly into despair. It's made worse when you see others doing similar work to what you do, but being far more successful at it. And made even worse, when you tie parts of your identity to the problem you're trying to solve, and the code you write. But that's the nature of what you're trying to do, so it isn't all bad.
The only things I find agonizing about programming:
1. unrealistic time frames and expectations from non-technical managers, and
2. leetcode
Everything else is awesome.
3. "Best Practices" having changed every time I go back to the frontend
We should just call it "current practices", there is very little best in frontend.
Nah, I have another one: Being confronted with my own stupidity and my own limits in mental capacity. The shocking thing is that this never goes away, even after decades of practice.
Spoiler alert: this happens to literally everyone in every field and profession every single day.
For me the agonizing part are all the arbitrary things you have to memorize or lookup, that do not follow from the flow of the code or the principles on which the system is built. Struggling to find the right keywords to find which particular frob needs to be foozled for the program to start working, which may or may not be documented anywhere or written up by someone who already somehow stumbled across the answer.
> Your goals are set by others; information and resources are provided by others. The programmer rarely controls his working conditions, sometimes not even his objectives. In management terms, "one's authority is not commensurate with his responsibility."
This is the real reason hackers start start ups.
Because you get to solve real problems people have. But you have to work with real people.
I never found programming agonizing.
Never?
Never some intractable bug, that didn't seem to have any relation to the source code you're reading?
I mostly find programming fun, I’ve been doing it most of my life, but I will admit that engineering can be pretty agonizing. I enjoy the stuff, I enjoy the algorithmic stuff, and I enjoy implementing the math and algorithms, but that’s only about half of any programming job I have had.
I derive zero enjoyment from Kubernetes configs, or Terraform, or fucking around with log settings, or screwing around with all the knobs for Kafka. That stuff is agonizing.
> I derive zero enjoyment from Kubernetes configs, or Terraform, or fucking around with log settings, or screwing around with all the knobs for Kafka. That stuff is agonizing.
The click for me was thinking in terms of outcomes and system dynamics. So I make sure to get a good understanding of the final state. Tweaking without a goal is just playing around, or joyless work if you do not enjoy the process.
I suppose.
I guess programming to me was always an excuse to do math, not necessarily to build products.
For me it's the exact opposite. I don't like math. I have very little intuition for it. Programming is not math for me even though people try to tell me that it is.
Programming is my way to create something. It's like drawing or woodworking. It is creative and logical. That's why I don't mind or even like sysadmin stuff. But I know a lot of coworkers that don't like ops and in my company you don't have to do that. We have teams for that.
I love this comment. I never looked at it that way before. I wasn't able to articulate it but "an excuse to do math" is perfect. This resonates with me.
Yeah same. I've been doing this for fun since I was like 9 years old. 30 years later it's still fun.
You must not talk to other developers ;)
But seriously, sometimes its not the code, it's the human factor that's painful, other times, well it's JavaScript.
Or at least the culture around JavaScript .
I love writing JavaScript. I like React well enough. I'm not sold on NodeJS, though I'll accept that its struggles are no different than any other package manager.
I just wish the whole thing would stand still for a minute. It's seriously exhausting to keep up with all of the deprecations, rewrites, new "best" frameworks, etc.
It's agonizing because it's hard. It's captivating because it's possible.