I wrote two articles last week:
" What is Engineering? What is an engineer? "
How can there be engineers without engineering, and how can there be software engineers without software engineering. So I said that software engineering includes organizational system, division of labor, and project management, so software project managers are also a large category of software engineers, because project management is a part of software engineering. Very important composition.
Don't think that only those who write code are called software engineers. In fact, coders are not only divided into senior programmers, intermediate programmers, and junior programmers according to their abilities. In fact, there is another classification for coders, that is:
Coder-Code Farmer
Programmer - Programmer
Developer - developer
Let me tell you about the respective focus of these three.
(1) Code-Code Farmer
Code farmers focus on: programming language, programming framework class library and API. Nowadays, many coders are proud of being familiar with C++, Rust, and Golang, and taking familiarity with Spring framework system programming as their professional experience.
This group of people is most likely to be affected by: no-code forms-low-code tools-AI-assisted code generation.
(2) Programer-Programmer
In the 1970s, the inventor of the Pascal programming language, the originator of the structured programming method, wrote a formula: algorithm + data structure = program.
That is to say: as a programmer, your core competence is not programming language, programming framework class library and API, but algorithm design and data structure design. But I would like to ask everyone, how many algorithms are you familiar with, and have you applied the algorithms you are familiar with to solve daily customer needs?
Many people have never studied algorithm courses when they were in school. Some of them learned it but discarded it after the exam. A few of them remembered it but couldn’t apply it in daily work and actual business scenarios. Learning and using it Two skins.
In the era of artificial intelligence, this company needs to be upgraded and becomes: model + data = program.
Model, are you following up?
(3) Developer - developer
Developers don't pay attention to project progress-cost-quality-risk, nor do they pay attention to target customer group-product positioning-product competition, but developers pay attention to the whole software life cycle.
What is the whole software life cycle:
Before Code: Business Analysis
Before Code: Architecture Design
Before writing code: code architecture design
Writing code: test-driven development
After the code is written: continuous integration - continuous release
After the code is written: continuous deployment - continuous delivery
After the code is written: DevOps monitoring and early warning-log burying and analysis-service chain tracking and investigation
Only those who have mastered these are called Developer-developers.
How many business analysis methods and architecture design methods are you familiar with? Are you familiar with the use of software life cycle tool chain?