Today, I saw an article, written by a five-year-old Ali man, which once again awakened my yearning for Ali.

www.hollischuang.com/archives/53…

I’ve been working at Alibaba for 5 years. Dare to talk about what I think advanced development should look like?

This article is like a ruler to measure my degree.

 

What skills should developers have?

Speaking of developers, there seems to be a category of interns, junior developers, senior developers, architects, and domain experts. But I do agree with the following refinement. In my opinion, the following abilities need not be classified into any levels. If you have the following abilities, no matter what level you are at, you will have greater opportunities than others.

If you want to change jobs and get a raise, take a look at these skills.

1. Software development ability

2. Ability of architecture design

3. Project management ability

4. Online operation and maintenance ability

5. Business understanding ability

6. Learning ability

7. Influence

8. Goal-oriented

The degree of love and focus

 

# Ability portrait interpretation – software development ability

Java Basics: Collection classes, IO, JVM. Among them, the JVM should at least understand and know the principle. Then do a good job of online tuning, finding and solving problems.

Multithreading: Thread pools, how threads communicate, why they are used, and what problems they solve. I’ve seen a few, just to enrich their resume and use, when asked, the use of the scenario has nothing to do with multi-threading. The benefits, as well as the problems.

Frameworks: SpringBoot, Spring, springMVC, ORM framework, MyBatis, JPA, etc. It’s a must. It’s not going to do anything. To stand out, it is best to have a deep understanding of one or two source codes. Not only can you use it, but you have to understand how it works. Understanding the principle can also expand our thinking ability and solve problems with the help of existing ideas in some special business scenarios.

Message-oriented middleware: MQ, etc., not only to know the one you use, but also to know the others, and why you should use the one you use in your project. It would be better if we could understand one in depth, such as high availability, to ensure that data is not lost and repeated consumption.

Mysql > select * from redis; select * from redis; select * from redis;

Algorithm coding ability: algorithm questions are the most able to test thinking ability and code ability.

 

# Ability portrait interpretation – architecture design ability

There are two aspects: architectural design on the code side and technical architecture on the other.

The first aspect is basic programming skills, which should be familiar with design principles, design patterns, and code cleanliness, code norms.

Technical architecture: The end of the vision, at least to know that some technology, even if not used, can be used quickly when needed to solve a problem.

Finally, it is necessary to add that the experience accumulated from the long time of work, for example, is the directory of the server, a lot of people use, is trampling at will, and husky demolition is the same. This is painful. So must have standard go using ability line. For example, if it is used by different people, in the first level directory with their own name.

 

# Ability portrait interpretation – project management ability

This area requires someone who has a good understanding of the whole project and is able to control everyone’s progress, not to mention managing them, so that you can help others when they fall behind. Bring the atmosphere to the group, protect their group members, colleagues.

 

# Ability portrait interpretation – online operation and maintenance ability

This includes the location of the problem, the discovery of the problem, and the solution of the problem. This includes JVM tuning and so on. Be able to use tools to pressure test the project before it goes live. Find existing problems with tools. To tune the parameters. If this piece is done well, the performance of the system will have a very good promotion. Programs don’t just run, they need to know if some metrics are up to scratch.

1. Use of common Linux commands

2. Check and troubleshoot common server indicators (Load, CPU, memory, GC, etc.)

3. System tuning, performance tuning, SQL optimization and other skills

4. Troubleshooting ideas for common problems Such as deadlock problems, slow SQL problems, memory overflow problems, Load skyrocketing problems and so on.

 

# Ability portrait reading – Business understanding ability

This is about being familiar with what you do. As a beginner developer, there’s really little you can do if you don’t master the whole thing, and it’s probably just some repetitive additions, deletions, changes, and reviews. I also had this problem. When I was an intern in 12306, I paid attention to my own content and thought that the design should be done by leaders without any ideas of my own. Not having a good understanding of the business as a whole. Later my leader also gave me guidance. She told me a lot of things. Let me have a promotion, in fact, this is a common problem of inexperience, usually divide themselves and the system too clear. I don’t know what part of the system I’m building, what I’m going to do next.

Take work as your own career, so that you will be willing to invest their energy and time. Of course, leaders love this kind of person, and some just do their job and act like they don’t care about themselves, which is really annoying. If you have the energy, take the initiative to master eighty percent of a system, master the content of others. Be sure to know what you do, the status of the whole system, the role.

 

# Ability portrait interpretation – learning ability

This is very important. The ability to learn involves automatic drive, the ability to learn even when you don’t need to. It’s also about being able to learn quickly when needed. When I first came to the company, I took over the search platform. I learned about ElasticSearch, and then I replanned and modified the cluster to save nearly 500GB of memory and increase the speed by nearly 30%. I learned about elasticSearch and read almost all the articles about optimization on the website.

It was hard for me to understand this part. I still remember that when I joined this company, the interviewer asked me which database I had used. Finally, I picked one that I had never used and asked me to write a case machine test. This is to test the learning ability, and the ability to withstand pressure, the ability to adapt to new affairs. With these abilities, in the current market, to be able to establish a foothold, to be able to sell themselves at a good price.

What this ultimately requires is the ability to get started quickly.

 

# Power portrait interpretation – Influence

Influential, including participating in open source projects, being active in the community, blogging and getting a lot of page views,

In the corporate world, it’s about being remembered for your ability to solve problems. When there is a problem that cannot be solved, people will immediately think of you. I think if you have this ability, your leader will certainly not know it, so when the rating assessment, the score will not be low.

Organize and attend networking meetings to share your knowledge. This is actually a promotion of myself, according to the iceberg theory (my own creation of the theory), is to want to show the iceberg, very dependent on the invisible efforts below. And the explanation is the same, want to speak out think about, may have to prepare more, finally speak out 60% is good.

 

# Ability portrait interpretation – goal oriented

Have a good goal-oriented, have a good plan. Such people are always forward. He knows where he’s going this year, and he’ll move up, which will be a good move for the company.

 

# Ability portrait interpretation – the degree of love and concentration

It feels like more than 150 percent of people are just developing as a career, not a hobby. There is no development outside such a person’s life. Without learning, such a person could easily become what I mentioned above, even though he is very capable now, and then has an attitude of not caring about himself. And then according to the script, it doesn’t take long to be eliminated.

A person with a strong interest in the program, and a degree of concentration, can’t be too bad at all. When no one else could solve the problem, he always leaned in to solve it. Intangibles will bring a lot of benefits.

So when I interview people, it’s natural for me to choose people who love the industry more.

There are open source projects, and blogging (if it’s good) is a plus.