Programming, in my opinion, is not a difficult thing. The problem lies in approach that many beginners take to learn Programming. I would like to approach the posed question from a different perspective. In my opinion, the question assumes that programming is “difficult”. Difficulty, however is a very relative term.

In this essay, I would like to list down the characteristics, which, in my opinion, are essential to being a successful programmer/developer. Since, thinking is an essential characteristic for a developer, a “thinking” theme is adopted for the points listed below:

Think analytically
As a programmer, whenever you are given a problem, think analytically. Establish the input & output. Each program has an input and an output. Establish those first. Once they are establish, the approach you take can be finalised.

Think solution
Bear in mind, that an approach to a programming program can *always* be improved. So, a bad solution is better than no solution. Your first objective, especially, as a beginner, should be a solution, not the “best” solution. Solve first, improve later.

Think small (sub-programs)
A programming problem is inevitable made up of small sub-programs. Before you start coding, write a high level (in English) approach to solving the problem. This should be 8-10 lines in english (depending upon the problem), which can inform a layman, the intent of the program.

Think Divide and rule
A programming problem can intimidate, especially if you are a beginner. I would say that, no matter how experienced you become, a good programming problem, will always be intimidating. A thumb rule to solving a big programming problem is to cut it into smaller pieces, and tackle those individually.

Think more, write less.
Always think through your programs & sub-programs, before you start writing them. As a beginner, the tendency is to start coding, without giving enough thought to the solution. If there is one thing, that experience has taught me, it is that your programming solutions become smaller (and more elegant) as your experience grows.

We live in a time, when there is an API or solution available for most programming problems. Before you write your own, always explore. There is no need to re-invent the wheel. It is not smart, and it will not make you any more intelligent.

A well written program is a joy. Savour it, enjoy it & have fun.

#programming #india #divideandrule