The architect of Ali with a monthly salary of 80k talks about how he went from a small code farmer to where he is today.

 

01

When I first became a programmer, I belonged to the kind of diligent and conscientious type of employee, and my work attitude cannot be described as serious. Every day, I was almost the first one in the team to arrive at the company and the last to leave work. The team member Zhang Gong usually commutes to and from get off work on time. Even if the progress of the project is urgent, he rarely works overtime. Unless there are special circumstances, he will work overtime.

If measured by the degree of diligence and the length of work hours, I think I am more active than Zhang Gong. It stands to reason that I am so active, and the workload should be more than that of Zhang Gong. In fact, it is not. Compared with the tasks assigned by the leader, I am even less than him.

Zhang Gong used to work as a Java server before, and then he taught himself Android mobile development, and then he taught himself iOS mobile development. At that time, he was a multi-talented expert, and he could do whatever the project arranged for him.

Judging from the code submitted by Zhang Gong, his code is not only standardized but also very elegant. Not to mention the big ones, he can encapsulate some basic controls, and he has also extended them so that they can be easily called by other developers. Admired.

And the so-called long working hours, in fact, most of the time is to repeatedly build the wheel, repeating the same function, not only did not do the encapsulation processing, resulting in a lot of redundant code, sometimes just meet the requirements change, I put myself Tired enough, now think about it, really deserve it.

02

I don't know if you have a situation like this:

  • When reading, some students have their eyes wide open during class, and they even take notes. After a class, the notebooks are densely packed, and there are also a lot of practice questions to do after class, but their grades are not satisfactory. On the other hand, some students do not seem to work very hard on the surface, but their academic performance remains very good.

  • At work, some people always "work overtime" and look very dedicated, but they spend a while at work browsing Taobao, swiping Weibo, and reading headlines.

…………

Sometimes I have the illusion that I have worked very hard, and I have even used the fragmented time to study, but I have not made much progress.

Even in the time that should be idle, in order not to let myself idle, I found a lot of things to keep myself busy, which seems to be quite fulfilling. After a period of time, I found that I had not achieved much, and the more I tried, the more I failed, so I fell into confusion. "Look, I've worked so hard, how come I'm still the same." Gradually, he began to doubt himself, and then he became depressed and even lethargic.

In fact, being idle is not scary. Being idle is also a kind of enjoyment. Being able to stay idle is also a kind of ability. What is scary is that we feel that we are wasting our time, blindly arranging some unimportant things, and instead work hard for ourselves. Impressed do not do not want.

Please don't make yourself look like you're working hard, because the result won't accompany you to act. It's too easy to make others envy, just pretend to be appropriate, but it's a little harder to make yourself envy yourself.

In the workplace, I know how to constantly supervise myself and appropriately impose a sense of crisis on myself. Neglecting the mind, the mood of leisurely wandering is suitable for shopping malls. If there is no sense of urgency, the work can be completed in an hour. If there is no sense of urgency, leisurely wandering, I am afraid that the ink will not finish after get off work, and over time, develop a kind of Get used to it, it's not wise.

The real effort is not more than who spends more time and who seems to be working harder, but whether you can find a suitable method for you, then think more, summarize more, and explore a set of learning methods that suit you.

When you are busy, you should also pay attention to the combination of work and rest. Blindly working hard is like an old ox pulling a plough. Human physical energy is limited, and the brain also needs to rest. Overworked work can only reduce work efficiency, and it is difficult to achieve twice the result with half the effort. Appropriate relaxation, drink a glass of water, let the body and mind relax, and there may be unexpected gains.

I don’t know if you have noticed that the more people you contact, the higher the level, and most of the successful people know how to support each other and hug each other for warmth, because I am good, you are good, you are good, I am good, everyone is good. Okay. And often people whose careers are not very satisfactory, the more they like to slander and envy, and destroy the stage, because I am not good, you should not think about it.

So it's also important to work with people who have a pattern and ideas.

The architect of Ali with a monthly salary of 80k talks about how he went from a small code farmer to where he is today.

Learning is the best investment in oneself, and opportunities belong to those who are prepared. This is an era of face-seeing, but in the end it is strength. The gap between people is not in IQ, but in how to use their spare time, so there is no brilliance waiting for it, only the brilliance that comes out. In fact, as long as you want to learn, it's never too late to start. Don't worry about this or that. You just need to work hard and leave the rest to time. The reason why you haven't gotten stronger is because you haven't worked hard enough. Remember to give as much as anyone's efforts.

Being bored and not studying is a terminal illness for young people, but don’t forget, there is no youth that is not hard. We must not sell our youth cheaply and eat every day, so you must force yourself, otherwise you will never know yourself. How excellent, you must always believe that wealth is in your mind, as long as you are determined to succeed, failure will never knock you down, your future does not need others to guarantee, waste your life on beautiful things, kill out a bloody way. Also please don't lie to yourself, you are not out of time, you are not very good, and you are not very tired, only by studying insignificant today, will you be great tomorrow, so that you can live the life of your life. It's steaming hot, remember that diaosi are forever, counterattacks are forever, don't make excuses for not learning, otherwise you will always be a diaosi.

