The Elusive Title: Why Most Farmers Can’t Become Code Architects
In the world of software development, the title of Architect is often revered, yet rarely achieved. A small team of about 10 people, often led by a Technical Lead (TL), holds the majority of the technological reins. This leaves the majority of farmers, who have spent many years in code, wondering why they can’t take on the role of Architect. To answer this question, let’s break down the skills and mindset required to become an Architect.
The Code Dilemma
The code itself is divided into four categories: those who can write code, those who think they can write code, those who can write good code, and those who can write excellent code. The difference between good and excellent code lies in the ability to research, optimize, and continuously improve it. Few farmers possess the breadth of knowledge to understand the latest technologies and delve into their depths.
The Breadth-Depth Conundrum
Agriculture is divided into two main areas: technology and business. While some farmers focus on technology, others are more concerned with the business aspects. However, to become an Architect, one must have a good understanding of both. This requires excellent communication skills, which are often lacking in farmers who have focused solely on code.
The PM Connection
Good communication is not only essential for an Architect but also for a Project Manager (PM). The ability to coordinate with team members, understand business requirements, and make informed decisions is crucial. Unfortunately, many farmers lack the necessary skills to excel in this area.
The Middle Ground
Some farmers may possess a good understanding of the business and technical aspects, but lack the initiative to take on the role of Architect. They may be content with developing frameworks or relying on middleware to create a semblance of architecture. However, this is not true architecture.
The Roadmap to Architect
To become an Architect, one must be willing to accept knowledge outside of work and possess certain non-technical characteristics. This includes a willingness to learn, adapt, and think critically. The journey to becoming an Architect is not a straightforward one, and many farmers may find themselves at a crossroads. If you’re interested in pursuing this path, consider the following roadmap:
A: Common Patterns and Tools
- Learn Java technology architecture, design patterns, popular frameworks, and components
- Familiarize yourself with common design patterns and coding standards
- Master Spring 5 and MyBatis, essential components for application development
B: Engineering and Tools
- Understand the importance of tools in development efficiency and teamwork
- Learn Maven, Jenkins, Sonar, and Git for project management, continuous integration, code quality management, and version management
C: Distributed Architecture
- Study distributed architecture principles, strategy, and middleware
- Learn to handle high concurrency, high availability, and massive data
D: Micro Services Architecture
- Understand the benefits of micro services architecture for complex business needs
- Familiarize yourself with Spring Cloud, Docker, and virtualization
E: Performance Optimization
- Learn to identify performance indicators, JVM tuning, web tuning, and DB tuning
- Understand how to strategize and solve performance problems
If you’re willing to put in the effort and dedication, becoming an Architect is within reach. However, it requires a willingness to learn, adapt, and think critically.