As the first part of the whole system course , What I want to share with you first is how to choose the technology direction , I'm going to combine a three-stage model of technological growth , The discussion is in the business 、 Building a skill tree 、 Technology transformation 、 How to choose the right technology in common scenarios such as team technical solution selection .
Effort is only valuable when it is in the right direction .
The same is true for developers choosing technology . If you mistakenly choose an outdated technology or a low popularity Technology , You get frustrated when you're looking for a job , Even if you put yourself into practical work, you will worry about your own development prospects .
Let's imagine the following scenarios ：
All of the above questions , We will all discuss the analysis in the first part , We'll find out what factors to consider when choosing a technology direction , And then combine it with a specific scene , Take a look at the specific considerations you need to make when choosing .
It is hoped that every reader can master the method of choosing technical direction , This will make you more competitive and more valuable ; As a member of the team , You'll know how to think about it all together when choosing technology for a project , At risk 、 grow up 、 Trade off the costs .
In order to better choose the technical direction , Let's first introduce a model , I named it “ Three stage model of technological growth ”, Refer to the following figure 1-1 Shown .
chart 1-1 Three stage model of technological growth
Our growth in a professional field , Basically, it goes through three stages ：
1． Primary stage ： The promotion of special ability
The special ability promotion stage is the primary stage , You have to have some basic skills for a specific task , For example, engaged in software development work , You have to learn a language 、 Some IDE、 Some kind of technical framework ……
If you've just graduated from school and engaged in development , Or just switched from other runways to development , So you're at this stage . The most important goal of this stage is to improve the special ability , Let yourself be able to quickly handle some of the things assigned to you by others , Show your value .
The duration of this phase varies from person to person , It could be 1~3 year . If exceeded 3 The year has not entered the next stage , Then your growth rate needs to be improved .
2． Intermediate stage ： The construction of skill system
When you have a set of skills , Build your own knowledge map around a certain direction , When you can solve problems in your own way , It means that you have entered the intermediate stage . For example, you use Java Language does backstage development , Your skill system may be made up of Java、MyBatis、Spring、SpringMVC、Netty、MySQL、Python、Linux Other components . At this point you're in the team , You should be able to take charge of a module independently , Can complete the module design and development work , Can also guide colleagues in the initial stage of development .
You may need to 2~3 year , experience 2~3 Only one project can build your own skill tree , And then we'll stay at this stage 1~2 year , Keep practicing the skills in your skill system . So when you can have a strong skill tree , There may be 5~8 Years. .
If you're over that age , The technology used is still messy , A hammer in the East and a mallet in the West , You can't put them together , So your development experience and ability , It must be far behind your working years . let me put it another way , What you may learn from a year's work experience 、 The skills are mechanically repeated for years , Didn't get the growth it deserved .
3． Advanced stage ： Integration and innovation
This is the master stage , You have a lot of practical experience , With the T Type knowledge structure , Formed their own thinking framework and problem-solving framework , Be able to integrate knowledge from different fields , Combining resources , Solve problems creatively .
One of the most important signs of getting into this stage is when you have a problem , Stop thinking from the bottom up （ That is, from the technical implementation details to consider whether the problem is good to achieve 、 Take technology to tailor problems or redefine problems ）, It's about jumping out of the implementation details , On a higher level , Think from top to bottom 、 To analyze , Use the framework first 、 Logic to analyze what the real problem is 、 Purpose of question 、 The status quo of the problem 、 How to solve . After understanding this , You're going to settle down to the technical level and think about implementation options , And when it's implemented , And you don't get stuck in a certain technology , It's about using whatever technology is appropriate （ Your purpose is not “ use Java or Redis solve the problem ”, It is “ solve the problem ”）. In short , It's when you get out of the process of being bound and shaped by technology （ The first two stages ）, You can go back to the source of the problem .
In these three stages , We all have the problem of choosing a technology direction . For example, in the primary stage , When you start, choose , When you find that a technology doesn't work for you, choose again ; In the intermediate stage , We have to choose certain technologies to construct our skill tree , Or technological transformation , The technology needs to be reoriented ; Another example is in the advanced stage , We are often responsible for the technical solution exploration and selection of products , It's inevitable to choose the technical direction , Even at this time , We may also transform ourselves in the direction of technology , There has to be a choice .
therefore , We're based on a three-stage model of technological growth , Here are a few opportunities to choose a technology direction , Separately, how to choose the technology direction in these opportunities .
Last , You can think about what stage of technological growth you are in now ？ What factors do you think should be taken into account when choosing a technology direction ？ I'll talk about it in the next issue . If you have any experience in choosing a technology direction 、 Doubt or suggest , Also welcome to leave a message to discuss with me .