1. I have no eloquence - wrong: no one is born very good at speaking, and the master speakers on stage are not able to speak out all at once, that is the result of countless drills behind them! You are very good at cursing and complaining, but this kind of eloquence is worthless eloquence. When you watch others arguing, you are full of comments, but you don’t know how to reflect on yourself. If you practice hard, would you still say it today? You have no eloquence?

2. I don't have money - wrong: it's not that I don't have money, it's that I don't have the brain to make money. Work for a few years without money? Yes, but it was spent. Spend on things that have no return on investment. Spending on food, drink and entertainment, or storage has depreciated, and the value has not been maximized, so the money just can’t make ends meet. Every month when the moonlight clan, go round and round, have no foresight, be a monk for a day and ring the bell for a day, just get by.

3. I have no ability - wrong: If you don't give yourself a chance to exercise, who has the ability at birth? A social elite after graduation? Instant success as soon as you start a business? When others study hard, accumulate hard, and find ways, and you only do a little bit every day, you will feel boring. After learning some things, I feel bored, after reading a few pages, I don’t want to read it, and I tell myself and others that I have no interest in learning. Then most of my life has passed without accomplishing anything, complaining all day long that God doesn't give me a chance. Ability is acquired through hard work. If you don't try hard to have ability, a genius will become an idiot. But with hard work, no matter how stupid people are, they can become elites.

The architect of Ali with a monthly salary of 80k talks about how he went from a small code farmer to where he is today.

4. I have no time - wrong: a lot of time, but a lot of wasted! Others are full, you are watching TV, while others are studying hard, you are playing games to pass the time. In short, time just feels redundant, and you get bored more and more. When others make money, they envy others, but they don't learn from others and make good use of their time to create value.

5. I’m not in the mood—wrong: I go to play when I’m in a good mood, drink alcohol at home when I’m in a bad mood, go shopping when I’m in a good mood, play games when I’m in a bad mood, enjoy when I’m in a good mood, and be in a bad mood Time to sleep. Good or bad mood is the same, anyway, just don't do the right thing.

6. I have no interest - wrong: what is interest? Everyone is interested in eating, drinking, and having fun, and there is no way to have fun without achievement! Enjoy life without money! what is your hobby? Going out to travel and returning to the Moonlight Clan, going out to K song and returning to an empty wallet, going out for a lot of shopping and coming back miserable... Are you interested in working? Are you interested in crowding the bus? Are you interested in checking in at get off work and punching in after work? The family urgently needs a lot of money and can't come up with it. Are you interested? Borrowed money but no money, still interested? Rat poison sellers are interested in rat poison...?

7. I think about it - wrong: if you think about doing it, it may become possible, but if you don't do it, I'm not reconciled! If you think about working all day without a head, let's start tomorrow! After thinking about it again, forget it, it's not easy to earn this money! No, it is not easy to earn money by working part-time, so I decided not to give up the opportunity! Oops, it's getting dark, let's talk about it tomorrow! Then the next day, because of the above points, because of thinking about it, continuing to cycle, and finally unable to decide. Hesitating, wasting a lot of time, and getting nothing.

There is a saying: "Poor people must have something to hate!" It's not that you don't have opportunities in your life, but that you don't strive for and grasp! Too many excuses, too many reasons...! Those who win will try their best to win, and they will try their best to win even if they don't have a penny.

The architect of Ali with a monthly salary of 80k talks about how he went from a small code farmer to where he is today.

Java developers can look here.

For students who have worked for 1 to 2 years. Students in this part of the time period already have a deeper understanding of Java.

For the students who have been working for 2 to 3 years, some students feel that they are already very good at this time, so they can't help but start to relax slowly.

Students who have worked for 3 to 4 years at this stage are already very difficult to improve, and the learning at this stage is often more diverse.

Students who have worked for 4 to 5 years have experienced the previous year and believe that you already have your own insights in the field you are studying. At this time, you should have encountered a technical bottleneck.

You can learn together: 454377428 java architecture, multithreading, high performance, let's exchange and learn together, help you improve yourself, picture bottlenecks, and keep up with the times.

To share with you the architect learning roadmap that you have summarized, you can use it as a reference:

1. Distributed architecture system

How did distribution come about? In the traditional telecommunications and banking industries, when the business volume is large, the CPU/IO/network of the ordinary server reaches 100%, and the request is too slow, what should I do? The most direct way is to upgrade the hardware. Anyway, there is no shortage of money. IBM minicomputers and mainframes have purchased a lot of hardware.

But the Internet can't do this, the Internet is not so rich, and there are still many start-ups. I don't know if they can make money. So there is a software solution: distributed system, in short, one server is not enough, I use two, 10, 100... This requires the support of the software system.

With so many machines, how do I make them work together, which requires a dispatch center (or registration center); it must involve inter-machine communication, so an efficient RPC framework is required; a request comes, how to distribute it requires a request Distribution system (load balancing); and then consider that each role cannot become a performance bottleneck; and that it can be easily scaled horizontally, as well as a single node failure.

A distributed system is required, and the amount of concurrency is definitely not low.

