Hacker News new | comments | ask | show | jobs | submit login
Ask HN: I am 30+ and bored with life and the software industry, what do I do?
175 points by zippy786 on July 25, 2015 | hide | past | web | favorite | 128 comments
I used to love software/programming but it's getting boring now. It seems so clear to me that so much futile effort is being put into building yet another language, yet another editor, yet another UI rework, yet another infrastructure rework. And for what, just because people would have something to show for. Seems the number of people trying to come up with futile things for the sake of popularity has outnumbered the ones who try to do real work.

The hate for one language as if other languages are elite. Trying to use all the features of a language and thinking a one liner is cool even when a five liner and a one liner is same when compiled into machine code. Too much jargon, falsely claimed software engineering practices and overly zealous object oriented mentality (Seems people try to use Object Oriented for everything, they call it the best, even better than simplicity in many cases.)

Quite frankly many years of self hacking/studying and experience in industry, I think I've just had it with software industry. Does it get any better ? Am I seeing things correctly ? Is this a burnout ?

Try diving deeper into real CS, there is the entire world of things that can revive your passion. If you mainly were focused on building CRUD apps and websites it's not surprising to get bored and burned out. Get out of your typical routines and try finding challenging stuff to do. Some ideas:

* Figure out how to write AI for games. A simple example would be, how to write a bot that finds shortest path out of labyrinth.

* Check out graphics programming

* Try to see if low-level programming is for you: kernel level, GPU, OS

* Check out infosec industry, there should be a lot of fun there: malware analysis, penetration testing, etc

* Machine Learning: tons of coolest stuff. predicting, classifying, reinforcement learning, neural networks. Check out Kaggle machine learning competitions.

* Checkout competitive programming sites. My personal favorite is hackerrank.com, but other popular ones are topcoder.com, codechef.com, codeforces.com. Try doing challenges for a couple of weeks you may find that you learnt as much as you previously learned in a year. Also through it you may get interested in particular algorithms and fields.

* Distributed programming, system engineering. How to build systems at scale? How to process tons of data in parallel.

If you don't seek for the new challenging things to do that could improve you, then you will find boredom and burn out in any field.

An Ode to "CRUD" Apps:

There's nothing unexciting or less complicated or challenging about producing good CRUD [sic] applications.

I don't understand the industry cynicism towards producing good quality "bread and butter" software for any vertical market.

It takes years of experience to learn good (relational) data modeling.

It takes years of dedicated attention to assemble tried, tested and efficient user interface designs that your user community loves to use on a daily basis. User interface design (and yes, we are talking about your "boring" invoice capture screens here) may seem easy at first glance to be dismissed as unexciting, but almost every real world example is a challenge that requires creative thinking. Many are implemented badly.

It takes hard knocks experience to add gems of strategies to your repertoire of "boring" reporting solutions. Producing industrial volumes "TPS reports" may sound boring, but architecting reliable and efficient reporting solutions is hardly easy.

Another challenge of the "1 inch deep and 1 mile wide" mental specter associated with "CRUD" apps is managing the challenge of excatly that - the 1 mile wide sprawl. Each CRUD app may be simple and boring on its own, but how do you manage several of them on one site such that each one not only operates efficiently with its own specialisation but also as an integrated whole with others? These are not simple or by any means boring.

I love CRUD apps. I love seeing different CRUD apps in specialised domains and how similar concepts of the CRUD world manage to solve specialised needs of a particular niche.



CRUD apps are to programmers what walls are to carpenters. There may be an artistry to making good walls and there are lots of ways the task can be made challenging. But, 99% of the time, the customer doesn't care about the artistry that you put into the wall. They just want the damned thing up as fast and as cheaply as humanly possible. I think that might be where the root of the OP's boredom comes from. Doing the same (relatively) low skill task over and over for years would make anybody bored.

If we were to use the wall analogy, I'd put it this way: the customer should care about the structural integrity of the wall, how much load-bearing weight it can carry, or whether extensions can be added easily to it etc.

So while getting "the damn thing up" may be the burning expectation in everyone who isn't making the wall, the wall maker knows the consequences of poor work and it is his responsibility to educate folks who depend on said wall.

>architecting reliable and efficient reporting solutions is hardly easy.

A billion times this! In retrospect, it's kind of funny that at my previous engagement, I was doing things which were kind of unusual to me and yet I was feeling bored and depressed. Now I'm back squarely in the CRUD world and learning so much. It's one thing to write applications that perform these tasks, it's a whole other ballgame to make those applications performant, scalable, and a delight to interact with.

> User interface design (and yes, we are talking about your "boring" invoice capture screens here) may seem easy at first glance to be dismissed as unexciting, but almost every real world example is a challenge that requires creative thinking.

But how does this tie in with the manager who says 'it's just an invoice screen, why are you taking so long' probably based on the mentality that $ revenue is proportional to # features.

Wrong question, how does a bad manager getting in your way tie in with building well-designed quality CRUD applications?

Obviously the problem here is the manager, not the fact that you want to write and build quality work. Especially if they run on flawed assumptions such as "the mentality that $ revenue is proportional to # features".

You can't build quality under shitty management like that.

There's markets and jobs for both types: some desire cheap & shitty, others are willing to pay premium for solid, beautiful & well-designed.

Fair enough. This sort of standoff with pointy-haired managers is always politically tricky. You have to show the manager that there is business value in creating effective and efficient user interfaces and that "getting it right" ultimately saves money. If you are developing software for high-volume capture, your manager will understand that doing it correctly is the main feature.

Also, I've noticed many end users are not confident to comment on what they believe is an inefficient interface. So, problems with user interfaces are not spoken openly unless the interface completely blocks the user from completing his/her task. It takes some amount of permission-giving from the developer's side to get valuable feedback that would otherwise not be spoken about.

Unfortunately in the enterprise, the purchasing decision maker is usually not the user, and may not even use the invoice screen before deciding to buy. So in the short-medium term it is not in the interested of the business to make it awesome. In the long term ... maybe.

