Have you ever written code for an application? Day in and day out, writing it every single day for months on end. I have, and I hated it every single time I get stuck doing it. I have turned down higher paying jobs than I have to avoid doing it. The real irony is, I used to enjoy doing it on my own in my personal free time. I can’t really do that much anymore. Doing it professionally sucked the enjoyment out of it.
The Nature of Programming Work
Programming becomes fairly routine and boring after a while. You become glad for the challenges that require you to solve them…. then after much research, you realize your solution is a bunch of tedious code writing. Or, if you are unlucky, you are stuck in a co-located team and while trying to work out a complex problem everyone around you is talking loudly and making concentration difficult. Of course, you also have no motivation to solve the problem because you already know the solution is probably a bunch more code you have to write.
Thousands of lines of code, all with slight variations to it so you can’t duplicate it or make a class or function out of it to recall that code (*classes and functions are basically chunks of code you can reuse by writing code to call it up into the program. A Class is usually made up of several functions or method – names vary by language). Or you made a class and now you have to create a thousand function calls to that class each requiring a different parameter.
Your solution to everything is more of the same code. If you get lucky, you get to Google something you have never done before. Then you write some new code a thousand times and it becomes just like the code you have written before.
It is a bit like writing a book, but you already wrote the story (the classes) and now you just have to order the story and the story sometimes needs to repeat over and over again with a different main character name.
Think about a website you go to and it has a bunch of links on it that goes to other places. If you manually created that website, you would be repeating this line below for each link, the bolded parts need to be changed:
<a href="The link you want to direct a user to when they click it" id="link" class="linkClass" alt="Place a description here">The text the user sees</a>
And that is HTML. It tends to be easier and also doesn’t require a whole lot of code in and of itself. Most HTML isn’t even written in HTML anymore, it is written inside of a backend language that writes the HTML to the page for you when you need it. This can make it worse to work with especially in a really dynamic page.
Solving the logic problems is just about the only part I like. I looked for those challenges and tried to solve those. This usually left me with a bunch of simple code to write – over and over again with slightly different parameters.
This complaint says nothing about the horrors of dealing with other programmers code or old code, old naming conventions merged into new naming conventions, inefficient practices or lack of tools to follow any sort of structured practice, spaghetti code or other technical debt, and increased likelihood of having to work in an open office. Many organizations think collaboration means “more meetings” so you end up in a lot of meetings that have no point. Then – despite Agile’s claim to adaptability – a customer request comes in that was never on the horizon and never considered an option. The current code cannot easily integrate the request and has to be rewritten (side note, it rarely gets rewritten, it gets cobbled together because they wanted it two days ago).
My Problem Sometimes
I take a job that requires very little programming or no programming – then the employer discovers I can do it because I am an idiot and tell them I can. That results in my job transitioning to a more programming heavy role. I have nearly stripped out of my resume all of my skills with programming and now shy away from a lot of jobs that even remotely look like they might transition that way. I want to make sure I am not going to be sitting there writing code all day.
I don’t want to spend 8 hours a day writing code. I hate it, I can’t even enjoy it in my free time much anymore. I started an Android game back in 2016, it’s still unfinished because I can’t bring myself to sit down and enjoy the process. I used to maintain code for my own Roku channel (since 2013) for home movies and have updated it over the years. I haven’t touched it since 2016 and it was in need of an update so I dumped it and paid for a pre-packaged solution.
My last job that evolved into being a heavy programming job – I struggled with my last month there. I literally had the code open and stared at it for hours some days not writing a single line. I had to provide status updates weekly and on status update day I had only completed about a day’s worth of work in a week. I am rather surprised no one caught on and fired me, but I didn’t much care at that point anyway. It wasn’t supposed to be an application development job but due to my big mouth and grand ideas, I inadvertently changed it into one.
I knew what I had to write. I knew what it needed. I maintained a cheery exterior of “I am working on it” but inside I was dying and just dreading writing those lines again and again. I think this is why I picked up a lot of contracting jobs, I can walk away when the contract is done easier if they want me to spend all day writing code.