Not every one who writes code is a programmer. Programmers are people who live with programming. There are 4 types of programmers: scientist, coder, expert and artisan.
Scientist, they are more like mathematicians rather than programmers. They invented various theories, algorithms and terminologies. Proofs and calculations in textbooks are all from these people. Moreover other programmers more or less benefit from their work. Sometimes one paper published by them can change the way of thinking of the whole industry. But they usually do not like to commercialize their theory. In contrast, they prefer to indulge in the ivory tower of science. They are the group of people who write least codes, some of them even never write any program in their lifetime. You might think it violates our definition of programmer, but no one says we have to use keyboard to program, right?.
Coder: they are the main implementers of software. they are usually familiar with or proficient in one to two languages, they can develop software with existing framework. We can call them blue-collar programmers. However, this is not a bad thing, we always need doers. If you admit that you are a coder and you love what you are doing, it is also a cool thing. Coders are the largest group in programmers.
Experts, they have been working in software industry for many years, they are usually knowledgeable and skilled in one or more areas. They are often referred as senior programmers, architects or CTOs in the company. Usually they design software structure and then ask coders to implement them, or they may write some of the core codes. These people are experienced and have technical foresight to plan ahead, to react in advance to decadent trends and technological changes in the industry. Experts are the company's treasure. Meanwhile, experts usually become the ultimate dream of many coders.
Artisans, they are special programmers, They are more concerned about the final results compared to the technology itself, they focus on commercializing papers of scientists. For them, the important thing is not the technology itself, but creating great products with technology. Therefore, it is hard to use front-end, back-end, DBA, safety engineers to define them, in order to create a great product, they are willing to learn any technology. They usually have a rebellious spirit and instinctively resist authority. They have a traditional sense of the hacker spirit. Actually vast majority of enterprises do not need an artisan, but for great companies or companies aspiring to be great, artisans are more important than experts, Artisans can build industry-leading products.
For each programmer, the important thing is which type of programmer you want to be in the future and try hard to be that kind of programmer.
Reference : http://www.fengxinwei.com/?p=189
Thank you for translate my article. Are you chinese?