The exception to this is in situations where the market is being disrupted. For example when the iPhone 3g came out it just made any other hard-to-use smart phone look like shit. And thus the competition was forced to catch up.

However in enterprisey applications we are a long way off that. The awesome invoice screen may add value to the customer, but not much if none of that will be captured by the provider of the software.

Unless a certain class of invoice screen is on the list of must-have things the buyers must have, because it is a particular pain point. In which case you will be told by the pointy haired boss to make it awesome, it won't be your choice as the developer.

Damn I sound cynical!

Your point about users is spot on, and we have all been such users. I mean you have used MS Word ... right? And often at work we have to use such applications. We just push on through. Users that are not programmers may not even know to question it, they assume that is the way it is unless they have used a competing product.

I think what bothers programmers is that creation of CRUD apps seem like something that could be automated/abstracted. And it partly has been, which is why so many freelance jobs involving Wordpress, Magento, Salesforce, etc.

Any of these are fine... but don't shy away from activities that aren't "pure software": Play with hardware (robots!), learn to weld, go play tennis, go scuba diving.

Along the way, you might find {activities, collaborators, products, ideas} that get you really excited. And since it's not "pure software" there will almost certainly be lots of opportunities to have a major impact! Software is eating the world, and almost every "non-pure software" activity is hurting for good programmer help.

Hi beambot!

That's great! Many of us have done the other way: approaching programming via robots. If you are tired on programming, do something that moves AFK: create a robot. You can start from small. There are hundreds of people sharing their insights so you can learn fast and do your own. Try here: letsmakerobots.com


Indeed, i agree. (I have a PhD in robotics... See profile.)

I used to love low-level graphics programming (drawing polygons, fractals), closely worked with people doing kernel stuff, have a CS degree in Machine learning, doing infosec for fun and have dealt with quite a bit of distributed/system/database stuff to scale.

After some time, these challenging stuff have the same problem, being mundane. Specially constraint of work environment and people you have to deal with. Plus some of the "coolest stuff" just blows up with overfitting and seems to be a mere hype to me.

How does someone like John Carmack continue to find passionate areas of interest for himself? He's still painting pixels on a screen, but he seems to continue to explore parts of his programming palette that excite him -- most recently, Occulus Rift. If you are truly not feeling inspired for anything programmatic, maybe it's best to take some time off and wait for new inspiration to strike.

He also answers to nobody. If you want to escape the constraint of the work environment, you have to found your own company or go freelance.

I strongly second this. I started out doing software development for desktop, user-mode Windows specifically, and diving in deeper (embedded) and into true CS has only made me more excited for software.

Well said. Computer Science encompasses so many things, and the things you're fed up about (elitism in the community) make up just a small part of the territory. Ignore this, and take some time to explore other projects/technologies, like the ones suggested above. You'll no doubt find something that interests and excites you.

The wonderful thing about our line of work, especially these days, is that it's so easy to find projects, learn about them and participate. It just takes time and perseverance :).

I was there some years ago. I realized that the root cause of the problem was focusing on the wrong things (at least they were wrong for me).

Tools are just that - they are tools. Granted, there are many of them, new and shining, coming in all packages, but that gets tiresome after you've spent a substantial period of time with them. They are all essentially the same and sooner or later you lose interest in them.

What never gets boring is using tools to create things that affect people's lives. And I gather from your message that you've missed that joy.

My advice is simple. Think of some thing that would be helpful to (non-technical) end users. Come up with some kind of service that would solve even a small problem for them. Then see your eyes light up as people are adopting your offering and giving you their thanks.

In short, your work must have a meaning. You should know that somehow what you do improves the world we live in, even if in a small and seemingly insignificant way. For as long as you're just finishing tasks prepared by somebody else for somebody else's meaningless projects, you're not going to be happy. As with all creative professions, in programming too you have to take matter in your own hands.

You've just realized (subconsciously) that your work has been meaningless. You basically need to find your path. What you could do:

- Forget about the tools, just pick up something you're comfortable with and create something useful for people

- Change jobs until you find a project you can personally identify with and where you'll see you work affecting the outside world in a tangible way

- Change profession or role to the one where your need for meaning will be satisfied

That's hard I know. I wish it weren't but it's just the way things are in life.

Amen! You've said it far better than my attempt.

I did exactly that. Ended up creating something new. It has meaning and it worked.

Spot on.

It sounds a lot like burnout, that happens when you've worked really hard to achieve something which, after achieving it, you come to realize wasn't all that important to you personally. It can really take a toll on you mentally.

It can also be something of an intra-life crisis. For some reason 34 hit me really hard. I think part of it was that suddenly I knew that there was some things that I had considered "something I'll do some day" were probably off that list, permanently. Like a friend of mine who realized he wasn't going to ever be one of the world's top jazz musicians. (for me it was being an astronaut) And the realization that this is "all" there is, you live, you experience life, and you die. There is no "win" there is only great times and not so great times. All of that came down pretty hard on me in my 30's.

My coping mechanism is finding something new to learn, but that certainly doesn't work for everyone.

My coping mechanism is finding something new to learn, but that certainly doesn't work for everyone.

Some other ideas:

- Spend your free time (and take some extra time off) to do something new non-computer related: gardening, mountainbiking, climbing, etc. Sometimes, computers are just work (until you have more inspiration), which is ok - it pays the bills, find the challenge somewhere else.

- Try some vipassana meditation classes. It can be really insightful to see how the mind works.

- Take a year off, travel the world (relax a little before a real burn out hits you).

- (If applicable) Start a family :). We have a 1.5 year-old daughter, it's great to just watch her play, going for a walk in mountains with her, etc.

You can save up $200,000 for Virgin Galactic, it has some delays and problems but I think it will be ready in time for you to experience being an astronaut. (Training, preparation, take off, landing, and telling stories about it). If it's what you want to experience, go for it.

If not Virgin Galactic there will be another company.

