Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free.

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I am at a crossroad - I've been working for whole 4 years as a support person fixing countless bugs, developing (minimal) changes and improvements to our software, working together with our clients and users.

I started as a complete noob, without a good understanding of .NET, C#, SQL Server, etc. I had to work late nights and weekends just to catch up to my co-workers and to prove to myself that I am capable to do the work and do it good. I don't consider myself an expert in those fields, but I feel pretty comfortable working with them.

I think I have had enough of it and I want changes - I want to move away from support and start working as a developer.

Is there anyone who has gone this road before? Could you, please, share an advice or two?

share|improve this question

closed as off-topic by MichaelT, Kilian Foth, GlenH7, Dan Pichelman, gnat Oct 8 '14 at 19:44

This question appears to be off-topic. The users who voted to close gave this specific reason:

  • "Questions seeking career or education advice are off topic on Programmers. They are only meaningful to the asker and do not generate lasting value for the broader programming community. Furthermore, in most cases, any answer is going to be a subjective opinion that may not take into account all the nuances of a (your) particular circumstance." – MichaelT, Kilian Foth, GlenH7, Dan Pichelman, gnat
If this question can be reworded to fit the rules in the help center, please edit the question.

up vote 3 down vote accepted

Generally speaking a few years in support is a good start to a career as a software developer so if you've been paying attention, really understanding what's caused the bugs you're fixing and addressing the root causes as opposed to the symptoms, you'll be doing fine in terms of experience and technical knowledge.

The problem you probably have is that in certain companies people in your situation get seen as "the support guy" and that's how they think of you so it becomes more about getting the chances to work on new development.

The first thing will be to speak to your manager and others within the company who control allocation of work and make them aware of your interest. If they're positive you'll probably have to be patient as they'll want a smooth transition but keep politely pushing them and you should be OK.

If they're not positive about you making the move you need to ask for reasons. If they're to do with skills and knowledge then you need to set about closing those gaps and removing those reasons. If they're just about them not having the opportunities to offer you then you might need to start looking elsewhere.

When looking for other jobs don't see your support experience as a bad thing - it's not. You might need to look at relatively junior roles at first but you should progress relatively quickly so it shouldn't be a major issue.

share|improve this answer
Thanks for the great comment! I've already talked to my management - the situation is that there is no possible way I will be moved away from my current duties. There is no one else who would cover all the things I do and have the required knowledge to do it. Even if there are people who could "do" my job, they have already moved beyond the "support" stage and are not willing to get back to it.. The way I see it - I need to start searching for a new place. – brokenisfixed Feb 8 '11 at 13:49
@brokenisfixed - I think you're right. You might want to speak to your managers and explain that one way or another you're not going to be doing support in 12 months time. It can either be somewhere else and they lose your knowledge and experience, or they can make an effort to hang on to you and keep it. – Jon Hopkins Feb 8 '11 at 13:50

Talk to your manager about shifting to a development role in the next development project they plan. If you've been fixing bugs and making small changes to existing systems for 4 years now, you have probably got enough experience to start working with other developers building larger projects. If management isn't interested, start updating your resume and look elsewhere.

share|improve this answer
I am reviewing my resume right now :) I've asked a couple of friends about possibilities who are also working in software development - hopefully I will get some great job postings ;) – brokenisfixed Feb 8 '11 at 17:38

Get into algorithmic thinking (did u learn searching and sorting already? Trees? Big-O notation?) and learn some basic theory. Do something fun (maybe is a good start) and try to solve typical engineering problems (there are lots of pages on the net my favorite is once you make progress you may also want to learn object oriented design. Can't recommend a book (besides of the classical design patterns book by Eric and company)..

At this point you should make sure that you are working on a larger software project, this probably helps you the most when it comes to design.

You may also want to learn some database theory and ensure that you completely understand SQL..

share|improve this answer
I've started working on ProjectEuler quite some time ago - the challenges are quite interesting :) I do understand that I lack knowledge in both programming, sql, etc. I am not afraid of that - I know I am perfectly capable of conquering those fields :) – brokenisfixed Feb 8 '11 at 13:51

If (then else)

If you can keep your code clean while others are corrupting it,

And losing their data and blaming it on you,

If you can be sure that DVCS is right when all coders doubt you,

But make allowance for SVN being pretty nifty too,

If you can wait for compiles and not be tempted to turn off warnings,

Or, seeing a broken window, fix it,

Or, getting a harsh peer review, don't give way to stubborness,

And yet don't appear to be a guru, nor talk like one

Then you'll be a developer, my son.

Apologies to Kipling.

share|improve this answer
I've never heard anything like this before :D – brokenisfixed Feb 8 '11 at 13:52
@brokenisfixed Well, I thought it would brighten things up a bit :-) – Gary Rowe Feb 8 '11 at 14:06

In your situation it's hard to "prove" you can do software development since your resume won't have any professional software development experience on it.

Some of the best ways to get around that are to build up a portfolio and a reputation. There's a couple of good ways you can do this:

  • Contribute to open source projects.
    • This gives employers to opportunity to actually look at the code you've written.
  • Develop your own software applications for fun.
    • This shows you can actually build something from beginning to end, regardless of how small.
  • Start a blog on software development. Try to post to it regularly.
    • This shows skill mastery and gives employers a chance to see how many you know and not just what you can write.
  • Post answers to StackOverflow questions.
    • This again helps to demonstrate skill mastery and your ability to leverage your skills and knowledge on other people's problems.
  • Earn certifications.
    • Depending on what technology stack(s) you're familiar with, there may be some certifications available for you to get. This shows an employer that a third party has tested and validated your knowledge and skills in a specific area.
    • Be aware that not all vendor exams and certificates are created equal. Be sure to do some research on the value of the various certifications and how they are perceived by other developers in that area.

This are somewhat long term approaches, but they will add up over time. You will accumulate a body of work that you can use to show prospective employers that you can do the job and you have experience even if you've haven't yet been paid to develop software previously.

share|improve this answer

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