So You Don't Want to be a Programmer After All

I have been programming since the age of 10 and always enjoyed development ranging from high level architectural planning to low level programming and reverse engineering. I think programming is a kind of creative art and this is what I enjoy(ed) in it so much. Getting into the flow and implementing my previously well though-out evil plans or walking in the park and thinking about problems and solutions or simply trying/learning new things.

However, this world is quite far from being ideal so there are several problems to face as a programmer:

Nearly 100% of the companies have a system in place which promotes “ladder climbing”. Universities “produce” career programmers because most companies need it and built an environment to make use of this. I think the barrier for entry to a programmer job is quite low so you can get in regardless whether you are naturally good or just a career programmer and above the barrier you are measured by the “years of experience” when it comes to ownership and to some degree compensation. Creativity and brains aren’t needed: 99% crap shovelling and production of glue code (this is usually called a “solution” with officially correct spelling). Implementing systems again and again with the same well known patterns/skeletons and bugfixing unreasonably complex and buggy codebases.

It’s quite demotivating when someone with much worse tech skills has the decision power and earns twice as much. I had to face things like this quite often early in my “career” about a decade ago. Being a talented programmer isn’t enough. You have to be good in “business” too, otherwise you will be exploited and/or ignored. I thought by proving myself to be good and useful I would be rewarded. Huge mistake made by a lot of techies. In reality they reward only your negotiation skills. For this reason I don’t care anymore. I interview for a well paid job or contract, then 9-5 and go home to work on my own business. I plan to free up as much time in the future as possible, maybe then I will be able to do the things I like: for example programming, picnic, reading, sunbathing, etc…

While I managed to pick up these stupid “business like” skills I can’t enjoy my “career” that is forced upon me. Hobby programming is about creative art and freedom. Jobs in general are about generating money (or “value”), meeting deadlines and playing stupid corporate games, shovelling crap. Develop negotiation skills, build an image and reputation as a recognized “expert” and then you can make use of your job or contract at least as a money generator. Perfect for a career programmer especially if we are talking about a nonconformist one. If you are a talented programmer and want to enjoy programming then this is probably not for you. Start a hobby project and you might create the next popular framework that will be used by stupid companies (oh, sorry - forgot that you have a job and don’t have time for programming…).

During the last decade I had the luck to work only on a single project where tech talent was really rewarded and valued (not only with good compensation, but also with trust and freedom to act). Such companies and projects are probably rare. In my opinion most companies don’t need a talented techie who cares, but don’t even deserve one.

1 Like

I started to really start programming at the age of 15. Before that I had barely fiddled with HTML and JavaScript, barely enough to make even a generic and boring site. From there, I was inspired by my older brother who currently is a Software Engineer at Shutterstock as he invited me to work on a React.js site. We played with React-Bootstrap and had a lot of fun bridging the front end and the Node servers we were using.

I’m currently pursuing a degree in Informatics with a Concentration in Software Development and a Minor in Computer Science.

I currently know JavaScript, a little Java, and have dabbled in other languages, and love making websites with HTML5 and CSS3 since it really has a lot of flexibility. I have used React and other things, but express.js and raw HTML/CSS is where my home is, currently, as I don’t have a real development job in college.

I really have to say, that after experiencing a few Comp Sci classes already, they are very boring and certainly not for the faint-hearted. These courses are so concrete and molded into just “PROGRAMMING”. To me, they are interesting and cool because it’s how my mind works and technology is my favorite way to express myself, but for anyone that hasn’t gotten into programming at all, or even slightly before school? Definitely depressing and mundane for most people.

To be fair, web development and server architecture is certainly very different from assembly programming and hardware development, but I personally feel that at least my school didn’t pitch Informatics properly.

The way they explained it is literally just, “Computer Science but with more Business.” At a very basic level, that’s kinda right, but it’s really not. At least at my school, this degree involves Web Development, UI Design, Server Architecture, Databases, Information Technology (IT jobs, like Business Systems) and even Graphic Design if you will. On top of that, there are the, what I would call, “Computer Science of Informatics” classes, which involve JavaScript, Python, and a few other languages used in Web and Server development.

The other major part is the involvement with business and current events. The computer science program here is very focused on just content while informatics exposes you to current events, business, and business/job opportunities.

