Sunday, November 02, 2014

How To Guide - Become An Excellent Programmer

EatSleep and Do Programming will only make you an excellent programmer. How? Please find below.

Eat - Here Eat means to intake, and intake will be of the knowledge for anything and everything about programming. Like a foodie who wants to eat and try any and every food in this world, you need to show the same hunger about programming too. Gain as much knowledge about Algorithms, Data structures, Programming Languages and Design Patterns you wish to master your programming skills to. 

Sleep - This is a very necessary part of an excellent programmer. Apart from daily good and sound sleep you need to think or dream about programming too. It's like doing nothing (as if sleeping) but dreaming about the resolution of the problem. If you have a difficult programming problem at hand then see if you can solve this only using your mind, without using any paper, pen or machine. The breaking of the problems in small part can also be done here. I am not saying doing this will be easy and can only be gain by practice. To start with take some very easy problems (create your own programming problems) and see if you can derive to solution step by step inside your mind. The more you train your mind in analyzing the problems the more quickly you will able to recognize the solution of a unknown programming problems. 
Even sleeping through the programming problems do help. You stuck somewhere bad problematically, sleep through that problem for some time and then come back and attack that problem again you may have new solution this time. 
You can come to this step once you have gained enough programming knowledge by step above and practiced programming knowledge by step below.

Do - There is no escape to this if you want to do programming. Do means actually doing programming or coding. Do coding as much you can to gain the expertise. Use the knowledge you learnt and apply them practically in your programming skills. The more you do or practice the more good programmer you will become. 
To start solving a difficult problem break the problem in few or many lines of the statements in a pure natural language you know/understand (e.g. English). Then find a way to resolve each line of statements you created in natural language by the programming language you know. This is the start point of breaking the large problem in smaller ones.
In terms of finding problems for this and above steps go to any competitive programming sites like codechef, hackerrank etc. There are many sources available in internet which will give you problem statements in the programming languages/techniques you want to master. Start with the easier ones and move on to the difficult ones.