Who is a programmer? A man writing his program’s source code in some special programming language is a CODER.
A programmer thinks through his data structure, works out algorithms to work with these structures, and then presents it as a code.
That is, a significant difference lies in a specialist’s broadness of mind. A coder is an executor. It is a person, who does the tasks following definite clear specifications and algorithms. A programmer is a developer, able to create something new and unique. He thinks broader. He thinks through his product’s further development so that no problem would occur during the modification process.
Is programming boring?
Programming is very boring. It is a trivial and routine occupation having not much to surprise you with. So, if assiduity is not your strong point, it will be tough going.
But at the same time, when you work in the programming field, you can discover its exciting aspects and interesting issues you have to face and deal with. But as a rule, the latest walk side by side with a huge amount of boring and monotonous tasks.
In effect, the programming can be described by the following algorithm:
1. To understand the issue or the question.
2. To think over the solution/to work out the algorithm.
3. To apply the solution in the form of a code (algorithm) that works.
4. To make sure that this solution can be easily maintained, developed, and modified at need.
A programmer always approaches the subject thoroughly. He sees it perfectly that it is necessary to study documentation/talk to colleagues, to write down the intentions and, probably, apply some methodology.
And after that, you solve the problem qualitatively and precisely. At the same time, you do not create a couple of unnoticeable problems for the future. You do not correlate the solution with the tool for which you cherish kindly feelings at the moment. In order to ease maintenance and modernization of your solution in future, you write documentation, you test it. And all these are done in a neat and understood for anybody else manner. That is how professionals work.
Which qualities must a programmer posses?
Patience and endurance. These are two absolutely indispensable qualities as they are implied by the very kind of work. Programming is a thoughtful work which, undoubtedly, requires continuous concentration and endurance.
Good technical skills and ability to solve problems. A programmer should know several programming languages and also be good in related fields, such as design, SEO, database functioning, and testing. No matter how obvious it sounds, but being a programmer is solving problems and overcoming difficulties. (It is ideal if you get job satisfaction at the same time.)
Error elimination skills. A good programmer always reads error messages as this is the first and the only signal about the occurred error. Programmers always get to the bottom of the problem. And this is not only their job responsibility, but a natural necessity to solve the riddle and to find out what went wrong. Good programmers are responsible for everything concerning the sphere of their competence.
Willingness to learn. Technologies do not stand still, and the skills a programmer possesses today will be completely out of date in 2-3 years. That is the reason, why a programmer must be able to quickly adapt to the current state of technology, to be interested in the latest tendencies, to study new technologies and to improve his professional skill all the time.
English language proficiency at the level of reading technical documentation is one more compulsory demand, raised before the representatives of this profession.
Ability to work as a part of a team, on big projects, with collaborative development tools.
Addiction to working. It is, perhaps, the most important sign of a good programmer. If a specialist likes what he is doing, it is a job, a hobby and even his love at the same time. Great programmers cannot live without coding.
Besides all these, project and personnel management skills, self-sufficiency, initiative, and ability to be personally liable for the assigned task are also an advantage.