views:

2323

answers:

17

I've been having some problems with stress/anxiety lately, and I'm starting to think that's giving way to depression.

While I originally thought it was just the workload (unrealistic timelines when I had just transitioned to a new team - QA - where I was the only tester for a large chunk of changes) or the job (large consulting firm, expecting us to enter time into a tracker where we're accountable down to a quarter hour - with no place to enter coffee/smoke/washroom breaks), I'm now wondering if I even want to be in development at all.

I'm probably not like most developers on this site; I'm in no way elite. I got into programming in 2000, when I was in grade 10. It was my first exposure to the subject and I liked the feel of the work - the control, the delight in something you made coming to life on the screen.

I took a few more classes and liked it, but only did basic learning outside the classroom - the Internet wasn't as big back then, and I didn't have the access to it that I do now. When college came along, I decided to try programming. It was college, not university (a distinction that means more up here in Canada - think more vocational learning like high level language stuff and syntax rather than the theoretical stuff you get with a Computer Science degree in University) so I don't feel prepared.

My first resume out of college said I've worked with a bunch of stuff - .NET, Java, C++ - but it was all high up stuff I doubted I could get a job in without more experience / out-of-class learning.

I was in a financial crunch so I took a job far from home doing maintenance on a legacy system running a bit of COBOL and a lot of report generation/data dump tools (Cognos Powerhouse and Robelle Suprtool for those who might know). After a recent migration (a project I was on, and enjoyed, for a year and a half of my two years service), we're running under HP-UX with a proprietary shell to emulate the MPE system we used to have.

I know the job is career suicide considering where I want to be (C# or maybe Java - something "newer", working with a team that could actually mentor me rather than just throw me to the wolves) but I don't know how to balance work and life enough to get far enough in my learning to make a difference before it's too late.

I'm freaking out at work. I've been on two stress leaves since early September (once for a week after I basically tried to quit, and another for two weeks after a few days back when I snapped again and had a panic attack), and I have an appointment with my doctor on Wednesday to go over things again. I want more stress leave since I can't handle being at work, but I think it's more "that job" than the career in general.

Since I'm already terribly behind, I've questioned leaving development for some other career. I'm not sure what I want to do though, and money is a big concern too (which is why I haven't quit my job yet as well).

So my question - Can I salvage my career? Should I just give up? What can I do to get myself to a "junior developer" level quickly?

Update: (Dec 11 2008)
I've noticed the view count on this page has been rising a lot in the past few days, so I came back to read over the new comments left on this question. @kajaco asked for a follow up about an hour go, and I'm happy to oblige.

Since this question was first posted, I've returned to my job. I did this initially to get a bit extra money and hold me over while I looked into my options with EI. My team lead has been surprisingly supportive of my return, although our HR manager was so cold about the situation when we spoke the morning I arrived back to the office ("Are you here to play, or are you here to work?").

I've been handed a lot more analysis work this time around, as well as being tasked to mentor a junior resource. The pure analysis requests aren't subject to the same "nickel and diming" as development requests are, with regards to time tracking. On a small development request, we have to estimate/track to the quarter hour, and if we stray too far (in either direction) from our estimated time or if our actual time doesn't fit within "expected values" for the type of work we're doing, then we lose the ability to close our own tickets and a technical and/or team leader has to sign off on it.

Pure analysis requests generally come down to buckets of "time spent investigating" and "formal documentation time" and we have pre-approval for up to 24 (billable/business) hours work, so there's less stress for me in that regard. This is important as I believe a big part of my problem has been worrying about not meeting their exacting standards for how long things should take, and the bureaucracy that goes with it.

I've also submitted a number of improvement requests surrounding our project. A member of our process improvement group came to see me about one of them today (specifically, implementing a wiki for the project) with the intent of championing the idea and pushing for its implementation. Others include aspects which could allow me to develop productivity tools; this would give me a little more "official" exposure to some technologies, which in turn helps me escape the company (which is still very much the plan at this point).

In my spare time, I've been doing some reading and, more importantly, creating a few (relatively small) pet projects to develop my technical skills. Artifacts of this effort can be found in some of my more recent questions on this site.
In short, I think I'm doing pretty OK for the moment. I'm off for vacation a week from tomorrow, so I figure my job is safe for at least a month and I'll have plenty of reading time on the plane(s) over the next few weeks.

I might even update this again someday.

Update: (Dec 16 2009)
I added a timestamp to my first update for @Barry Brown, and thought maybe another update was in order.

In July, I was terminated from the job I described above. I'd had a bad weekend, had to stay late despite being told I could leave early, and my boss was an asshole about it. The stress got to me, and I got a little vocal, and I was let go. My girlfriend, my friends, and my family all said it was for the best. As my girlfriend put it, "as much as you bitched about that job, you were never actually going to leave it" so it's good for me that I'm out of there now.

I've been on Employment Insurance for the past few months, but I'm having issues finding another job (economy, location, plus I've spent 3 years working in COBOL yet I have no desire to ever do that again). I came up with an idea for a website a few weeks ago, and have been puttering around with that. It's not much, but most people I talk to seem to think it's got potential. I've been reading up on other things (Java, C#) trying to get myself back in mental shape, and in general I'm pretty happy right now. Even if I don't find a job before my EI runs out, I've got a few thousand dollars in the bank that'll last a few months. I'm pretty sure I'll land on my feet.

+10  A: 

I think you can salvage your career.

What you need to do is get some C# experience under your belt. Perhaps write a program to show what you can do (for example, a photo organising program or something). Either give it away or sell it, but make it available on the Internet. It doesn't have to be a big program, just big enough to show some basic concepts, for example:

Once you have written the program, apply for a junior level C# developer jobs. You will be able to use your program to show you have a basic understanding of the language.

What you need to do is get to an interview, and explain that you want to head in this direction. Let the interviewer know that you are enthusiastic. Make sure you come across as keen, not desperate.

You already have some development experience, which is a big plus.

So yes, you can salvage your career. I jumped across from network/desktop support to C#/VB.NET development. :)

deadcat
How do I know when my code is good enough to be seen "in the wild?"It would be pretty embarrassing to post something with an odd bug I wasn't able to notice.
AgentConundrum
All software have bugs. If your program gives someone some value it's good enough for something.
Torbjørn
- Make sure you put together some test plans- Check all input into the program- Make sure you use try catch blocksYou can't catch EVERY bug, but you can catch the show stoppers.You can always post segments of your code here, and ask us to critique it.
deadcat
Another good thing to do, would be to use some form of test framework (NUnit for .Net, JUnit for java, etc), and learn (if you don't know it) or practice unit testing while doing so. This should give you software that is as reliable as possible (or at least as reliable as your tests).
Furis
Excellent suggestion Furis. :)
deadcat
+71  A: 

No person should have a job that causes them to have panic attacks. "Stress leave" is a bad sign, because it's the kind of stress that leads to withdrawal and depression. Get out as soon as you can. There are better jobs out there.

You say that money is a big concern and is the reason you haven't quit your job yet. Listen up: money represents three things: a roof over your head, food on your table, and stuff in your house. The first two are vital: if you quit your job, will you have a roof and food for at least a month?

Pay your rent/mortgage forward at least a month. Pay the necessary utilities: electric, water, heating. Take a week off to decompress, then go on the job hunt.

Don't have enough money to pay the necessities while on the job hunt? Then take a look at your stuff. I don't know what you have in your home, but do you need it all? Would you rather have a big screen TV or your sanity? Video games or eventual suicide? Cut back on your expenses. Ditch the cable TV, cell phone, high speed internet -- that's probably $200/mo right there.

I've been there. One of my first jobs nearly cost me my life. Terrible boss, stressful days, bad marriage, etc. I nearly ended it all. But I quit that job and got better.

My point is, if money is a concern, cut back (waay back) on the luxuries so you can focus on getting a better outlook. Go for walks or runs; they'll cheer you up. Take a class at a community college; you'll meet new people.

Don't worry about money. No matter what career you end up in, the money will come and you'll adjust your lifestyle to match it. I switched careers eight years ago, took a 50% pay cut... and have been happier, had more disposable income, and more free time since. Neat how it works that way, eh?

Barry Brown
I couldn't agree more with this. There's always someone out there looking for solid IT people.
fluffels
I still have outstanding loans from college. My apartment, electricity, and "required bits" like tv, internet come out to be $1000 a month, plus food and some entertainment. I've done the math on it and I can survive about a year if I beat up my credit again.
AgentConundrum
My girlfriend and I are planning to move in together soon, so I have to think of her too. That would cut my expenses in half, I suppose, so maybe it's more doable than I thought. I just need to be careful.
AgentConundrum
Try not to live off credit. Being in debt can lead to stress and relationship problems if not well managed. Do you have enough cash to live for at least a couple months? When I was laid off, I was able to go six weeks making only minor lifetstyle changes, like not eating out.
Barry Brown
Well said Barry! Great advice IMO.
Galwegian
Unfortunately, all my money is tried to credit right now. All extra pay I have goes to paying down loans (student loan, line of credit) so my chequing account is pretty dry. I'm ok with living on credit for a few months, but I'd need to be really trying to get up-to-date and find a job in that time.
AgentConundrum
Don't try and do everything at once: you don't need to be up to date, you need a job where you can survive. As soon as you got a more decent job, you will find a way to get up to date.
Sam
money represents three things: a roof over your head, food on your table, and stuff in your house. I prefer to make it four: Roof, Food, Stuff and Speed under your feet. :-)
skyflyer
+11  A: 

That sounds pretty rough. I have been in a similar boat with my previous job, and was also at the stage of thinking about switching careers. However, development is what I love, and I had to make a decision to look for greener pastures. In your situation, being stuck in QA sounds like it is far from what you are actually wanting to do, but it might count in your favour (if you can test it, you will hopefully know what to look for when you build it).

I would say your career is well worth salvaging (as you still seem to want to be a developer), but you need to put some focus into developing your desired core skill set (which sounds like programming in C# / .NET languages). A good thing to do (although I know it is probably the last thing you want to hear at this stage, is to work on a simple portfolio of applications after hours which can help display your skills, as well as further train them. You can include everything from simple TCP / UDP networking, WCF, to GUI (Winforms, Web front ends and WPF). Try and build up your experience, as well as having something to show at potential interviews.

Which brings us to our next point. Interviews. Get them, go to as many as you can, get your name out there. Become familiar with the types of questions they are asking. Be honest with them, tell them your current skills, and what you are looking for. If they ask questions that you don't know the answers to, say "I don't know". But make a note of that question and research it when you get home (it will probably be asked by more than one potential employer, so it helps to be familiar with what they are looking for).

But most importantly, get out of that environment. Work doesn't have to be hell. Maybe I am just lucky, but I love my job, and my employers understand that developers are people too. Good luck, but I think if it happened to me, it can happen to you.

Furis
Actually, I was moved out of QA by my request when I left on stress leave for the first week. I basically told my manager I wasn't a tester anymore - either I was being moved out of the position, or I was walking out the door without my badge. It seems "testing" wasn't the issue after all.
AgentConundrum
+6  A: 

Well, first off, don't sell yourself short. It sounds like you've at least had exposure to a few different languages and aspects of programming. Being successful in more than one language demonstrates that you understand the concepts of coding, which is actually a big step! There are a lot of "professional" coders out there that are completely language dependent and fail to carry over simple concepts between languages when only the semantics change. Good for you!

As for the software industry, one needs to understand that it will always be a higher stress, higher demand field. Partly because of what we deal with... intangibility. We are designing abstract systems that don't make sense to most people. The people selling products will always think "all you have to do is move this text box over here, and switch this background color", without understanding that moving a UI element could go against the underlying framework and cause a total redesign of a component. The 'higher-ups' never really understand why changes take so long, tend to rush work, and as such bypass good principles in favor of making deadlines. This fundamentally differs from what most programmers want... time and perfection, which in turn gives us a sense of pride in our work. In other words, programmers usually want to take their time and do things right and take pride in a job well done, while the business side wants to ship a product ASAP.

As for your ambitions as a junior level developer, I have to believe that there are companies you can work for that would provide you with the mentoring and training that you need to be successful. I just went through a job change myself, moving from a large company with roughly 50 programmers, to a much smaller company with a team of only 4 full-time programmers and a few contractors. My old company wouldn't mentor or train anyone. They only wanted to hire senior level people that could come in and immediately start coding and making progress. However, at my new company, it is the opposite. I am the only "senior" software engineer at this new job. The guy in the cube next to me is a junior level developer. I believe he has only been a professional C# programmer for about a year. He seems to be developing his skills well, and myself and the rest of the team are certainly there to help him when he has questions. Also, the company's original "IS" department consisted of 1 person, who was mainly an Oracle DBA that picked up C# to put a rough application together.

I guess the thing you need to figure out is; would you be happier doing something else? I quit my last job because I was completely miserable at the company, and hated the project I was on. At my new job, I am doing basically the same tasks, but now I am happy to wake up and go to work again because of the environment, the people, and the projects. The bottom line is; do whatever makes you happy! :)

I hope life turns around for you!

rally25rs
+1  A: 

Based on the people I've had to interview over the last few years, it sounds like you're solidly past the "junior" level. Don't sell yourself short. One way to get the experience you want while still being productive at your current job is to introduce new tools into your current environment.

You're in QA, right? Do you have a system for reporting test results online? Maybe you could write one. There must be something you need to make your job easier, or to automate parts of it that you don't like doing manually.

Mark Bessey
I'm not past the junior level for what I want to do. I've basically no experience in .Net. As for QA, I'm out of that now - I was only there for about a month before the stress leave. Previously, I was a tester/bug fixer on a migration project. I wrote a bad sh script to automate some stuff though.
AgentConundrum
I think I'm not making my point well enough. You have close to zero experience in .Net right now, but with relatively little effort, I think you can learn "enough" to get an entry-level job. If you've had any ability to program, then a change of language should be no big deal.
Mark Bessey
+5  A: 

For what it's worth, I don't think many junior porgrammers who are tasked with maintaining a legacy COBOL system will be that happy. It's 25 years since I've been near COBOL and to me it seemed tedius even then.

Modern languages such as C# and Java are relatively easy to learn, certainly to junior programmer level. If fact many people looking for junior programming jobs are pretty weak programmers, and that is being kind. As such, if you wanted to keep with the development career, I'd pick up one or two good 'teach your self' type books, and discipline yourself to working through them from end to end. It is worth noting that many of the best porgrammers out there are largely self taught. For me the trick is picking a language you're interested in learning, and a project that you find fascintating. Start simple and work up. If you can re-establish your enthusiasm, and start to love programming again, I have no doubt you can have a long, happy and successful career as a developer.

I'd also second Barry Brown's sentiment about spending some of your free time on taking outside exercise. Running is good, hiking with a bunch of people is also great, as is going out for a few beers and a bop with non computer people. If you work all day long in front of a screen, and come home to look at another screen, IMO, that is not going to help your mood. Given you may need to spend extra computer hours learning a new language, I'd say that's more than enough screen time.

Shane MacLaughlin
+6  A: 

rally25rs is right - don't start to doubt yourself. For what it's worth - I have not tertiary education. I starting teaching myself to code when I was in Grade 7 and now, 22 years later I'm a CTO and head developer.

The trick is, in my opinion, twofold

  1. You have to enjoy coding. I've hired developers with University CS degrees who had no passion for the field and most of them turned out to be useless.

  2. Find the right employer - tricky one I know. Find a small friendly company made up of like minded co-workers and avoid the corporate world.

WayneDV
+10  A: 

You need to do what you love.

It's good that you're pursuing help with your difficulties.. Stack Overflow can offer you perspective on the programming career, but be sure that you continue to turn to your family, friends, and professionals for help.

keparo
"If you love your work, you'll never work another day in your life again."
Barry Brown
On the other hand, taking something you love and making it your job can lead to no longer loving it...
Brian Knoblauch
@Brian - This is exactly what happened to a friend in college. After the first semester he said he'd realized he was trying to turn a fun hobby into a career. He left because he didn't want to lose the love of the hobby. I'm starting to fear that I should have followed his lead.
AgentConundrum
+5  A: 

Some good advice above.

Try not to get things out of proportion. This probably won't seem like such a big deal in a few years time.

Take a couple of weeks holiday to get yourself sorted. Exercise can also be very helpful for stress/depression.

Your health is more important than your career.

Andy Brice
+20  A: 

It seems to me you are stuck in seeing only the negative aspects of your situation but in actual fact from looking at your activity on SO and at your blog you have a lot of positives.

You hate your job - try to get out as soon as possible on your own terms - put your CV together - apply to jobs that look interesting to you in the technologies you would like to use but keep an open mind.

Here are some of the positives that I see :

  1. Single-handedly driven the QA team / solely responsible for testing significant amount of work

  2. Significant experience on a migration project (Mainframe to HP-UX if I'm not mistaken). Look out for jobs involved in similar projects of COBOL to .NET for example

  3. Adaptability / Flexibility - you've shown you are able to learn different technologies as needed on the job

  4. Experience of testing, deployment and support (try to identify what you have learned from these positions)

  5. 2 years + experience - not bad - there are many companies who will employ people with less experience than that

  6. You're 23 ? - your are NOT terribly behind - I was 25 when I got my first development job !

  7. You have an inquiring mind - you're trying to improve your computing knowledge- new concepts such as Algorithms etc..

  8. You write well - I've read some of your blog entries - they are well written

  9. Hey - and you're moving in with your girlfriend (a little secret - many programmers don't even have a girlfriend !)

Be positive. Try to identify all the positive aspects. If there are negatives try to use the positive out of it. I.e. at least it helps you define what you don't want to do.

Good luck.

Tom Carter
"Hey - and your moving in with your girlfriend (a little secret - many programmers don't even have a girlfriend !)"ROFL! I needed that!
asp316
My first proper full-time programming gig was when I was in my 40s. So don't panic. Keep looking.
Jeremy McGee
+4  A: 

An important thing I learnt to remove stress from my mind came from several people, involving novel writers, animes, my father, several pastors and martial artists: You generally create stress yourself. Repeat that: Stress comes from you!. Most of the times, you go like "Oh my god, I won't be finished tomorrow. They will run after me with Pitchforks, Axes and Torches, burn my cubicle and do other nasty things". This might happen, of course, but if you look on things like that, you disregard an important fact: Developing is a highly creative act -- in a sense "art", but I don't want to raise the holy flames of wars about that topic, so I say "creative act". Accepting this, you can conclude: You cannot rush development, because you cannot rush creative acts.

This leads to my current mindset. I throw myself at the project as hard as I can, and I am cranking things out as fast as I can, but I cannot go faster. I will be done when I am done. If I cannot hold your schedules, either your schedules are wrong or I am not 1337 (yes, that is sarcasm, indicated by stupid leet-speak :) ) enough for your job. Either your boss is going to accept the first one, or he is going to accept the second one, which results in Barry Browns scenario.

Of course, I assume that you DO throw yourself at problems as hard as you can without hurting yourself mentally or physically and regularly have visible or at least visualizable results so no one can say "But you don't get anything done".

Tetha
+3  A: 

Oh man quit, quit, quit! Use up credit, borrow from your parents (hell, move in with your parents) but get out of that toxic situation. Your sanity is worth a hundred jobs like that. Don't be a victim ("He still loves me he just can't help himself sometimes"); you can do better!

MDCore
+2  A: 

There is this thing called the Happy at work manifesto. I think it might help you to read it. I think it's created by The Chief Happiness Officer, and you might enjoy his blog as well. It helps me getting a better outlook at my work situation.

Torbjørn
+2  A: 

OK, I have to say it because other people are being too easy on you. According to your profile, you are only 23 years old - you whole life is ahead of you and the biggest problem you are going to have getting a better job is your attitude and/or outlook on your life situation. It is a complete waste of time to question decisions of the past. You reflect on those things long enough to learn something from it and use your newly gained insights to decide what you are going to differently tomorrow that makes things better. I.e.: Just get over it and move on.

There is a lot of good advice in the other answers. The main advice that I would question is whether you should really immediately quit your job or not. Clearly, it sounds like you need to move on to a new job, but generally it is better/easier to maintain confidence in interviews and such when you are not [eventually] desperate to get the job to pay the rent or mortgage. With that said, if the job itself (and not your attitude about the job) is the core source of your mental health concerns, and you do have some level of savings to cover a minimum of a few months of good new job search - then yes - perhaps you should quit now.

PS: This question is way off-topic in my opinion - but what the heck.

Tall Jeff
A: 

While you could try to salvage your career, I think my suggestion would be to list what technical and non-technical skills have you developed in your years of work and recognize that you do have some experience and may have a better background than you think to be a developer. If you can find bugs and fix them, this could take you a long way to getting in the door at some places.

I wouldn't give up. However, I would seriously think about what you do and don't like about your current job, what you would like in a future job and then find some recruiters that could have those kinds of jobs to fill. Are you looking on sites like Workopolis and Monster for the recruiting companies to use? That may be a good starting point.

JB King
+1  A: 

In short, learn and do more with C# and Java (in that order, there are a glut of Java programmers in this area but your mileage may vary).

I went through something similar almost 30 years ago, having a near nervous breakdown that had me on short term disability for months. Why? Well, when you're in a company with 80,000 employees and yours is the only cost center losing money, well, the managers are going to be quick to blame the programmers. And when you're 18 years old, you don't have a lot to fight back with.

Pay yourself first. Start finding a better situation. It'll be harder now than it normally is because of the economy but, in the long run, you'll be far better off. Consider it an investment in yourself.

One other thing to consider is to sit back and ask yourself if you enjoy what it is you're supposed to be doing. Do you like programming? Do you prefer doing QA? What don't you like? Then orient your plans according to the answers.

I've been through a couple of rough patches in my career and managed to survive reasonably well. I could have been further advanced than I am now but made conscious choices that I didn't want to do those kinds of jobs. I can't count the number of times I've looked at my boss and said "I don't want your job".

Like my grandfather said. Find something you love doing. Then find a way to make money at it.

David
A: 

Realising your situation in such concrete terms when you're just 23 is a huge sign of good things to come. From what I can tell, you've pretty much pinned down all the problems in your current situation and you've lived through them. That makes you enormously stronger and able to judge new gigs very well. Dwell a little on your positives as one of the other answers has suggested and prepare a good resume. I'm sure you can get your career back on the road. I came to a similar realisation after I burned out quite a few of my best years and had to really struggle to get my career back on track.

Also, a bit of soul searching and career counselling regarding your true calling might not be out of place. I don't know your personally so I can't suggest anything and from what I've read, I think your depressive state is purely from your job but asking a professional for some help on whether you should shift careers is not a bad idea.

Noufal Ibrahim