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
I've been having great fun (and make quite a bit of money) writing iOS apps for people. I get all sorts of different projects, and programming for the platform is fun.
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.
The best way to make coding fun is to do a project of your own. Make a fancy website, or a music or movie playing application, or a simple game. Something you can make progress on within a couple days.
Programming didn't make you smart. You were obviously never an idiot. And there's nothing wrong with bailing hay. :-)
But you're otherwise 100% correct. Either this stuff floats your boat, or it doesn't.
Quit your job and do something else, even something NOT programming related. Learn something new if you don't have any employable skills. Become a god of Linux system administration. Learn how to deploy Active Directory or Citrix or learn Oracle DBs, or MS SQL, or SOMETHING.
Learn Python. Learn Lisp. Learn Smalltalk. Learn.
If learning doesn't give you any jollies, then maybe try bailing hay.
W
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.
"By the way, did you get that memo we sent out this morning?"
Find an open source project that looks intriguing to you ... start fixing some small bugs or improving the documentation. You'll find the folks who hack on open source are incredibly passionate, and that kind of work is great for your resume.
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.
Find a company whose ideals and environment suit you, and work for them instead. If you don't like your current product, management or tasks, the only way to change that is to work for someone else. Or yourself. Got an idea for a killer Android app?
You need to start writing code for you. Think about the code you were most passionate about. It was either code for something you wanted to do, code to learn new code, or to solve interesting logic problems. Find a little time to write that code again.
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!
Seriously though. If it's about getting the passion for the work back then create your own iPad or WP7 or Android app. May be you discover some of your mojo again.
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.
I like coding, creating, developing, but work is often just mundane stuff. Once in a while there's a carrot, to develop something new, replace a cruddy old process with something better. Enjoy those rare opportunities.
At home I keep encountering things I'd like to develop, so I do a bit here and there. And I can work in the language I prefer, in the environment I prefer, at home.
A feeling of having made the same mistake before: Deja Foobar
but find one that peaks your interest
It seems to me that the original poster has already seen the peak of his interest come and go. That's the problem. The challenge is now two-fold: find something that piques his interest, and once piqued, figure out how to sustain it.
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.
"5 more steps and you will be a new person"
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
a constant stream of caffeine and alcohol works well. ymmv.
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.
When coding gets routine for me I like to throw myself across the proverbial board. Doing web development? Go write a coreboot driver for your motherboard, or do some wine API hacks. Likewise, if you spend all your time on the linux kernel mailing list, maybe making a website for someone wouldn't hurt to mix things up. If you are tired of the whole english bit, maybe go design your dream house or something. If there is anything I have learned about myself and my passion for programming is that it comes from a more fundamental desire to build and create. I like making things. I loved lego throughout my childhood and made entire cities with the things while messing around in msdos and inside the computer case. So look for some other creative outlet. And quit your job. Its a workers market, and you sound like you have plenty of experience to go enter a start up or something.
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..
Clearly you don't like the work you do or the people you work for. The obvious solution to solve these problems and answer your initial question is to quit your job and either go self-employed or take up a new line of work and let coding remain a hobby. And the obvious rebuttal is that that's a lot easier said than done, especially in this economic climate. Which is true. Nobody ever said life was easy.
I suspect you knew all that. Not trying to be a dick, but nobody here is going to be able to solve any of these problems magically and nobody can make the decisions outlined above for you either. It's a judgement call and you're the only one who can make it.
Spelling mistakes, grammatical errors, and stupid comments are intentional.
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
Do you have some savings? Can you take a break from work and spend time learning new things that excite you?
Do you do any non-work coding? Why not try something new that's outside the tech you use at work?
How about setting up an account on http://careers.stackoverflow.com/ and incrementally working on your resume?
There's a ton of stuff to play with out there.
* Interact on stackoverflow sites.
* Follow inspiring developers on Twitter and iteract with them.
* Read helpful career books like: Being Geek, The Passionate Programmer, Driving Technical Change (http://pragprog.com/categories/career)
* Build something on Heroku
* Build something on CloudBees
* Create a github account. Start a project. Contribute to others.
* Build a web application in Rails or Django
* Build a game using Unity/UDK
* Build some kind of cool visualization using Processing
* Learn something new from sites like Khan Academy, Veri, Code School, Peep Code or RailsCasts
* Get a book on Android or iPhone programming and play around with that.
* Get a book on Arduino and play around with one those
* Get a Lego MindStorms set and make something cool
* Try to turn something you ARE passionate about in a programming project
* Learn TDD/BDD
* Learn about Continuous Integration/Deployment/Delivery
* Automate something small at work, build up from there
* Make your own web app/system for taking notes about technologies you play with
* Put this stuff on the web and see if recruiters come looking for you
'nuff said
Programming is a commodity item now, just like textile and meat packing work. Since there are no unions protecting programmer wages, the wages will be essentially minimum wage for the few jobs that are not offshored to the lowest bidder.
There is no reason to bother with programming. Write a game? Good luck competing against PopCap on the low end, and EA on the big end. The barrier of entry to getting a game on a console is pretty steep, unless one has $20,000 to hand over to MS, Sony, or Nintendo for development workstations and keys signed. OSS is nice, but there is just no money in giving away your stuff for free.
Instead, find another profession that can't be offshored or outsourced. If you can program, you can learn court cases and terminology. Go law and get your J. D. At least with this, you are assured of a job somewhere, even if it may not be at some prestigious law firm. Nobody will be offshoring lawyers anytime soon -- you won't getting a monitor showing a barrister from China.
Programming is dead pretty much. Retool and find a skillset that is marketable.
Step 1: Instead of rounding off the extra decimals of a cent in every transaction, deposit them into a bank account. Step 2: Destroy a piece of office property with a baseball bat. Step 3: Sleep with Jennifer Aniston. Step 4: Set the building on fire. Step 5: Work for construction company. http://www.youtube.com/watch?v=G_wiXgRWrIU
You know. I don't like paying bills, so I don't think I'm going to do that, either.
I was in a similar spot for quite a while. During the last couple of years at my unhappy job, I found some other programmers who were already passionate about programming and involved in at home projects. Talking to them about their projects made me want to program at-home projects myself. Every day became a treat as we compared war stories and talked about the challenges we were dealing with. Passion can be just as contagious as negativity, the company you keep can make all the difference.
Quit being a generic coder. As long as you're an interchangeable cog, you'll be treated like one and feel like one.
Find a niche. Do you like biology? Astronomy? Nuclear physics? Radio? Find something you enjoy that you can develop a deep skill in addition to being a coder, so you're now an "$whatever specialist" who's capable of understanding that deep problem and writing the code to solve it. And keep learning about it - unless you're learning something new as you go along, you're going to get bored.
And if you're really bored... Start writing code that controls fucking robots. That will ALWAYS be exciting, sometimes because it works, more often when it doesn't.
I can say much the same as you, @poster, and toss onto the pile that, in spite of 15 good years doing programming, my initial educational period was ... stormy? Incomplete, and not something I like to get into on my resume; though I tend to be frank about it (it's also a popular topic of complaint with me given the hostility from the financial aide department that didn't help at the time.) At any rate, I do impactful coding and really have no business complaining about my job, but I am ... I don't know... disenfranchised a bit from the project that, for years, I rescued, resurrected, breathed new life into, and now merely maintain and tweak. So what do I do? (with cyclically variably success), I do personal projects... Two years ago, I wrote a novel (though it sits on the shelf now waiting for an epiphany from myself in regards to the all important rewrite); this past year I've stewed up no less than three web/game projects (none of which are past the drawing board as yet) that I believe could be game changers in political, social, and entertainment arenas (we'll see how THAT goes, hehe.) I'm just saying... make your own interests; invent your own jobs, if you must. Just 'do it.' =3
I think you need to take care of the reason for that depression before you start looking at symptoms that it causes.
You can't handle the truth.
You should apply for "Hell's Cubicle", where the winner gets to run a top software house. Steve Ballmer gets nine contestants to compete, and as things start to heat up you can expect chairs to fly. In the first episode you have to write some original code with your own special pgp signature. If you get through then you'll need to get your passion back as you struggle to interface your modules in time with the rest of the team. At some point you will need to lead the team as Project Manager, I hope you're Q&A is up to scratch as Steve will try to catch you out by introducing bugs into some modules being uploaded. Apply now, and get ready to shout out "YES CTO!"
Phillip.
Property for sale in Nice, France
Please don't do this. Resist the urge to get clever for the sake of being clever. This will almost always come back to bite you (or more likely a coworker) later in time.
With software, less is definitely more so try to write as little code as possible to solve te problem at hand.
Just because you know how to do something really well doesn't mean that it was meant to be your career. If software development is the only thing you are good at, then you probably have a lot more problems than not liking your job. It definitely isn't your passion if you're willing to let a bunch of pointy haired bosses make you think less of your profession. If it's for the sake of peace of mind and personal fulfillment, it might be worth it to take a pay cut to do something more meaningful to you. And there's certainly nothing wrong with being happier in life either, whatever you choose to do.
I don't know what it's like where you are or in whatever technology you work in, but when I was feeling like you are a few years ago I started getting involved in the local programmer community. There are a lot of user groups out there that get together, usually about once a month, to talk about technology. I've found that a couple nights out a month with motivated peers does wonders for my morale. The format of most of the meetings I've been to is a lecture by someone knowledgeable about a specific topic preceded and followed by opportunities to network. The later networking is usually done at a nearby pub.
HINT: make sure to go to the pub afterwards: that's usually the best place to talk about whatever technology you're really passionate about.
Why doesn't Slashdot ever get slashdotted?
I've never been in exactly your position of having a stable job but being completely apathetic about it but I go through something similar with things that interest me. To get the enthusiasm back I'd say look for a problem some one is having and program up a "wow" solution for them.
Everybody has an example of this I think: your mechanic is still shuffling paper and unnecessarily faxing things between offices...build a web-based database to replace it...maybe a parent is having the same constant issue with their computer...figure out some simple interface alternative that will minimize that issue.
In other words find a sense of satisfaction/accomplishment that will be give you some sort of semi-immediate "wow that's great" response outside of work...just may help bring you out of funk and re-kindle your love of programming. Also, if you don't exercise start exercising. I know that helps me quite bit.
"UNIX is very simple, it just needs a genius to understand its simplicity." -Dennis Ritchie
That makes me fee +1 Sad.
Life is a great ride, the vehicle doesn't matter
Send me your resume, come work on Open Source projects ! Always hiring. Always open source. Always patient oriented. https://open.med.harvard.edu/display/~amcmurry/
you to do stupid, mundane updates, do them, but subtly sneer on it. And when they make a bad call and ask you to do something contrary to the scheme, send it back with a question or recommendation. They can still want it, but at least you will have documented your uncertainty in case it needs to be re-worked later.
In a word, don't just mindlessly generate code to specification. And sure, keep an eye out for other prospects. If you've got good design instincts, another employer could pick you up, even if you're not current on their specific tools.
Bukowski said it. I believe it. That settles it.
Maybe your side project should be something NOT coding? Woodworking, pottery, teaching kids to read and write English, volunteering somewhere?
If you're not careful, eventually you'll be coding for something related to that project, and liking it. Even if that doesn't work, teaching or volunteering both improves your personal brand/network, and might give you some insights you didn't have before into your day job output. And if nothing else, you can make the world a better place, which you seem to want to do.
deleting the extra space after periods so i can stay relevant, yeah.
Programming is a means of expression. While it is self-evident that instruction manuals for vacuum cleaners are all written in China now, novels are not.
So if your programming topic sucks, it can be offshored, but if it is original and creative, it cannot.
If everyone took the parent posts advice, their nation would be left in a very sorry state where no-one produced anything of value.
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.
Since the submitter "used to enjoy writing code" then nothing has to be created from scratch. I honestly believe that you can get passion from other people(see Motivational Speakers). If you trully believed in something at one point in time then there is always someone or something that can reignite that passion if you look hard enough. I lost motivation to write code for awhile because I am surrounded by people who couldn't care less about computers in general. I find that listening to other passionate people really motivates me to do something and motivated friends stoke the fire of competition. I love watching Linus talk about topics he's passionate about because his energy is contagious (or obnoxious if you love cvs/svn/[insert linux scheduler here]). Ted Talks are good too.
Who didn't do those things when they walked through Sears and saw the empty screens with cursors blinking at them just begging to be tagged?
I enjoyed programming so much, I went to college and got a degree. I always wanted to write my own video games. But here I am in my 40s. It was last year when I found myself in a similar situation as OP.
So I decided it was high time I do what I started out to do all those years ago.
I have installed the Android SDK & NDK. I have gone through the New Boston tutorials. I have picked up a free cross-platform game engine and started designing my own game.
The first thing I did, to avoid the difficulties of designing a game and focus on learning the tools and techniques, was to re-implement a simple game somebody else already designed a long time ago for me: Pong.
It took about 10 hours. You would not believe how stupidly exciting it is for me to be able to say to my friends: "Hey, check this out..." and show them pong followed by an "I made this."
It's rewarding as all hell. And now I'm knee deep in a real game design all of my own making. I don't care if I ever make a dime off of it. I'll release it on Android followed by iOS, then on Windows, Linux, and Macs. All because it's a moral imperative.
Maybe games weren't the thing that got you into programming when you were younger. But I'll tell you what: something made you love programming once. Remember it. And get back to it. Your day job is fine and good. Try to enjoy it but work to live instead of living to work. Make your own time to do what you love.
Before you diagnose yourself with depression or low self-esteem, first make sure you are not, in fact, just surrounded by assholes. ~ W. Gibson
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.
and i take offense to this article.
I'm in a similar boat to the Original poster.
I learned programming as a kid- wrote my first simple games on a Spectrum when I was only 5 years old.
Fast forward to University- I was a biology major who had no idea what he wanted to do in life but had took bunches of computer science classes to boost my GPA. Strangely enough- decided beginning of senior year there are no jobs in biology- and I could still graduate as a computer business major without spending any longer in college.
Took a "temporary" job programming straight out of university whilst I figured out what I want to do in life.
10 years later- I'm still programming for a living- I HATE programming. I find it mundane, boring, repetative- plus with every successive year it becomes less about programming and more about fiddling incessantly with environment settings.
I end up changing jobs every 18 months just to get a little bit of freshness. I used to think it was the jobs I hated- now I realise it's the actual programming.
I'd be willing to take a risk- change careers and take a pay-cut if it were just me; however, I have 3 kids and a wife who depend on my pay- and it's already a huge stretch making ends meet and we live very frugally as it is.
I wish there were some career I could segway into without taking a major paycut. I've been hoping for management- but despite constantly getting great reviews and the customers lauding me- I never get promoted (probably doesn't help that I never stay anywhere long- but after a year I start getting very derpressed with my job and just can't take waiting).
Hopefully my wife will finish college one day and get a real job so I can change careers- until then...
Yes... programming is extremely depressing if it isn't something you enjoy.
"That's the way to do it" - Punch
What I did to sharpen my interviewing skills was to go find a job I knew I could blow out of the water, tweak my resume' so it looked like a good fit, then went and interviewed for it. I would come out of the interview feeling like I aced it, then once they were salivating over me for the job, go on another one, but this time a bit more difficult one. It worked for me, YMMV.
"My immediate reaction is "WTF? What kind of moron doesn't make things 64-bit safe to begin with?" Linus
It would be worth checking out whether you are depressed, especially if you've lost interest in other things you've previously enjoyed. Perhaps you can find some enjoyment in contributing to one of the many open source projects out there, or maybe you should consider a change of job environment and just go for a few interviews. You can always practice your interview technique with a friend. I don't see anything wrong in always trying to do a better job than the one expected, but be careful that your code isn't so advanced it becomes a maintenance nightmare. I always try to 'sneak in' code that goes beyond the basic scope of the task assigned, so I generally look to make generic, parameterisable code. Even as an experienced programmer, I still like to learn new stuff, for example I've just used annotations and reflection in java to make a self-documenting command parser. For me the fun part is knowing that you've written something that you can re-use and re-purpose but if you're really not enjoying programming any more for its own sake, perhaps it's time to become a salsa instructor, bricklayer, accountant, b&b proprietor or whatever else it was you once dreamed of becoming :-)
Hey look at me! I have no ambition in life and now I am board with it.
The attitude is horrible. No wonder he stinks at the job interview. Work on the attitude and other things may clear up.
I have in the past had to hire people. Attitude is more important then technical skills. Technical skills only get you so far, a positive attitude gets you much further.
Some interviewing changes.
Your past bosses are not "manipulative jerks", You are looking for expanding your independence in your career.
You are not an "Office Done", You are looking for more opportunities for advancements.
It isn't you don't care about the product you are working on, You are looking to take on new products in different segment.
Every job has its bad days and when you are programming there are times you are sick of coding.
If something is so important that you feel the need to post it on the internet... It probably isn't that important.
I had a similar post a few years back. Guess what? I'm still working here and it still sucks. The only thing I can suggest is that if there are other things you are interested in, persue them. But first though, find another job, because you should only work for manipulative jerks if you have to. Then, did you ever want to get a degree in X? Why not go for it? Something else to think about is that there are a lot of health and/or spiritual conditions that can cause you to fill unfulfilled and unmotivated. Could you go workout at the gym or run more? Have you thought about seeing a doctor or other professional about your problems? It is best to work on all of these things, but most of all, start to focus on what makes you and those you love happy. And do it.
I did that many years ago (because no one else wanted to and things needed to get done) and haven't looked back. No more long, drawn out projects. No more odious project leader standing over my desk making sure I get something done on time. No more endless 'I liked that the way it was, can you move it back one pixel??' user requirement changes.
Instead, my job is to fix problems. Programs running too long, using too many resources, aborting, not playing well with others, and a host of other issues. Data loads that have changes in the incoming file spec, or a new source completely. Determining if problems are program or server or network issues, and compiling the data to support it. Things that stimulate my brain to think for itself instead of being someone's code monkey. I give out my own estimates, no more living up to somebody's idea of how long it should take to write code.
I touch multiple applications, and see many different techniques. I trouble shoot problems that have driven other people to insanity. Best of all, as things became more stable, my job became less hectic and I got fewer midnight calls. I am the lord of my own destiny, the better job I do, the less I get woken up in the middle of the night and the less overtime I have to put in.
Now, not all companies have such a position. Or, if they do, they might still be pigeon holed because of the size of the company. The company I work for isn't that way.
I rarely read replies, it's my opinion and if you thought about your opinion a little more, I'm OK with that.
I find when I'm in a funk that it's time to learn a new language/tool. Currently I'm learning python. I'm having a good time learning a new language and even though I don't expect to ever make a living off my mad python scripting skills seeing the approaches to various problems in different arenas/languages makes me better at my core languages which I do get paid for writing. Of course, learning a new language might not be *it* for you. We're all unique snowflakes or something. You gotta find what it is that interests you. But yes, generally it's not "do more of the same repetitive crap that my employer pays me to do."
Check out my lame java blog at www.javachopshop.com
Five years ago I started what I thought was my dream job in software. Several months later, I learned that it was all smoke and mirrors and that I had been directly lied to during the interview process. It felt like the last straw had snapped; I'd already been unhappy about bouncing between startups and working for "manipulative jerks". I loved to solve software problems, but I hated coming to work. So I enrolled in college and started training.
Now I'm an airline pilot. I still work in IT to pay the bills, but I'm a freaking airline pilot. What's great is that not only is it a cool career, but it helped me put the IT career and problems into perspective, and in the end I stopped dreading it so much. I learned that while it's great to start out mixing your work and your hobby (as most of us do in IT, it's what makes us so passionate), that same mix also leads to early burn-out since you have no mental rest or escape from the job. Now I can escape one by going to the other, and they are such different worlds that I find them each refreshing.
What worked for me is to do things on my own time, according to my own insights, using the tools that I chose.
Forget about the people who are telling you what to do, and the things they are telling you to do. If it were up to you, what would you do, and how would you do it?
For me, it turns out a lot of the magic is in typing a few words and seeing things happen. I don't like working in languages in which I cannot be productive. I don't enjoy being bogged down by office politics, inertia, and other people's mistakes. Throw all of that away and pick up a language in which you can make your computer do tricks with a few words. Like Ruby. Or Python. Anything with a REPL, really.
Possibly the most important tip for those in similar situations: don't hang around too long if the environment isn't working for you. I spent a lot of time working with tools I didn't like (and that weren't going to improve, due to the whole culture behind them being wrong), until I figured I was wasting my time building a resume for things I wanted to get away from. Figure out what you'd rather be doing, and jump ship as soon as you get a good opportunity to go do that.
Please correct me if I got my facts wrong.
"There is a club for people who don't like their job, it is called "EVERYBODY"; they meet at a bar".
-Drew Carey
All you need is love. Find what you love, and do it. Don't look back. Create great things. Just do it.
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.
There's a whole new software ecosystem being born right now. You can design, develop and code from home, and use one of the various App Stores to sell and market the products. If you get the right idea and do it well, the rewards are potentially huge. Having good ideas is the hard bit, but at least if you have one a) it's yours to do with as you please and b) you get all the rewards (less the App Store's cut, which is very reasonable in fact).
If you are young and without dependents, quit immediately.
If you are older, and/or have people you are supporting, make an objective plan with objective milestones of how you are going to quit, then act on that plan.
A job is soul-sucking only if you don't know what you are getting out of it, and can't see a way out. So prove to yourself that you're not trapped by quitting, or are actively working towards quitting. The trick here is that one needs to align one's actions with one's goals. Acting is easy, once you know what your goals are.
Goals: The truth is that nobody knows anything about why we are here or what this place is.
I suspect however, that this 'Being alive and conscious' thing is rather a unique opportunity, and that spending these few precious moments we are given doing something one hates is not a very wise decision. Take some time. Figure out what you _really_ want in life. Then spend as close as possible 100% of your time striving to make what you want a reality.
Simple question: Is a slave acting to gain his freedom a slave?
Have you ever asked for feedback after an unsuccessful interview?
Sometimes interviews are as much about honing your technique as they
are about answering everything 'correctly'. Getting feedback can help you
discover what you can improve to 'suck at interviews' less.
As someone who's done a fair amount of interviewing of candidates, answering questions
correctly is not always what's made a candidate attractive - attitude counts
for a lot. Showing you care about the subject matter, can tackle problems
you've never encountered before with some imagination and have a general
interest in improving your abilities are all things I look for.
Of course, the more interviews you do, the easier it is to get blasé and jaded so I'd say
give yourself a break if it's getting too much.
don't be a spelling loser
There are career paths out of development, such as project management, technical architecture, product management, consulting, etc... Something else that could be interesting is to try to work in a completely different paradigm... Do some Haskell or something :)
(%i1) factor(777353);
(%o1) 777353
There are countless problems in the world desperate for computational remedies. There are endless scientific endeavors looking for new and exciting ways to crunch the numbers. There are countless projects from archiving endangered genomes to the analytic and algebraic topology of locally Euclidean parameterization of infinitely differentiable Riemannian manifolds (thank you Tom Lehrer!) Any and all of these would demand you bring some passion, brilliance, inspiration and computer expertise to the table. In return, you learn some very cool things, you get your name on a few research papers as a fellow and you Curriculum Vitae has that glossy coat that normally get's reserved for doctors of philosophy.
There's this funny thing about being human. Most of us live like passion and love and excitement are out there and we need to find it. Ever watch children. They pull drama and excitement from thin air... invent it on the spot... MAKE IT UP as they go. When you stop being a "Television Viewer" regarding life, waiting for drama to be delivered to you, you actually get to be the author of your own life and write your own. From personal experience, this is way more satisfying.
So stop being a consumer of life, and try being a producer instead. What do you love more than breathing? What are you naturally inquisitive about? Passionate about? What area of the huge, amazing mystery of being human would you like to plant your flag on? Then by all means make a plan, and escape! Here's a hint, if your language lacks verbs of action, you're watching life, not participating in it!
I recently felt the same way. I'm a comp sci grad that moved into Blu-ray authoring which involved Java, but it quickly became boring because the vast majority of it is just inputting x,y coordinates for menu graphics. My solution was to get into Arduino. Just got it a couple weeks ago, and am having fun doing both the wiring and programming and getting immediate results from your work. I find it fun because it is a new system then what I program for at work, even though the programming itself is really basic. Feels like I'm finally putting those EE courses to good use!
...get back the enjoyment I used to have writing code?
Change jobs and track down a job with a company that does stuff you find interesting. Startups often do cool work but the pay is often shitty so that's a trade-off you have to be willing to make. I concluded some time ago that the I prefer to do boring stuff for an employer that pays well. It finances the stuff I enjoy doing I do in my spare time which is contributing to a FOSS project.
Define Shitty resume.
Take what you have and make the best of it, you might be surprised.
If someone is passing you on the right, you are an asshole for driving in the wrong lane.
That's what got me back into coding. Writing 64k intros. Far more entertaining than the crap that work gives you, but keeps your brain ticking for when you do have to do more mundane coding at work.
I wrote my first program at the age of six, and I still can't work out how this website works.
I left programming and switched to running my own business as a freelance writer. You couldn't get me back into programming at gunpoint. I make more money, my customers treat me better, the hours are easier, and there's a ton more work.
Programming sucks massive donkey balls as a career, the difference is quite amazing. I can make more on an hourly basis writing than I ever could as programmer, way more. And my break room has a pool, jacuzzi, and a tiki bar with a frozen margarita machine.
One thing programming did teach me was how to type like the wind. I can type rings around other writers. Maybe you could make the case that thinking logically about a program structure made me a better writer.
The interesting question is whether writing is such a great career, or if it just sucks so much less than programming that it feels marvelous by comparison?
That's our life, the big wheel of shit. - The Fat Man, Blue Tango Salvage
You have no employment history gap you were an it consultant that was hit by the economy. You can't talk about spefic projects, because of ndas, but give brief overviews of wtf ever you want to say.
It's happened more than once. As soon as I start getting paid for doing something, it ceases to be fun. Happened with electronics and kinda ruined part of my ham radio hobby - I don't enjoy tinkering any more. Same with software - used to love to write programs, bought PC's instead of Macs because of turbo-pascal, and then a few years into programming for $$$, the fun went away.
I think it comes from the idea that no matter what you do, you can no longer impress anyone (amaze your friends and neighbors, one of the chief reasons for doing anything...) because since you're a pro, they EXPECT you to be able to do that, and are... not amazed, shocked, awed, or anything else.
I think you're stuck with it being drudge stuff. I think your choices are either to endure it or move on into management. Or, you could change careers completely, but that'd probably be expensive.
"I am a somewhat experienced software developer who is pretty much an office drone.
With this description of your status, it seems to me that you lack not just an acceptable environment in which to play code monkey but a purpose from which you can derive some satisfaction. I agree with those that would have you avoid confronting, 'the manipulative jerks,' because the fish rots from the head. It sounds like you need to involve yourself in something more meaningful. Something more directly tied to your value system, thereby allowing you to take some satisfaction from the belief that your efforts connect you to the purpose your efforts facilitate.
The Buddhists call this, "right living."
First, take heart. We've all been where you are now (or will be there soon enough). You're not alone.
You've probably noticed that people who are in relationships have an easier time ... getting into relationships. It's much like this with work. It's a lot easier to get another job if you have one. It's also harder to get a job if you hate the work you're doing. But that doesn't mean it's impossible. You probably interview better than you think you do. If you can do FizzBuzz on a whiteboard, you're already in the top 10%. Cut yourself some slack.
Secondly, I think you're on the right track. You're not here because you think you should quit programming and become a farmer. I've been where you are. It's called burnout. Consider taking a real vacation, like two weeks or more, and get away from programming. See if you can get assigned to a different project at work, or at least trade some responsibility with someone else on your project. Burn out will eventually go away, but you will need to make some changes. Better to nip it in the bud now rather than wait for the day when you stare at the screen and really just can't program at all.
Thirdly, go learn something new. Not necessarily new as in bleeding edge; I've been having a great time with Smalltalk and J lately, neither of which is really new in the internet blogosphere sense. I crave a new language every now and then. You may be able to find one that appeals to your sense of what's lacking about what you're doing now. Give yourself small things to do. It's much easier to climb a sequence of hills that grow as you go than a giant mountain up front. I have never found starting a huge project to be much stress relief. Just screw around. Solve puzzles--maybe do the Lisp 99 or Project Euler. Or go download Love2D and learn Lua to program some simple games. Stop by the B&N and look through the computer section. Get yourself a book if you see one that looks interesting. Real World Haskell is a trip; Land of Lisp is supposed to be good too.
If you really can't stand it and none of this stuff helps, it may be time for a job or career change. Nobody expects you to retire from the job you have now (unless you're pushing 70). For the most part if you want a change of scenery in this profession, you change jobs. You'll be surprised how well you interview. Even just supporting the weight of a giant program for several years without being fired looks pretty good on a resume these days. Don't give up hope.
One final note. Your job is probably a lot more secure than you think it is. Management at most places sort of expects that programmers aren't all that productive. I wouldn't be surprised if you could just ignore your work for a few days or a week and do something completely different without it being noticed. It sounds unethical, and it probably is technically speaking, but letting you take a few brain vacation days is much cheaper to the organization than firing you and hiring and training a replacement.
"..how do I get back the enjoyment I used to have writing code?"
What do you like? Code something to do more of that.
I used to like music, so I wrote a music DB similar to scrobbler.
I like tech news now, so I wrote a "better" site to get it to me faster.
I watch a lot of tv, and I got annoyed when the daily show was a repeat. .
Are you a Sneakerhead? Write a db for your shoes.
Find anything, and write something to make that thing better.
My thought: You don't dislike programming. You hate your job. Get a new job, and the love for programming will return. Read a resume book, and learn how to write a good cover letter. I can't stress how important cover letters are. Do some research into skill sets, and pick something fun. Tailor your resume to that, and go for it. In this market, you can probably get more perks, and a pay raise. Plus, different assholes.
This signature has Super Cow Powers
Learn to program in Scala–it puts the joy back into programming. Python too, if you don't already know it. Here's the xkcd comic on Python, just in case you haven't already seen it:
http://xkcd.com/353/
Also, get a job at a university working on a research project. That way you're actually doing something meaningful with your life.
|>ouglas
It's hard to tell what your experience level and abilities are. If you are so-so and have been doing it a long time ... do something else. If you write good code and can take on design and development of complex modules/systems, you either need to find another employer or confront you current for more $ and better work/conditions. If you are really interested in pursuing further and can't do any of the above, do things on your own, buy an Arduino kit, build your own website, write an 'app', etc.. If that does not interest you, it's time to move on (build furniture, musical instruments, buy/sell auctioned storage sheds).
your creativity, do what I did. Get out of programming and into systems administration; automation and scripting are FUN! And to top it off, they are the 'glue' that keeps shops running, and are much more 'freewheeling' in many cases than plain-vanilla 'coding'. You will be appreciated, too!
Paranoia is a Survival Trait!
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
Find something that excites you, is completely new to you, and doesn't have a million other people doing the same thing.
For me, that has been things like, finding a small microcontroller and writing a tiny OS to run on it (long before that became the cool thing to do).
Building a small embedded appliance, by designing the PCB, and a couple small pieces of code.
Writing a compression algorithm, using GPGPU.
A temp dependent overclocking utility.
Witting a web javascript UI toolkit to do overlapping windows & WIMP style programming.
The trick is to find something completely new, so your constantly learning something (be that a language, piece of hardware, environment, etc). Then you have to come up with something that hasn't been done on that platform before. Then when it gets boring, dump it. Doesn't matter if its finished or not, just go do something else that excites you. Often if you pick the right project, it will remain exciting well beyond the point where it is working. Even better, sometimes beyond the personal growth, if you post it to sourceforge, an app store, etc you will find others that are interested in it and it becomes a chance to earn a little $. Then in some cases one thing leads to another. Don't expect to get rich, or set unrealistic goals. In other-words reject ideas outright that seem like they might take more than a couple months. The idea is for this to be fun, not a second job. In the past it used to bother me, the dozens of 1/2 finished projects I started. Then I realized it was better that way. Now I don't struggle to finish something, if it gets boring, I just do something else. I still learn a crapload, and my cool geek friends think 1/2 finished partially working projects are just as cool as fully working ones. They see the potential. Plus, the amount of $ made when I do finish something is rarely more than the equivalent of a minimum wage job.
I think you may have jumped to the wrong conclusion here.
Joining an open source project in your spare time sounds like the perfect cure. Build your resume, and have fun coding whatever you want.
Try this, I have found it very exciting to get back to the bits and bytes.
http://www.shredderchallenge.com/
So my question is how do I get back the enjoyment I used to have writing code?
Let me answer your question with a question:
What did you used to enjoy about writing code?
Once upon a time, there was something you liked. What was that?
If you're looking for pure enjoyment, find something on google that looks like fun and play with it.
(free link - I found this enjoyable: http://landoflisp.com/)
If you don't like whatever you're trying, *shrug* try something else.
Try going to different user groups and see what they're into; some will be excited about their hobbies - you might catch some of that excitement.
If you're looking for paid work that you enjoy, that is fine - you still have to know what you enjoy.
By the way, you have a clear awareness of some of your weaknesses.
So work on them - maybe you'll never be "good" at interviewing, but what is wrong with getting better?
(pro tip: the best time to work on getting better is before you need to get better; do it while you actually have a job.)
Hire an interview coach; pay them to critique you and give you feedback (and homework!).
Beef up your resume. Volunteer tech time for a charity.
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.
Learn an ML (OCaml, F#, etc.) or Haskell (GHC) variant. Python is nice, but it's just another passable imperative language at the end of the day. Learning a modern functional language will really challenge you and probably change the way to think about programming. To whet your appetite, first look up the wikipedia articles on type inference, currying, pattern matching, parametric polymorphism, lazy evaluation, and my personal favorite, pointless programming.
I've heard Scala is also gaining popularity, but it's really just baby ML running on the JVM. Oh, and bonus: OCaml and GHC compile to native code. I can usually get performance nearly at C++ levels in OCaml with prudent optimization.
I was in a very similar situation - I was BORED with coding - I was stuck in a hole where I wasn't allowed to get out of it. The management sucked big green monkey nuts, the company made your life more and more of a hell. So I said "screw you" - didn't take me long to find another job. And I ENJOY coding again. The company is great - they treat the employees very well, they don't shove you in a hole to rot. Just beef up your resume, send it out - and get the hell out of where your at. Just remember "Something else is always something better".
The Truth is a Virus!!!
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
It's always possible that it is not your boring job that is making you depressed, it is depression that is making your job seem boring. Brain chemistry can be a real drag.
People here have outlined resume, interviews, etc. Have a peek now: There are a few gigs listed in craigslist, under gigs/computer. THere may be big companies there, but also a few startups maybe with fresh ideas. See if the specialty/ies they require are up your alley (PHP, flash, IOS, etc). Might be a nice set-up to work with a few passionate coders before returning to the cube farms. Who knows, maybe you may not have to jump ship totally right away--you'd need something to pay for the gas and rez package preps for the interviews.
WARNING: Smartphones have side effects--most of them undocumented.
Do you have any personal projects that might rekindle your interest in programming? What about a website oriented around some hobby that you have where you could get into some back-end programming or writing extensions to the OSS that you're using to support the site? It might not help you deal with the "manipulative jerks" but it might help you get fired up about development again.
Alternatively, is there a internal move you could make to get away from the jerks? I wonder if those clowns aren't the real cause of your loss of enthusiasm about coding.
CUR ALLOC 20195.....5804M
after a few years, all day to day office jobs get boring. this is why they pay you to do them.
I run: Windows, OS X, Linux, FreeBSD. Just because you have a hammer, doesn't mean everything is a nail.
Brother, I feel your pain. I implore you to think about the types of interaction you enjoy - maybe programming isn't the right career path for you, regardless of who you work for. In my 20 years of programming, I became very advanced; kept pushing myself thinking that new tools/languages/paradigms might ignite some fire. Additionally, I worked for some great people as well as the typical 'asshole'. Nothing really made a difference.
At the end of the day, it was programming itself that I found tedious - at least, doing it on a daily basis. I loved programming as a teenager, writing all sorts of stuff for enjoyment; but when that turned into 'commercial' applications, it really took its toll on me. For many years I didn't realize why I was unhappy - it was only after changing jobs a couple of times where I figured out the problem.
These days I'm back in school as a writer. I love the creative aspect of it (maybe your programming is no longer creative, thus killing your joy). But aside from that, I realized that I needed more social interaction and have really stepped that up as well. It's all about putting in the effort to 'know thyself' (I hope this doesn't sound preachy, because I'm still a novice!). You might be surprised at what really makes a day go by enjoyably for you.
Remember: standard of living != quality of life.
Wishing you and anyone else who feels similarly all the best.
Pick a language from the functional (e.g., Haskell) or logic (e.g., Prolog) programming families. It'll get your juices flowing again, thinking about programming in a totally different way.
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
The summary answers itself. Replace your bosses and your project. Find bosses that aren't manipulative jerks who have projects that you could care about and ask them to hire you.
Don't tell the manipulative jerks you are doing this.
Try WalMart or your local convenience store or, heck, go to a day labor office!
You will get your passion for making a living writing code back, post haste!
This sig is not paradoxical or ironic.
He could volunteer some time for some good non-profit, something he felt good about doing.
The Christian religion has been and still is the principal enemy of moral progress in the world. -- Bertrand Russell
Get a stack of cheap MSP430 Dev kits, read "MSP430 State Machine Programming" by Tom Baugh, and arrange to teach a bunch of kids how to control motors, lights etc. for whatever robotic / art / fun project they want to pursue. There's plenty of challenge to be had in teaching the subject well, and a world of difference between doing a good job and a ppor one.
Nullius in verba
You have created and endured a cage of your own making. It is only you that keeps you there and only you that holds the key.
I suspect you are one of those people who will always think that your boss is a manipulative jerk. Either change your attitude or get a new job. They are not the problem. You are.
Seriously, you need to quit and start your own company. I just did that after working for the same place for 15 years. Good pay, awful environment. It's the best decision I've ever made. There's work for people who have a clue so don't be scared. Once someone knows you can do the work, you won't be able to keep up with the requests.
ayottesoftware.com
You're in a world of golden opportunity compared to me. Shop around for a job where you do interesting coding projects like something in robotics instead of boring CRUDware. That's what I wanted to do, but I'm pretty well stuck in the track of mundane IT jobs at this point. You're resume's unimpressive? OH NOES! I don't have a fucking degree, I live in an area with Nebraska-like job prospects and Mexico-like pay AND my resume is now unimpressive. And to add insult to injury, if I said that dating prospects around here were Alaska-like I'd be making it sound better than it really is.
So there's some free perspective. Your options are more open than you think. I hope you read this bigsexyjoe.
"When information is power, privacy is freedom" - Jah-Wren Ryel
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.
I think he'd rather come up with a name like bigsexyjoe then publicly pile shit on his employer in an identifiable manner. Because clearly the number one way to get employed as a programmer is to whine about your inability to deal with "manipulative jerks" and tell everyone that you "don't care about the product I create. I don't enjoy coding anymore."
I mean for !#$@ sake, even if people were willing to take the risk that you'd trash them (most employers won't if you are trashing your former employer!) you are making it blatently clear that you have no drive or initiative and aren't a team player. No wonder this guy's stuck in a job where he can't add to his resume. He sounds like the sort of guy you try to work around rather than with. Grow the @#$! up dude!
These posts express my own personal views, not those of my employer
The part you hate isn't the programming. It's the programming for someone else. It's the 9-5. It's the office. It's the colleagues. It's the politics.
In short, it's the factory.
Start your own programming company, in whatever industry or market is your favourite. When the code you write is yours, and you get to choose your own projects, and you get to not only see the value of your better code, but also get rewarded for it being a reality, then life is good.
But really, and most of all, programming isn't a 9-5 job. For a few reasons.
- programming is all about loading and unloading a few thousand lines of code into your head, repeatedly throughout the day.
- you can't be tired.
- you can't be planning to stop in 59 minutes, 2 hours and 59 minutes, or 6 hours and 59 minutes.
- it needs to be a "I'm doing this today, however long it takes"
- sometimes that's 1 hour, sometimes it's 18 hours. but it's always fun.
I tend to start working, home office, around noon, immediately after I wake up. I take a TV break around 3pm. I continue to work until 6pm. I eat, shower, dress. I then go out and enjoy life. sometimes I come back before midnight, and get another 3 or 4 hours of work in. Occasionally I don't go out in the evening.
The end result is that I get between 3 and 18 hours of work done per day, and tend to easily average around 10. Which does a nice job of letting me go on vacation, or be ill, or take a day off for a dexter marathon, whenever I want.
Most importantly, life is amazing, work isn't work, and it's fun.
I have been maintaining the same code base for over 10 years.
At 3PM today I was kind of down. All of the things on my plate were way too big to do before 5. I figured I'd look for simple things in the Issue Tracker to work on.
"Add a nickname field, and migrate first names with (nickname) information into nickname field."
I could do that in 2 hours...But unfortunately...
About 30% of the field guys at my company are known by their nickname. Every payroll stub, every invoice, every bit of info currently concatenates first and last names. There are probably over 300 (being conservative) places in the code that concatenate first and last name. And even if I added the nickname to this concatenation, I'd have to make sure that the SQL queries pulled this field (SELECT * is evil)
And abandoning nicknames? HAHAHA, no freaking way. There would be a company-wide revolt. Even our clients would complain that they didn't know who "Jimmy Johnson" was, ("Ohhh...Jimmy 'Big-Dog' Johnson!")
So a 1 hour task turns into two weeks. And this is one of 138 things on my to-do list.
So, how do we maintain a passion for programming?
In my opinion, you just have to sneak in every ounce of innovation. You can spend the rest of your life fixing crap that they forced you to hack in the first place. You just have to sneak in the fun stuff.
Find a job with better management and more interesting technical challenges, quit your current job, and re-discover your love for programming.
I screen resumes for signs that a candidate has done non-trivial things which may have required original thought and application of data structures, although I don't care whether that was at a day job, in a free software project, or in an interesting project class at school like compiler construction. I figure that people 10 years into their career who haven't managed to do that either lack the aptitude (and aren't going to learn it) or interest (in which case I don't want them either).
Once I bring them in we ask a simple programming question (about as hard as reversing a C string, doable in a single for loop although the most obvious solution uses a pair of inner loops inside a while loop, nearly all candidates worth hiring manage a linear time solution in not much over five minutes), a simple data structures question, a simple design question, another data structure/multi-threaded question design question, for some thoughts on software process, and the usual background questions.
As a competent programmer you'd have no problem getting through that (it's surprising how bad nearly all job candidates are).
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.
If you really want to stay in programming, create a product that you've always wanted to build in your own time. I suggest you find a local Makerspace (or Hackerspace) and meet with like-minded geeks who may want to work on projects with you and can plug you into the more interesting side of technology.
The point is, build whatever you're building with the idea that you will be sharing it with an audience who will appreciate it. This may help you get some of your passion back, and at the very least, it will be something to show your prospective employers (who is hopefully working on something more interesting). Having been on both sides of the interview table, I can tell you that a portfolio of projects trumps pretty much every other interview skill (except for bad personality).
One more suggestion: go back to school. Being a professional programmer (or having been one for some years) will give you a great edge in most technical fields, since they are full of amateur programmers. [Very few technical areas can now avoid programming]
Unless I'm mistaken, your recommendation amounts to the notion that computer programmers should never get married to somebody who likes their job and doesn't want to relocate.
While some might consider the option to live apart, at that point you are splitting the family income... and having to not only pay a mortgage where you used to live, but also the cost to rent a place at your new location as well, which isn't economically advantageous overall.
File under 'M' for 'Manic ranting'
Get involved in some of the competitions here: http://community.topcoder.com/tc
Start with old competitions to practice on. Even if you never actually compete in any of the real time competitions, you can have a lot of fun with these type of problems and competing against former coders (it scores you based on several criteria). More importantly, this is ideal stuff to buff up your interview skills. If you get good at the topcoder problems, you'll do great in any interview coding.
Programming is like golf; you don't have to be good at it to enjoy it. Like golf, those who don't have the passion for the game tend to lose interest, become more irritated as they try to regain their previous stature, and don't generally treat it as the lifelong hobby it is. Programming is an art - if you need to find your passion, as opposed to your subject, you may have never truly had it in the first place.
Unless I'm mistaken, your recommendation amounts to the notion that computer programmers should never get married to somebody who likes their job and doesn't want to relocate.
It's not just computer programmers, it's any professional. Professional, salaried jobs usually require relocation at some point, so it's really better if you marry someone who can relocate with you without much trouble (such as someone who's a stay-at-home parent, or who has a retail job or other non-skilled job, or someone who has one of those jobs where you can get a job just about anywhere). The next best bet is if you both work in industries where there's plenty of job opportunities in a metro area that you both like. If the person you want to marry is like this woman a friend of mine married a while ago, who just can't stand to move away from her family and the podunk area they live in, then you need to forget about being a professional, and just get a job as a farm hand or whatever a plentiful job in that area is, or dump her and move on with your life. (This friend of mine married this girl and got her to move several states away with him, to a large city; while he was working on his PhD, she got a job as a teacher, hated it, constantly had to talk to her parents about every little thing including letting her father decide what car they'd buy, and finally took off and left him and moved back home with her parents. It's probably hard to imagine for people on here, but there's a lot of people out there who just can't imagine moving more than an hour away from all their relatives.)
I know it sounds kinda cold, but your marriage partner needs to fit in with your career plans. Some careers just aren't very good in certain geographic areas; for instance, if you're a Linux kernel programmer, you're probably not going to have a lot of success finding a job in, say, Oklahoma City or Omaha. However, there's literally tons of jobs for you in Silicon Valley, plus other west coast tech hubs.
Videos are everywhere in the modern life.The video life is so beautiful,So I'm very glad to share with you my videos.iorgsoft Video Converter For Mac will help make your life more wonderful. nadia
You're addicted to a bad, boring, dull job because it is work and security. Walk away now. I always walk away from a job when I get bored. Nobody ever says on their deathbed, "God I wish I worked more late nights on that dumb-ass job when I was 32." No. Quit your job and do something totally different with your life. Anything. Join OWS. Learn to freighthop. Buy a one-way ticket to the Eurozone and travel the world. Go into the wilderness and learn what it is like to harvest your own food with your own wits and hands.
Guaranteed, when you get back from the wilderness, your passion for coding will bloom like a million flowers in springtime. You need to sow the seeds of passion in order to reap the fruit, and it sounds like you are long overdue.
Software engineering is a good field to be in, because demand is high and supply is damn near nonexistant. Even web programmers can find jobs in a heartbeat these days, at least everywhere I've been and according to everyone I've heard. So when you get back, you can take your pick of interesting jobs.
That's because programmers have no people skills.
I really don't get this stereotype. I am a programmer most of the time but I also communicate with my organization's clients and from the results I don't think I do a bad job. I agree for geeks people skills don't come naturally but when you apply your brain to study human interactions, geeks can be better at communicating with people. Although I guess it would be a different part of the brain that would be involved in interactions with people.
Funny hehe.
You're at best describing a small business, though. I've never, ever, ever once had a manager or boss whose decisions made the job for me, or had the vision, resources, and/or talent to make it real. We're all hired goons, even the people "above us", until you reach the very very top... of course, many companies are older than 20 years so even the very top were hired.
Just because the U.S. is a republic does not mean it is not a democracy. Democracy/republic are not mutually exclusive.
Wow, so many morons who don't get a clear Office Space reference. :)
To all newcomers - people here are very close-minded and can't handle complaints about Linux. Keep this in mind.
Perfectionists are never satisfied with their job.
If the money's good, stay there and keep your head down. Suppress your pride. I'm hypervigilant at work, whether it's UPS, Uncle Vito's New York Pizza or IT bullshit. That ravenous attitude of getting things done the best way, all the time and every time, makes everyone look up and take notice. Usually that's bad because no one else wants to work that hard, much less change anything. It's an instinctive gut response from laborers even if the improvement seems mundane (place wax paper behind the lettuce bin to divert the airflow from the cooling vent and subsequently prevent the lettuce from freezing). No change is mundane and most are rejected for insufferably stupid reasons.
Pacify your coworkers and bosses and do something at home that makes you feel like you're changing the world. I'm writing a game. You can write whatever your imagination and spirit have the capacity of envisioning.
Buy your next Linux PC at eightvirtues.com
It’s about the code. Remember back to when you started coding, with the problems to solve and the complexity of learning the language (C, Assembly, C++, COBOL, etc.). After some time with the language you knew the structure and the semantics. You knew the compiler or assembler error output was not necessarily on the line. You learned to look up and down 20 or so lines. You relied on your skill for debugging, viewing the variables in memory and remembering that those register variables are the tricky ones. With Assembler you took the time to know exactly the architecture you were working on as the code would only work on those registers and chip. The evolution you made in training your brain and the euphoria you enjoyed when, after failing numerous times, you succeeded to successfully output the array in reverse, the lowercase alphabet to uppercase, prove the bubble sort was truly o(n^2) and see and feel what computer science means in the abstract, theory, practical and concrete. Take yourself back to those days when you were solving problems as you have been doing so for much of your career. Find problems to solve using new tools and new ideas. That invigorates your creativity. The tool to express your creativity and solve those problems happens to be code. Other tools you use on a daily basis to solve problems are speech, listening, etc. Coding is a very sharp and precise scalpel that allows you (the coder) to pinpoint the problem and quickly and immediately solve it. Once you have the problem solved, yes CRUD is most likely the case but for any enterprise application all the wrappers are needed, logging, exception handling, etc., so your application or algorithm can withstand the rigors of a production life. I once had a Physics professor who would pace back and forth and numerous times over the course of his class he would lament that he was not Gauss and had not invented his electromagnetic theory. This man was a brilliant PhD Physics professor who lost his way. From your short story it sounds like you also have lost your way. I do wish you luck finding the passion for a career that you so love and are exceedingly good at.
Part of the problem is you. Bosses can be jerks, but a lot of that is determined by how you let them treat you. As a coder, you shouldn't be an interchangeable part...you have skills and knowledge specific to organization. Use it....do a good job, but also be confident and stand up for yourself. Your not a easily replaceable factory line worker.
Next, work on your social skills. Be diplomatic with everyone you deal with. This means understanding where they come from (even if their jerks), and trying to make them happy. Often this means just listening, and framing your responses in their language. Its funny how easy it is to introduce people to new ideas if you come from their position but add something new.
Be proud of your work, and communicate it. This doesn't mean crowing or anything "in your face". Document it, comment your code, make it nice so that others understand it. It will form trust and respect from other workmates.
Finally, don't get stuck in a rut. Even if your day to day job is boring, be open to new ideas. Read, learn, experiment, and code on the side. Try to find something you enjoy, and find a way to relate it to your work. This doesn't mean introducing every new technology or pattern fad to your current project, but if its something you can do on the side, or something you can discuss with your team, its all good.
If you do these things, add them to your CV...even if you have no intention of moving jobs, its just something you can take pride in. Its easy to get down about work, but in software development, there is so much scope to do things that make our work more enjoyable. Even if your current job continues to be a pain, these are all things that will help you find something new. If you don't change, then your situation wont either.
"I don't care about the product I create."
I find if you do care about the product, all other issues melt away, including the presence of jerks.
I recommend you start doing something you care about that is valuable to the company, even though your bosses are asking you to do something else. Just be sure to do it extremely well. You'll either be fired or promoted for it. If you're fired for doing something smart and doing it well, you couldn't have a better explanation for why you were let go. You'll seem like a rare find. And if you're promoted, you'll find you can keep pushing doing the right thing further and further. It's a win-win.
When I meet people who are like this, I'm envious. You'll never be in a stronger negotiating position. You don't give a shit.
... grasshoppah. If you aren't enjoying coding at your job, or doing any on your own, you're not going to be a good candidate for another employer I'm sorry to say. You and you alone need to have an interest in pushing yourself, learning new things and pursuing what interests you. If that's "nothing, don't care" that's fine but it also means you're never going to enjoy what you do or be especially compelling as a hire.
Even within the confines of developing boring reporting, invoicing etc type business IT solutions you have a lot of leeway in how you meet the specs. If you push hard to optimize things you'll make people pleasantly surprised when things that took minutes now take seconds or less. Being innovative in how you present the data and analyze it with mathematics and statistics can present it in entirely new ways that allow people to see things that they never had before.
The work itself should be the reason you are passionate about it. And a lot of that is in how you personally choose to approach it and your attitude towards it.
Go to basics. Passion is driven by needs, by goals.
Nothing steers more passion than your own needs. Find stuff in your life that you can solve by coding. Solve one and feel like a million bucks. Then solve another one. Turn negatives into positives, literally.
Do fun stuff in your spare time. Bosses are supposed to be manipulative jerks, they are not your friends. Don't believe bullshit on TV - jobs are not supposed to be fun. Nobody is paying you to have fun. People pay you to do boring/annoying stuff. If you can find 1% of your work that is remotely interesting, hang on to it like crazy, it will make your work bearable. Change workplaces each 3-5 years. Yes you can do it, even in the current economy.
I think you already knew what kind of answers you would get from this. There's no handy mind-trick that will make a bad job enjoyable. At best you can try to marginalize the impact the job has on your life and concentrate on your activities outside of your work.
Change the job. Your interview skills can be worked on.
And don't worry about your age (if that is a problem). Our department hired a 50 years old tester last year. Reason? In my area it's hard to find developers and IT people with experience. All people with CS and IT degrees want to work at cool SW companies in Silicon Valley or at least in big cities. Businesses in smaller cities and towns have a hard time attracting engineers. So for our position the guy we hired had little competition. Just foreigners who needed visa sponsoring and people with little or no relevant experience.
There is one thing that I've seen bringing passion back to developers: code retreats. I recommend you to try attending one. It turns out, on December 3rd a lot of code retreats will take place all over the world. Another thing that helped me was pair programming with random people, 1-2 hours after work. It's refreshing to see how other developers think. It brings back the passion for learning. We could pair if you want, it's easy: http://www.alexbolboaca.ro/wordpress/the-remote-pair-programming-tour. Read more here: http://coderetreat.com/
Software is Knowledge
And then code in it.
It is quite a lot a fun to do it, after years of working with existing languages. You will open a blog, participate in forums, and do many things that will challenge your beliefs and bring back the passion.
I am currently in a job where maintenance hell is the daily reality, it is known that the old code base is pretty bad but management doesn't quite realize how bad (it is REALLY bad) because I keep saving their bacon by patching half a decade old bugs since I started. But fixing bugs someone else created while that person did it on a contract that netted him a far greater income then most companies would ever consider giving a full time employee AND he still gets payed for it... that is not exactly motivating.
The problem is that a lot of coding jobs are basically maintenance. It takes one person to write really bad code and a dozen to clean it up. Maintenance hell is a very easy state to get into and impossible to get out off.
So, what is maintenance hell? It is the state you get into when a codebase contains so many bugs and design mistakes that you cannot truly improve it, just patch it and this takes up so many resources that the much needed version 2.0 never happens because for every mistake fixed management wants another feature bolted on, no matter how much the original design makes this impossible and this then exposes numerous unknown or ignored bugs that must be solved first.
For companies this is even worse then developers because developers can and will leave if they got half a brain. Maintenance does nothing for your CV and if your CV is not growing your career is at a standstill. Nobody ever got promoted or headhunted for doing good maintenance.
So... what to do? I presume the original poster is stuck in maintenance hell like so many of us. Do stuff in your free time? If your job is any like mine, what free time? Even if your lack of enthousiam has let you to work a 8 hour day, with the commute etc you spend at least 10 hours at the office. Add 10 hours sleeping, eating, crapping, having wild passionate sex with super models, and there just isn't that much time left in the day and after a day of fixing other peoples fuck-ups your motivation won't be that high. I have found I write the best code at home when I writing good code at work as well.
Only two options are really open, fix your job or find a new one. Fixing your job is often very hard because it requires management skills most coders do not have. Anyway, with you constantly fixing bugs, management probably thinks you are doing a great job and if they only keep insisting you bolt on new features and fix fuck-ups then their crappy codebase will someday mutate into a wonderful codebase. Yes, managers really think that if you keep polishing a turd, one day it will be a diamond. They are right, if you can somehow convince a really good polisher to polish it for his entire life. If a coder is however any good, he will soon give up, realizing there is nothing in it for him (because it will be the person who dropped the original turd who is rewarded for the diamond, you will be just the bug fixer moved on to the next turd)
Leaves moving to another job... with no guarantee that you won't get stuck in the same thing again. But then again, getting out at your current job is not realistic either. So you have to weigh the odds. 0% change of improvement at your current job, 50% chance at your new job?
Bad at interviewing? Your a coder, if your interviewer can't handle you being bad at it, then he isn't looking for a coder but for a sales person. I interviewed people myself and of course been interviewed and for jobs that are worth getting what matters most is being open. Realize that while you might have had a dozen interviews this day, THIS one should still be special. Just be honest and then you have the best changes of finding a job that meets your requirements.
Because if you stay put, your motivation will get worse and worse until one day you are either just another Wally OR Wally and unemployed. And good luck with your bad interviewing skills when you turned into Wally.
MMO Quests are like orgasms:
You may solo them, I prefer them in a group.
A few months ago I was also disgusted with my work, so much that I was looking at my code and it was like trash to me. Then I started a new project on micro-controller programming. Basically, 3 months ago I had no idea how to program a micro-controller, now I have this new skill and also refreshed my C programming skills which I have missed so much :) The projects you can do with micro-controller are very interesting (I'm doing robotics atm). Be done with all this .NET shit. Take pure programming in C, where a pointer can determine whether 5v will be sent to specific pins on the CPU. Oh the beauty!
.NET shit but hey, I need to get paid :P
Ofcourse, I'm not really done with the
http://www.amazon.com/Have-Fun-at-Work-Livingston/dp/0937063053
http://www.amazon.com/Friends-High-Places-W-Livingston/dp/0937063061
From a review: ... This book discusses chronic patterns of organizational malfunction that I have observed personally many times while working for computer firms (4 years at Hewlett-Packard and 6 years at Tandem, among others). Man is not well-adapted for solving complex problems, he argues. Our brains and bodies and, to a large extent, our social systems evolved for the lives of our hunter-gatherer ancestors. Faced with truly complex problems, our managers generally fall back on instinct. This can produce legendary debacles like the original baggage handling system at Denver International. The book sketches a different social structure that is better equipped to cope with complexity: the Skunkworks. The term comes from a legendary aircraft development shop that produced the U-2 and Blackbird aircraft. In general, a Skunkworks is a small (3--5) team of battle-hardened, generalist engineers equipped with the latest in software tools for simulating the behavior of all the involved systems (mechanical, electrical, software, and social). On a purely practical level, this book is an excellent survival manual for results-oriented engineers who have developed attitude problems about the structural barriers to success in their work environments. Livingston discusses how to evaluate your social structure's potential for success, ways to get working projects out the door in spite of these barriers, and how to tell when you're wasting your time even working there. "
http://infohost.nmt.edu/~shipman/org/hfaw.html
"Have fun at work (Engineering Empowerment) It is dangerous, and often fruitless, to try and solve problems without considering the underlying social system. This is the message of William L. Livingston, a mechanical engineer with over 100 patents and decades of industrial experience.
The tangential links there are rotted, but try also in general:
http://web.archive.org/web/20010401000446/http://www.thefrontend.org/
http://web.archive.org/web/20010405020550/http://www.cascadepolicy.org/dee_hock.htm
A 21st century issue: the irony of technologies of abundance in the hands of those still thinking in terms of scarcity.
Learn a new language.
And do it for fun, not because you "need" to.
I was there, doing these things will help.
1. Get out of your current job.
Even if you have to take a cut in pay or otherwise take a lesser position. I fought the good fight at my old job, doing better for my own satisfaction, even if nobody appreciated it ( and nobody did ). It helped. However, once I finally left position I was amazed at how much my mood lifted and how I got back some enthusiasm for free.
Being at a job you don't like is like a rock in your shoe. You may learn to tolerate it better, but you will never see improvement like you do with getting the rock out of your shoe.
2. Learn new stuff
3. Take on projects in your spare time for nothing other than your PERSONAL SATISFACTION.
4. Take a class.
5. Join a programming meetup group.
6. Do a side project where you make something for someone and get paid for it.
7. Be aware that, AS A GROUP, programmers tend to be introverted defeatists who are scared to move out of their comfort zones. Learn to ignore these people.
Go on job interviews like you mean it.
Doing so is incredibly effective for showing you what skills you need to learn. Interviewing ( doing something about the lame job ) will make you feel empowered. Interviewing will show you that there are other employers with different ( & better ) ways of doing things out there and that things don't have to be as they are. The more you interview, the better you will get at it.
You indicated a couple of sources of your current dissatisfaction; one was your environment -- especially your bossess -- another was the type of code you're writing. There's really nothing you can do about the former except polish your resume, hone your job-hunting skills and find a new job. But there is something you can do about the latter: Improve the quality of the work you do.
It doesn't matter if you're just writing CRUD day in and day out, there can be a lot of satisfaction to be found in writing the cleanest, most readable, most maintainable and elegant CRUD around. And there's plenty to learn. Buy a few books, read them and start trying to put them into practice. I'd start by looking at Martin Fowler's books on refactoring and Robert Martin's books on clean code and craftsmanship. I'd also recommend learning about test-driven development and starting to put that into practice by writing basic unit tests for the new code you write, and especially for any buggy code you fix. If you have any co-workers whose code you respect, see if they can review and comment on yours. If there are a few other people around who are interested, organize some lunch meetings to study code quality. Try to carve out a little time to refactor ugly parts of the existing codebase. This is easiest when you're touching the code anyway, because it's buggy.
It takes some effort up front, but before long you'll find yourself beginning to create much more beautiful code, and along with that will come greater interest in creating code of the highest quality. Your present bosses may not appreciate it, but you can find greater satisfaction -- and in the process make yourself more marketable so that eventually you can find a job that appreciates your passion and skill.
Note to ACs: I usually delete AC replies without reading them. If you want to talk to me, log in.
http://www.ruby-lang.org/
http://love2d.org/
That is all.
We're talking about programming here, not sysadmin. In the age of teleworking, skype/videoconferences etc., companies that still require you to relocate for a programmer's position are increasingly rare. Even if you're across two continents, that's totally irrelevant to programming. Why do you think so many coding jobs are being outsourced to countries like India?
cpghost at Cordula's Web.
The problem is you, (it's always us).
Yes you are bored, but you are not hungry.
Being hungry is part of the solution as the need to satisfy your hunger is a very primordial passion.
Working something new on the side might not just cut it.
It might get you something fun, but will not make you hungry.
Quit, get hungry, find passion, (or let passion find you)
If you aren't appreciating the work you are doing now, consider asking your favourite local charity what software they need or what information they would like to gather and try and produce something that actually helps someone you can meet and talk to.
I've just been working on a prototype project for a local hospital who are trying to work their way through the social networking jungle, trying to assess whether their messages and fund raising is actually getting out there. You'll probably find that your local charity is awash with similar concerns but has no money to invest. Most experienced programmers can quickly pull a twitter aggregator, a facebook search app, a database and any amount of free software together and actually answer some of their questions. Or write a mobile app for them to distribute. Or help them improve their web service.
Anything I post is strictly my own thoughts and doesn't necessarily have anything to do with the opinions of IBM.
I can only speak for myself but the "cure" I've found to that problem is to learn Android (I'm a Java expert already, no sweat was produced) and create a publishable application on the Android Market. After half a year I am back in enjoying coding for myself, the company I work for getting more hopeless in that regard every day, and I have a neat application that is successful enough in its own niche to make me a happy coder.
For the curious and for the sake of auto-promotion, the app is Evanova, an Eve Online companion.
I was once a developer and project manager for a consulting firm that serviced a multitude of clients in various for-profit industries. The money was great, the work was occasionally challenging, but at the end of the day I really didn't feel like I was contributing anything worthwhile with my life or accomplishing anything useful. Yay, some software that I was only tangentially involved in creating helped Big Advertising Firm cut costs fractionally by improving their workflow. Whee.
A friend of mine who was working for a not-for-profit asked me if I would be willing to volunteer some time to help one organization get set up with a web presence (it was a domestic violence survivors organization) to help facilitate outreach and fundraising. I did, and they then put me in contact with another NPO that worked with youth kicked out of their home.
Flash forward another couple of years (I went back to school in the meantime and got an advanced degree in something other than CS) and I wound up working for a university as part of a research team that focused on turning social psychology studies into useful interventions and results-based educational programs. My role there was to be a kind of process expert - I would look at research projects that were very man-hour intensive and prone to high rates of error and find ways to automate processes where I could and reduce the possibility of error etc. Took one project that had 10 staff working 50-60 hours/week each down to only needing 4 staff with a much more sensible 35 hours. Reduced the rate of assessments with more than 10 errors from over 75% to under 5%, and the rate of assessments with more than 5 errors from 90% down to 8%. The total costs of the project dropped by more than half, meaning that those funds could be routed to other projects.
Did that for 2 years and now I'm working in the criminal justice system doing something similar for jails and prisons - finding ways to reduce the administrative overhead that mental health professionals have to deal with so they can spend more time working with inmates constructively and less time filling out colossal amounts of paperwork. I also helped design and develop a system for connecting parolees more efficiently with social service NGOs in their neighborhood to help better re-integrate after release and it looks like recidivism has dropped substantially for the first year out - hopefully the longer term results are just as cheery.
I spend maybe 50% of my day programming, 25% in meetings and the rest on a mix of administrative type overhead (mostly helping facilitate projects through the often insane bureaucracy).
Programming makes me *happy* now in a way that it hadn't for years because I'm doing it in aid of something that matters.
The pay isn't the greatest - I make now about 80% or so of what I could make were I doing private sector stuff with my years of experience. The benefits are phenomenal, however - at the university I had *60* paid days off per year, tuition reimbursement, incredible medical benefits and an awesome pension plan. Where I am now I have less vacation (5 weeks/year), but equally amazing pension, medical bennies, and a promotion track that's extremely clear. I also have less bullshit to deal with in a lot of ways - working in a jail or prison environment we usually are more focused on getting the job done than we are on bullshit office politics, though that might be more a function of working with engineers.
Since I can't tell them apart, I treat all ACs as the same person.
I took a sledge hammer to a server and all my friends did too, and I avoided computers for a year, and learned automechanics. After that I re-found my passion for coding, and broadened my view of the world. I'm glad I did it.
Agreed.
Uh, Linux geek since 1999.
Agreed. If someone has people skills, and built up a positive network of people they work with, then perhaps let trusted coworkers know you are open to trying new positions in your company, even if the positions are not hands-on programming work.
For where I work, I was offered a position in another dept.
It seems that over the years I had earned some positive karma with them when I worked with their dept.
I accepted.
Kept my salary.
Kept my years of previous employment, so still qualified for pension benefits after 5yrs of total work.
Get bonuses now.
Telecommute 4days/wk.
If I want to program at home on my own time, then fine too.
So now I am 'only' a hobby-ist programmer, and happier. Win/win.
Best wishes on 'finding your happy place.'
Uh, Linux geek since 1999.
BWHAH HAHAHA.
Time to go to Chatski's (however they spelled it) and make fun of the waitstaff's flair.
Uh, Linux geek since 1999.
Find local social groups that have meetings. Network. Camaraderie may help, and word-of-mouth is a great way to get inspired.
For example, I am a member of the SGVLUG. Sure, its Linux focused, but the skillset of the attendees and members is quite vast.
Hope all these suggestions from people help.
Uh, Linux geek since 1999.
What is your true passion in life? A little Zen always helps. Know yourself. Know your interests. Know your passion for knowledge of those things you are truly interested in. I really don't care too much for Object Oriented Programming. I'll do it, but I am not passionate about it. I prefer structured function oriented languages. C++ doesn't really interest me and C language is a bit esoteric. However, Perl is pretty neat and Javascript is far easier to master than pure JAVA. The shell programming languages of UNIX and Linux are very powerful and easy to learn. If you learn korn shell, all the others, like POSIX, bourne, & bash, are easy to pick up. Knowing XHTML and CSS2 is helpful but learn HTML5 and really concentrate on CSS3. Knowing HTML5 and CSS3 with Javascript provide a powerful triad for getting hired as a web developer. You should learn an object oriented language to complement your Web Triad languages so you can access relational databases. The most popular and easiest Object Oriented Language to learn for the Web and relational databases is PHP. For relational databases you should know how to code SQL. SQL will gain you access to all the big relational databases like MySQL, Oracle, Sybase, and DB2. Once you have mastered these languages you may find it far easier to tackle developer environments like Ruby with Rails or JAVA with JDeveloper and JQuery. How do you get started? Get a copy of Notepad++. What really lights your fire. Find a topic and setup a web site for that topic using HTML5, CSS3, and Javascript using Notepad++. Put some muscle into it using PHP and an open source database like MySQL.You can find MySQL engines on the Web. Even Oracle supports MySQL. Once your rock'n & roll'n you can try your hand at an IDE. NetBeans is free from Oracle and supports XHTML, HTML5, CSS, PHP, SQL, Javascirpt, JAVA and API's for relational databases. To add some spice to your web site learn calligraphy and a good graphics design tool. Dreamweaver is very expensive, however, you can get a copy of GIMP or Inkscape for free. Well I hope I have given you some ideas. I am sure many other comments will have some great ideas as well. Good fortune and find your true passion in life. It will inspire you to do great things!
Before I respond to the passion thing, I want to ask you and all the responders here, in an industry where there's an under supply of techies
- Why is it that we take their (employers) crap?
- Why is it that we put up with their bad management?
- Why are they calling the shots
etc...
Are you insecure about your ability? scared that you wont be employed elsewhere? WAKE UP! THIS ATTITUDE IS PART OF THE PROBLEM AND CAUSING IT TO CONTINUE!
If you put your foot down, if EVERYONE did, and showed their employers that WE call the shots, else WE LEAVE, then they would change their ways. Isn't that obvious? We need to stop being timid, and start being professional. Treat me professionally and I'll return it. When that happens you will be taken seriously. It is our responsibility to wake everyone up, you need to shake those techies around you that's SLEEPING! I just cannot beleive people would put up (wrook's post) with Employer:"If you want to program outside of core hours you should be doing work for us". !!?? Screw them, that is unacceptable, you don't own me, THIS IS MY LIFE! You have to stop and realise that you don't owe them anything, yes they pay you to deliver certain things, but if you don't enjoy what you're doing then you move on. that's it.
Okay. Passion.
I've been through this kinda thing a couple of times, and I figure that we confuse the source of the problem.
Developers often say "I didnt get anything done today!", when they mean "I didnt write any code today!" - ie, what is it that you want to do, what is it that would make you happy? Do you want to write code? Do you want to write more code? Do you want to work with other tech, or maybe try new technologies? Do you want to be more involved with the project instead of _just_ code? Do you want to make decisions, instead of just following instructions? These questions would lead you to understand what you need to ask for at work (dont use attitude, be realistic, and factual), or what you need to look for when you're out doing interviews. An interview is not just a place where they check you out, but where you CHECK THEM OUT, ask them all those questions regarding all those things you've figured you're interested in, ask them question regarding their setup so you can understand how they function and if that would be what you want! Take control!
One other thing, get a grip on the average performance of the team. When you're given something you dislike, perform at that level. Have a neutral attitude. BUT, when you're given something you like, perform like your life depended on it, show energy, enthusiasm, etc that is way above average; if your management are somewhat smart, they'd recognize that, and hopefully realise that they can use that to their advantage...AND you'll be happier.
OR, look for something in your code base (or whatever area you're interested in) that you;re interested in, and that you know been sitting on the backburner for a while, and solve that in your spare time. do a good job. like the previous paragraph, hopefully they'll realise that you could be much more productive in another way...
else, get another job :)
And this thing about "accept a crap job, and doing what you love after work like OSS" is bull. you're spending most of your woken hours at work, it better be good. (and jeez, how about a balanced life?! After work I really want to enrich my life with other things; learn to cook the perfect tenderloin, build myself a nice cupboard or work on my bike in the garage, go ride my motorcycle, go for a beer with friends....!)
get involved with forums, user groups, projects that interest you - this would probably lead to an opportunity that would get you excited. try it.