Space tourist != astronaut, if they will ever deliver. Roughly like being a bus passenger is not the same as being a busdriver.

I suspect most people don't have much of an interest in the actual job of being an astronaut. Simply want to experience a trip into space.

Well in my case it was "doing science, in space!" which was something I thought would be really cool, after all if you're in space you're already in a target rich environment for discoveries, and then getting time to do science there? Well no end to the things you could find out. As a kid I used to write down space experiments in my notebook[1] that I would do when I was in space.

[1] Not exactly epic experiments though, I recall that one of the sillier ones was tie two fans together at the base, with their blades facing opposite directions, and see how fast it would spin.

So you've stopped drinking the Kool-Aide ?

I totally agree with you. Technology for the sake of playing with technology gets stale after a while.

The software industry loves re-inventing things and attaching new labels. You are absolutely correct that regardless of what language/paradigm/methodology you use eventually every program results in machine level instructions being executed. In some cases less efficiently than in other cases. It's not about the program, it's about the problem being solved.

Only you can decide, based upon the other comments and preferably after competent medical advice, whether your situation is a case or burn-out, depression, mid-life crisis, etc.

Assuming that it is none of the above, then you might want to consider finding a "real world problem" and using your knowledge and expertise to create a solution for it. If you can't find any worthwhile problems (yet) then go travelling! It will open your eyes to a massive, colourful, complex REAL world out there with its myriad problems. Sooner or later you'll find something you care about enough to want to solve.

Something I also wanted to say. Consider changing your scenery. It might give a boost to your morale and supply you with new and better ideas. Perhaps find a job on another continent for a change.

You've not burned out, you've matured as a programmer. You can see all the crap for what it is so now try and make a difference...

Champion the cause of code that's legible - and that doesn't mean covering it in syntactic sugar. Legible code makes it damn obvious what it does and how it does it. Sometime find the "power take off" for a tractor ... that's what you're trying to do.

You can also champion the cause of not fixing that which is broken. There is also fun to be had demonstrating the technical debt is real debt and it does need to be paid back.

Much fun introducing peer review, too.

Get yourself, your team or whatever to sit next to your damn customer. Have them look at what you're doing at least once a day so they can say "oh, no, not like that" before it turns into a $100k fuckup.

So, yeah, you've just got through to the next level. It's not the software that's the challenge, it's the people.

I agree. You need to take it to the next level, and don't just consider software and coding projects. We all love to hate on 'management' in companies of all sizes, but the world would be a better place for all of us if managers had your deep technical expertise. You'll be of more value to the company architecting the solution (or preventing the next $100k screwup), and matching people to the right places, than you were coding.

"Get yourself, your team or whatever to sit next to your damn customer."

Well said. The customer is the final and only arbiter on our disagreements about tech tool choice, style and architecture. In front of the customer, all our internal arguments look and sound like those of immature, spoilt and unfocused professionals.

Add to that that many IT professionals dislike getting advice/input from non-techs and you see why we have so many broken systems out there.

I'm there. I decided one day that it's just a job and found what I really wanted to do.

So I'm reading maths and physics now. The joy in my life is actually from taking things to pieces and seeing how they work and there is plenty of that there.

For more of being with you, my company drank the microservices kool aid. Rather than concentrate on building a quality product we've got buzzword soaked boiled shit that doesn't work properly. There's nothing wrong with microservices in principle but they lack the talent and experience to pull it off. So there I am, a doomsayer, a figurehead on a ship of fools.

Edit: Just to add, I work for liars and a personality cult and that is the root cause. Why don't I leave? Money is amazing and that gives me the freedom I need.

I'm sort of in the same place, but I made a choice for less income (compared to the open market at least - still more than my last position) for less over 40 hour work weeks.

I don't mind when a company I join has some awful code - it sucks to work with at first, but it leaves me never bored since I can make my mark improving it and learn while I am at it. I work to schedule fixes to go along with feature development & try not to worry beyond that. There are many things to do in life, most not involving programming. I rather run with friends, travel & visit places with friends, research & code whatever I want without work pressure, play video games, and just overall have the freedom of choice.

I hope the OP hasn't fallen into this trap.

Yep. I decided to take the piss as much as possible.

I wanted the income and less hours and demanded it. They said no, so I automated most of my responsibilities and do a 25-30 hour week anyway. I work from home and most of my job is thinking and that's non-deterministic.

