HACKER Q&A
📣 amichail

As you get older, do you see programming as merely a means to an end?


That is, you become more interested in what your app does rather than the programming involved to get it to do that?


  👤 convolvatron Accepted Answer ✓
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?

👤 spiffytech
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.


👤 Schnitz
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.

👤 dpweb
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.

👤 mooreds
Absolutely.

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."


👤 matt_s
I've mostly operated this way. I'm more practical minded than philosophical about things. I see debates about programming language X has feature A1, etc. and I just don't find that interesting (or discussions about compilers or building a framework, etc.) If I don't see a practical point to implementing something, I just don't spend time on it. I'm perfectly fine with others that want to do this, its just not for me.

I like understanding how things work and using my skills to solve problems. If software/programming didn't exist, I'd probably be an engineer of some kind since that is my mindset. If that were the case, I wouldn't be engineering things in my spare time. Software careers are odd in that some people expect developers to "have passion" and throw every part of their being into it. That's not healthy for any career.


👤 MattPalmer1086
Not for me, or any other developers I know. I still enjoy coding and learning new languages and concepts, for over 40 years.

Having said that, I no longer write software professionally, as I stopped enjoying that.


👤 falcolas
Always has been. Commercial coding is about gluing things together most of the time. The exceptions are too short to be valuable.

When I want to do coding-style puzzle solving for fun, I pull up Zachtronic games.


👤 AitchEmArsey
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.


👤 flashgordon
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).

👤 Barrin92
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.

👤 saurik
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.

👤 richbradshaw
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.


👤 pengo
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.


👤 nightsd01
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.


👤 harel
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.

👤 shmerl
It's a creative process, so why would it get less interesting with time? You can ask a similar question to a writer or an artist for example.

👤 shashurup
As years pass by I feel that I'm starting to be more concerned about the "income" part of the job. At the same time I feel that there are a lot less "bicycles to invent". But while I sleep a lot better when my brain doesn't do coding in background I'm still quite passionate about my job and hope to continue doing it for another 10-20 years.

👤 mosajjal
Definitely. It goes from "I can't get enough of this" to "What am I here to do" gradually, and that's a good thing. I think of it as any digital tool you have at your home (eg TV). You get enthusiastic about the TV itself for a period of time, then you want to focus what to watch and what's a good content to be on that TV.

👤 yawnxyz
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.


👤 hprotagonist
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!"

👤 xem
Been coding for ~20 years and I still see coding as an "end" (ie. an interesting goal) even when I'm making apps or games where the code is invisible to the end user

👤 cc101
I've been programming for 54 years. I still enjoy it. I do admit that the programs eventual use is critical to maintaining my interest. For me it is hard to separate the two.

👤 benzesandbetter
Two decades in, I still enjoy the work itself.

Not every single moment, but on the whole.

The people you're working with, and what you're building have a big influence on this.


👤 Mikeb85
I mean, isn't that what it's always been?

👤 stmfreak
Yes. We get paid by adding value, not lines of code. Sometimes a spreadsheet is worth more than any amount of code.

👤 syntheweave
I think two things happened:

1. I started to run out of things to learn about programming that weren't entirely academic or specialities I'd rarely have need for. So the get-up-and-go of being thrilled by learning something new faded.

2. I became less of a software consumer. In the 90's, it was exciting to see software doing a new thing that hadn't been done on computers before - graphics, sound, Internet, all the rest. I was enamored in that sense: what if I could work on something attention-getting like that? And yet my interest in coding had a sort of "but all the products suck, actually" undertone to it. It all crashed, was under-documented, had some goofy UX fail. I wanted to understand that and do better.

And that conflict, of course, was fostered by realizing that I could do better, but I would have to pick one tiny slice of it to make better. And even doing that, I couldn't expect it to be used by anyone or to result in a career, because most of the professional code-slinging comes from a place defined by platform capitalism: the software is there to be in the way of the user so that it can extract a tax. Making it better isn't really the end goal, it's just a way to get users. And that holds true even if you look at open source and its various cults.

Thus, like a lot of folks, I'd now like to have less of my computing experience be defined by software. Like furniture, it has to exist in my life, but I don't have to like it.


👤 drewcoo
Yes, it's means to an end.

But that end is humans talking. Talking about how to manage what machines do with the code.


👤 armchairhacker
yes: although i still like it whenever there is an interesting and novel way to solve a problem, there is less and less interesting and novel code.

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


👤 i_have_an_idea
Sometimes. But it still feels quite cool when I manage to solve a (tough) problem in a neat way.

👤 psyc
No. I think I have always been more or less equally interested in both.

👤 rektide
Yes and no.

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.


👤 ceceron
Yes. But still I find beauty in great abstractions ;)

👤 mikewarot
TL;DR - It's always been about the ends, not the means.

< Tangent >

Programming has gone through a weird path of effort/reward. Initially, you had to invest time and a lot of money to build your own computer from a kit, debug any errors, and get to the point of having your own, personal computer. At that point, any working results were amazing, as there was a fair chance you were the first person to solve the given problem.

This lasted an amazingly long time. In the matter of less than a decade, the same amount of money, minus the time and effort of building and constructing, got you a computer, could be skipped. For the same amount of money, you got a computer with a display, floppy disks, and it just worked out of the box.

DOS, BASIC, Turbo Pascal, Sidekick, PKzip, and so many tools game flooding in to make those computers even more easier to program, and productive.

It was at THAT POINT, where I started really making money as a programmer.

A decade passes, Windows 95 / Macintosh come along, and we get Visual Basic / Delphi / Hypercard. WOW... the amount of effort goes up just a tiny bit, but you can do amazing things, and that code will run reliably for most of your users without much tweaking on the programmers part.

Then networking, the internet, SQL as a layer, Email, Microsoft Office, etc. all boost productivity for the users. The table stakes remain remarkably stable.

Then the iPhone comes along, and with a lot of effort, and the approval of Apple, you can build a program that people can carry around in their pockets. Apple decides to limit the retail price of apps, and bottleneck things through the App store. Programming gets harder, and more specialized. Ugh

Meanwhile, the web has grown popular, and the idea that a program should just work anywhere shatters the simplicity of a program running on a single computer, directly talking to the OS that controls the display, and takes input. Again, programming gets harder, and more specialized.

Now we're at the point, where you're expected to make a program, sell it for less than a few dollars, support that program on any random phone, and hope that the two app stores don't arbitrarily change the rules and cut you off. The incentives go way up with audience size, and down with the giant filter of the app store.

OR

To route around the damage of the App store, you are expected to make your program available on a server on the web, deal with hackers, man in the middle attacks, wildly varying desktop and mobile web browsers, bandwidth and legal restrictions, to deliver results to a user that might be at a desktop with multiple 4K screens on a gigabit internet... all the way to a person using an phone with no keyboard, who pays for data transfer, and might lose connection at any moment, might rotate the screen, and wants to interact with video, multiple cameras, gps, and any number of other sources of input or output.

After all of that discourse to set perspective. Yes, I find it amazing that it can be done at all. I'm saddened that Delphi on Windows XP was probably the most productive GUI build environment I'll ever experience as a programmer.

It's hard not to see the table stakes now as a huge barrier. For my own personal programs, it brings me joy every time something works. Every time I overcome a series of challenges, and my will becomes a tool... it amazes and overjoys me. I love programming. It's frustrating as hell, but I love it. I fail to see how anyone could stick with it if they didn't, at some level.