Read, Read and Read Some More…
We’re in an industry that is moving forward at a fast pace. Technology becomes obsolete every year and a half or so and as developers we have to constantly struggle to keep up. Books are not only great to help you keep up but also to expand your knowledge to other fields.
There are plenty of interesting books and blogs about, well, pretty much everything.
Here are some recommendations to get you started:
The Inmates Are Running the Asylum
The Pragmatic Programmer
Made to Stick
Crossing the Chasm
The Innovator’s Dilemma
Oh and one word about programming books: the best ones are timeless, transcending choice of language, IDE and platform.
I try to stay away from them thick, heavy, language\platform specific references – most of them go out of date after a year or so anyway and most of the information there could be easily obtained elsewhere (online – Google, the product’s docs, blogs…)
Most programming big are just a waste of your time (and money…)
Contribute to an Open Source Project
Contributing to an open source project is a great way to gain experience, learn and get better.
There are no job interviews to pass, degree requirements or commitment to working hours or schedule required – you can just join in and start submitting patches or contribute in ways other than code (submit bugs, docs, support, …).
You can learn a lot just from studying the code and interacting with your peers…
Contributing to open source shows dedication and passion – its a walking talking resume.
Get a mentor
Find yourself a mentor or mentors who can teach you about different aspects of the business. I’ve had several at SAP and talking with them proved to be an invaluable asset (If you’re reading, thanks!
It doesn’t have to be official mentoring which is part of the person’s goals or job description. Many of your peers are experts in their field and they’ll be happy to show you around if you just show some interest…
Become a Mentor
Great developer are eager to learn… and teach. Can you pass you passion and knowledge to others?
You can also…
* Open a blog about your experience, opinions, etc.
* Start answering questions at stackoverflow.com and collect achievements
Land an Internship
Try getting an internship in a different role. When I was in SAP they had a special program allowing employees to apply for a ~6 month position somewhere within the company. The reason behind it was to get employees familiar with different aspects of the company. Maybe product management, marketing or sales in not really your first choice of profession but why not try it for a couple of month without the risk of going through a career change? How cool is that? I’m sure many large corporations has something similar and even if not, it can’t hurt if you come up with such an interesting offer to your boss…
Own a Product Area
Get ownership on some part of the product your team is working on. Weather a specific component or a vertical (like Security) you should be in charge of getting it done – from getting the definition done with the product\sales\business team, through UX, development, QA, etc…
There’s nothing better than learning about the process of software development through experiencing the entire cycle…
Innovate
Start something new. When working on Duet we’ve had many issues getting the thing deployed. So I made a tool for (myself mainly) our QA and RIG (regional implementation group - the guys who work with customers) to help diagnose problems. This later became the official Duet Support Tool and got its own dedicated development time. Is your product, development environment perfect? I’m sure not… find a need a feel the gap…
Why? If by owning a product area you learned about the entire development cycle, here you’ll learn about defining and “selling” to the team…
Bonus Reading…
Another link worth visiting is the one about the Metrosexual Developer. Funny and true…
Resources:-
http://www.developerzen.com/2008/12/05/99-ways-to-become-a-better-developer/
http://effectize.com/become-coolest-programmer