You only live once (I shudder saying that but it's true).

Software is just a tool. A crescent wrench is just a tool. A paintbrush is just a tool.

Don't fall in love with a tool, fall in love with using the tool to make the world a better place. If you are not making the world better, then you are missing the whole point.

The best answer.

I got to the same point a few years back.. so I quit my job, sold all my stuff and drove a $6000 Jeep Wrangler from Alaska to Argentina for 2 years. [1]

I've just been back at a desk for 4 years, but am again burnt out so now I quit again, and I'm driving around Africa for 2 years starting in a couple of months.

Get out and live, I say!

[1] theroadchoseme.com

Pretty cool. Btw, how was your feeling when you spent your money for this? (Given the fact that those are your money you get from your job)

I've never been happier to spend money in my life!

I honestly felt like I was spending money to live, rather than to die slowly by going to work.

I spent roughly $1200 a month on the trip [1], and prior to leaving, simply to go to work every day in Calgary I was spending that much monthly. So it really was a great feeling to be spending no more money, but to be really alive every day.

[1] Full breakdown - http://theroadchoseme.com/the-price-of-adventure

Invest in Real Estate. Period. I've made million$ in Silicon Valley property. I bought a bank-owned, decrepit 9-unit apartment building just 2 years out of college. Making huge monthly deposits into savings/brokerage account is exciting stuff.

Reason I mention this -- RE save my arse when I reached your level. Easily replaced the coding income, even though I was consulting in my last few years for $120 to $400 per hour.

I have friends who could not get hired in their 40s. At that time, I had not had a regular job in software for 10 years. I'm now 20 years past my final full time job and just making tons of money in Real Estate. Unlike coding tools, the tools you develop to purchase and manage properties does not get rotten like vegetables at Safeway.

Let's face it. We're some of the smartest folks on the planet. Do you Really think any of us can find intellectual stimulation after many years of doing the same thing? Very few of us can.

Do something different. RE is different and will replace your income.

Glad you shared your monetary success in real estate, but how does that have anything to do with the OP's question?

> I have friends who could not get hired in their 40s.

In the software development field, this is just plain BS. Of course, your friends "who could not get hired in their 40s" may not be in software development. My apologies if interpreting your statement led me to an invalid conclusion.

Have you considered taking a break? I did 3 years of menial work after graduating from a good university, got really bored, and now I'm going from central Europe to Mongolia on a motorbike. It's an absolutely refreshing change. I'm not sure how long the euphoria will last after getting back though. http://www.silkroadmadness.blogspot.com/

Thats fantastic! What kind of motorbike? Good luck, i am sure you will have a lot of fun! Turkey (Kapadokia, etc) is amazing but I am sure what you will find deeper into Asia is even more fascinating.

Awesome. I did something similar but am flying around (now in Beijing). How do you carry your pack?

I am not in your situation, younger than you. HNers already advised you with lots of technical things to do in next days/month, my advise would be (if you dont have) get married and have a child, you will be amazed how little child can make you relax after stressed workday.

What you get:

* Family who is waiting for you at home

* Happy weekends

* Rest, visiting places with them and take a rest

and lots of other things, also visit your parents, make them happy, remember about old days and be with them

P.S: I am not native speaker, probably made lots of mistakes and my text sounds like robotic, sorry

Assuming you have some money saved up, go on amazon, buy some books, anything you really like that isn't tech; philosophy, history, literature, music theory, whatever makes you tick. Find a job far away (figuratively) from a computer screen. Manual labor, crewing on someone's yacht, working at a ranch, being a ski instructor, (preferably not something like fast food). But take some time off. Write code for what you want to write code for. Sounds like you could put your head up from under the surface of the tech industry and get a breath of fresh air, this field can be an echo chamber and its easy to start drowning in it. It sounds like you see the forest for the trees and a break could give you some time to reflect on that.

I have no experience and dont fancy myself to be capable of giving life advice, but I think the manual jobs you mentioned "crewing on someone's yacht, working at a ranch, being a ski instructor" are based on some glamor you associate with those jobs. After some time you will come to know the unglamorous aspects of those jobs and you will be back to square one. For example, a few days back I read an article by an airline pilot who was fed up with the politics and other administrative tasks that come with the job. Even though I am not brave enough to practice it myself, I feel the way out would be to take a job with no glamour whatsoever with the attitude that you can come out of it if you wanted to anytime.

Well, perhaps after he realizes how other jobs are even more boring and tiring, he would suddenly find software engineering enjoyable again?

You're ripe for Lisp!

http://cliki.net/Getting+Started http://www.gigamonkeys.com/book/ http://mitpress.mit.edu/sicp/full-text/book/book.html

And no, it's not yet another language, it's that feeling you have had all your life. That feeling that something was wrong with the world. You don't know what it is but it's there, like a splinter in your mind, driving you mad, driving you to me.

Is sounds like you need some more diversity in your life. Doing nothing but programming can often lead you down the path of thinking that's all there is to life, which is extremely far from the truth. It's essential to take up hobbies that have absolutely nothing to do with programming so that you can start seeing things from a different perspective. Trust the process as this is a problem that I see time and time again. Getting into deeper subjects about programming is not the solution, especially if you're not seeking this out naturally. The solution is to step outside of your comfort zone right now.

The language war it probably will always be, its just like soccer teams (or any sport)

A couple of years ago I've read about Lisp, and I started picking on it. At first I didn't get whats the point, already knowing Java and C. But months later, I got a course in which we used Haskell. And then functional programming started to make more sense.

Recently I got interested in Lambda Calculus, which is in the same branch of functional programming. And for me its amazing, seeing this different languages. And also making contrast with imperative or OO programming. Cause they are different way of expressing, each with its own advantages/disadvantages.

And there's also prolog, which I plan to pick up next...

So my point is, I personally like to learn about other languages. I have colleague friends who told me, "But why Haskell, what is it for?, I can do it in Python" "You can't do real-world applications with that", things like that. And for me, it's about learning, it's not only "what is popular" or "what will get you a job". It goes beyond that.

I experienced this, to some degree, a few years ago; I was mid-thirties at the time. I bought a motorhome and started driving. I traveled for about four years; my business and my income suffered for it, but my mental health improved. I started another non-tech company, a worker-owned cooperative, and mostly failed at it (it never made much money, but I had fun, helped make some really cool stuff happen in my community, and learned some things).

Somewhere along the way I started to regain some of my joy in technology (mostly I realized how much magic I have at my disposal compared to most people who can't program, can't build/deploy/administer servers, etc.), and have begun several new projects and begun to refocus on my primary project/business in a manner I haven't been able to do for a while. I moved into a regular house a year ago, but decided I didn't like it, so two days ago I bought an old Avion travel trailer (one of the shiny silver classic kind) and will be moving the rest of my stuff into it tomorrow.

I'll be hitting the road again...but, will do so in a way that enables me to be connected to tech more deeply, rather than almost completely disconnected. I'll spend some time in Silicon Valley, will catch several relevant Open Source conferences, etc.

I'm not telling you to buy an RV and travel from Alaska to southern Mexico for four years. But, it worked for me. Maybe a major change really is what you need. If you've been reasonably successful with your tech work, you probably have some flexibility in what you do, at least for a little while. Make use of it. I wound up quite broke in the process of all this, so maybe don't go as far off the reservation as I did; that may be part of my impetus for getting back into tech with such gusto...money comes so much more easily for tech work than any other work I've ever done (maybe partially because I'm so much better at it than any other work I've ever done).

It could be that you are a little depressive. With a depression everything looks gray and tastless, useless and hopeless. While there can be many cause for depression, alcool is known to worsen it, as lack of sleep. Beware of that. Burnout is also a kind of depression. You may need to step back and rest.

This said, you are right on most points. Most people want to contribute in changing this world, make it a better place, etc. You apparently lost the meaning of it. There is alot of noise, new things, but what for ?

My feeling is that if there are people who like creating new things, we also need people calling back to simplicity. And I also think that simplicity trumps all in the end. Your perception of the ambient noise and how the things can be made simpler is a gift. You could find a meaning for your contribution to software/programming in this.

It sounds like whatever you've been doing, wherever you've been doing it, has focused on software for itself, and on building so much of the useless and short lived things that come out of SV and similar places.

Software, computer science, can be your ticket into whatever industry you want, whatever interests you, because it all needs software.

So think about what's interesting to you in the world. Aircraft? Aerospace? Trains? Medicine? Medical devices? Business? Movie making? Publishing? Oppressive scheduling algorithms managing on call jobs in the legal slavery known as retail? Shipping logistics? Law enforcement? Surveillance? Human rights? Gambling?

Man, the world is infinite for all intents and purposes, and you get to participate in any part of it you want. Raise your head up from your tools a bit and look around.

>Quite frankly many years of self hacking/studying and experience in industry, I think I've just had it with software industry. Does it get any better ? Am I seeing things correctly ? Is this a burnout ?

You need to realize that what you think is not the source of your feelings, even though it seems like it.

It's actually the other way around. What you feel dictates what you think about the stuff you have contact with in life.

If you are sad, you start thinking hopeless thoughts about what you do, about who you interact with. Those thought seem objective and you are led to believe that they are source of your feeling because they deepen it.

But that's not the case. The source of all this downward spiral is the feelings.

To get out you need to do things that are counter-intuitive to you. Stop reading. Don't drink alcohol. Cut off the things you were doing to comfort yourself. They are not working. Force yourself to find new ones. Meet new people that are passionate about the things you have no idea about, listen to them, go outside into the woods and be bored. Run. Take many hour walks preferably around some trees. Basically do all the physical stuff that was found to reduce depression. If you have a partner, interact with her, listen, agree, do things together, don't worry you are bored and faking it, just perform well. When you make her feel better she will make you feel better a little bit.

Realizing helps, that actual content of your thoughts is virtual because it's induced by the way you feel. If you felt better you would think completely different thoughts about same things.

Spot on. Keeping a journal can help, to compare the thoughts you have about similar topics and how they vary based on your mood (be sure to include some measure of mood as a meta-tag for each entry).

Hmmmm. That simply tells me you (a) don't know enough or havent learned enough or (b) have been stuck in or focusing on what I call the "will write software for clicks" world.

I don't mean this as a put-down at all. Any time I hear so ething like that it usually means the person saying it has been wearing blinders for a long time and has no clue what else is out there.

How about this: Go figure out how to make a machine really think. You could devote a lifetime to that alone. Then, if you succeed, figure out how to use it to help doctors and researchers diagnose patients and/or find cures for diseases.

One thing that really re-ignited my love for technology (not that I lost it) was to become a mentor for our local FIRST FRC team. Experiencing the discovery, passion and excitement of technology through the eyes of a bunch of smart kids eager to learn is really neat.

I definitely see your point of view regarding all the efforts in the community to make the next shiny thing. It's very prevalent on the front page of HN all the time. I can't tell if it's representative of the culture as a whole or just those who are frequent posters of HN.

In any case, I think that you'd have a lot in common with David Heinemeier Hansson. You can see in this video https://www.youtube.com/watch?v=lBfVxBj61z0 and a lot of his blogs that he approaches things in a much more realistic down to earth manner than many other engineers out there. I think that if that's what you want, then it's all a matter of finding the right company that thinks the same way about using technology to solve real problems.

Wow thanks for that link, that was awesome. I just spent 2 hours watching that and another interview by Jason Fried. The company philosophy is also very down to earth

https://www.youtube.com/watch?v=UZGS_IOPZpk at 25:18 - "People always ask, thats always the next question. Will that scale if you have a 100 people? I don't give a fuck. Because we don't have a 100 people". GOLD.

How about switching your focus from tech to business? There is a great talk [1] by Jason Cohen, that might inspire you to find joy in looking at the craft from a different angle. Otherwise, in "Start Small Stay Small" [2] Rob Wailing addresses your exact issue in one of the first chapters - after a while you start "topping out" and moving from tech to tech feels like rehashing. That's one of the reasons he lists for making the switch from dev to entrepreneur. Maybe give it a read.

[1] https://vimeo.com/74338272

[2] http://www.amazon.de/Start-Small-Stay-Developers-Launching/d...

I completely relate. I see the whole programming scene today as a cynic. My first computer was a Commodore, but I wish I'd been a programmer in the 80s rather than a kid. At least back then it wasn't cool.

The software industry is very trendy and it's amazing how people can be smart enough to program but don't care about simplicity, it's almost as if being smart-enough leads to boredom which leads to technical churn. Which is why there's so little technical innovation.

The worst kind are those who think technical innovation moves at a fast pace because of their startup's efforts, rather than the glacial pace it does in reality.

Good, you know software so much you are bored with it. Now is a good time to use your knowledge to create a product. Programming for the sake of programming is always gonna lead to boredom. Make a product that generates money.

I started to feel like this when I got to my 30s, especially when moving to San Francisco, where these issues you mention are much more pervasive than other places I used to live.

There were two things that helped me clear my head a bit - going to the gym and focusing on my well-being (a.k.a. actually going to a gym 3-4 times a week) and learning something outside of computers (in my case, learning the Japanese language). I think just focusing for a bit on something more than computers can help you take a step back and gain some of that lost energy back, at least it did for me.

Study the history and biographies of science, if you want to escape being an industrial cliche. Many have forged their own paths throughout history and now is no exception. Naming the cliches is a good start.

I feel exactly the same way, so I'm trying to start my own businesses now. Even though they're software-based, my main struggles are on the non-software parts of the business (validating products, determining market fit, advertising, logistics, etc.). The software part just kind of happens without effort in comparison. I just use whatever tool makes the most sense for the job. I don't see the point of proselytizing for any particular technology anymore. I also moved to Asia to get a change of scenery.

I feel exactly the same way, and yet I don't feel the same way. I've been programming since I was 12. Professionally for about 16 years. I'm 37.

Life is bigger than your job or your immediate interests. Take a break. Travel. Challenge yourself. Break out of the circle that you don't like and find something else, even if it's just for a short while. That's what I usually do. At the very least you'll find something else to rant about, and maybe eventually realize that things could be much worse.

Quit programming and start growing food.

I do this on a small scale. Couldn't agree more. It really does bring a lot to your mental health.

I'm sitting in the kitchen writing this staring out the window at a nice juicy tomato with my name on it. I'm having it for lunch in my sandwich.

You do have to get used to failure. For example, it's July an my butternut plants are only 2 inches tall an have no chance of fruiting ever.

"Trying to use all the features of a language and thinking a one liner is cool even when a five liner and a one liner is same when compiled into machine code"

Thing is, it's pretty easy to code for a machine. It's REALLY hard to program in a way that other developers can understand you. And, like in literature, using less words to describe something is more often better for the reader.

"Too much jargon, falsely claimed software engineering practices and overly zealous object oriented mentality"

I used to hate all the jargon too but then I realizes it gives programmers a vocabulary to discuss things. When everyone understands the jargon, it makes discussing complex solutions a lot easier. OO can definitely be overused, but honestly 99% of the problems I face are people just writing unmaintainable, procedural code. You're right though, OO can often be less simple (harder to read all at once) but that's the trade off we devs need to balance when writing code.

I don't want to sound condescending but is it possible you are making excuses for learning hard things. Maybe it's the people you work with who are pushing it down your throat the wrong way. Maybe you already know these hard things but just haven't had to use it so you're giving up on the ideas. Or maybe I'm still in the cynical phase of my life.

> Thing is, it's pretty easy to code for a machine. It's REALLY hard to program in a way that other developers can understand you.

I feel this statement is way too subjective and has been used very often in the industry in a negative way. Just because one does not understand the depth of the problem or style doesn't necessarily mean the style is bad or the solution is bad. I first realized this when I picked up AOCP.

> OO can definitely be overused, but honestly 99% of the problems I face are people just writing unmaintainable, procedural code.

I've seen unmaintainable OO code and maintainable procedural code.

> OO can often be less simple (harder to read all at once) but that's the trade off we devs need to balance when writing code.

And it's often vague when rules of maintainability pops up somewhere and people try to pick that up. Suddenly, it feels like there is no need of "Science" in CS.

> I don't want to sound condescending but is it possible you are making excuses for learning hard things. Maybe it's the people you work with who are pushing it down your throat the wrong way.

May be it is the people but then you have to deal with people in the industry. Not too sure about what you mean by "hard things". The hardest problem I've faced at work was the interview question (in a Fortune 500).

I'm surprised that no one mentioned Functional Programming languages. I think the way they think would be quite refreshing for someone get bored of OO.

You almost say it yourself: do something else instead of programming. Maybe you'll want to come back later, maybe not, either way you come out ahead of where you are today.

The world of developers can seem like an echo chamber. But if your goal is to improve the real world, development is just a means to an end. Can you use your tools to help people who dont care about code at all? Does that perspective help?

There are also very different paradigms which I find renew my interest. erlang, rlang, golang... you may have to dig to find what keeps you interested.

It sounds like you need something new, something refreshing. Maybe take a break from your existing approaches?

I went through the same disillusionment. My solution was go from the routine of learning of 20th programming language or mastering 100th API back to fundamentals computer science. Go deeper and explore beautiful mathematical concepts behind programming. Refresh your lambda calculus, read about type theory, explore issues related computational complexity, study how people model parallel computations, dig into correctness proofs, etc.

Why do you care what is going on in the industry? Why don't you focus on you, and enjoy software development on a personal level? I personally don't think you are seeing things correctly.

Learn what you want to, work on what you want to. Tackle the difficult problems. We still have very difficult problems in this industry. I suspect you are not challenging yourself enough and that's why you are getting bored.

I agree, OP seems way to concerned with what other people are doing. My question is, what does _he_ want to do? Forget about keeping up with the joneses, find a cave somewhere and don't come out until you built something.

The thing is you always have to deal with people, it's a team effort in the end. After a certain point, you get sick of even trying to state your opinion because people so avidly follow a certain book/someone/language/OS/paradigm and everything else is secondary.

"Having to deal with people" is not limited to the software industry.

I was in the same boat recently and this is what helped for me. I quit my job, and took a few years off. I have to admit, I was really burned out. Took as much time as I needed to rest, take walks, talk to people, and in general just change the perspective. Just like you, I had this huge dilemma. While programming was my biggest passion, I was sick of all the bitching and BS that revolved around it. After taking the rest I needed, I started learning new technologies. Without preconceptions. Just like I used to do when I first started coding. So far it keeps the flame burning. I am working again, and I am happy doing it. I am aware that one day I will get bored of it again, and I will repeat the process. I think the more you dwell in a technology, the more knowledge you get, the deeper down the rabbit hole you go. And the darker things get.

Take a break. Learn something new, and apply the cross technology knowledge you acquire to new fresh projects. Always keep an open mind, and by all means avoid pointless topics that try to establish the best language, the best IDE and so on.

I'll ignore the psychological aspects you can be facing (you certainly shouldn't!) as others wrote good comments on them, I'm trying to address the professional topics you've touched ("just because people would have something to show for" and "falsely claimed software engineering practices"):