At the end of the day, a Computer Science degree is far more involved and complicated as it involves a lot more mid and low-level programming, and then with Computer Engineering, being able to branch the Hardware and Software interface and learning about even more Calculus, Physics, and basically enough information to be an Electrical Engineer. It’s certainly not for most people. However, the Informatics/IT world is much more diverse and is a little easier to comprehend.

Believe me, I love learning about the MIPS architecture and how a processor works, it’s fantastic and answers a lot of questions I’ve had since I got into computers as a child, but I don’t really see myself doing that for a living. I would much rather develop a website or manage some servers for a large company.

There’s more than just programming at the low level.

1 Like

I came here looking for a shoulder to cry on, and find out what other people who think the same way said.

I was a career progammer but gradually found myself geting less and less interested in it. I once found it extremely rewarding, but now it’s just boring and painful.

I’ve tried to remedy it by spending hours online looking through hundreds of pages of fashionable and old programming languages, editors and APIs, trying to find something I care about. I’ll noodle around with it, get bored and read a book.

It annoys me because I still have ideas for software products but I haven’t found a way to make the process of making them stimulating enough to go ahead. Same today, dragged myself to my PC and looked around for something interesting, failed, and then Googled for “I hate programming”.

If I’m honest, I think it’s associated with mental energy. To continue with programming you must be able to absorb the minutiae of new languages quickly and reliably. You can’t just get a nice overview and get to work. You need to be consumed by details. Progarmming is a precision task with thousands of little facts you must have straight. It’s the mental equivalent to obsessively collecting grains of sand, analysing the minutiae of every single one of them.

I don’t even like programmeres. I don’t like university computer-science lecturers.

As a teenager, it’s easy. As an adult, it’s hard, and it’s hard to care. I don’t even admire programmers anymore, I look at papers today and think “That’s clever, but who cares?”.

I don’t admire what programmers do for a living anymore. I think about what it’s like to write software for a living and it was only fun before I became aware of the world outside it. It’s actually quite a miserable profession and I can’t think of any programmers right now I’d want to trade places with. Not even the ones who are famous for work I admire for its technical ingenuity.

I also think it’s the dividend. Practices like music and writing are easier to accomplish and more rewarding.

Take musical composition, you can get started just understanding keys, chords and changes, and with that you can write credible music in minutes and the outcome is more interesting for others who can actually appreciate what you’ve been doing with your time. Essentially, there are other tasks which are both easier and more rewarding, and more appreciable to other people.

Prorgramming is spending hours perfecting technical achievements that nobody except a small number of other cave dwelling geeks appreciate.

What’s the point? I’d rather go outside, go to a bar and grab a sandwich.

I don’t even envy my wealthy friends in software or hardware anymore. They are succesful on paper, but their jobs deny them most of the joys of living.

It depends on the code. You’re exercising code we wrote… right now!

I completely agree that working on internal plumbing that almost nobody will see, use, or appreciate is extremely unsatisfying. But the good news is there’s a lot of software that gets in front of a lot of people these days, whether it is websites, web apps, or even smartphone apps.

1 Like

For me it’s how the system’s changed. You can no longer do anything today except through a software wrapper of one sort or another. So, I’m not a computer progarmmer anymore. I’m a software developer still, but the target platform is other software running on top of a software stack. It’s me, I don’t like it. I may as well be sitting there with an app if as a developer I’m going to become what I used to call “button pushing” and hated.

How do I write a GUI? Widgets toolkit, GTK+, OS API, QT…? I don’t care. I don’t want to have to go through a third part software application to get coding. Which is bad luck because if I want to use a contemporary language I don’t really have any choice, unless it’s Verilog. Even if I try to program in assembly, I’m still ultimately going to have to program for the GUI API because the OS won’t allow me to get past it.

I’m a cinspiracy theorist and think this “black box programming is good” model is pedalled by OS vendors and hardware manufacturers because it means the jobbing programmer can’t get under the hood.

It’s like being a car owner mechanic but the engine bay is in a sealed unit and if you can’t fix it from the drivers seat you have to file a bug report with the manufacturer. Open Source fixes this a little bit if you want to become a repo contributer but you usually can’t expect payment for your work and anyway most of what you still have to code for isn’t OpenSource, like graphics drivers. You can’t write code for the graphics card anymore. You Must go through the API.

