Are you a Programmer or a Coder?

Are programmers and coders the most neglected link in the software development chain? Coders are like smart assembly line workers as opposed to programmers who are plant engineers. Programmers are the brains, the glorious visionaries who create things. Large software programmers that often run into billions of lines are designed and developed by a handful of programmers. Coders follow instructions of the large program.

Coding is the process of writing code from one language to another, whereas Programming is the process of developing a program so that human inputs and machine outputs are in sync.

Some industry experts have put in that – if programming requires a post graduate level of knowledge of complex algorithms and programming methods, coding requires only high school knowledge of the subject. Coding is deemed repetitive and monotonous.

During many events, like the one last week in India at the annual fair of the software industry’s apex body Nasscom, no one mentioned anything about programmer or aptly the coders. The event, which brought together software professionals from around the world, used up all its 29 sessions to discuss prospects to improve the performance of software companies. Panels chose to debate extensively on subjects like managing innovation, business growth and multiple geographies. But there was nothing on programmers/coders, whom we all believed are the driving force behind the success of any software company.

It has been an eternal battle between the business cubicles and the programmers box if technology drives the business or vice versa. Well, one compliments the other.

Woman in Saree on a Laptop

In the Indian context, the software professionals aka the programmers aka the coders are the poster boy of matrimonial classifieds. They are well paid, perceived to be intelligent and travel abroad frequently on software assignments. Or, are they really?

Yes, it is an open secret which software companies won’t say/accept — that Software Professionals specially in India are not programmers but mere coders, they are the assembly line workers.

A Microsoft analyst have rightly said, “Like our manufacturing Industry, the Indian software industry is largely a process driven one. That should speak for the fact that we still don’t have a domestic software product like Yahoo or Google to use in our daily lives.”

Is this also another reason that, IIT graduates have consciously shunned India’s best known companies such as Infosys and TCS, though they are offered very attractive salaries?

American companies still feel that most of the so called engineers in Indian companies are mere coders. They are almost identical workers who sat along hours to write lines after lines of codes, or test a fraction of a program. They did not complain because their pay and perks were good. Another fuel to this fire is that of the Indian social fabric. Parents, families and spouses do not know or care about the type of works programmers or coders do, they are more interested in the Name of the Company they work for, their monthly paycheck and the ability to include terms like Software Professionals, BPO Team Lead, Working in MNC, in their matrimonial classifieds.

Of late, there are uprisings everywhere, emotionally among programmers in many software companies. They are yearning to do something on their own, something out of the ordinary due to the increasing feeling of dejection. Many programmers want to get out of their routine monotonous coding which no longer excite them. Programmers are toying with ideas of moving out of some of the reputed companies, where they are like caterpillars climbing a wall without knowing how high the wall is.

Coding Programming
The process of writing code from one language to another. The process of developing a program so that human inputs and machine outputs are in sync.
Deals with the smaller picture. Deals with the bigger picture.
The easy part of programming. Divided into roughly 3 sub-tasks: deciding what the program should do, deciding how the program should do it (algorithm level), and coding it in a programming language.
Focuses on the syntax and structure of code. Focuses on the algorithm and how it is done before writing code.
Requires knowledge of programming languages. Requires knowledge of algorithms and mathematical thinking.
Can be done without understanding the algorithm or problem-solving skills. Requires understanding the algorithm and good problem-solving skills.
Less emphasis on thinking and planning. Requires more thinking and planning before writing code.

In other words, coding is just one of three major pillars of programming. Programming can be viewed as the higher level stage of software development in which a system is designed and throughout, whereas coding is the last stage of the overall process in which the software is actually written.

Too many young software developers focus their time and attention on learning new programming languages and frameworks, but tend to neglect their education in algorithms and math. While learning how to code is important and a big part of a programmer’s life, there is much more to it.

Good software is first and foremost easily understood by people in everyday language, which should make it even easier to compile by machines.

Think of it this way, “writing is a way of revealing how fuzzy your thinking is. In this context, coding is just a small part of programming where real thinking takes place.”

The world needs good coders, and it also needs good programmers — and it’s better for everyone if we understand the difference between the two.

Do you want to be a programmer or a coder?

References & Updates