Fred Brooks, managed the development of IBM's System/360 and the OS/360 in sixties. He also thought deeply about the false claims in the field many years ago.

"No Silver Bullet — Essence and Accidents of Software Engineering" 1986:


For one 2014 take of that, see: Kenneth M. Anderson, 2014. No Silver Bullet. CSCI 5828: Foundations of Software Engineering. Lecture 02 — 08/28/2014:


I realized this the moment I started interviewing for engineering positions, after doing game design for some time. I decided I would go back to design from whence I came - albeit now I've expanded from game design to include UX. That recontextualized my programming skills as execution on a design idea - instead of as engineering towards optimal code quality. I get to stay near the top of the stack and not worry _too_ much about how broken it all is, because I'm not going to try building my career around that.

There will always be folks eager to be employed as cogs or who try to attain "thought leader" status. That's not really a judgment on those people, since maybe their personality or situation makes it a good fit. But if it's bothering you that you can't go farther from within this lens, find a slightly different one.

I've fixed this several times by going camping alone for a week with nothing to read, no devices, no pencil and paper. Just me, a tent, food and coffee. I come back full of ideas. Stuff I've been stuck on for a year becomes easy. Motivation returns.

I rarely "have time" to do it ... but somehow I always have time to work in circles for weeks or months and not get much done.