There is only two ways through it I can find: Either suck it up and just get into HTML/CSS/Javascript and accept the broser is the OS, or buy an FPGA board and keep those ideas for hobby projects, because other than that, you can’t do system design anymore. When that was once the whole fun of coding.

What I must do today to work as a programmer is precisely what I became a programmer to avoid doing.

Most broadly useful suggestion in this whole discussion, better than the article itself, thank you!

3 Likes

In general yes, I agree, but I take issue with this specific statement

There’s no way you want to be running a fast food joint or restaurant!

2 Likes

When I was in school, back when the world was young and dinosaurs roamed the Earth (wait, no, that was just our 40# laptops), my CS curriculum’s standard-issue “101” / “Intro to <some new bullshit>” course in the Computer Science department was taught in straight-up Kernighan & Ritchie style C, because it was 1992 and the entire CS curriculum was taught in straight-up Kernighan & Ritchie style C aside from a couple of one-semester courses specifically focused on other languages.

(The theory behind that was, learning any new language takes some time before you can be expressive in it, and a bit longer still before you’re fluent enough to ignore it and focus on the algorithms and concepts behind the code. So, better to go through that just once in the beginning, rather than waste a lot of time on switching languages — the language didn’t matter, since it was just a way to express ideas. If you truly learn to program well, you can manage in pretty much any language, because language is just syntax. …That is an extremely sound theory, and I feel it has served us all well through the decades since, so I applaud our CS faculty’s vision, as well as their commitment to fundamentals and conceptual understanding.)

However, because the language of choice throughout the undergrad CS curriculum was, in fact, K&R / ANSI C, in terms of the first-year programming course this meant that there was no getting out of tackling pointers. Can’t get very far past writing hello.c without having to face pointers, when you’re writing C code.

Each semester’s lesson plan was structured so that the course got around to covering pointers before the add/drop date for the semester had passed. This, too, was a very deliberate choice on the part of the faculty, as they wanted to provide an escape hatch for any budding young computer scientists who, upon coming face-to-face with the realities of allocation, storage layout, access, and indirection through raw memory addresses manipulation, had a sudden epiphany that their purpose in life lay down a different path.

Multiple students usually took them up on that each semester.

So, yeah, I can definitely understand where someone might be coming from, when they hit that “Whoa, this isn’t actually right for me at all!” point. Just too bad modern high-level languages don’t have many learning cliffs quite as steep and intimidating as C pointer math, to scare people off with. Could save 'em some time.

3 Likes

(For the record: I’m not saying that learning pointers is somehow harder than any other concept in any other language out there. Nor am I saying that the students who bailed weren’t “smart enough” to learn them. I’m just saying… writing pointer code suuuuuuuuuuuucks and it’s some of the most tedious coding you can do. So, it’s totally understandable that someone might imagine having to spend 8-10 hours every day doing that for the rest of their life, and just #NOPE right out on all that noise. They’re the lucky ones. The rest of us, the ones who stayed — we’re the idiots. Or masochists. Or masochist idiots.)

1 Like

Right, there’s a good Steve McConnell quote on this

Programmers working with high-level languages achieve better productivity and quality than those working with lower-level languages. Languages such as C++, Java, Smalltalk, and Visual Basic have been credited with improving productivity, reliability, simplicity, and comprehensibility by factors of 5 to 15 over low-level languages such as assembly and C. You save time when you don’t need to have an awards ceremony every time a C statement does what it’s supposed to.

1 Like

This post was instrumental in encouraging me, a couple of years ago, to commence a career pivot from software engineering to technical writing—after more than two decades in the former role. I spent much of 2020 taking on some freelance documentation tasks, and this month began a new full-time job as a writer for a small startup.

This change has worked out very well so far. It seems possible I’ll stick with this track for the remainder of my career.

I have shared links to this article several times, and often feel the need to apologize for the title, which speaks to a much narrower audience than the whole text does. In my case, I wouldn’t say that I “don’t want to be a programmer after all”; a bit late for such sentiments from me! If anything, I’ve mastered programming, and grew bored of doing it for others. I was ready to move on, and articles like this one helped me find a natural career tangent would continue to build on all my experience, rather than chucking it all and becoming a sidewalk painter or something.

So… thanks, Jeff, and everyone!

2 Likes

That’s great! :hugs: You bring up a good point about the article title but it’s been so long now that we might as well continue to roll with it.

1 Like