views:

167

answers:

7

How do fellow SO's continue their technical development within in their careers – do people find it more helpful to go on courses, books, pet projects, or none? I feel I should be doing more apart from going on courses and reading the odd articles and programming books.

If so what has your best experience been for continuing your development?

+2  A: 

You need to continually adjust your career to follow the things that you really enjoy doing. If you're really into web programming, look into doing small projects at work or side projects at home with some of the latest technology out there.

It's always great to to only keep up with some of the exciting things that other programmers are doing, but to dabble and increase your skill set.

Failpunk
+7  A: 

It may sound strange, but helping or teaching others (for example on SO or becoming an assessment expert at your company) helps a lot. You need to focus on the "why" part and this happens more often if many other people ask you questions.

Reading books and blogs are helpful but you need to be able to use the new information else you won't be able to use it.

Gamecat
In addition I'd say that blogging about the parts you're interested in is helpful to focus on the "why?" part as well
MrWiggles
+1 for the helping/teaching. Just explaining your code to someone else helps you to get better.
OregonGhost
I Agree, with the blogging.
Gamecat
+1  A: 

My advice: stay more or less within your "professionally chosen" platform (i.e. .net, java, …) for libraries, but learn other programming languages.

Both the JVM and the CLR make great platforms for doing this, as they both allow a lot of different sorts of languages (dynamically typed, statically typed, functional, OO, …), while the libraries for these are more or less the same.

The reason is that libraries are often bigger and harder to learn than a new language, and the benefit is much lower: if you've only done OO programming, confronting yourself with a functional language will broaden your horizons considerably. However, you're unlikely to learn much new concepts from learning to work with java collections vs .net collections.

Finally: yes, have a pet project. A project will keep you going, you'll learn more, and you might even get some good feedback if you release it. On the other hand, if you want to learn a very diverse skillset, a project is likely to keep you dwelling on one aspect.

Kurt Schelfthout
A: 

I'm always doing new projects with non-mainstream technology – currently Erlang/OTP – to improve my knowledge and to get new insights. During this I write about it online, so that the community recognizes me, and in the press. Especially the last thing is very interesting for employers. Additionally I sometimes have got the chance to speak for a larger audience at conferences. This also helps networking and improving the own reputation.

Mue
A: 

I personally love working on free / open source software. I like to contribute something to the software that I use a lot, I also enjoy finding new/experimental stuff to work on.

Its good for your resume, it keeps you sharp and it lets you really enjoy programming for a few hours during the week. I think, if I didn't work on stuff where deadlines and profit was not an issue at least one day a week, I'd get sick of programming.

Tim Post
A: 

Courses and training will help so sar but lot can depends on the type of company you work for.

e.g.

  • Is your company keeping up with the latest technologies
  • Do you have to stick with a certain programming language for every task, or do you have the fredom to choose as long as you could justify it.
  • Are you pigeon-holed into one particular area

etc..

Of course the is always the pet projects you can do in your own time, but thats something i've always found difficult to do.

kevchadders
A: 
  • Studying towards a professional certification is a good way to learn a new technology, even if you don't bother taking the final exam.
  • Reading through other people's code is a great way to learn new technologies and techniques. Projects on CodePlex are a good place to start.
  • Teach and mentor: if you've just learnt something new then put together a demo for your team.
  • Local user groups are a great way learn new stuff and exchange ideas.
cxfx