This might seem like an odd question, but I think I've just about had it with programming. I used to enjoy back when I was 11 years old (I'm 31 now), and I actually got to be really great at it at an early age. In high school, I had already knew c++, design patterns and all sorts of things and was building fairly sophisticated stuff.

Then web development became all the rage, and like a lot of people, I sort of got sucked into that - to the point where that's all anyone really wanted. To be honest, I've never liked it.

After learning so many technologies and languages year after year, I'm a little sick of relearning the same sorts of things that I knew how to do before but differently. I am sick of learning the new bugs, design errors and idiosyncrasies of the new technologies over and over again. Sometimes it seems like we are regressing rather than progressing.

The amount of languages you need to know just to get a web application up and running now is just disgusting. It's way more bloated then it should be.

Things have just gotten a lot more complex now too. While I appreciate a lot of the frameworks out today that try to make your life easier, it seems that debugging and knowing what's going on has become a lot harder. I've never come across more bugs in other people's code than I have in the last 1.5 years in my entire 15 years of programming. It is annoying, it sucks out a ton of my energy.

I am just not passionate about this anymore. Learning and working with the technologies for their own sake is just a means to an end - it's not fun. I actually don't care about any of it anymore.

Despite how simple things some things have gotten, it is amazing how trivial problems blow up into solutions that require 4 or 8 hours to fix... and these things have nothing to do with your actual application requirements - it's just fixing crap that other people got wrong.

We're also in a era where frameworks and libraries need to hype their tools and they need to prove to you how easy they are compared to things that have come before... but they almost always make you jump through a billion hoops to doing something complicated. By the time you figure out how to achieve the complex requirements in the new tool, you've lost a lot of time that was more-or-less equivalent to the time it would have taken in the old technology. So what was the point of learning the new technology in the first place? While the old technology required more code, it was more generic and flexible.

You could argue that learning the new quirks for these complex requirements build intellectual capital that can be used later, but by the time you need to utilize this knowledge a second time, there comes yet another new technology that makes this knowledge obsolete.

With websites basically needing to be super rich client applications now, these beasts have become extremely hard to test. No longer can you just write the bulk of your code in a single language, and getting amazingly good at Javascript seems like a monumental task all on its own. We are in the era of mass specialization now, and that doesn't interest me because any projects I want to work on, I have to do by myself.

How do I get out? I have decided that I'm just done with it all. I really want out. I have just invested so much time and energy into being a great software developer for most of my life, it seems sad that I'm basically going to throw it all away.

EDIT

After reading some of the comments, I think these are also problems.

1) Burnout. Regardless of how long I take a break, I have no interest in working on programming stuff when I need to start back again.

2) Not caring about writing "good" software anymore like I used to. You don't get rewarded for doing a job better than 99% of the programmers out there. Nobody cares if you do it well either. It's actually kind of amazing that skill and craftsmanship and care is not a value to most people in this industry.

3) Boredom. Writing mindless queries, business logic and pumping data to a view for so many years is just not interesting. After working on 1500-2000 database tables and the application logic that worked on them, I don't find any of this kind of stuff interesting or challenging.

4) Producing value. Nothing I work on really matters. Sure, it matters for the clients, but it doesn't really matter to me.

This question has been asked before and already has an answer. If those answers do not fully address your question, please ask a new question.

2

@Benjol: Wow. Amazing. Thank you. It seems the #2 answers for that read like me exactly. I mean the guy that took 4 months off and still couldn't get back into it? That's me. Also, that bit about producing meaningful stuff that you actually care about? Yeah, I agree with that. Nothing I work on actually matters. I don't care. I also used to see myself as a craftsmen, but yeah, this era requires a crapload of compromises and stuff too. It seems like I'm not the only one.
–
egervariOct 20 '11 at 5:11

Are you sure you hate programming or just the kind of programming you do specifically? There's plenty of C++ jobs out there!
–
Doug T.Oct 20 '11 at 12:56

1

@Doug T.: I'm not sure. I'm confident that IF I still enjoy programming, it would have to be something that was basically never going to talk to a browser and probably never talk to a database. Basically anything that has something to do with the web/http protocols and the enterprise space. I'm really quite sick of it, not challenged by it, bored by it, burnt out by it, etc.
–
egervariOct 20 '11 at 13:50

