Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
Ask HN: My career has been fixing bugs for years. What now?
11 points by sown on Feb 6, 2014 | hide | past | favorite | 19 comments
It seems like since 2009 I've done nothing bug fix bugs, really. not my bugs, either. Now I officially work in sustaining engineering but I'm not really good at it. I kind of hate it.

I've been trying to build stuff on my own in C/C++ (my day-to-day language, and I don't do it well). I don't think I'm getting any better at development. Things that are obvious to everyone else usually is unknown to me. I wish I could just 'get better' like some of you will inevitably say but how?! I write my own stuff without direction or any real results. I'm very frustrated!!! I don't know what to do! Any mention from me about a new feature or product idea is ALways shot down. They don't want to hear from me.

I think I've made a serious error with my career because it seems like I can't get hired anywhere else (I need to interview more, I think, though I can't tell) and none of the development organizations in my company really respect me.

Am I done?



Come up with designs for little things you're going to build. Start a Github/Bitbucket project (public or private, your choice). Write the design up, then code it. Start small - I wrote a python script to let me send GitHub gists from the command line and it turned into a multi-month project!


I've done what you've suggested quite a while ago, not sure to what effect. i don't know if anyone looks at my github.

I tried coming up with 'design' as best as I can but how do I even know what it will look like? I don't know! i don't even know what to make.


Do you have any mentors or anyone you can reach out to within the company to discuss your ambitions? If all this is not being expressed to anyone, it's easy to keep you where you are, especially when you appear to lack the confidence to move on. Express it in terms that you want to grow as a programmer.

Though you are fixing bugs, are you playing an essential role? If you quit, would they hire someone else to fix these bugs? Have you made yourself indispensable? If not, maybe you're not taking on enough responsibilities or taking the lead when you could. Maybe you require too much handling, or maybe you don't. It's possible you're undervalued.

Are you skills at fixing bugs any good? You might as well make the best of the situation and improve your skills at testing and code analysis. You will always be fixing bugs in any programming job.

It sounds like it could be bad company culture, unaware personal laziness, or a negative problem, or a little bit of everything. But now that you're thinking about your situation and what you want your future to look like, you're in a better position to overcome these obstacles.

You asked, "Am I done?" Not even close. Even if you're 10 or more years older than it sounds like you are, you can accomplish a lot over the long haul, even when you're stuck in one spot for the short term.


> Though you are fixing bugs, are you playing an essential role? If you quit, would they hire someone else to fix these bugs?

There's an entire department for this, 'sustaining'. I'm not sure what you mean by taking on more responsibilities; I thought I was at work, taking notes during code walkthroughs (they're never any good), running meetings. I can't really solve any more bugs faster, even the hard ones. I don't know how to make myself indispensable. They mentioned in my annual performance review that I need improvement on 'innovation' but I don't even know what that means.

My skills at fixing bugs varies. They're usually horrible, I guess. I've been there for a year and I still don't u nderstand the code base, really; I get jerked back and forth all over it. I can't remember any of it. The programmers look at me with contempt, now.

It's certainly possible that I'm some how 'lazy', though my initial reaction to you accusing me of sloth was mis-taken, I hope. I don't know how to read large complex code. Everytime I make a change it's always WRONG. I'm getting more hysterical the more stressed I get. I don't know what to do.


I know this story, I think most of us suffer from this feeling.

First off, we shouldn't just sit down and start typing into a blank page. We all do it, but remind yourself just the same that doing some high-level conceptualization is very helpful.

Maybe you are getting overwhelmed thinking about all that you need to do, and it's discouraging you out of being in your "zone"? That happens to me. Remind yourself to only focus on the next five minutes.

I'm self taught. I have and had a lot of broken knowledge, misunderstood concepts, etc. I was able to overcome most and self-teach by first trying to find a patch of code that did something similar to what I needed or wanted, and then I copied it and re-purposed it. I truly can't think of a better teaching method than to find and tweak analogous code snippets.

I also think you are in a corporate culture that kinda... sucks. It doesn't seem very collaborative. Get out of there as soon as you can, and I mean don't wait till you think you are ready, I mean do it as soon as sanely possible.


The only thing you need to change is your attitude. If you become more balanced (I've noticed a lot of nos and cants here), you'll probably spring back much better.

Are there other things in your life that you can change for the better? The answer may be a couple weeks of enjoying time with some friends or family.


> If you become more balanced (I've noticed a lot of nos and cants here), you'll probably spring back much better.

I know what you mean, but I can't just 'change' it like I do a channel. All my life I've been a loser. Got straight-Fs all through school and college because I can't learn right, now I've got my employer saying I'm just barely satisfactory with other programmers saying they're unhappy with me. It's objective stuff that I can't dismiss so easily.

Things I can change? I dunno. I lost a bunch of weight, I can now run a few miles, do pull ups. I've gotten better at talking to people. Maybe I should go into sales (laugh*.

> The answer may be a couple weeks of enjoying time with some friends or family.

I don't have any of those. I'm trying to fix it. I do want to take some time off, though i'll probably just work on my own stuff.


> Things I can change? I dunno. I lost a bunch of weight, I can now run a few miles, do pull ups. I've gotten better at talking to people. Maybe I should go into sales (laugh*.

Well, why not? The goal of life, if any, is probably more in line with being yourself and enjoying it while you can, not writing C++ code because that's what "real hackers" do, or whatever illusion you're using to punish yourself.

Seriously, losing a bunch of weight, running a few miles and doing pull ups are awesome things. Getting better at talking people is beyond awesome; it can be life-changing.

You got straight Fs because you're playing their game. You'll ace it when you start playing your game. And the best thing about life is that you get to define your game. That's the meta-bug you need to fix! :-)


It sounds like you're seeing some positive changes in your life outside of work. That's really good. I bet you had to put a fair bit of effort into that too.


To get better, you need to know what to build. You need the path to be laid out before you. That's what college is right? And endless string of projects with clearly defined specifications.

With your years of bugfixing experience, you intuitively know what makes working code, but probably feel lost when it comes to architecting a side project from scratch.

So, take what you know (your employer's product domain and engineering projects) and rewrite them on your own time. Of course, you probably can't release it due to your employment contract (if it's anything like the usual contract), but that's beside the point.

With architecture out of the way, and your super ability to write bug-free tested code, you're forced to focus on your weak area: architecture. It'll be fun. And stress free, since no one will ever see it.


> To get better, you need to know what to build. You need the path to be laid out before you. That's what college is right? And endless string of projects with clearly defined specifications.

College was pretty shity. The OS class was a bunch of slides. My compiler class was better, I actually built something that generated something but i don't think it was executable code or java byte code or whatever. No one cares about it anyways.

> With your years of bugfixing experience, you intuitively know what makes working code,

No, I don't. I've been at my place for a year or so and I'm just as lost as I was on the first day. I can't remember anything.

> but probably feel lost when it comes to architecting a side project from scratch.

sort of

> and your super ability to write bug-free tested code,

According to my boss, this really isn't true.


Luckily, there are ways to get better without actually coding.

1) Watch every confreaks video on youtube. You probably won't remember any of it (I don't). That's good. It's not being filed away in your memory, it's slowly changing the way you think. (Optionally) listen to these instead, preferably while playing a mindless video game. If that doesn't do it for you take up knitting.

2) Read the entire documentation for a language, front to back. And it's going to be ruby. First the core: www.ruby-doc.org/core-2.1.0/ Then the library: www.ruby-doc.org/stdlib-2.1.0/ It won't make any sense at first, so read it again. Repeat until you think you could create whatever you wanted, in Ruby, provided you had those references in hand.

3) Do not spend another second entertaining thoughts that your code sucks or something. If you have time to think about such things, you have time to read.

4) Don't create side projects until you're confident that you can complete them, since fear of failure is too great an obstacle. Instead, make it a priority to read programming blogs. Don't say they don't make sense, it's irrelevant. Again, this is changing the internal language of your brain and setting you up for sudden "aha" moments later (trust me).

5) Don't waste time considering the relative merits of languages/frameworks. I just gave you a language: Ruby. Use rails. Don't be persuaded otherwise until you are equipped to make a decision for yourself (I'm really not yet either). Ten other people would give you ten other starting recommendations, and all of them are grand. But someone has to make the call, so I'm making it.

6) Don't not program. If you have spare time, literally writing hello world over and over is better than not programming.