A common answer here is "learn something new" and that works for me at first. When "learn something new" isn't enough, I bring out the big guns and go camping. I haven't isolated what about camping does it for me. (I believe Danny Hillis, the founder of Thinking Machines wrote that he would never have finished his dissertation if he hadn't written the first draft at Disney World. Not my kind of thing but I guess it worked for him.)

Good luck!

I was exactly where you were. I felt I was solving problems that look almost trivial to me. Of course there are lots of hard distributed computing problems at the scale that Facebook and Google operate but not anyone is to work on them.

I found scientific programming: i.e. using Machine Learning and related disciplines to solve hard AI problems. I can guarantee you might get frustrated by lack of success and hardship of challenges but never ever bored.

In case you are interested, this is my blog post when I got inspired by this: http://byterot.blogspot.co.uk/2015/01/future-of-programming-...

Thanks to HN I discovered the homepage of Derek Sivers [1] and the book "So Good They Can't Ignore You" by Cal Newport [2].

He sais that a great job has to offer you great creativity, impact, and control over what you do and how you do it. IMHO this is why so many people are mesmerised by startups. Anyhow, if you miss one or more of these three traits in your current job than you have to find an other one which fits better to you.

Read the book! I hope it will help you as much as it helped me!

[1] https://sivers.org [2] https://sivers.org/book/SoGood

I would recommend joining an enterprise startup that is solving a problem for an industry you find interesting. Make sure the startup's customers are leaders in their particular industry.

When working for such a startup; the primary focus will be solving your customer's problems. You should work one on one with your first couple of customers. Doing so will be very challenging and if things go well very rewarding both intellectually and fiscally.

Issues of programming languages, editors, infrastructure frameworks will be secondary. But as the company grows, the technical challenges of scaling, reliability, managing teams, feature growth, etc. with will need to be met.

Its interesting reading all the comments here, and think most of it misses the OP`s point. That software development as a JOB means working coherently with other people / teams. The result: you need to be complicit to work effectively within that team/companies imaginary tower/religion. Otherwise you`ll loose your job or become "that" PITA engineer.

What`s worked well for myself is starting a small niche tech business. We`re small and focused on resolving customer problems. Not bickering over class hierarchy, design rules or other crap thats irrelevant to building products that customers really enjoy.

What you're describing sounds like too much focus on the What instead of the Why.

WHY are you building software? Start with answering that question. Then, do a bit of soul-searching; figure out what truly feels meaningful for you. That's something no one can answer but you. Then go and do it.

If you can't come up with an immediate answer, then start trying different things.

Building a bridge isn't enough. Connecting two communities over an otherwise impassable chasm is.

If it's any consolation, I am the same age that you are (approximately), feel similarly, got laid off on Monday, and am looking at a "tabular rasa" (blank slate) for what to do next. Happy to chat with you if you like. I don't have an answer but I'm searching!

I was working for an org that turned out to be all about the technology and not enough about solving real known problems.

Is there still anything you'd like to see built?

I mean, if you were on a desert island, would you even want a computer? What would you do with it?

I'd sooner build a boat and sail away.

The two happiest days in a boat owner's life are the day he/she buys his boat and the day he/she sells it. Trust me, you don't want to build a boat. But I get the sentiment.

I know this is a commonly used meme, but I don't buy it, I know quite a few people who enjoy sailing, including those that own boats.

I love sailing, the meme is that boat upkeep is very difficult and there are many commonly unforeseen costs both monetary and time related.

From my sister who owns a small motor boat.

"BOAT" = "Break Out Another Thousand"

enuf said:-)

