This article is the original content of Erudite Valley Wild architects team, please mark the source.

Efforts to

There is no success without sweat. As a programmer on the technical path of the ceiling level, to reach this level and height, without many years of hard study, is almost impossible.

To become an architect is a basic skill, if you don’t spend a lot of time and energy into research, even the basic technology can not hold, say you can do a good software architecture.

talent

I’ve met a lot of students with good skills. All aspects of the field that have to do with technology can play well. However, it is still awkward to interview for architecture or receive a software architecture job in the company. So to become an architect, or to become an excellent architect, in addition to the above mentioned basic skills, your thinking ability, design ability, the ability to solve problems unlike ordinary people. Even their own personality given to solve the problem of the mood and thinking, are essential conditions. And that depends, in some ways, on your talent.

opportunities

The so-called opportunity is the element that can be encountered but not sought. Being an architect is just a pile of skills that can’t be done. What you need is a platform that provides wide enough space for you to play around, to practice and exercise. In addition to the shortcut of standing on the shoulders of previous experience, lack of practical training is often reduced to armchair thinking. So if there is a platform and an opportunity, grab it!

Considering the above factors, hard work is still the most important point. That is, if you want to become an architect, you may not succeed if you work hard, and you don’t even think about it if you don’t work hard.

What do I have to learn to be a Java architect?

Language foundation

Java architect, as the name implies, your dominant development language is Java. At a relaxed level, language itself is just a tool to solve problems with what you are most skilled at.

Therefore, as a Java architect, the Java language is not only the application level, but also the underlying principle classes of the JVM

Development framework

This is a direct means of putting the architect’s work on the ground. Because the ultimate goal of architecture is business metrics. Architecture is meaningless if it is not conducive to business progress.

The simplest and most crude manifestation in business is the development framework. If an architect can’t understand the basic development framework, forget it.

The middleware

It’s still a tool. Middleware is a bridge to help you design your business architecture. If you need asynchrony and messaging, you need message queues. If you need caching, you need Redis. It’s a cliche. However, WHAT I want to emphasize here is that the mastery of middleware as an architect should not stop at the use level, but should be fully controlled. Because with any technology introduced, you want to make sure that the architect is the first person to find a solution if it doesn’t work or if the existing functionality doesn’t meet your needs. The other aspect is selection. The design of the current business system, the same function point, there may be N kinds of similar middleware to achieve. So which is the best choice? This requires you to have some control over mainstream middleware features.

The solution

If this is a bunch of tools, then you have to have an accumulation of solutions in common areas. Single sign-on, distributed transaction, high concurrency SEC, complex workflow, payment system design… Too much. Accumulate in development and daily life, actively practice and trial and error when encountering the right scenario.

Architectural thinking

As an architect, you have to be thinking. When reading the master’s source code, you will find that the design of this thing, thinking is really not simple. If you find this feeling gradually, your mind is slowly ascending. When faced with similar situations and problems, you will gradually develop some clever ideas for solving your own problems, to guide your analysis and practice. As for the list of technologies mentioned above, that’s an implementation thing. Figure out the problem and decide on a good idea. When it comes to implementation, the majority of things are already done, just choose the right tools to solve it

How to grow from Java Engineer to Architect?

It can be said that architects almost always come from basic engineers. Notice I said almost. We don’t exclude people who are born with some kind of psychic power, like the open source gods, and we’re not going to talk about that.

So back to us mortals. As a Java engineer. Honed for many years in the software field. Work experience will accumulate over time. But I don’t know if you’ve noticed that the guy who’s been working for 10 years is still a junior developer, and he’s far from being an architect.

That said, not all Java engineers can automatically become architects once they have enough years. First of all, you have to pay attention to your accumulation and the nature of your work. After 10 years of work, you have been doing the same thing every day, writing HelloWorld from morning till night, even when you are old, you will still be at the same level. So that’s point number one.

Second, be good at summing up, accumulation and transformation into their own things. Some people in the post itself can access a lot of content, but most of the time it as a burden, anxious to solve it never want to see it again. Unfortunately, it is a pity that in this kind of useless waste, I did not diligently think about what I did, whether there is reusable value in the future. Could you please help me to solve the problem with higher efficiency when we meet next time?

Third, take the first step. From Java engineer to architect, in fact, just from the position, title is still a step down. Then this is the step you’re going to take. From zero to one, step into the role of architect, just as you did when you started as a Java engineer. Do what he says first, and then consider the future development of things.

In short, architects are not a mysterious species to a relatively savvy Java engineer.