Open your dictionary and search for the word 'programmer'. Here's what you'll find:
'Programmer - A person who writes computer programs.'
And that pretty well sums up what a programmer is supposed to do.
But does every programmer do that?
I find many programmers who
-think about doing programming.
-are waiting for the right project to fall in their lap.
-make excuses of not having enough time.
I doubt whether I should call them a programmer.
Programmers don't make excuses.
Programmers program. Every day.
Anything that's not programming is a luxury which a programmer can't afford.
If you have years of experience in programming, you can shift your focus towards other non-programming activities like your design skills or managing your startup. But if you are just starting out as a programmer, then you better focus only on programming, until you gain the confidence, and the knowledge, to program almost everything that comes your way.
Sometimes we make ourself believe that in order to become a good programmer we need to stay up-to-date about latest programming news and know all the good practices of programming.
But there is no limit to such news and programming practices. If you just keep reading them one after another you can end up spending years without even getting started with programming.
So leave them aside for a while and program.
I know how many hundreds of hours I've spent reading tech sites and news, looking for the next inspiration, instead of actually opening my editor and do some programming.
Though I've got better with time and now I hardly spend more than 15 minutes a day with such sites, most times even less than 5 minutes a day. Still, there is no denying the time I've already spent(wasted?) and that's something I don't want you to do.
Reading tech sites is good, reading programming books is also good, but their purpose should be to only enhance your existing programming skills, not to replace your daily programming time. Any programming news or tip can't compensate for the time you could have spent programming.
If you program regularly you'll understand most of these good programming practices on your own, without the need to learn from others.
And the things which you learn from your own experience stay with you permanently rather than those articles about 100 tips on programming which you read in few minutes and later forget about.
For starters, I won't recommend worrying too much about the right programming practices. Instead, get tons of experience by writing a variety of programs, and once you have hundreds or even thousands of hours of practical experience, go ahead and read these books.
Once you have gained experience writing code, you will grasp the right programming concepts almost instantly.
And if you must spend time on other activities, first finish your programming goals for the day, and only then should you think of doing anything else.
To get things done, stop treating programming as a hobby and start treating it as work that must be done today.
Hobbyist programmers program only when they want to, but real programmers program even when they don't want to.
If for some reason you don't find yourself programming as much as you would like to, here are a few things that might help you to start on a right note:
1) Remove every distraction around you. It's easy to get distracted when there are so many things running on your computer - your twitter notifications, your email updates, your blog feeds, and other tech news updates. Add to this all the other distractions and the people around you, and it's enough to lose your focus and not get any work done.
These distractions are easy to overcome if you discipline yourself to focus on your work. First, quit all your apps or disconnect your internet. Find a quiet room, or go outside where you can be alone. Try to make everything around you quiet enough. By creating such peaceful environment you are more likely to get some work done.
2) Remove every distracting thought inside you. It's easy to remove outer distractions but the bigger problem is those inner thoughts and feelings that stop you from focusing on your work. Whenever you find yourself getting distracted by a thought, just bring back your mind to the present moment and focus on what you need to do right now.
When you learn to be mindful, you can stay focused even when there are lot of other outer distractions around you. Mindfulness is a way of living which is worth developing if you want to become more productive. Once the inner chatter in your mind stops, focus comes naturally.
3) When you have taken the above two steps, start immediately with programming else those distractions will come back again to distract you. Once you get started and write a few lines of code, it becomes easier to continue doing it.
And once you get in the flow of programming, you'll wonder what kept you away from it for so long.
If you are new to programming, even a couple of hours daily is enough to make some good progress. It's better to program two hours every day of the week, than program ten hours once a week.
To master any skill, the only way is to practice it every day. Programming is no exception.
No matter how good your technical skills are, no matter how sound your logical thinking is, you won't ever finish any of your projects if you don't actually sit on your desk and do some serious programming.
With time I've realised that being smart isn't necessary to become a good programmer. But practicing regularly is necessary to improve as a programmer.
Your talent, your ideas, your attitude means nothing if you don't work hard enough and actually do the work that you are supposed to do.
So start with today, open your editor, and start typing lines of code one after another. They would soon add up, and before you know you might actually create something to show this world.
Just remember, for any one who calls himself a programmer there is one, and only one, thing left for him to do. Program.
Leave the rest to non-programmers.