@egervari If you're still around, I'm curious, given the depth of your experience and you actually standing behind Scheme in a question, what about mastering JS seemed like a monumental task? Regardless, if it can't be rekindled for programming I hope you find a fire for something else but if you ever want to get back to basics, I'm feeling like C + JS via Node.js is going to be a lovely combo (as soon as I've trained myself up in C better).
–
Erik ReppenJun 22 '13 at 1:57

1

First of all hats off to the question and I appreciate that you asked. And I am now feeling happy that not only I was thinking same as you have asked here :) (y)
–
NullPointerApr 16 '14 at 15:56

9 Answers
9

If this question is sincerely seeking an answer; study all that goes into a career change.

What I think this is more or less though is frustration. Frustration with your current environment. You are at the point that the frustration has rolled over into your career path and that can be toxic.

Take a look at what is really spawning the frustration.

I know you mentioned numerous things but learning can't be that bad can it? Fixing other peoples problems will exist in every other career you could possibly embark on. When you deal with other humans, you deal with their positives and negatives. Are you feeling left behind and instead of pushing forward bowing out feels like the easier path?

Identifiying the root cause of this frustration is critical. After the initial analysis you may find yourself at a better understanding on why you are frustrated and realize it may have absolutely nothing to do with your current career.

If you do however still find yourself at the point of needing a career change, look at the aforementioned link and jump in.

I am sincere. I've changed a lot as a person in the last 5 years. I am nothing like the person I was 5 years ago, which probably has a lot to do with this. I would say frustration is at the head of this too. It seems like every day goes by, I'm always running into some problem or other. There's no platform out of all the available options that I really like - and I've used a lot of them. The limitations in many technologies often drive me nuts. They said, "Should be fine for most projects", but I often ask myself how my usage case could be any simpler than what is. This is a recurring theme.
–
egervariOct 20 '11 at 4:49

2

I am not finding it hard to learn technologies. I'm a smart person - a lot smarter than the average developer. Sometimes I think I build better frameworks and tools that I would enjoy using more, but I don't have the kind of time to dedicate building this stuff. The industry is also moving further and further into a direction I find myself not caring to much for. I'm going to check out your link. thanks
–
egervariOct 20 '11 at 4:51

I don't really think the question is programming specific, but since I was in a similar boat about 7 years ago, here are my thoughts:

If you've got some savings, something on the order of a year's worth of living expenses, stop worrying and just try something new. I spent a year or so drawing up a business plan for something non-software related, and just went for it when I realized that my time was up, even though all my calculations showed me that the odds weren't in my favor. Go volunteer for a while, or start training or studying something completely new to you, or wander off to a remote spiritual pilgrimage, or start a business. What you do matters only to the extent that you can convince yourself it's worth a try.

Chances are your frustration has little to do with the technical issues you're dealing with now. You're probably actually a) bored b) frustrated with your current work environment or c) hoping the grass is greener on some mythical other side. That's fine. It doesn't really matter. Just find a new challenge and invest some emotional energy and time in that.

Realize it's not that hard to come back, so don't worry about what direction you end up trying out. I was pestered by recruiters for most of the two years I stepped away from software-related work, and when I started running low on money, I just took a short term gig that I wasn't emotionally invested in but was in a domain I knew well, and I was far better at it because I was no longer concerned about my career progression and I just focused on solving interesting problems. Your career crisis may be different than mine, but time away from it will do you good.

One of my friends hiked across the country for about a year after getting rid of most of his worldly possessions. He's only been looking for work for a week or two and has at least one offer already. I started a business on too little money and got the business to cash flow positive after a misstep or two, but realized there wasn't enough money in it without resources I didn't have. A more aggressive person than I would have sought VC or angel money, but I took a couple of contract gigs and got back on my feet, and realized I didn't dislike software all that much after all. Whether your next step is successful or not isn't important. Get your mind off your current frustrations for a while and more doors will open for you. You'll either be incredibly happy with your choice or you'll realize the grass isn't so green.

So quit... go back to school, get another job, just bum about for a while.

If you're in a position financially where you can afford to live on reduced income for a time you'll be able to try out a few things and see what floats your boat. You might just find you need a sabbatical to clear your head and refresh yourself.

It really sounds like you're fed up working for a company that continually switches in current buzzword technology.

I was in that sort of position a few years back where the company I was working for was making a huge shift away from an embedded application built mostly in C to a "cloud" application built in Ruby. Ruby is a great language and the company was good to work at, but the direction didn't enthuse me much. I saw another job in C development and jumped ship. Haven't looked back.

There is still a huge amount of work in real programming, particularly in embedded code. You should consider looking in the jobs section for programming jobs in technologies you're familiar with that aren't the flavour of the day. You might be quite surprised at the sort of work that's out there.

Oh, and find a non-programming related hobby that you can do instead of sitting in front of the computer when you get home.

