Program does not: 1. Design 2. Implementation
The person who knows what kind of software is useful and can design it is a product manager programmer.
Programmers who can grasp the best design, technical difficulty risks and feedback, and follow the schedule to do things, and lead others to do things are project manager level programmers.
It is a senior engineer-level programmer who can divide software into the most reasonable logical framework and module.
Programmers who can complete several modules with high quality are intermediate engineers.
Only one programmer can write one module and be a qualified junior programmer.
Most of them are junior and intermediate programmers, but they are very familiar with a certain field. This is a researcher-level programmer. (Generally, they are highly educated, such as doctors and masters)
In the end, the software is: Imagination + logic + mathematics. People have their own strengths in their intellectual ability. Software Development can achieve that level by themselves, so you should think carefully. If you have no expertise, leave the industry early.
Researchers-level programmers are the company's valuable wealth, software development, often based on their research or innovation. However, high-level senior engineers and project managers are even more difficult to find. They are the key to software success. Programmers at the intermediate level are not recommended. The sorrow of Chinese software.
Let's think about how to become a programmer at that level?