I think it’s more the move to understanding business context and more of a product mindset. Outside of “purely technical” libraries, most applications are sponsored and written to solve business problems and to add value. Under this lens then how the software helps produce value is more important than how it does it.
As a counterpoint though, good software practices ensure the application is reliable and easy to modify as the business needs change, so it’s not just about shipping features with no regard for software quality.
Not yet at least. I primarily like the job because of the programming itself. Here in Germany there doesn't seem to be as much of an age bias as people sometimes mention on here so I hope I can just continue doing it without being forced into some business or management role.
i've been doing it almost 40 years professionally. while i still enjoy the craft sometimes - when has it ever _not_ been a means to an end? even if that end is scratching some non-comercial itch or looking into how to program with immutable values, there is always an end outside of the typing itself. or have I been missing something this whole time?
I’ve always been driven by some innate urge to solve difficult problems. The job came as a fortunate artifact of that. I would be programming no matter what my job was.
I’ve witnessed so many debates on my years about tabs, spaces, MVC, DCI, MVVM, TDD vs test first or unit, functional, integration testing etc etc (all stuff that does nothing to actually further the building or a product to deliver real business value) and even then I saw some utility but now I have no patience for prolonged debates about them cuz it just doesn’t matter.
I value simplicity, readability, and the ability to iterate on features quickly over everything else.
Back when I was a kid, I used to code games in QBASIC and later in C with Allegro. At that time, i didn't really cared about the final form of the game. The thrill of constructing something and Learning about the technology was everything.
Now, 30 years later I code to get money so that I can do things with my family and spend quality time. As time has passed I've found myself less and less interested in Learning yet another framework.
A couple of weeks ago an MRI detected some old micro-infarcts (never felt anything unusual) and now I'm in Aspirin for life... deffinitely puts things on perspective.
I could easily see this going in reverse also: someone who spent a long time doing something as a means to an end--which is a natural way to begin working on something in earnest--realizing the depth of the craft itself and getting lost inside of it.
I make my living as a writer and I don’t care about writing at all. I like having written because my writing solves problems but the actual act of writing is just a means to that end.
Well, I guess different people have different experiences. I know writers who enjoy writing.
The act of writing implies the whole creative process. Coming up with good ideas is akin to inventing something. And getting good insights is usually quite satisfying.
For work stuff yes, personal stuff no. Although the personal projects are never finished so really have no commercial value - just the fun of doing them.
For myself, coming from a design bg, I think of programming (working on my programming) as a paint brush that lets me do more stuff / open up opportunities for both work and creativity.
Whether a project itself is a means to an end depends on how much and how deeply I care about the project.
I have since day 0; my background for why i got into coding at all was "Ugh, i have all this damn lab data i need to analyze and i really want to know what it means; guess i have to learn something better than excel!"
May I ask what you do now? I’ve been pretty successful in my career so far as a 25 year old Senior SWE, but realize that at some point there needs to be a pivot, most likely towards a managerial role or other field.
I moved into info sec. I was always interested in cryptography and software security. I don't write code in my work anymore, but I do review it from time to time.
I wouldn't necessarily say you have to pivot out of development. Plenty of gray beard developers out there. At 25, I hadn't even started programming professionally!
I'm unsuccessfully trying to go the other way - but that's because I was never a developer to begin with.
Writing code (or even working with computers at all) is not something I ever aspired to. I put this down to the impact Microsoft software had on IT education in the UK in the 90's - computers were for miserable people with pallid faces who never smiled, poking around in Access databases.
Now, I work all day every day on a computer because a career as a scientist doesn't pay an acceptable amount. However, since I never studied computer science or did and significant programming early in my career, I've circled around the field doing sysadmin and project management work. I find myself too senior to take on the kind of programming tasks I can reasonably handle - there is no time allowance for me wanting to learn some of these skills in more depth. Doing personal projects and changing jobs could get me into writing code, but only with an intolerably large pay-cut.
The sad thing is, my field (scientific computing) needs exactly the skills I am aiming for - but since no-one will pay sensibly for that kind of work, people either steer around it like I did, or just jump sideways into DevOps or other "retail" IT.
I guess I am lucky since I enjoy coding itself so immensely. Whether I’m coding on a side project or coding for work, I love it all. This has not really changed over the past 8 years.
The people I know who view programming purely as a means to get a high paycheck don’t tend to last very long or achieve much success especially in FANG, they burn out because it’s hard to excel in something you don’t have any passion for. Imagine trying to be an author but not caring about writing - good luck with that.
Umm as we get older isn't everything a means to an end? Don't get wrong I love coding but many people I know moved away from doing it professionally as they got more joy and challenges on side projects than at work (or ended up moving to management to learn "people design patterns")! Ofcourse now the job is just a means to an end (sustaining all the meaningful activities to partake with family and friends).
I’ve always enjoyed solving a problem with code but I’ve never enjoyed coding for coding’s sake. I always have some other end in mind, even if it’s only leaning a new language or framework or pattern. I think it’s actually quite an advantage because if you’re too lazy to write code that doesn’t solve a real problem you’re less likely to over-engineer things.
I round down my years of commercial coding to 25. And I still enjoy it. I am now in a position to select projects based on interest in the problem, but I also value my time so there is no compromise on my fee. Code is a language and as such it's means to communicate. Its just that you communicate with a machine. And if you get an agreeable reply, you communicated well. Same applies to natural languages just without the predictability.
I think I've always felt that way, but I only started realizing it in the last few years.
For me the appeal of programming is the appeal of making, of bringing something into existance that reshapes the world around me. Without my work serving an end that resonates with me, it just feels hollow and like a chore.
Sometimes I do enjoy working through into an intriguing programming task with no real purpose, but only in small doses. I couldn't spend all my time doing that, just like I enjoy candy but I need to have a real meal, too.
How much do you enjoy programming that's very deep and sophisticated, something only other experts could understand and replicate, versus a problem that's low-hanging fruit in a technical sense but that nobody thought to use programming to solve?
I keep finding in my (not specifically programming) career that my moments of joy come more in being an enthusiastic amateur, in taking an automation task from nothing to something, rather than taking something complex and making it slightly more complex and slightly better.
I feel the same way. I gravitate towards smaller projects, where I can have a significant impact quickly. It feels good to write code that gets something done, even if the task isn't complicated.
Some problem domains are unsolvable without sophistication and expertise, but those often don't appeal to me. E.g., I wouldn't want to work on a database engine; a lot of the work goes into things that are aren't especially visible or into deliverables which I don't find interesting, and it tends to take a lot of work to improve small things.
Some people really like that stuff. They may enjoy the challenge, or the personal growth, or the cleverness and reasoning. Myself, I enjoy making things happen through making stuff. I don't particularly care for puzzles, and making things more challenging hurts as often as it helps.
I like working on things where I'm glad whatever I made now exists. Whether it required senior skills or junior isn't so important to me.
Once you build 1 or 5 beautiful codebases that get trashed because the business shifts or you didn't solve the right problem, you get more interested in the problems the app is supposed to solve. At least, that's what I felt.
It's also why I've explored other, tech-adjacent roles like technology instructor and devrel.
One way I described it to a colleague: "At a certain point, I got sick and tired of talking about design patterns and wanted to solve problems with more leverage."
I got into programming in 1990 as a business manager with a need that could realistically only be met with a software solution, and no budget. I thought "how hard can this be?", took a laptop home and taught myself BASIC.
Even though I moved full-time into development in 1996, writing code has always been about meeting a business need. I've never been particularly enamoured of the process or the tools, and put more initial effort into architecture in an effort to do less programming.
A lot of yes, because most work is not important. Any developer-idiot could do the task, more or less about as well, with very little difference for the user/output. Most tasks dont really matter.
Sometimes the work we do is more foundational though. We are laying out systems or structures that will be built on ongoingly. Ironically usually the best thing one can usually do here is work really hard to write as little code as possible, to invent the least systems that we can. Architects's perspective is to try to frame the problem, to try to build a pattern for future devs to use, but this so often ends up a vainglorious quest at solving yesterdays problems while making tomorrow difficult. Usually some helper libs reinforcing the de-jure language libraries are far more effective than a totalizing framing. Rarely are fancy system flourishes good or needed.
Still, I cant help but think most programming has yet to be discovered. Programming as we know it is very limited, the systems & patterns we have serve us well for building big, tightly coupled consumer apps & services, which require expert training in development & lengthy onboarding in the company to begin to have any competency in. The while system feels bogus. So little gain has been made in making comouting personal, in unlocking the magic jinn's within. This write-once understand-never model of programming feels mortally limited & hazarous to both computing & society's general welfare.
Thinking long & hard about what programming & systemcraft goes in to building things, & turning this from an esoteric procedural work which must be stepped through to something declarative & intentional, a clearly defined system of capabilities & actors that bespeak what they do (rather than merely compute outputs), is an enticing alluring bright future that i think, i hope, i believe gets us away from the bleak sad world where no one cares how anything is built, where the insides are hidden away happenstance trash, where quality is not regarded in the faintest until well well after the fact that it's causing far far too many defects.
There's so many hopeful visions & frontiers for better programming, so many reasons to care deeply about programming. But the hopes & visions fall upon such a deaf unhearing unfeeling unseeing world, a world woth no taste, no refinement, no care, no discernment. Programmers in large part have stopped caring because no one else has the aptitude required to care & invest, & alas, we have done very little to on oard the rest of the world into caring about, being able to engage honestly & directly in computing. The cycle is broken, and we have become sad coding machines, with the means we engineer relegated to irrelevance.
46 comments
[ 0.15 ms ] story [ 102 ms ] threadAs a counterpoint though, good software practices ensure the application is reliable and easy to modify as the business needs change, so it’s not just about shipping features with no regard for software quality.
I value simplicity, readability, and the ability to iterate on features quickly over everything else.
Now, 30 years later I code to get money so that I can do things with my family and spend quality time. As time has passed I've found myself less and less interested in Learning yet another framework.
A couple of weeks ago an MRI detected some old micro-infarcts (never felt anything unusual) and now I'm in Aspirin for life... deffinitely puts things on perspective.
The act of writing implies the whole creative process. Coming up with good ideas is akin to inventing something. And getting good insights is usually quite satisfying.
Whether a project itself is a means to an end depends on how much and how deeply I care about the project.
Having said that, I no longer write software professionally, as I stopped enjoying that.
It really just depends what you want to do.
When I want to do coding-style puzzle solving for fun, I pull up Zachtronic games.
Writing code (or even working with computers at all) is not something I ever aspired to. I put this down to the impact Microsoft software had on IT education in the UK in the 90's - computers were for miserable people with pallid faces who never smiled, poking around in Access databases.
Now, I work all day every day on a computer because a career as a scientist doesn't pay an acceptable amount. However, since I never studied computer science or did and significant programming early in my career, I've circled around the field doing sysadmin and project management work. I find myself too senior to take on the kind of programming tasks I can reasonably handle - there is no time allowance for me wanting to learn some of these skills in more depth. Doing personal projects and changing jobs could get me into writing code, but only with an intolerably large pay-cut.
The sad thing is, my field (scientific computing) needs exactly the skills I am aiming for - but since no-one will pay sensibly for that kind of work, people either steer around it like I did, or just jump sideways into DevOps or other "retail" IT.
Like I used to think functional programming tools like monads and lambdas were interesting when I discovered them, but now they’re just another tool
The people I know who view programming purely as a means to get a high paycheck don’t tend to last very long or achieve much success especially in FANG, they burn out because it’s hard to excel in something you don’t have any passion for. Imagine trying to be an author but not caring about writing - good luck with that.
But that end is humans talking. Talking about how to manage what machines do with the code.
For me the appeal of programming is the appeal of making, of bringing something into existance that reshapes the world around me. Without my work serving an end that resonates with me, it just feels hollow and like a chore.
Sometimes I do enjoy working through into an intriguing programming task with no real purpose, but only in small doses. I couldn't spend all my time doing that, just like I enjoy candy but I need to have a real meal, too.
I keep finding in my (not specifically programming) career that my moments of joy come more in being an enthusiastic amateur, in taking an automation task from nothing to something, rather than taking something complex and making it slightly more complex and slightly better.
Some problem domains are unsolvable without sophistication and expertise, but those often don't appeal to me. E.g., I wouldn't want to work on a database engine; a lot of the work goes into things that are aren't especially visible or into deliverables which I don't find interesting, and it tends to take a lot of work to improve small things.
Some people really like that stuff. They may enjoy the challenge, or the personal growth, or the cleverness and reasoning. Myself, I enjoy making things happen through making stuff. I don't particularly care for puzzles, and making things more challenging hurts as often as it helps.
I like working on things where I'm glad whatever I made now exists. Whether it required senior skills or junior isn't so important to me.
Once you build 1 or 5 beautiful codebases that get trashed because the business shifts or you didn't solve the right problem, you get more interested in the problems the app is supposed to solve. At least, that's what I felt.
It's also why I've explored other, tech-adjacent roles like technology instructor and devrel.
One way I described it to a colleague: "At a certain point, I got sick and tired of talking about design patterns and wanted to solve problems with more leverage."
Even though I moved full-time into development in 1996, writing code has always been about meeting a business need. I've never been particularly enamoured of the process or the tools, and put more initial effort into architecture in an effort to do less programming.
A lot of yes, because most work is not important. Any developer-idiot could do the task, more or less about as well, with very little difference for the user/output. Most tasks dont really matter.
Sometimes the work we do is more foundational though. We are laying out systems or structures that will be built on ongoingly. Ironically usually the best thing one can usually do here is work really hard to write as little code as possible, to invent the least systems that we can. Architects's perspective is to try to frame the problem, to try to build a pattern for future devs to use, but this so often ends up a vainglorious quest at solving yesterdays problems while making tomorrow difficult. Usually some helper libs reinforcing the de-jure language libraries are far more effective than a totalizing framing. Rarely are fancy system flourishes good or needed.
Still, I cant help but think most programming has yet to be discovered. Programming as we know it is very limited, the systems & patterns we have serve us well for building big, tightly coupled consumer apps & services, which require expert training in development & lengthy onboarding in the company to begin to have any competency in. The while system feels bogus. So little gain has been made in making comouting personal, in unlocking the magic jinn's within. This write-once understand-never model of programming feels mortally limited & hazarous to both computing & society's general welfare.
Thinking long & hard about what programming & systemcraft goes in to building things, & turning this from an esoteric procedural work which must be stepped through to something declarative & intentional, a clearly defined system of capabilities & actors that bespeak what they do (rather than merely compute outputs), is an enticing alluring bright future that i think, i hope, i believe gets us away from the bleak sad world where no one cares how anything is built, where the insides are hidden away happenstance trash, where quality is not regarded in the faintest until well well after the fact that it's causing far far too many defects.
There's so many hopeful visions & frontiers for better programming, so many reasons to care deeply about programming. But the hopes & visions fall upon such a deaf unhearing unfeeling unseeing world, a world woth no taste, no refinement, no care, no discernment. Programmers in large part have stopped caring because no one else has the aptitude required to care & invest, & alas, we have done very little to on oard the rest of the world into caring about, being able to engage honestly & directly in computing. The cycle is broken, and we have become sad coding machines, with the means we engineer relegated to irrelevance.