How Do I Get Back a Passion For Programming?
bigsexyjoe writes "I am a somewhat experienced software developer who is pretty much an office drone. I used to enjoy writing code. I even enjoyed writing routine code before it became routine. But now I just come in day in and day out. I work for manipulative jerks. I don't care about the product I create. I don't enjoy coding anymore. I'm not great at interviewing. I don't have an impressive resume. I stick in more advanced stuff into my code when I can, but that is always on the sly. So my question is how do I get back the enjoyment I used to have writing code?"
How about getting out of your comfort zone. Get your resume up to date. Have people review it for readability. Start looking for a new job. You may not enjoy your current employer, but find one that peaks your interest and the joy of coding will return. Also, it helps if the projects have an overall goal in mind that you agree with. For some that may be the Defence industry, others may prefer coding for the Medical industry. Industries that have a meaningful goal will help you to achieve that missing passion.
Some days I get the sinking feeling Orwell was an optimist.
I can't "give" you passion. I'm not Martin Luther King Jr. and this isn't about Human Rights. Passion comes from within and if it's not there, I can't trigger you to release it.
If all it required for passion was to saunter up to a counter and say "One passion, please" then we'd all be theoretical physicists musing over our all night analysis of LHC data whilst having tea with Stephen Hawking right now.
Sorry to be so crass about it but all I can do is tell you what got the ball rolling inside of me to make computers do exactly what I bid them to and how that makes me feel at the end of the day. To tell you to go home and read Edgar Allan Poe's The Gold-Bug and then implement a Hidden Markov Model that learns on Bach Chorales in LISP is unlikely to do you any good. Me, on the other hand, that shit turned me from a hay bailing idiot farmhand into a programmer.
My work here is dung.
The Man is paying you to write this routine code because it's mind numbing, soul-sucking work that nobody would ever do of their free will. If the problem you were solving was fun, there's be an open source project that was solving it.
The solution I had to use was writing my own software to solve problems I found interesting. That also let me test out new techniques and tools that I couldn't do at the day job. After all, there are only so many ways to CReate, Update and Delete records from a monolithic database.
Easy Online Role Playing Campaign Management
Start your own projects on the side. Or if you don't have any ideas, join an open source project. Unless you're amazingly good at programming you'll probably learn something either way, and, at least for me, that's what makes it fun.
But like anyone else I can only really give you suggestions that would work for me or I know worked for someone else. you have to really discover it again on your own.
All the world's a CPU, and all the men and women merely AI agents
Try taking on a personal project, or get involved in an existing open source project that you find interesting.
Do some "creative coding" with p5 in Java ( http://processing.org/ ) or OpenFrameworks in C/C++ ( http://www.openframeworks.cc/ ).
Make some art, it's rewarding.
I have found contributing to open source to be a great learning experience and also rewarding. I started my own RPC-via-socket library for Actionscript and am now working to revive a defunct PHP extension, AMFEXT. I could use help if you know some C.
I found that programming for a living does tend to take away the passion I used to have for it. To compensate, I tend to code for myself on my off time. I'd like to get into an open source project one of these days, but for now, I just write my own programs and enjoy the process.
You could get into an open source project, see if that might re-kindle your passion for programming. Make sure you check you company policy for code you write after work, you wouldn't want to run afoul of that.
No matter where you go... there you are.
I don't think I'd like another job. So I'm just not going to go anymore.
Quit your job. You'll find motivation. Maybe not right away, but definitely when money gets tight.
Just don't pass your time with WOW. You'll starve to death.
Oliver's law of assumed responsibility: If you're seen fixing it, you will be blamed for breaking it.
Try something else. Maybe that thrill will come back some day, but if it doesn't, have a plan B. You can stay in IT, but it doesn't need to be straight-up coding. There's always database design/administration, OLAP, etc.
But sometimes I get sick of it too. Then I come back after a month or two of focusing on other objectives, and whee!
D00d... just figure out what gets you fired up (language, end product vision, etc) and then start something up on your own.
Mobile is hot... make something for your iPhone or Android device and have mucho fun!!! Doing so will add to your resume and show you have self motivation.
Start a project on your own that is fun.
That is a really great idea.. probably one of the few things will get him to love programming again. He puts more advanced code into projects for his employer for no reason (not a good idea IMO), when all that effort should be put into his own project.
BUT he needs to check his employment contract first. Very common for the employer to say they own everything you create, even if it's not on company time. And if he works for jerks, I wouldn't assume they won't take the project from him when he leaves if it has any value at all.
So I can't relate to your situation, but what got me out of being bored with my project and in general with writing code was learning something entirely new. In my case, it was *finally* learning functional programming, and starting on an associated path to (re)learning some math concepts.
Whether that works for other people, I have no idea, but it did work for me, and made me enthusiastic again about simply writing code.
Do like I did: retrain and start a new career. I used to be an overworked software project manager with the love of coding drained out of me, and now I'm a happy gunsmith.
It's never too late to go back to school. No sense in living a life you don't like, you only have one life and you need to enjoy it to the fullest.
"A door is what a dog is perpetually on the wrong side of" - Ogden Nash
When I find my career getting stale, I try to change the venue. If you write enterprise code, try moving to embedded software. If you write code for a commercial enterprise, try writing for an academic or government organization. Or vice versa.
Alternatively, identify a hobby or avocation you have, and write code in that area. Many people have changed avocations to vocations in this way by finding job openings via the hobby grapevine.
I'm more concerned with your apparent short-selling of yourself. Having poor interviewing and resume-writing skills is not a lifetime curse; like all skills, one gets better with practice, and the practice is free. Patrick McKenzie has useful advice in this area.
How are you going to pay bills?
Tic-Tac-Toe, Global Thermonuclear War, and relationships all have the same winning move.
You don't have to love your job. It's work. You get paid to do it. I used to like my job a lot, but it paid absolute crap and I was working over 60 hours a week. So, I left it. I liked my new job less but was getting paid a lot more to do it. I was working only a 40 hour week. So, I used that extra time and money to enjoy my LIFE outside of work. Passion for programming? I now have the time and resources to foster that creative need on my own time and more importantly on my own terms.
I was in the same situation, bored out of my mind working on a product that *nobody* cares about, let alone me; The product was mature, so there was very little development. Coming in to work was getting to be a major drag. I was starting to consider changing careers entirely, thinking I was a burn-out.
Fortunately, a new project popped up at work, and I was lucky enough to be on it, and it has definitely improved everything. I am having fun cranking out code just like "the good old days", so the burn-out thing was really just boredom, and knowing that the work I was doing was never going to affect, well, pretty much anyone.
So perhaps the question is, "How do I get onto a new project?"
Maybe it won't happen with your "manipulative jerks".
Maybe you have to come up with something completely new.
Are there other devs there too? Or other people who like to come up with product ideas?
I think I was pretty lucky. You may have to make your own luck here.
That's because programmers have no people skills. They are not good at dealing with people. So they have to hire people with people skills to talk to the customer so the software engineers don't have to. What in the hell is wrong with you people?
Write some software for yourself in your spare time and perhaps learn a new language to do it in. Then give it away for free and receive adulation/ridicule.
Calibre could do with a decent rival app if you're into ebooks..
I have found some of the AI challenges out there to be refreshing. Had a lot of fun with the Netflix challenge a while back (even though I didn't do terribly well). Here is one that Google is sponsoring right now... http://aichallenge.org/
www.DIYTVAntennas.com
You know. I don't like paying bills, so I don't think I'm going to do that, either.
Exactly right.
You don't have an impressive resume? Bull. Everybody's resume is impressive for *some* job. It may not pay as much. It may have some other negative aspect. But your current job is sucking the life out of you. For an activity you'll be compelled to spend 2000 hours per year doing, would you prefer the pay or the joy?
Moderating "-1, Disagree" is simple censorship. Have the guts to post your opinion.
"There is a club for people who don't like their job, it is called "EVERYBODY"; they meet at a bar".
-Drew Carey
Be careful of recruiters; they'll waste all your time on crap jobs that don't fit your skills. Some of them are good, but the vast majority are horrible. Get on Dice or Monster and find jobs that you're a good fit for. Get some friends to look at your resume and suggest improvements; if your resume looks bad or has spelling errors, that won't reflect well on you. Get some friends to help you with mock interviews; you don't have to have great people skills, you just need to be able to fake them for an hour or so. Get involved in some amateur acting perhaps :-)
Finally, what area do you live in? The job market for programmers and software engineers is excellent these days, but it isn't excellent everywhere. If you refuse to leave Bumblefuck, MS or wherever, you're not going to have many job prospects available to you; you have to be open to packing up and moving to a city that's a hot-spot for your particular skills. If you're the kind of person who doesn't like the idea of moving to a big city or Silicon Valley, then you should never have gotten a CS degree and should have gone to trade school instead.
Ie, pick a job that lets you build something useful for people, or work for a company that does this. Being a generic IT type or office drone very often doesn't do much. If the company just does some boring business apps it's really hard to get excited about coming to work. For instance if your job was eliminated and the company went bankrupt tomorrow, would the rest of the world really care that something of value was now missing?
So it helps to actually create a product first. Then to create a product that helps people in some way. It doesn't have to be world shaking, just a product that makes other programmer's live easier is good enough, or when you fix bugs you know that someone out there other than your boss is glad to get the update. Also if the industry is saturated then it's just not very interesting to be working on yet another wannabe contender even if the pay is good.
Sometimes the size of the company helps too. Too large and you're just a nameless cog sequestered away behind bureaucracy. Too small and you're just helping someone achieve their entrepreneur pipe dream. But mid size and you may actually know who your customers are. It also means you may be able to get a big picture view of the product and company.
There are only three ways this is going to end - you're going to stay at the sucky job until you die, or you're going to find a new job and leave them, or you're going to stay at the sucky job until the manipulative jerks you work for go out of business / fire you for disliking them / lay you off to save their own jobs. The first option means your entire life will suck, and the third one means your life will suck for a while and leave you unemployed in ways that make it even harder to get a new job. So you need to get your ass out of there pretty fast.
In this economy, it's not easy to find a new job, but it's a lot easier if you already have some job than if you don't. Interviewing is not only tough because it's the kind of social skill many people don't have, it's especially tough if you're under pressure from unemployment, and it's tough because there are almost always more people looking for a job than jobs available, so you're likely to get rejected unless it's an amazingly good match (and you know it going in.) But hey! you're getting dissed every day at work, so even a day of interviews where the people reject you is going to be better than a day at your current job, so it's a win, and it's practice for figuring out what you really want to do and what kinds of cool things other companies are doing so you can find the right one.
Meanwhile, yeah, go out and start something open source, or start playing with Arduino micro-controllers, or whatever. So what if the company you work for ends up owning the intellectual property for your proximity-activated Christmas-tree-light cat exerciser?
Bill Stewart
New Fast-Compression-only CPR http://preview.tinyurl.com/dy575ks
I think you may have jumped to the wrong conclusion here.
Learn Clojure with the help of Project Euler. After years of programming that made me feel like a grey bureaucrat, those two got me excited again.
I've always wondered about the "we own all your code" thing.
Companies with such a policy generally have a mechanism for waivers as well. Myself and coworkers at various employers had no problems in this regard. There was an admonition not to work on the hobby all night and show up in the morning exhausted. The admonition was offered with a smile in a humorous manner but there was probably an element of seriousness in there.
I think a famous example of waivers may lie with Steve Wozniak and Apple. Supposedly Steve did some work at HP, management was not interested in it, Steve asked for a waiver and it was granted. That work wound up in the Apple II.
Code something you personally want yourself. Make it an open source project. Or find a project doing something that's almost what you want and start working on it to make it work like you need it to.
Find a real project you actually want to work on, to make your own life better. Your skills will then be exercised.
(What does Linus Torvalds do for coding away from Linux? He writes a simple dive-computer routine. Not a dazzling display of computer science pyrotechnics, but an actual thing he didn't have, wanted and could do.)
http://rocknerd.co.uk
If you need to sneak more advanced stuff into your codebase, and your employer demands boring crap code; you have the wrong job. A lot of programming jobs only really need boring straight CRUD (create, read, update, delete) screens, straightforward websites, and programming that is easy for crap developers to read.
There are lots of jobs out there that either perform tasks outside the boring realm of data entry or ecommerce that require creative and well designed code to get the job done. Other projects may be boring on the surface concepts, but are of such massive scale that they require just as creative thinking.
A lot of people might suggest, program for pay at work, and leave the creative work as a hobby. I say fuck to that. If you are going to spend 8+ hours a day doing something, it had better be interesting. A lot of companies don't really activly advertise how interesting their work is. Talk to people, ask them about technologies. In fact I will say with 100% accuracy, that showing an interest in the advanced technologies and more importantly advanced techniques, will make you very appealing; no matter what your resume says.
If an interviewer just shrugs or looks forlorn when you mention the more exciting parts of programming during an interview... well you don't want to work there anyhow.
I'm a good cook. I'm a fantastic eater. - Steven Brust
Something like No Fluff Just Stuff or the ilk. It recharges my batteries and opens my mind to new ideas and techniques. I went to Strata last year and big data is very appealing. Find out what gets you excited about coding and go after it. Find your passion and you will find your place. Sounds like a change of scenery is certainly in order, but first, find what gets you interested and you will find your next niche.