A letter to a young developer less than 3 or 4 years experience

So you have been into the world of software for more than couple of years now and you write code either in Ruby, nodejs, java, DotNet or some other trendy language. You have already passed the entry gate and feel much confident at your work. You solve the problems thrown at you in very controlled and timely fashion. You are considered as rock-star developer among your peers younger than you. Seniors like you and count on you. So if you have any of the above traits this letter is for you.

There are many such letters out there on internet, couple mentioned in the end of this blog. The reason I am writing this is to help the fellow members out in community which we have learned a hard way. Let me explain this with some crude example. What you currently know is syntax, few debugging skills and some design understanding. Let me correlate it with hammer and screwdriver and you are able to build a store room as one of the assignments under complete home and may be even the roof of the store room. You feel confident and as soon as you get more experience you are expected to build the whole house or a complete floor. Now to build it you need to know how to use drills, understand floor plans, other gadgets etc. But since it a small project you try to complete it with hammer and screwdriver. It works and everyone is happy. But think what will happen when you are given in-charge to creating a whole building (5 stories and above) and your team members are using hammer and screwdriver to build it (its an metaphor).

So here are your drills as a programmer

  1. Understand the design principles, patterns and rule of the game.
  2. Solving same problems with multiple diffrent ways.
  3. Going to some developer meetups or watching some on YouTube.
  4. Learning multiple programming language for alternative paradigm.
  5. Reading hardcore technical blog, Not like this one.
  6. Contributing to opensource project. Git is your friend.
  7. Doing Code Kata. You don’t know what it is. Ouch!
  8. Working on a problems related to performance and scale.
  9. Participating in code hackathon from a learning perspective.
  10. People don’t like this but read books, Really read it!

Few good other articles

Happy Programming !


Introduction to unit testing

At a very early stage in my career I got an opportunity to visit Antwerp. It had been one of my best trip in terms of personal and professional well being. I had an opportunity to work with 2 really great Developer Tim and Kristoff

Here I learn lots of trick in Software development, However the one I can think of was when Kristoff mentioned about Nunit. He mentioned about how it was originated from Junit. How the good developers around the world were embracing it. I felt alienated since I was not aware of it and it was year 2007. However he was convinced that we should be using it and implementing it in great details.

Once I was back to India after the trip, I did my research on it and got more insight. It got me introduced to Kent Beck. Then the journey of the writing more cleaner code and have a safety mechanism to the source code began. I cannot thank enough to Kristoff for been my mentor and helping me during my tenure in Antwerp.

Happy unit Testing!

First demo that failed.

The first ever big demo I gave which failed. As silly it may sound, It was a real incident. We were giving a demo for our custom Dot Net web application. As soon as we tested out primary functionality it was not working. I still remember the face of my angry manager. He ask me “What happen?” and my reply was “I don’t know.” He was furious. I don’t know why, but I kept my clam.

Customer did not loose their patience till that point. I had to tackle this situation. I was confident about the code I had written. I thought what best thing can I do here. How can I get out of this problem. I just fired my IDE and started debugging. My Manager had lost his cool now. He said to me “What are you doing?” I had to stand my ground, I replied “Just give me Five minutes.” With in few moment we discovered we had not configured few settings.

Phew! I just smiled and added the necessary configurations. Loaded the Web Application and it was working like charm.The only to thing saved was paitence debugging