Reminds me of that "the more you stray from the path, the closer you get to Zen" thing.

I stopped thinking of software technology in terms of technologies, but rather tried to think it as a means to help other people. I might be bored by technologies in its own sake, but I'm never bored with the idea of helping others.

Sounds like you've recognized some pitfalls inherent in the culture.

I think the good thing is, you don't need to be defined by this. There are a lot of people out there who prize solid planning and skill above gee wiz buzzwords. Find some of these people and work with them. Or if not, start your own gig and grow it.

You're probably a bit burned out. Check out this though. It might give a glimmer of hope and looks like a nice hobby/research/interest side project whatever.


I studied civil engineering in college, worked in the field for six years, and got my PE.

It bored me. I slowly studied programming and left the civil field for software. I now make as much designing for the web as I did designing bridges.

Life is not a predefined trajectory. It is chaos. Roll where your heart leads ya.

Normally human gets bored when he does repetitive work, and innovation come from chaos, when you make change in few parameters of the current system. I feel you should try something new, you can start a startup in your favourite domain, go and visit new places and meet people.

Technology isn't an end, just a mean to accomplish some things. If you focus your life on tech because that's where the money is, it should be no surprise that it's boring you. Find something you really want in life, maybe it has nothing to do with tech.

Do something else for a while and take a good look around you while doing so. What do you see? Things only got worse. Life elsewhere is even more prone to bullshit. There is only one notable difference. Most of them do not even seem to make money! Go figure ...