School is pointless and I've done the bumming around part... so the only thing to do is change careers. I don't think sticking with Java/Spring (my main platform experience for the last decade) would really bring me a lot of satisfaction - they are all bad options. I've used grails, rails, and a host of others too. None of the web/enterprise stuff interests me anymore at all. I'm burnt out by it frankly. The change in direction to immature and unsupported technologies with little to no documentation... or constantly out of date documentation... just adds to the frustration and intolerance.
–
egervariOct 20 '11 at 13:53

1

As for your last point, I doubt it. Software design is like playing chess - when you think up a design, you need think 8 moves ahead to see if it's going to work or not. A lot of these new framework developers and plugin authors basically thought 1 move ahead, if that, which causes them to produce code that is insufficient for complex needs. Rails has undergone dozens of iterations to compensate for this, but still suffers from this lack of predictable foresight. While I am not perfect at predicting what the future may bring, some of the trivial design problems and lack of thought is evident.
–
egervariOct 20 '11 at 13:59

I won't deny that good abstractions that are also easy to use and don't require a lot of extension are hard to write, but that doesn't mean it's okay to not think about a simple and elegant design solution to the problems. Sure, you can refactor your way to that design... eventually... but sometimes it's better to just go to Starbucks and think it through before you begin coding. Refactoring is a tool to clean up design mistakes you didn't forsee... it shouldn't be your only design method that you use at all. Unfortunately, the new era of programmers only know how to code first and think later
–
egervariOct 20 '11 at 14:03

1

You've asked for suggestions. We gave you suggestions and you shat all over them. Why don't you just tell us what you'd like us to say so we can say it and you can feel all warm and fuzzy about how the 'community' supports your decision.
–
Adam HawesOct 21 '11 at 1:23

1

And stop picking on frameworks like Rails. So they don't meet your needs... The whole lot is freely licensed and available at no cost to you. Either participate and improve it or STFU! (And I can say that with impunity because you claim to be a programmer - someone who can dive in and improve things if they want).
–
Adam HawesOct 21 '11 at 1:27

How do I get out? I have decided that I'm just done with it all. I
really want out.

There's no problem getting out of programming. Just walk away. The field will survive without you, I promise.

The problem is getting into something else. Starting in a completely new line of work with no experience could prove challenging.

I have just invested so much time and energy into being a great
software developer for most of my life, it seems sad that I'm
basically going to throw it all away.

Do you want to get out, or don't you? From your rant, it sounds like you just don't enjoy building web applications. You do know that programming skills are useful for more than just building web applications, right?

What other types of applications can I build? I really don't know honestly. I may enjoy it more if I just worked and tested my code in 1 language all the time. Hell, programming things that are actual programs not just code written on top of a database would be refreshing. Basically anything that avoids writing mindless queries and pumping data to a view.
–
egervariOct 20 '11 at 5:20

2

@egervari Seriously? For a "great" programmer, you seem to have a very limited view of programming. From where I'm sitting right now, in a room that doesn't appear to be chock full of electronics, I can see at least 15 devices that depend on software. Possibilities include games, mobile applications, desktop applications, embedded systems, enterprise software, scientific applications, financial systems...
–
CalebOct 20 '11 at 5:47

It's tunnel vision for me. I've done the web/enterprise stuff for so long, that's all I really noticed. I don't own any devices and stuff. In fact, I hardly use software outside of Windows for anything else anymore - I try and unplug actually. I use software for mixing music, but that's it. I haven't kept up with where other software is being made. That has nothing to do with intelligence - it has a lot more with being busy, but also less interest in gadgets and technology as a whole. Like I said, I don't care anymore. Out of all the things you said, Games would be the only thing interesting.
–
egervariOct 20 '11 at 6:14

The few times I've felt like that in the past have definitely been related to my specific working environment. I found that going to a big developer conference, learning about new stuff that was completely off my radar, and meeting people who are smarter than me, were a few things that gave a new lease of life to my waning motivation.

Oh, I changed company too :)

Now I'm working on something that I actually think is worthwhile - so even though the technology may not always be what I'd choose, I'm motivated because I'm actually producing something of real value (not just websites to make rich people richer)...

If you have a CS or engineering degree, consider going to law school and becoming an intellectual property attorney. You work on new technology in every case that comes across your table. You become an expert in some crazy intricate field while often glossing over the annoyances of the technology (e.g., IT admin, getting the project to build, etc.). Also, your "product" is your own written-word either as an opinion or persuasive argument, something that is often much more personal than a chunk of code within a huge project. (not to knock programming, I still love it).

