Pages

I've migrated my blog

Thanks for visiting my blog. I am no longer maintaining this and I've migrated the blog to my personal domain . If you would like to follow my blog kindly use my new RSS feed

Thursday, September 15, 2011

Practice, Practice, Practice !!

In the pursuit of becoming a better programmer, I have come across lot of good things, which in fact have a lot of positive impact on my thinking, attitude and the way I approach a problem.  One of such thing is the book “Passionate Programmer” which I am currently reading. It is all about creating a remarkable career in software development. If you are a developer, it is a highly recommended book.     
There are a lot of impressive tips we can learn from this book of wisdom. One of Such tip is “Practice, Practice, and Practice!!” It talks about how to practice as a software developer. Though it seems like a mighty task, the author “Chad Fowler” convey this by breaking the might task into the following three category (Divide and Conquer Approach).  
1.      Physical/Coordination
a.      Learn and master the unexplored areas of the language that you are working with. Say for example, Regular Expressions
b.      Dig your language’s API and don’t reinvent the wheel
2.      Sight Reading
a.      Learn by reading the code.
b.      Pick any of your favorite open source, explore it understand and learn the tips and tricks of the trade.
c.       Add some new feature
d.      Be sure to vary the software you work with
3.      Improvisation    
a.      Takes some structure or constraint and creating something new, on the fly on top of that structure. For example pick a simple program and try to write it with the self-imposed constraints.
b.      Play with Code Katas
It’s time for action
I believe these three very fundamental aspects makes a lot of difference. So, I’ve decided to get my hands dirty with these three things and here is my list of to dos.
1.      Physical/Coordination – (I pick C# as its my primary language in my current role)
a.      Regular Expressions
b.      Dynamic Programming
c.      Multithreading
d.      Parallel Programming
e.      LINQ
f.       Reflection
g.      Streams and Networking
h.      Entity Framework
i.       Data Structures and Algorithms
j.       Customizing MVC3 framework 


2.      Sight Reading
a.      Exploring ASP.NET MVC3 source code.
b.      Exploring Nunit source Code.
c.       Blog my understanding during this exploration

3.      Improvisation
a.      Make most of Code Katas and Top Coders
b.      Active participation in Technical Forums