Then it is not enough to have the above, and you also need to consider issues such as cache, mq, job, db, etc. cache, now the third-party cache is relatively mature, redis/memcache, etc.; mq, rabbitmq, kafka, etc. are also good; job, now the third-party task framework has elasticjob and tbschedule, or you can also use quartz to support tasks in a distributed environment, But quartz has no operation and maintenance tools. DB, it is best to consider business splitting in the early stage of the project. After the system is split, the DB corresponding to the vertical split can be separated from reading and writing in the later stage. One master and multiple slaves, or even multiple masters and multiple slaves, the industry also has corresponding solutions. plan.

To sum up, we must first understand the principle of distribution, and then find mature products in the industry for each functional area to real-time. In the Internet industry, there are basically open source products for you to choose from.

The following figure is the distributed technical breakthrough points I summarized:

The architect of Ali with a monthly salary of 80k talks about how he went from a small code farmer to where he is today.

2. Microservice Architecture

The concept of microservice (Microservice) appeared in 2012. As a method to speed up the development process of web and mobile applications, it began to receive attention from all parties in 2014, and 2015 can be said to be the first year of microservices;

More and more forums, communities, blogs, and Internet industry giants have begun to discuss and practice microservices, which can be said to further promote the development and innovation of microservices.

Microservice Architecture is an architectural concept aimed at decoupling a solution by decomposing functionality into discrete services. You can think of it as being at the architectural level rather than acquiring services

Apply many SOLID principles to classes. Microservice architecture is a very interesting concept. Its main function is to decompose functions into discrete services, thereby reducing the coupling of the system and providing more flexible service support.

Concept: Splitting a large single application and service into several or even dozens of supporting microservices that scale individual components rather than the entire application stack to meet service level agreements.

Definition: Create applications around business domain components that can be developed, managed, and iterated independently. Use cloud architecture and platform-style deployment, management, and service capabilities in disparate components to make product delivery easier.

Essence: Use some services with more clear functions and more refined business to solve larger and more practical problems.

These knowledge points are all the experience I have gathered from my many years of practice, and they are the most mainstream technologies at present. Friends who want to learn these technologies can join the group: 454377428. The group will share these technical knowledge points for everyone to learn and download for free

The following figure is the technical points of the microservices I summarized:

The architect of Ali with a monthly salary of 80k talks about how he went from a small code farmer to where he is today.

3. Read the source code and analyze the source code

Programmers work with code every day. After years of basic education and vocational training, most programmers "write" code, or at least copy and modify code. However, there are not many people who can read code. There are very few people who can read code and really understand the source code of some large projects. This kind of weirdness really has to be investigated, no wonder the group of programmers itself - it is caused by two reasons.

All of our education and training emphasizes how to code, not how to read code

Most work scenarios are one radish and one pit. We only need to understand a part of a system to work. Reading irrelevant code seems useless.

I often make an analogy between coding and writing—the two have a lot in common; but in terms of how you develop coding and writing, there are a lot of differences. Our writing ability is based on a lot of basic reading. In addition to learning grammar and grammar knowledge, starting from elementary school, over the years, through reading the works of various famous masters at different levels, plus a variety of Writing training is accumulated; and our ability to write code, after understanding and mastering grammar/grammar (learning and copying example code is also part of grammar/grammar learning), skip the process of reading a lot of famous works, It is automatically cultivated directly by biu: After learning the basic grammar and experimenting with several examples, we jumped to the stage of writing code, fighting monsters and praise experience like a rocket. There are three disadvantages to skipping the stage of reading a lot of code in this way:

The foundation of writing code is not reliable, and the process of fighting monsters and upgrading is the slowest. The reason is very simple - the pits that the predecessors stepped on and the lessons learned, you have to personally try to step on it with the slowest method.

It's easy to develop the habit of writing code driven by stackoverflow -- if you encounter code that you don't know how to write, you can find ready-made answers from the Internet, find a high-voted copy and paste, and change it, and let's talk about it after you finish the function. If you encounter problems in the process of writing code, turn on the debug mode, either set numerous breakpoints to trace step by step, or print information everywhere to try to patch the code full of holes, resulting in the whole process of writing code is a history of blood and tears of code adjustment . (See my article: Software development patterns you want to avoid)

The upper limit of the development level of the strongest engineer around you is your upper limit.

The following figure is the source code system that programmers need to know most:

The architect of Ali with a monthly salary of 80k talks about how he went from a small code farmer to where he is today.

Fourth, the use of tools

The importance of tools to Java programmers cannot be overemphasized. There are many libraries, utilities and programs for Java developers to choose from. The tools listed below are essential tools for programmers

The architect of Ali with a monthly salary of 80k talks about how he went from a small code farmer to where he is today.

5. Performance optimization

Performance optimization, in a nutshell, is to make the system run faster and take less time to complete a specific function without compromising the correctness of the system's operation. Performance issues are always one of the eternal themes, and optimization requires more skill.

The architect of Ali with a monthly salary of 80k talks about how he went from a small code farmer to where he is today.

Guess you like

Origin http://43.154.161.224:23101/article/api/json?id=326020328&siteId=291194637