7) This is going to suck. Everything about it will suck. Your code... will suck. But you don't have the luxury to acknowledge that fact. Doing so means instant defeat. 90% of getting anywhere is convincing yourself that you are incapable of failure, like some kind of superhuman coding god. If you can shut out all mental opposition to your success, you will get there much faster.

Oh, and your boss can suck a bag of skittles. Don't listen to that jerk, (s)he wants to keep you from realizing your true potential and going elsewhere, because whatever kind of hellish whipping-boy type development role you've had the misfortune of getting stuck in is going to be hard to fill.


> 6) Don't not program. If you have spare time, literally writing hello world over and over is better than not programming.

I humbly disagree. If you're writing the same thing over and over, your mind is probably stuck in some pointless loop. Why not do something else like going for a jog until you cant think any more?


That's actually great advice. Exercise + changing your environment will help get creativity flowing. But that's all outlined in tons of confreaks videos.


I think it's normal. A lot of programming jobs are maintenance. Try getting a new job. Look to get hired to a team building a new app or doing a rewrite. Or work for a webapp/app consulting firm with lots of new projects. Or take a job at a startup.

Also it might help to learn another language or two to get the best job. The best choice depends on where you live. In SF it feels like JS/Python/Ruby/Obj-C are good. Elsewhere, probably Java or Obj-C.