Get a housing loan, car loan and other loans, for sure you will start liking the job and life :)

"Liking" or "Trapped"? I don't know psychologically how does this work. Even though i have a credit card, i will always pay all the outstanding to avoid debt. Personally, being in loan makes me feel scared.

You need to have a hobby that has nothing to do with the software industry, make you sweat and go outside. Mountain biking, hiking, running, backpacking are some examples I can think of. You'll also get healthier.

Take a break. 6 Months, a year, however long. In that time do physical work, don't work with your head. Look back at the end of your break and decide what you want to do. For perspective you need distance.

I would try making a small startup on the side. You can learn design, marketing, devops, sales, etc just from a small endeavor. It is a nice change of pace from always banging on a keyboard.

Van Gogh took up painting at 27, and people live longer now. Go do something else. The world will be better off with one fewer person working to eliminate inefficiencies.

Man I can't get enough: Machine Learning, bioinformatics, algorithmic trading, database design, GPU programming, 3D modeling/printing. Wish I had more time

Get out before you have obligations (mortgages/kids)

I gave up years ago, but then again, I began sooner than most. I vote for moving on. It won't get fixed before we destroy the planet.

Study theoretical physics, this is exactly how I felt in my mid-twenties and what I did, once you get bored of that try philosophy.

Go on a vision quest. Only a half-joke.

Hardware and Software makes a perfect mix, start with IoT it is fun.

perhaps you should a) search for something exciting beyond your job, b) use your expertise for something new i.e. building your own company.

The demand for local internet marketing is booming

take a break and travel. Share your knowledge with kids who are eager to learn. do something your right brain approves of

You've presented numerous topics to consider, many deserving of discussion beyond what this thread can supply. If you don't mind, I'll try and give some guidance/advice on the aspects I can.

Recognizing "the churn" so often present in our industry is a major milestone in maturation as a person delivering solutions to problems via creating software. The rush many initially experience when exposed to the fact that their thoughts can be reified as programs which dutifully encode their wishes is quite intoxicating. Key here is "initially."

Progression from "I can make a computer do what I want" to "I can make my favourite environment do what other environments do" is a short leap indeed. Herein begins "the churn." Specifically, I mean that problems previously solved in other environments present themselves as an opportunity to be transcoded into (insert environment here). It is far easier to dissect an existing solution and produce an equivalent in another language than it is to tackle something new.

With this background established, let's discuss some of the specific points you have broached.

> I used to love software/programming but it's getting boring now.

A lot of responses have said you might be burnt out. I do not belive this is the case based on what you have written and the title of this thread. Instead, perhaps the fact you are "bored with life and software industry" is because the passion you have for what you love to do has been muted (more on that in just a moment and not the same as burnout).

> It seems so clear to me that so much futile effort is being put into building yet another language, yet another editor, yet another UI rework, yet another infrastructure rework. And for what, just because people would have something to show for.

This is experiencing enlightenment. When this sort of epiphany happens, seeing efforts addressing the same things over and over again becomes obvious (as you state). And once our eyes are open, we cannot close them again. Given a situation where a person has experienced this type of growth, yet may not feel they are in a position to progress with it, some combination of boredom/frustration/dejection/futility are sure to follow.

> Does it get any better ?

Yes. And you are at the precipice of it being so.

It gets better by accepting that those junior in the field experience the aforementioned progression and will duplicate projects often for the ease of being able to simply transcode. And that's OK, as they are in a period of discovery which is entirely new to them.

It gets better by recognizing that still others will reinvent the wheel just because that is all they can do. Their growth has stopped for whatever reason. And that's sad, but their choice.

It gets better by realizing that you have reached the point where you can discern duplicate efforts and choose what of those offerings are best for your way of thinking and/or working.

Finally, it gets better by allowing yourself to choose your own path, trusting your awareness/experience, with what you feel is best for how you can optimally do what you love to do, and eschewing what others espouse since they simply are not you.

Sounds like burnout.

study islam

I've experienced this earlier and try not to read too much into it. Keep building things the way you want to build it and ignore people trying to introduce politics (trying to please as many people as possible and shitting on existing and tried solutions). Ignore it! Channel it into something positive, create something. That's all I care about, solving real world problems and creating my take on it. March forward comrade.

I started a business. You get to experience many other things besides programming and it's always interesting.

Agree. Being a founder will force you to wear many different hats. Technology will still be very important but you will also need to focus on many other different tasks and improve your human skills

Sounds like burnout. I take a month or 2 off for every year I work.. sometimes at the start of that break, I feel like you do, but a bit of sun on my face and some outdoors, and suddenly the desire to sit inside and code for hours, starts to return. :D

First, go travel and clear your mind. After try to do something that actually help someone, actually make a difference and make you feel better. Either its programming or gardening, follow your love and get away from the crazy race.

My take on what is exciting yields the following questions:

How much time have you spent with design patterns?

How much time have you spent with WebSockets?

How much time have you spent with Asynchronous coding?

How much time have you spent with Taligent MVP concepts?

How much time have you spent with Reactive Extensions?

How much time have you spent with ReactJS?

How much time have you spent with drinking and playing CS:Go?

Have you ever considered the concepts that are being taught as the 'leading edge of thought'? AKA Abraham Hicks. There is a whole new world that talks about an evolution of the human species simply by realizing that you have a 'higher mind' which exists in spirit world and that you can connect with that pure positive energy and when you do your life becomes an explosion of Synchronicity (see bashar.org).

Not joking but these are all fads, mostly recycled ideas and nowhere near the leading edge of thought. The moment you hit your mid 30s or ~15 years experience, motivation is driven by two aspects:

1. what hurt you badly in the last 15 years

2. which things have already been done but have been reinvented an repackaged differently.

I've seen all these before in other incarnations.

Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | Legal | Apply to YC | Contact