views:

110

answers:

5

I am working on support projects from last 3 years on unix environments. Where I didn't get much exposure to development work. Though I got good experience to solving critical problems and debugging code for finding the defects but not much to develop. I am performing good at work but sometimes I feel very low. What my question to all great developer out there is what should I do. I was good in programming in C/C++ and JAVA but can't feel confident now. I know this is a very generic and there may be no perfect answer for this question. I will appreciate any small suggestion you can given.

+1  A: 

Go pick up from where you left off. Learn some new technology and get yourself current. If you can do that, you will know where to go and what to do naturally.

o.k.w
+1  A: 

I would learn -- or at least explore -- different languages. Not only will they expand thinking, but you may run into a language or language style that you really like (usually, at least with people I have talked to, once a number of languages are learned/explored the favorite is normally not C/C++/Java). Work is work, but play is play and there should be an incentive.

Scala, Clojure/Scheme, Python/Ruby/Perl, Haskell, SML/F#/Ocaml, C#[3.0 or newer], D, Erlang, etc... there are so many languages out there and so many that are, from a language design point of view, superior to C/C++/Java. [I am not implying that all languages are well suited for all tasks -- C is good for driver development, for instance.] And no, that that last bit is not super-subjective.

Project Euler http://projecteuler.net/ may be a fun place to start. But whatever course you choose, make sure you have some (hopefully fun) incentive to continue it.

pst
Project Euler seems good place start.Thanks for your reply.Cheers
+3  A: 

It's understandable that in what is effectively a new environment you will feel uncertain at times, and lacking in confidence. There are two aspects to addressing this:

  1. Increase your skills - no doubt there are places where you need to improve. In fact I strongly believe that ongoing learning is essential anyway, it's just that you may be doing a little catch up in some places. So you need to find some strategies for selecting what to work on and then doing it.
  2. Increase your confidence in your abilities. If you are good a problem determination then you are in fact already ahead of many a developer!

I have one general recommendation: Take Action! It's all too easy to allow anxiety to paralyse, and a negative cycle can kick in. So:

  • Write some code, even if it doesn't feel like good code. Once you have something in front of you it's much easier to understand what you don't understand.
  • Break problems down. So, I need to calculate X, hmmm don't know how to do that, ah but when I've got that then I do Y and Z, and I do know how to do those. Right, let's sketch Y. That's pretty clear, I'm happy, so now lets really think about X, hmmm that's really two problems X1, X2 and I can do X2! X1? Dunno, really stuck. Then ...
  • Do be prepared to ask. Find tame gurus. Ask them good questions. Going with the whole problem is bad, you waste eveeybody's time. They're likely to tell you about the bits you get. Just go with that 1 point.
  • Get feedback. If your team doesn't do code reviews then ask for them.
  • Do some focused learning, try to anticipate what you may need in the future. Look in places such as SackOverflow for interesting material.
  • Attempt to answer questions on StackOverflow. This can make you research things you didn't previously know in depth. And it will increase your confidence.
djna
If you in house team uses ticketing, try picking up one or two personally (not necessarily officially) and solve them on your own time. If there's a good rapport with the developers, present it.
ptomli
+1  A: 

The general answer here seems to be go skill up when you have previously mentioned you felt at one time that you were a good developer.

I'd say that there's only one answer to this question, and that's to apply for jobs that would give you this increased development exposure.

The reason I say this is that you'll be able to determine in an interview if your suitable for the role, and if not you'll identify where you might be lacking. By the sounds of things your probably better than 90% of the developers on the market right now who frankly don't give a c**p about their trade.

Just look around and be confident, nobody knows everything and every developer will do some amount of "developing by Google/SO", so what you don't know you can learn on the job.

Owen
+1  A: 

Have you ever thought about why you feel low in your current position? What it is that you'd want besides doing more development? Identifying exactly where your problems are may well be a good first step here. From there, a couple different directions I could see making sense:

  1. Change role in current company - This is where you'd discuss with your manager if you could get more development projects rather than support projects to help you grow and is what you want. The challenge here is whether or not your employer can put you into this situation or not. I'd look to see if there are histories of people changing roles and if so then pursue this whereas if most people don't rock the boat it may not be good to stir up trouble.

  2. Find somewhere else to work - While you may not have confidence right now, how long do you think it would take to brush up enough to have some confidence? It may be that you could get in touch with recruiters that could place you into a small company where your support experience would be useful as developers would also have some support duties.

I do think spending some time on self-reflection could be useful. How many years before this support role did you spend doing development? A couple of other questions that may be helpful:

JB King