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?

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

5 Answers
5

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.

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.
–
brokenisfixedFeb 8 '11 at 13:49

1

@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 HopkinsFeb 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.

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 ;)
–
brokenisfixedFeb 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 processing.org is a good start) and try to solve typical engineering problems (there are lots of pages on the net my favorite is projecteuler.net) 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..

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 :)
–
brokenisfixedFeb 8 '11 at 13:51

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.