You don't have to be a patent troll or sue/defend massive companies like Apple in their patent wars. You can help start-ups grow, work for public service organizations like the Software Freedom Law Center (SFLC), the Public Patent Foundation (PUBPAT), the Electronic Frontier Foundation (EFF) or many others. There is lots of great work to be done and it can be very rewarding.

It's not for everyone. The first year of law school is grueling, it costs lots of money, and in this economy job prospects are difficult (although those with engineering degrees have it easier). Something to consider though.

I'll also add, that the things you learn in law school can enrich the way you think about things generally. You learn to spot important issues, negotiate, poke holes in logic, and more. These skills may make your friends dislike you in casual conversation, but I think they help you critically analyze the world, which makes you a more well-rounded person overall (pardon the cliche).
–
speedplaneOct 20 '11 at 5:47

So don't throw it all away. Take a break for a while, and promise yourself you'll reassess in 1, 3, 5 years time. Try a change of scenery, it sounds like you aren't in a good place, so maybe looking for someplace where people share your passion for error free, less framework dependent code.

If you really are going to get rid of this piece of your life completely, while it is fresh in your mind, make a list of your skills and try to find skills in other fields that match up (e.g., "attention to detail, I could use that as an accountant or an editor", etc. That way, once you are looking into other things, you'll have a ready list to use in cover letters, interviews, etc.

That's the thing... I have taken breaks. Sometimes I don't program at all for a month, and the first day I get back into it, I realize how much I hate it. It doesn't matter which technology I'm using. Yes, web development especially gets on my nerves. To be honest, I would enjoy working with 1 or 2 languages - not because I want to dumb it down, but I think it's simpler to add/change things rather than having to deal with all of this decoupling. Even Rails 3.0 has more languages than a Java/Spring application would need. Every framework gets off course eventually.
–
egervariOct 20 '11 at 5:02

1

I think I'd like to write books or something. I also find myself being highly interested in philosophy, politics and things like that. That stuff is buzzing through my mind 24/7.
–
egervariOct 20 '11 at 5:03

1

@egervari Look into something like Cognitive Science, I think you'd get a kick out of it. You could eventually bring some programming to your studies, but you would by no means have to. It's not philosophy or politics directly, but you'll get a good framework to study the basis of all thought and reason.
–
jonscaOct 20 '11 at 6:15

You have to ask yourself: are you tired of the corporate/office life, or do you want to stick with that and change direction?

I have seen a few people get tired of programming and change over into team management, project management and business analyst type positions. These positions all deal with programmers, but involve no programming work themselves, and can be paid just as much or more than programming.

Moving into a pure management role will turn things upside down for you, as your focus will be on considerably different things. From the sound of it though soon enough you will get tired of that as well, because as you learn how a business operates you will find things there that you don't like, and you appear to be the sort of person who wants to do things a certain way. If that is you, then the only way to break out of that rut is to work for yourself, run your own company - then you can run it any way you like, and create product any way you like (the market will determine if you are right with your approach).

I've always been self-employed for the most part. You're right - I do things my own way. I'm a Type A personality for sure. I don't like to follow the orders of people who are often tell me to do the wrong things and won't listen on how things can be done a better way. I've been there, done that. Never again.
–
egervariOct 20 '11 at 6:22

You might want to think about a sideways career change into something like QA or Technical Writing.

For what it's worth, I also burned out with programming and am currently working on getting into Testing, with the goal of potentially getting more into the QA and possibly BA side of things. In my case, the frustration with programming was possibly a bit different to yours: it was mainly to do with my aptitude and patience being far better for analysing things (from the "outside", from a step or two back) than synthesising and building things at a very low level. But that's all by the by.

Once you identify exactly what bothers you about programming in very fine detail, it really pays to look at related fields which could use someone with a strong development background. You might be able to find your niche or a new career in one of these.

The reason why programmers often burn out without seeing these alternatives, at least in my experience - is that we tend to be a very one-track-mind bunch in the way we look at our careers. We partly even have to be, due to the sheer volume and fast evolution pace of the skills and knowledge we have to acquire. We simply don't have the spare energy and time to step back enough to see how our skills and experience might be transferable to other semi-related fields, which we might actually enjoy more and/or be better suited for. We just work ourselves into a burnout instead.

What you're saying has some truth to it honestly. I also am really good at analyzing things, and would probably make a stellar QA person. Would I want to do this? I dunno. Would it be better than programming? Probably. What other fields would require someone with a ton of experience in software while not having to program? I am not familiar really, so ideas are always helpful.
–
egervariOct 20 '11 at 6:31