Technology is constantly iterating, mastering one of them can leisurely old age? Blindly moving bricks can change quantity in exchange for quality change? What is the nature of the rapid development of the world? How do you identify potential technologies? How to break through the bottleneck of learning and ability and achieve self-management better? This article is shared by Teacher Left Ear Mouse in “Yunjia Community Salon Online”. It elaborates how technologists should face anxiety, control technology and better adapt to the impact of future technological development.
Lead it
From my work experience of more than 20 years, I have experienced a lot of technology upgrading, the whole technology model, business model has been changing, so the content of this topic, talk about how technical personnel should adapt to such a change?
First, if you want to control technology and cope with changes in the world, you need to roughly know some laws and development trends of the world. In addition, you need to know yourself. What are you suitable for? What is the field that belongs to oneself below this trend and law after all? That’s what we all need to know.
Second, I lay a solid foundation to cope with all changes. No matter how the world changes, I can quickly adapt to it.
Third, we need to improve the efficiency of our growth, because the pace of our society is so fast, much faster than 20 years ago, and technology is constantly emerging, so we need to grow more efficiently. Efficiency does not just mean fast, efficiency is how to be more effective, it is the available labor divided by the total labor, how to learn more effective things, or how to learn more effectively, is another key we need to master.
Click the link for a full replay
First, know the world, know yourself
1. The Big picture
First of all, we should understand the development trend of the world. Human society is currently in the third industrial Revolution, and the information revolution is also under way.
The first industrial revolution was the age of the steam engine, which replaced labor with steam engines. The second industrial Revolution was the internal combustion engine, and electricity was invented in the second industrial revolution. The third industrial revolution is today, mainly in information technology, atomic energy and space technology, and some biological application engineering.
We can see that the three industrial revolutions revolve around the iteration and upgrading of energy. From the age of steam to the age of the internal combustion engine to atomic energy.
2. The law of technological evolution
Why is all this power and energy needed? Because all kinds of machines invented by human beings need energy and power, so from steam, internal combustion to electricity, atomic energy are constantly solving the problem of how to make machines move. There has to be an external force to get the machine moving, so energy becomes very important, and the machine can do it tirelessly, but energy has to keep up. So to solve the energy problem is to solve the automation of machines.
Today’s information revolution is also about automation, as long as it can be digitized, it can be automated.
Take communication as an example, the earliest pigeon transmission, then wireless on demand transmission, to the present communication through the Internet, are in the solution to automation, automation process is only the machine in the tireless work.
Automation can lead to scale, and scale can lead to dramatic cost reductions and dramatic increases in efficiency, which is essentially what the industrial revolution did.
Next up, the information revolution. The information revolution is divided into three stages:
From 1990 to 2000, the era was called Megabyte (MB) era, which was the era of Yahoo, Sina, Sohu and netease portal sites. This era was SP Internet providers, which digitized some information and then published it on the network.
From 2000 to 2010, the era is called multimedia or UGC era. Surfing the Internet has become common, and everyone has more digital devices in their hands. They can upload photos, upload videos, and even do social networking online.
From 2010 to 2020, the past decade is the era of mobile Internet, mobile Internet only requires mobile phone online, do not rely on computers. Because mobile phones are always online, all kinds of personal data are being collected all the time. As long as users are online, data will be generated, so people’s behaviors will eventually be digitized.
For the next decade, maybe you can lose your phone. Even if your phone is thrown away, you can digitize it, because there are so many cameras offline and the Internet virtualizes so much of human behavior.
The big trend in the world is basically to address energy and automation. When we learn about these things, we know how the world will change in the future.
In the past, machines were used in place of animals or in place of humans. For example, one person can manage hundreds of looms. Numerical control machine tools used to be operated by people, but later numerical control does not need people. This is a better experience brought by digitalization.
In a word, it liberates productivity; in a word, it makes people unemployed. But if it makes labor-intensive unemployed, it may make knowledge-intensive unemployed in the future. Some knowledge-intensive jobs, such as lawyers, are easy to lose jobs in the future, and some low-end and mid-end lawyers will be replaced by algorithms and machines.
Because many things in the law industry are dogmatic and formulaic, all cases and laws are open, and these things can be quickly learned by machines.
The evolution of technology is basically automation and scaling, thus reducing costs and improving efficiency. This is why the world is getting faster and faster, and human beings can hardly keep up with the pace, mainly because the whole society is constantly driven by machines and data.
3. The composition of the technological world
How does the world of technology come together, and what are the biggest foundations? Generally is the theory, the first theory has to break through, after the theoretical breakthrough, the qualitative change can go to the next level, the theoretical breakthrough, there will be the basis for some technology, these short-term looks may not make money, but without these things can not turn behind.
Like operating systems, operating systems don’t solve human business problems, but without operating systems, without networks, uploading applications wouldn’t exist. Survival technology The underlying technology is as indispensable as the highway.
Different people have different abilities, different people have different opinions, different preferences. If you can understand the theory, you will enter the theory. If you can go deep into the underlying principle, you will go to the technology side. If you want to solve a problem and improve efficiency, you will invent tools.
There is also product. Product is user experience. If you want to improve some experience, you can make products. A project is basically to complete a specific problem or solve a specific problem. A project may be the closest to the requirements of these technical jobs, but it is also relatively low technology, and its life cycle may be shorter.
The life cycle is not a project. Any product of the operating system has a life cycle, but the theory, the underlying technology, the tools that they need, the foundation sediment, or the life cycle of the technical people in this area will be longer than the life cycle of the people doing the project.
Division of labor is also so, not front-end, back-end, algorithm and other basic division of labor, but more abstract division of labor, the division of labor is to see each person’s ability and his personal preferences, the world is so divided out.
4. The world needs talent
What kind of people does the world need? We need labor, if only labor could use technology. And then there are the artisans, the artisans who not only use the technology, but also get the job done. That’s skilled labor.
Labor is labor, labor is good, repetitive labor. Labor’s biggest problem is likely to be eliminated, because he is doing some repetitive work, and people who do this kind of repetitive work are easy to be eliminated.
The skilled worker who can do the skill well, the work well, he is a kind of craftsman, and as the skill threshold drops he may become obsolete.
Special workers are workers who must understand principles and solve difficult problems, they are to solve difficult, specific technical problems. When a technology is eliminated, he is not easy to be eliminated, because he understands the principle, the principle is the ability to solve the problem, is the formula and method to solve the problem.
In terms of design and architecture, designers and architects mainly develop tools to improve efficiency and user experience, stability, performance, code reuse, etc. In general, the purpose is to reduce cost and increase efficiency.
The work of such people lowers the threshold of access to technology. By lowering the threshold of access to technology, they can spread the technology so that it can be used by a large number of laborers, artisans and special workers.
For the manager, the manager is mainly to create profits and organize the team. Managers need different skills in different situations. For example, making profits, different areas of play, including team building. People in different times are totally different. It’s like how we, the generation of 70, and today’s generation of 00, 90, how to take them, is totally different. Because we have different backgrounds, different experiences.
This is my summary of what the world needs, and when we understand these things, we can probably understand how to adapt to the changing world.
5. Eleven levels in the technical field
The following figure shows Google’s SRE score card, which mainly divides Google’s internal technical fields into 11 grades. We can see that grade 0 is not familiar with relevant fields and belongs to the beginner.
1 is to understand the basic knowledge of this technology, can read the technical basis is good.
2 can implement small changes, have small hands-on ability, and can find more details under simple guidance, as long as simple guidance can run, spirituality.
3. I have a basic understanding of this field and do not need any help from others.
4. I am very familiar with this technical field and can complete daily work, which basically requires certain experience. Have a very low-level insight and understanding of this technical area.
5 can basically solve many problems. Compared with the previous 0123 registration, it can be regarded as the level of labor and skilled workers, 345 registration can reach the level of special workers, and 678 registration basically belongs to the design and architecture.
Develop large-scale systems from scratch, master the underlying and internal systems.
7 is to understand and use technology and related principles, fundamentally automated a large number of system management operation and maintenance work.
8. Deep knowledge of corner technology, ability to design, deploy and be responsible for critical large-scale infrastructure, and build automation facilities.
The key words here are foundation, underlying principle, automation, these things are the technical characteristics of our scientific workers or programmers, the previous analysis is consistent.
9 and 10 are to be able to write a book on the technology, up to the theoretical level, and work with standards committee people, and understand the standards and methods that are involved, classic books, not random books, at least at the TCPIP level, or at least at the Linux advanced programming level, classic books or textbooks. Or people who can invent technology, who are already ahead of most people.
6. Know yourself
In addition to understanding general trends in the world, we also need to understand ourselves.
If you want to be able to withstand change, first you need to find what you’re good at. You have to know what you are good at, find your talent, find what you have in your DNA that is better than others, and use your DNA to compete with others.
So you have to find their own can do things, find others to ask you for advice, you around people ask you for advice is that you have expertise. It’s very, very important to find what you’re good at.
If you don’t find what you’re good at, find something that interests you. What is interest? Interest is difficult and tired will not give up. If you will give up when you encounter difficulties, it is called interest, that is called Lord Ye good dragon.
If you have no special skills, no interest to learn methods. This method is to have a sense of time, to be able to make plans, to know the overall planning, planning.
For the things I have done and the mistakes I have made, I summarize them and draw inferences from them. I like to find the answers by myself and explore the causal relationship by myself. These are some methods and summarize some routines by myself.
If you have no expertise, no interest, and no method, the only thing you can do is diligence, diligence is destined to make you a more tired person, is also very likely to be eliminated.
As you get older, your hard work is worth less and less. Because young people will work harder than you, work harder than you, fight harder than you, more capable than you, less money than you will come along. Diligence is nothing, but as long as you work hard, at least you can earn your own living.
The above is to cope with the future technological changes, as an individual must be from the strengths, interests, methods of screening and digging, if you do not have these you have to work hard and diligent.
Personally, I am not a smart person, but I think I am interested in technology. I am not afraid of difficult things. There are a lot of techniques that are difficult to learn. A smart person can learn it in a month. I can’t. But it doesn’t matter, knowledge is dead, as long as you are not afraid of difficulties will understand one day. The most terrible is fear, for their own excuses, so it is not very good.
Two, to lay a solid foundation, should be constant change
1. Why are foundations so important?
We’ve seen a lot of fundamentals in the Google Scorecard mentioned earlier, but it’s important to keep up with the changes ahead.
The changes in the world are superficial things, and there is not much change in the inner things. On the theoretical level, there is not much, but the formal things are a pattern today and a pattern tomorrow. Therefore, if we want to deal with this change, we must lay a solid foundation and improve our internal strength and recuperation.
For example, some programming methods and routines, modify the nature of pattern principle, decoupling, improve the reuse of code and so on. Increasing code reuse requires decoupling, decoupling from reality, increasing abstraction, these are some of the technical foundations. That’s how it’s done in any language.
If we lay a solid foundation, we can break through the bottleneck. If we do not lay a solid foundation, we cannot break through the bottleneck. In the technological world, it is impossible not to think that quantitative change causes qualitative change. Technology this thing like bricklaying cranium houses, code in the manner of bricklaying head do you no good, because you don’t understand the principle, you have no way to grow up, so you have to learn basic theory knowledge, if not learn the basic theoretical knowledge, you on the surface, when the technology changes, you will find before learning is useless, to start learning again.
Mastering technical reasoning allows oneself to find answers and knowledge, based on abstraction and induction, which can easily form further inferences. Many of the technologies that we’ve learned can’t escape from the basic principles, whether it’s Java or other languages, as long as we use TCP, we all use the same principles, we can’t escape from the scope, as long as we grasp the principles, we can even derive some technologies ourselves.
2. What counts as basic technology?
Some technologies, such as programming languages like C and C++, work mainly on compilation, memory management, Pointers, etc. Java language principles are basically in the virtual machine JVM, garbage collection, JVM bytecode and so on. Python is basically in the interpreter, go language is concurrency, basically all of that, how memory is managed, why there are no Pointers in Java, what does Java virtual function mean? .
You need to know about important library events. Is its data structure a red-black tree or a hash table? Code design, concurrency, asynchrony, programming paradigms, design patterns. Operating system is the principle of computing, Linux, network protocol, and database, like the paradigm of database design, background principles should be clear. Middleware Kafka is what principle, you have to understand the principle inside, there are some things that consume a lot of memory. Network management agents, scheduling systems, etc., theoretical knowledge algorithms and data structures……
So algorithms and data are very important. Database design paradigms, network models, these are all theoretical knowledge. Theoretical knowledge allows you to learn a lot from the nature of things.
It’s basically the principles that a computer science student is going to learn, except for middleware, maybe not taught in school, but there’s no need to learn these things when you’re a student. Some of our schools are bad, some of our teachers are bad, how can he teach them? And teach students of the book are written by themselves, all the best teaching books in the world need not, must write a. I have experienced such experience, Dennis C language programming, must get a copy of Tan Haoqiang’s language design, I do not understand why so, others good do not have to use their own, and then there are many mistakes.
Without the original taste of things, your learning efficiency must be reduced. That’s the way it is in college. It takes about four or five years for these basic technologies to stack. I have been working for 20 years, and these principles have not changed in the past 20 years. No matter how the form changes, the core will always be the same. Theoretical innovation is difficult, and it is a constant response to all changes.
3. How do you identify good technology?
In fact, with these theoretical knowledge, there will be some distance from the actual operation. With so much technology now, what is good technology?
First, understand what the technology solves. If the technology solves a common problem, then it might be great. If the technology solves a small problem, then it might be small.
Technology must lower the barriers to entry, improve development efficiency, or improve stability, which is basically what all technology changes are about. So, the more common the technology, the better. Lisp is all well and good, but Lisp solves a theoretical problem, not a universal one. We can learn Lisp, but you can’t eat with it.
What kind of capabilities do we need to develop? Can do more complex calculations? The ability to automate more complex and difficult things, and basically all technologies move in this direction.
Which technologies have the potential to become mainstream? Good technology does not necessarily become mainstream technology. There are usually three things that make a technology mainstream: a big company endorses it, a killer app, and a strong community.
All the big companies are in Java, and There’s a front end, there’s a mobile end, there’s a back end, there’s a bunch of killer applications. There’s also a strong community, and Java is enterprise-level, so you can see transactional systems are mostly C, C++, Java. NET is the same line. If you want to use open source, if you want to have a higher productivity and a more stable system, use Java.
There’s Go, there’s big endorsement, there’s killer apps, there’s a strong community, there’s a lot of Java middleware migrating to Go, those are big technologies.
So what about PHP, what about Node.js, these are scripting languages, scripting languages I don’t think are so good. PHP doesn’t have a lot of future possibilities either. They lower the technological bar, but they don’t really solve more complex problems. It’s also hard to do architecture in PHP.
Why Java architecture is easier to do, because in general a structure system is usually for communication system, a lot of people think that architecture is to do a good job in these systems and communication, communication between system is a system integration, architecture and inside control system, like some service portrait, configuration management and allocation center, there are some network management, flow distribution, there are also some scheduling system, Control systems and some traffic distribution systems, like DIVE’s CICD, which cut traffic, and data systems, an architecture basically consists of control systems, traffic systems, scheduling systems, status systems, data systems, and communication systems.
The Java community has the most of these things. So using Java is more convenient.
How do we control technology, how do we recognize what is “good technology”? Not academically good, but more practical, pragmatic techniques. As programmers, technology is not a profession, and we still have to identify more common, easier to use more widespread technology.
But either way, the basic technology is basically the same. So you can see that a lot of senior companies don’t pay much attention to what language you use, like Microsoft, Google, Facebook and so on, but it is important for employees to understand the basic principles, because it is an important basis for whether you can grow.
Third, improve the efficiency of their own growth
The technology is constantly updated, and I’ve been basically catching up for the last 20 years, and if you’re slow to follow up, you can’t do it, so you have to follow up fast.
First of all, we must have the efficiency of learning, how to improve your efficiency of learning, if you do not improve the efficiency of learning, in fact, a long time will be left behind. The graph below shows the learning pyramid. If you learn by listening, you may end up with only 5% of your knowledge remaining. You can leave 10% when you read a book, 20% when you watch some videos, and 30% when you watch a demo……
Why are they all so bad? Because these are passive learning, not through their own thinking is passive learning. But active participation in learning, such as actively discussing problems with others in a discussion group, left 50 percent. If you do it yourself, you’ll leave 75 percent. If you teach someone, 90% of your knowledge remains, so the process of learning something can be imagined as the process of telling someone else.
1. Learning methods
The way to learn is active learning, active learning is what we call deep learning, and if you can’t do deep learning, ten years doesn’t mean anything.
(1) Pick primary sources of knowledge and information
For learning methods: first, we must go to the source of knowledge to select knowledge, knowledge information source is very key, second-hand information loss is too big, Tan Haoqiang wrote the book lost too much information.
At present, computer knowledge is basically foreign, so English is very important. I encourage you to always read firsthand information. If you have a problem in English, at least to see translated, had better be authentic translation, don’t I understand tell you that, that is also being chewed it again speak to you again. You don’t understand, is someone with you, other people’s experience will affect you, maybe you feel to be better than him, because is summed up your own thing, so knowledge is very important.
(2) Pay attention to the principle and foundation
The second should pay attention to basic principles. Although I can forget the technique, the principle is in my mind, I can do it by hand, and I can learn other similar techniques faster by using the principle. So the principle is important! When you learn C, C++, learn Java and GO quickly.
(3) Use knowledge graph
Be sure to use knowledge graphs to structure knowledge. Everyone says that C++ is the most difficult to learn, C++ three blocks, the first is to solve the problem of C language, the second object oriented, the third is STL; C language pointer problems, macro problems.
For TCP, the first thing to remember is the state diagram, how you establish connections, how you break connections, how states change. TCP has no connection, and maintains connections by state.
Secondly, to understand how to ensure the reliability of TCP, that is, how to retransmit packets after losing.
Then, retransmission will bring congestion control, the speed of sending and receiving may not be equal, or the speed on the network may not be equal, which involves congestion control. So that’s the basic three blocks of TCP, and you can think about it a little bit down the line, how do you do congestion control, sliding window messaging, how do you test retransmission and so on and so forth. So you can follow them with knowledge graph association.
You don’t need to know everything, you don’t need to know anything about the manuals, you just know where to find them. You have to have A map in your head. Learning something is like living in A city. When you close your eyes, you know the map. I’m in Beijing and I’m going to Guangzhou, which is in the south, so I have to know whether I’m going by plane or train. I don’t have to remember all the details, but I know who I’m looking for, so I know how to find that place. You don’t have to remember everything, you have to remember the general map, you have to remember the basic methods and principles, just know where to find it.
(4) Learn to draw inferences
By analogy, it means to learn something with different methods. For example, to learn TCP protocol, reading is one method, programming is another method, and debugging is used to look at something. Using different methods will make you more familiar with it. For example, can you learn HTCP front-end, such as long connection, short connection, including HP1, HP2 there are some different things.
(5) Summary and induction
We must learn to summarize and conclude, and form our own thinking framework, our own routines, our own methodology, and how we should learn this thing in the future. Just like learning a new language, whether it is GO or Rust, the first thing is to understand how memory is managed, and the second is how to manage generality and concurrency. And what about abstractions, how do you decouple, how do you achieve polymorphism?
Routines to form after this kind of things only to learn more, if you won’t have, only to learn a language you want to learn C, C + +, a year to learn languages, don’t need to learn more, what do you think the language is different, why is this such a game, who has that kind of game, thinking these things much more routine methodology came out.
For example, what’s the difference between Windows and Linux, and what’s the difference between Linux and UNIX? Only by summarizing their own framework, routines and methods can they never be eliminated.
(6) Practice and persistence
Remaining is to do much more practice, hold to much, only practice ability can have experience, only took exercise ability can change oneself adipose did not have, want to turn knowledge into skill so must take exercise, learn to add, subtract, multiply and divide like primary school student, still want to exercise, must do topic more, topic did much, nature is mastered well.
To choose a good source of knowledge, pay attention to the principle of technology, there are some principles of the foundation of the book is too boring, but I tell you that learning the foundation is too worth investing time, moving bricks to earn dozens of yuan is not worth, because earn hard money, old will not earn, must earn more ability of money, this is learning investment.
2. Proactive management
In terms of growth, we also need active management. What’s the result of not active management? Passive management, being chased every day, is inefficient. Therefore, we should learn to manage actively. If we want to deal with the future and control changes, we will not have good efficiency if we do not manage actively, because we will be led by others by the nose if we are passive.
(1) Manage time
Active management is the first to learn time management, do not be interrupted by others. If you have an important task to do, it is recommended to turn your phone on do not disturb mode or simply turn it off. If there are some important things to inform everyone what I do now, from time to time need to concentrate on do not disturb me.
Like when I was in some big company, if I didn’t want to be bothered, I would just send an email and say don’t bother me. I fear that people will not stop bothering me, which is very important. You get a lot of homework in a day, you have a lot of things to do, and my experience is that the shortest homework comes first, and the ones that are not the most urgent are done first, and I think the short ones are done first, and the short ones are done quickly, and then you have a big chunk of time, so in order to save a big chunk of time, you have to clear these short assignments. These short assignments are actually the most annoying.
Focus. You can’t do too much in one day, so make sure you focus on the most important things. In addition, think clearly to do again, a little slower, haste makes waste, quickly finished to rework, and by others management, you do not good others disturb you every day, this problem that problem, how do you take the initiative to manage? Active time management is thinking clearly and not going back to work.
(2) Management requirements
Managing requirements, by understanding the “XY problem”, can save you a lot of work. The XY question is when someone asks someone on the Internet, how do I cut the last three digits of a string? Many people offer a variety of approaches and argue with each other about which is better.
At this point, someone asked, “Why cut the last three digits of the string?” “, the questioner said, “Because I need file name extensions, which are operating system file extensions”, the person said, “Operating system file extensions may not be three digits, they may be two, they may be four, they may not know how long”.
That’s the “XY problem.” Most of the world gives you X problems, which tell you how to solve the last three digits of a string, but what is the X problem? Filename extension. There are too many such problems. Product managers and leaders often will not tell you X, and they will think THAT Y can solve X. They shield a lot of information and ask you to do Y, but you don’t know how to do it.
The X question is actually very important. Product manager gives you a lot of requirements, need to ask him why do this, to achieve what goal, what effect? And then you tell him, why do you do it this way, why don’t you do it a better way? This is active management.
(3) Manage superiors
Want to learn to catch a key point additionally, distinguish necessity and scientific nature. Demand have something is not necessarily a well, sometimes, grasp the key, the first ask why want to do more, solve the problem of what, what goals to achieve, to manage demand, really busy but it can only make three demand, breaking the fourth needs to do, if I had to do five a week, I may not be able to guarantee the quality, you want to carry out the problem, Just a BUG or something.
This is managing up. Managing up is not about saying “no”, we should never say “no”, no matter the superiors and users will hate you after saying “no”, but we should say a conditional “yes”.
We have to give him multiple options. You asked me to do five requirements a week. Give him options. One: I can’t do five a week, I can do three, and then which three do I do, focus. The second option: give me two people, I do five, do you think ok? There is a third option: you can make five a week, but the quality is not guaranteed, there may be a lot of bugs, are you willing to accept?
He throws the ball to you, you throw the ball, the pressure to him, let him bear the pressure with you, how to let him bear the pressure together? That’s the condition. If you want to give him the conditions, I will definitely do it, but you have to bear the conditions, that is, to go up and bear the consequences of doing things, either give me time, or sacrifice quality, good and fast definitely need conditions. If you don’t talk, the future will be tired to death, must learn to talk.
(4) Management debate
The fourth is management debate. Sometimes it is very painful to argue endlessly, you can’t convince him, he can’t convince you, the matter has gone to the boss, the boss also can’t explain clearly, so it is very important to take the initiative to persuade the other side.
You need to stand tall and find some data to convince the other side. What does the higher pattern mean? He comes to you to fulfill the requirement ABC, and you say to him, what is our higher pattern? The user wants to be happy, the user wants to be happy, it’s definitely not ABC, it’s probably XYZ, that’s the higher pattern.
If only in these details of entanglement, in fact, no one can persuade who. For example, the user is a higher pattern, the boss comes, the CEO comes also can’t do the user, because the user is paying. So standing in the user’s point of view will be better, standing in the perspective of earning money is also a relatively high pattern of the place.
So if you want to increase your productivity, you need to proactively manage your time, proactively manage your work, proactively manage your superiors, even your peers, even your users, and manage your arguments.
When you are in full active control of these things, let alone technical control, you are already puting them, mind control them. Otherwise you are in PUA by them, 996 is a PUA. So the efficiency of active management is high, active people are high, passive people must be low.
Four, the general
So we look at learning methods including overall efficiency, basically need to be active, we should be active in learning, find some methods, our management should also be active, find some methods.
In the big direction, we need to see the development trend of the whole world, in the small place, usually pay attention to the development trend of the whole company. What is the business of the whole company? How did it work? What value is created? Solve what problem? These are all very real.
And when you know these things it’s going to subtly change your choices your choices, the way you behave, the decisions you make, what kind of technology you choose.
How do you know yourself, you have what kind of specialty, you are interested in things, you know what kind of method, you know to what kind of place to pay…..
These questions can be combined to find their own way in the field of their best fit. Finally, you need to have some scientific learning methods and some scientific independent management methods so that you can deal with anxiety and control technology.
Five, the Q&A
Q: Will programmers be replaced?
A: Programmers will not be replaced! There are two implications:
First: There will always be more difficult problems to solve, and the level of difficulty will get higher and higher. But there will definitely be some programmers replaced, less skilled programmers replaced.
The business model will change. Twenty years ago, the business model was Web, and ten years later, it became mobile phone. Twenty years ago, the data volume was not large, single system is ok, but today, the data volume is large, and it has become distributed system, so the business scene is changing. Changes in business scenarios mean that different tools are used in different business scenarios. As the business model changes, so does the technology. For example, I used to be a Windows programmer, and now I switch to Linux when Windows is no longer the back-end. The business model used to be centralized, but now it is distributed, but the principle is the same. So as long as the business model changes, programmers won’t be replaced, just more advanced programmers, first in assembly, then in C, and then for higher levels, no matter where engineers are needed, that won’t change.
Q: It is known that foundation is very important, but the basic theory in university has not been practiced, the theory is not fully practiced, the work pursues practice, and there is no way to connect theory with practice. We have learned many theories of TCP protocol, but how to combine these principles with practice in practical work?
A: question will always be some, I used to come at some time in the company, technical failure, resilience, malfunction of time no matter what things will fail, some faults may soon can solve, some fault it takes A long time, understand the basic principle of faster than people who do not understand the basic principle of investigation.
If there is no fault, I can’t touch a lot of things. I think the division of labor is too fine now, unlike at that time, we do both testing and operation and maintenance. I suggest you consult with operations students and architects to help them if possible, as well as practicing knowledge through open source projects.
Sometimes I also go to the cloud platform to buy a few machines to build an environment to try, because it is really difficult to master these knowledge without practice and hands on. Some companies really do not use these things, for example, I have been in an outsourcing team for a long time, the job is not skilled, but I still use my spare time to learn, most of the time, I can not learn much at work, or I have to learn in my spare time.
And some companies need these technologies, if you do not learn to understand these technologies, others will not give you the corresponding job, so, there are many times, we can learn from the work is not much, more or to take the initiative to find a place to learn.
Q: After three years of writing business code, you feel lost and can’t find the direction to do bigger things?
A: According to the above, products should study user experience. Making tools is to increase efficiency and reduce technical barriers and costs. There are also some infrastructure and architecture things to improve performance. Open source software has a lot of that, but it’s good to learn the basics when you don’t have a direction.
Q: What do you think of future back-end technologies and developments such as Serverless?
A: Serverless requires faster online and faster maintenance. But distributed things cause a lot of problems. What does the Serverless scenario look like, what exactly does it solve, and what does it improve? Maybe it was a flash in the pan, something unsolved, just to show off. We’ve had so much of this technology in the last 20 years, the question is what did you solve? If you can’t solve the problem well, then the technique is just showing off for the sake of showing off, so back to basics. Serverless can be a killer technology once it solves a real problem.
Q: There are a lot of business demands on the Internet. There are a lot of overtime work and a lot of business pressure. How can I find time to study?
A: Just like what I said before, active management is really important. How to find your own time, how to work less hours and study more. “Two type of harm to take its light”, I, too, before do outsourcing is Monday to Saturday, before nine o ‘clock in the morning to ten at night, but my action is more faster, at first I do tools, always let me do the function of the business logic is very similar, I abstract to do yourself, demand will soon finished, but I don’t tell them I am finished, I said that I haven’t finished, I took a little time to study on my own. But you don’t also too wide of the mark, I have to work overtime, but I learn my things, I secretly reading what of, these tips, if you do not charge, do not learn you certainly can’t get down to one place, so don’t be too overdraw, or to find some skills of some of the things, can take the initiative to manage their time, don’t you finished other people and work for you, Learn active management.
Q: How do I identify the “XY problem”? Sometimes the product manager asks a question that I have no idea and I don’t know the field?
A: You have to understand the field if you want to figure out the “XY problem” with the product manager. There is no way, how much you know more than he can refute and argue with him. Another way, when the product manager is sometimes unreasonable, you can ask him: “You don’t have the data, do you have any basis for this?” It doesn’t have to be data. Do you have any evidence to back up what you’re saying? Do you have any other companies that do that? Something like this can be rewound, but there’s a little bit of a trick to it.
Q: As a programmer, due to the nature of my work, I don’t have many opportunities to contact the content of architecture practice in the company, so I feel it is difficult to improve. How can I break the game?
A: No one has access to these things at first. Here I share my experience. I didn’t have access to it at first, and everyone in the business doesn’t have access to it, but I want you to be seen to be learning it.
The first thing you need to do is show that you’re learning about architecture. Keep a few books on distributed architecture on your desk to show that you’re learning about architecture and that you’re different from other programmers, so people will want to give you the opportunity to share their knowledge and experience with you.
The second is: Actively looking for a company in some technical powerful people chat to dinner, I also is such, before looking for a senior programmer about him to have a meal, looking for him for advice, is looking for him to learn, learn some when you ask him, is there something around what I can do for you, to know a man, it first met people learning with him, after looking for him for advice, Don’t ask others for nothing, you should invite them to dinner or a red envelope, to give others the impression that you can be studious initiative, after this impression, others will give you an opportunity, seize the opportunity slowly passed, about this.
Q: What do you think of the rapid development of Python today?
A: Python has grown very fast because it has lowered the technical barriers to entry and made it easy for ordinary people to program. For example, in some fields of science and big data, it has made it easy for mathematicians who do not know how to program. This is one of the features of Python that has lowered the barriers to entry. But we programmers understand that Python is still a scripting language, and that we need to go back to higher-level languages when working on distributed or deeper systems. So Python’s popularity has more to do with making programming more accessible to non-trained programmers and kids. This is my understanding for today, every language has its own scenarios, and python is fine for writing some automated scripts, but for industrial-grade software, it’s still a long way from Java.
Q: What’s the difference between Scala and Java?
A: Scala is A lot easier to use than Java, but Scala is essentially Java classes based on JVM. I think Scala is fine and the language is fine. But the community is more Java, I think Java needs to learn, Scala is also good.
Q: Sometimes the pressure is so great that I don’t want to perform. What about procrastination? Things have not finished, can not take time to learn, in the company can not open, a little stuffy how to solve?
A: Again, know yourself, find your strengths, where you feel confident. The key is to find something that you are confident in, that you can play with, that you feel about. Think about your strengths and interests, the most logistics can compensate.
The lecturer introduction
Hao Chen, Left Ear Mouse, founder of MegaEase, Tencent Cloud Most Value Expert (TVP). Senior programmer, coolshell. Cn blogger. Former Senior R&D Manager of Amazon, Senior Architect and Technical director of Alibaba. He is currently the founder of MegaEase, a startup company dedicated to providing enterprise users with a product that can improve system performance and stability without changing a line of code, namely Cloud Native and microservice scheduling.
Follow yunjia community public account, reply “left ear mouse”, you can get the teacher’s speech PPT~