Also, getting hired is a numbers game. Keep at it. Read up on latest trends to get hired. Make friends with recruiters, founders, and CTOs. Bug fixing is hard work, so I think you have the aptitude. With some more exp you'll be fine at new development.


> I think it's normal. A lot of programming jobs are maintenance.

My job is only bug fixing. It's 'sustaining' engineering. I'm not sure it's going to be possible to transfer, but I'm going to try anyways. I think I'm marked for death despite being told I'm satisfactory. I'm told that they block such things like transfers for people they don't like. I'm going to try writing some web apps and show them to the other departments that do that sort of work; maybe that'll help.


Dont take this the wrong way but it sounds more like a self confidence issue more than anything else. In the work environment if you can appear more confident than your peers then you will find they respect you and your suggestions more.

Its amazing what a difference it can make.

It also sounds like you need to get out there and find yourself a new challenge.

You say you have been doing C / C++ development work it should mean you have a good range of skills. Why not look for a new role using a different programming language. You need not be an expert but seeing as you can code most companies would be happy to have you.

It would offer you a good platform to renew yourself and make an impact in a different company.


> Dont take this the wrong way but it sounds more like a self confidence issue more than anything else

That's very real. I'm a loser -- now and forever, and I don't know if I can keep programming because I'm so horrible, it seems. I keep trying the mindful meditation stuff but it's hard when you have people saying they're unhappy with your work and I have to get my (wrong) work checked all the time. I used to love working where I am but I get instantly tired as soon as I walk in the doors. I want to quit some days, others I want to press on. I'm trying to build something in my spare time so I can feel like a winner, at least once in my stupid life.

The options are keeping me here, and the sense that I shouldn't just quite yet. Maybe if I press on I'll survive, but if I never win and never quit it probably means I'm at my limits of what I'm capable of.


Try setting a simple goal to build - something simple like a webpage that might do some simple animation with javascript & host simple static content, or a program that reads a file and outputs content based on your search parameters.

One of the most difficult goals while learning programming I've found is setting reachable goals.




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

Search: