Ask HN: I'm bored with programming, what should I do?
I've been coding for a living for about 15 years and, while there are plenty of days where I learn something new, overall, I'd say I'm actually pretty good at it, and generally quickly earn the respect of my peers wherever I work.
The problem is, I've lost my spark and enthusiasm for the job, BUT, I can't afford NOT to work, and with 3 young kids, I have some pretty significant overheads to meet each month.
I still read HN and other tech sources avidly, so I still have enthusiasm for the industry, in fact, I dream one day of running my own successful tech business. I'm just finding the physical and mental act of programming for a living draining, having done it for several years, I'm in need of a change, and, if I don't change something, I fear I'll burn out.
So, turning to HN for some inspiration. What should I do?
67 comments
[ 1.8 ms ] story [ 135 ms ] threadThere are a variety of fields that benefit from code-savvy people that are able to communicate effectively and that have just a little bit of initiative, namely:
- project manager -- there are a lot of definitions for project managers, but the simplest I think is the guy who sits between upper management and the engineers to ensure that project deadlines are met by removing obstacles for the engineer. As a developer, your unique insight here is in the ability to anticipate roadblocks and be able to remove them, as well as not having to have things explained to you three times before you can act. As a project manager, you'll be privvy to upper management's goals and directives earlier, be in a position to shape the project, and tangibly demonstrate how your contributions streamline the development process. Often-times, as engineers, we only hear "We need feature X", without an explanation for why we need feature X, and a lot of times, project managers don't communicate that downstream. Being able to understand the woes of engineering and the plaints of management simultaneously gives you an advantage to communicate effectively and deliver more efficiently.
- product manager -- Similar to but different than project manager, a product manager sits between the project manager or engineers and the customer or potential customers. The product manager evaluates customer concerns and helps shape the product or products by ensuring that the features you're working on will actually help improve the product's market position. What features are people asking for? What features are people asking for that are negatively impacting the ability of sales to sell the product? What features are people not asking for that they should be? What could make the product better? Those are the questions that the product manager seeks the answers to, and provides those answers to the rest of the team, then puts in a request for the proverbial "Feature X".
Etc., etc. There are positions that benefit from having a developer's mindset that aren't development. By your post here, I can see that you communicate effectively, so you have at least the minimal qualifications necessary that a transition could probably be easily managed.
why dream? just do that now. if you fail, do programming again.
1.) Data science : Learn about data mining, machine learning,computer visions,natural language processing etc etc.
2.) If not above then start diving into computer security. Learn about penetration testing,cryptography,forensic etc.
3.) Become a designer learn: UX,CSS,graphic designing etc.
You can keep your current job going fine and get the daily dose of excitement from any of the above item! This is what I have been doing.
I think design is awesome and I would like to do it at some point. I think having a programming background would help me a lot when doing CSS/HTML/JS/UX stuff.
Transition to a less demanding role, if needed, and look for other areas where you can contribute the result of your experience.
For example, if you have passion for *BSD, some linux distribution, or some other community software project you could contribute. You could start by fixing bugs and submitting patches.
OR, skip out on software development completely. Find a way to get more free time and then study a foreign language or learn how to play a musical instrument. Maybe the issue isn't what you are doing but what you aren't?
So, here are somethings you can consider: Try finding work you're passionate about first, that also pays. Maybe work for a non-profit? Try to find a role that lets you expand from where you currently are, perhaps management, business analysis, marketing, design or whatever pet preference you have. The point is not to over extend a single skill. Consider less hours, I've personally found 30 hours a week to be tolerable. Relax that skill more often. Try working on different projects regularly, I work on different projects every 2-6 weeks. The change in pace & direction keeps me excited & interested.
Also consider: building passive income generators, you've been programming for 15 years (why isn't the code working for you?).
All in all, keep changing your angle until you're happier.
Just my two cents.
In some (many?) jobs, no there isn't. The work can become extremely repetitive and mundane, while still requiring enough physical and mental energy to make doing more creative programming in your spare time look unappealing.
It's a real problem, and not necessarily an indicator of the inherent passion of the person experiencing it.
Ah, boasting disguised as a response.
> I don't even want to work with you.
And a really cruel, personal insult to finish off with.
This sort of attitude needs to end. It absolutely infests tech sites.
So perhaps start thinking more about what you can create via software but viewing the writing of software itself as a just a way to create, that might change your perspective. Also maybe take concrete steps towards that technology business idea, there is never a perfect time for working on business ideas :)
You could also consider job role change away from programming to maybe a managerial/leadership role, you already have the experience.
In the mean time you could just wait for my company's product to mature :) it aims to be a developer tool for those who just want to build software products without necessarily being bugged down in technical minutiae. (check my profile for link)
It helped me find excitement. It did the same for Edward Kmett: https://www.quora.com/Reviews-of-Haskell/review/Edward-Kmett
There's so much depth, beauty and challenge to be found in language design, API design, architecture of scalable distributed systems, design of human and computer-friendly tools, refining one's mastery of various programming paradigms (working daily with Clojure and Haskell will keep you busy and interested for many years). Learning about OS internals, graphics programming, networking etc is mind-blowing. Find inspiration in the great work of those who came before like all the people featured in the AOSA books. If you ever reach the point where you've done everything you can as an individual contributor, you still have a lifetime ahead of you mastering how to inspire, coach and pass on wisdom to the more junior members of the team, share your shokunin-like fervor for software with them.