Programmer VS Engineer
To be honest, I’m not really a standard “programmer”. However, it’s difficult to explain the difference to people outside the industry, and I’m quite impressed by the issues discussed in this blog, so I still want to write about it.
My job title in the company is Sr. DevOos Engineer, that is, a senior DevOps engineer. Coding only accounts for about 40% of my workload.
A few years ago, people on the Internet jokingly referred to those in our industry as “code monkeys”. The following picture was also quite popular for a while.
Even many of my peers call themselves “programmers (code monkeys)”. I used to be quite averse to this term. So when introducing my job to others, I never mentioned the word “programmer” because I always felt it had a derogatory connotation.
But in the past two years, I’ve increasingly felt that there are indeed quite a few people in our group who are really just “programmers” and don’t deserve to be called “engineers”.
Generally, the general process of doing a project is as follows:
- Identify the problem
- Analyze the problem
- Search for and study solutions
- Design the functions
- Write code to implement the functions
- Collect user feedback and continuously iterate based on the feedback
Ideally, an engineer should be involved in all the above processes. However, in a large company, there is often a fine division of labor, and it’s difficult for one person to have the opportunity to participate in all aspects. But a qualified engineer should at least achieve the 6th point.
Programmers often only do the 5th point, not caring about the other parts and even refusing to participate in those links.
Moreover, they often don’t do the 5th point (writing code to implement functions) well either, because they don’t care about their code, only wanting to get the task done and not caring about the actual user needs and user experience.
I’m not saying that just writing code is bad. On the contrary, many big shots only write code and don’t do other things.
But big shots write code with their own ideas, while “programmers” are just a “gun” in the hands of product managers/project managers, without their own thoughts.
Cooperating with programmers is very painful because you have to describe the problem in great detail, find solutions, break down the tasks into very small parts, and constantly keep an eye on them to have a chance of getting things done well.
But cooperating with engineers is very pleasant. Usually, as long as you clearly state the problem or the final desired result, everyone can cooperate well.
In the era of the popularity of LLMs led by ChatGPT, “programmers” are likely to be the first to be replaced by programs.