1 What is the architect?
The first thing you need to know about the architect's direction is what is the architect?
An architect is a team leader who needs to take control of the whole and need to understand local bottlenecks and give solutions based on specific business scenarios.
An architect needs to be imaginative enough to expand different dimensions of the various target requirements, providing a more comprehensive list of requirements for the target customer.
<figure style= "Margin:1em 0px; Color:rgb (26, 26, 26); Font-family:-apple-system, System-ui, "Helvetica Neue", "Pingfang SC", "Microsoft Yahei", "Source Han Sans SC", "Noto San s CJK SC "," Wenquanyi Micro Hei ", Sans-serif; Font-size:medium; Font-style:normal; Font-variant-ligatures:normal; Font-variant-caps:normal; font-weight:400; Letter-spacing:normal; Orphans:2; Text-align:start; text-indent:0px; Text-transform:none; White-space:normal; Widows:2; word-spacing:0px; -webkit-text-stroke-width:0px; Background-color:rgb (255, 255, 255); text-decoration-style:initial; text-decoration-color:initial; " >image
</figure>
Architects play an important role in the whole process of software development.
In more detail, the architect is to identify and evaluate the system requirements, give development specifications, build the core architecture of the system implementation, and clarify technical details and clear the main difficulties of the technical staff. The main focus is on the "technology implementation" of the system.
2 Architects ' tasks
The architect's main task is not to write specific software programs, but to engage in a higher level of development architecture. He must be well aware of the development techniques and need to have good organizational management skills. It can be said that the quality of an architect's work determines the success or failure of the entire software development project.
Before becoming a Java architect, you should be a Java engineer first.
Be familiar with the various frameworks and know how they are implemented.
JVM virtual machine principle, tuning, understand the JVM can let you write better performance code, pool technology, what object pool, connection pool, thread pool ... Java reflection Technology, writing framework required technology, encountered serious performance problems, alternative Java bytecode technology; NiO, there is nothing to say, it is worth noting that "direct memory" features, usage scenarios, Java Multi-threaded synchronous asynchronous, Java various collection object implementation principle, Knowing this can help you choose the right data structure to solve problems and solve problems efficiently.
such as the implementation of the principle of hashmap, a lot of five years of experience in the people are not clear, and why the expansion of the performance problem?
Without figuring out these principles, you can't write efficient code and think you're doing the right thing.
In short, the more basic things are more important, many people think they will use them to write code, in fact, just know how to call the API, away from the use of the poor far.
If you aspire to architecture, first lay the groundwork, starting at the bottom.
Then develop to a variety of technologies and languages, everything must understand two points, to be comprehensive and not superficial.
Why don't you understand a little?
You have to see it thoroughly and you have to be as deep as you can. You have to be an architect to understand a little more. For example, you find that Golang is very popular, others may write a helloworld to say that they have played Golang, but you should at least try to write a complete application.
Do not work hard, how to a tall man?
<figure style= "Margin:1em 0px; Color:rgb (26, 26, 26); Font-family:-apple-system, System-ui, "Helvetica Neue", "Pingfang SC", "Microsoft Yahei", "Source Han Sans SC", "Noto San s CJK SC "," Wenquanyi Micro Hei ", Sans-serif; Font-size:medium; Font-style:normal; Font-variant-ligatures:normal; Font-variant-caps:normal; font-weight:400; Letter-spacing:normal; Orphans:2; Text-align:start; text-indent:0px; Text-transform:none; White-space:normal; Widows:2; word-spacing:0px; -webkit-text-stroke-width:0px; Background-color:rgb (255, 255, 255); text-decoration-style:initial; text-decoration-color:initial; " >image
</figure>
You should at least have a very deep understanding of the language, if your goal is Java, then learn to the extreme, as a stepping stone, first eat enough to talk about the ideal.
3 architects have come from yards.
and Java learning to the extreme inevitably involves design patterns, algorithms and data structures, multi-threading, file and network IO, database and ORM, and so on. All of these concepts apply to all languages.
First of all, for a comprehensive and not superficial laying the groundwork.
The other is to learn from an experienced architect and discuss debates with small partners.
In fact, the most important ability is to keep learning. Before you can think about whether new technologies are better able to solve the problems you encounter, you need to know and understand the new technologies first.
Architects are from yards farm, daughter-in-law to boil into a woman.
Never be an architect who doesn't write code, and some companies specialize in architects who don't write technology.
The architect is just a programmer with a deep foundation. Individuals think that the basic knowledge should be solid, learning a variety of norms, architecture, the need for a wide range of knowledge, understand the more open vision, the design of things will certainly be better and more comprehensive.
Becoming an architect takes time to accumulate, not only to know it but also to know why. You don't feel particularly useful at ordinary times, but one day you will find that everything has not been learned in vain.
4 Architects Knowledge System
Java Architects must master the technical knowledge of high concurrent multithreaded programming, network communication programming, Java Virtual machine, Linux, database, middleware and so on, if you want to go to big data and other special development, need to master Hadoop, Storm, Spark, flink, etc., and read Kafka, Netty and other source code, can hold a variety of project challenges. Recommend a video, focus on the "code front", reply to the architect can.
<figure style= "Margin:1em 0px; Color:rgb (26, 26, 26); Font-family:-apple-system, System-ui, "Helvetica Neue", "Pingfang SC", "Microsoft Yahei", "Source Han Sans SC", "Noto San s CJK SC "," Wenquanyi Micro Hei ", Sans-serif; Font-size:medium; Font-style:normal; Font-variant-ligatures:normal; Font-variant-caps:normal; font-weight:400; Letter-spacing:normal; Orphans:2; Text-align:start; text-indent:0px; Text-transform:none; White-space:normal; Widows:2; word-spacing:0px; -webkit-text-stroke-width:0px; Background-color:rgb (255, 255, 255); text-decoration-style:initial; text-decoration-color:initial; " >image
</figure>