Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

I've been working at my current work for some time, and I'm considering a bit of a change of careers. I'm trying to decide what it is exactly that I want to do, and I'm really just not sure. I'm not wanting a solution for my particular case, but what I'd like to know are some generalities of things I can look for. Here are some positions that I'm considering, and what my definitions are (I'm probably calling them something other than what is standard, but hopefully this will do for now). I'm looking for quizzes, articles, explanations, or anything that can help me figure this out.

  • Manager - Managing programmers in some sense, mostly in making sure they are kept working.
  • Coder - A person who is told to make a program do XYZ, and makes it do that. Doesn't have to model anything, or come up with formulas.
  • Algorithm Designer - A person who comes up with a way to make software do something, but doesn't necessarily code that program, at least, not in it's final form.
  • QA - A person who tests code for bugs, preferably with the code in hand.
  • Architect - This person figures out how all of the pieces fit together, is a technical manager of sorts.
  • Maintainer - This person takes someone else's existing code, and makes sure it is fixed when issues arise.

Also of some note is figuring out what industry I want to work in.

Feel free to add any of your own categories.

share|improve this question
    
What's your current job? –  Rachel Feb 18 '11 at 20:57
1  
I'm maintaining some code for a piece of test equipment used by my company (And only my company). It's a mix between QA, Coding, and Maintainer really. –  PearsonArtPhoto Feb 18 '11 at 21:02
add comment

4 Answers

up vote 1 down vote accepted

"What Color is Your Parachute?" would be the book recommendation to try to work through the self-assessment you want here and there is plenty of stuff on that site that may help too.

Myers-Briggs, Enneagram, Strengths Finder and other self-analysis tools may be useful to some degree here though this can be a bit of a rabbit hole. The challenge here is that there are tons of self-help books in this arena where most are likely questionably useful at least from the dozen or so that I've read and tried with varying degrees of success.

Another category to consider is whether you want to be self-employed and run your own shop, work as a programmer in a software company, work as a systems integrator in a consulting firm, or be in the IS department of a company as those are at least a few different ball parks that is something else to note here.

share|improve this answer
    
I've just started reading through this book, it's amazing, so far. Thanks for the recommendation! –  PearsonArtPhoto Mar 1 '11 at 14:11
add comment

I don't know if you can necessarily pigeon hole someone into one specific category, at least not so they are happy.

Personally, I call myself a Software Engineer. I do lots of BA work (customers give me their requirements), design & architecture, then the coding, then the testing, and finally support what I've written.

Yes I work for a small company that isn't a software house. :)

However, I like the mix of jobs - it keeps me real, keeps me in touch with real users, and keeps my hand in all areas of software design. I've learnt a lot about people management, and I don't actually think it's really harmed my coding skills. Allright, if I was a dedicated programmer then I'd probably have a higher day LOC number and more experience, but there's always time for that.

This is just my personal experience, and yes there are downsides to working like this. However, for me, at the moment, it's working OK.

One thing I'd say though. Think hard before jumping to management. It's very hard to come back again, and you may find you miss the 'getting hands dirty'-ness of being at the code face.

share|improve this answer
    
This could be my story. I like the variety of jobs--never gets boring! –  bastibe Feb 18 '11 at 21:16
add comment

"Manager - Managing programmers in some sense, mostly in making sure they are kept working."

Unless you want the blame for every dumb thing that someone else does, even if you've been told to do it that way, don't be a manager. A manager is pretty much the sucker that gets put in the middle of an argument and is the first one to get the blame if anything goes wrong.

"Coder - A person who is told to make a program do XYZ, and makes it do that. Doesn't have to model anything, or come up with formulas."

"Algorithm Designer - A person who comes up with a way to make software do something, but doesn't necessarily code that program, at least, not in it's final form."

"Maintainer - This person takes someone else's existing code, and makes sure it is fixed when issues arise."

I think you must have a fairly limited idea of what a developer does. I've never heard of "coder" or "maintainer"...even "algorithm designer" as positions that can be held. If you write code you also maintain and design algorithms. Having someone sit around writing down mathematical proofs on a piece of paper seems downright silly and redundant.

"Architect - This person figures out how all of the pieces fit together, is a technical manager of sorts."

Team leaders end up doing this. As a developer you had best be learning the skills necessary to architect software as you go.

"QA - A person who tests code for bugs, preferably with the code in hand."

Preferably not actually. Testers should work on bashing the product from the outside, not the in. That's my opinion anyway.

share|improve this answer
    
I'm a development manager, and it's true that I get the blame for things that go wrong, that's called responsibility. However, you also get a huge amount of praise when things go right. When a project is launched and work well, your proud of your team and it's a great feeling. A development manager is a very satisfying job. –  BG100 Feb 19 '11 at 7:38
add comment

The same way you decided you wanted to be a programmer.

You chose to be a programmer by exposing yourself to a number of different fields and selecting which one grabbed your attention and passion (or which one you could tolerate the most).

Since figuring out what you want is dependent on you, compile a list of all possible programming streams, then dip your hands into each one of them and see what you enjoy the most. And, if you can, do your best not to think about the money.

share|improve this answer
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.