Are you faced with so many technologies on the market that you can’t decide which one to choose for your career and future development? Such thoughts are natural, because with the development of science, programming technology has reached the point of flowering.

  • In terms of programming languages, you can choose Java, JavaScript, Go, PHP, frameworks based on them, and so on.
  • From the client side, you can choose mobile side, Web side, back end and so on.
  • In terms of industry, you can also choose data science, financial engineering or business intelligence analysis.

So so many technologies and fields, we should choose which is better?

Analysis of the

First of all, let’s analyze the causes of this problem.

No career direction

This kind of situation is relatively easy to occur to college students, because college students have no definite concept of their future career and development direction, and what they are taught in school is basic, without specific study and analysis of a certain industry. This leads to:

Although there are many directions to choose, it seems that any line can be competent, but every line can be competent, which is equivalent to any line can not do.

Because we do not understand the technology stack required by various industries, the characteristics, advantages and disadvantages of the industry, then we have no way to choose the technology and field.

I want to do it for good

There are more and more new technologies, everyone has anxiety about them, thinking about whether to learn these new technologies, learning, afraid of wasting time, do not learn, afraid of falling behind, finally will desperately want to find a set of evergreen technology stack, pray after learning no longer need to learn other technologies. This process of searching is useless and wastes a lot of time.

A lack of confidence

What this means is that you may know what to learn and what is good for the future, but you are not sure if it is really good or if it will help you after learning, so the lack of confidence can make you indecisive and unable to make a decision.

The solution

There is a solution to this problem,Be a generalist with expertise. A generalist is someone you know in many fields. A specialist, on the other hand, is someone who has specialized research in a particular field and is proficient in that field. This personal development path can be graphically described as a “T” shape: the horizontal line represents the area of shallow knowledge, and the vertical line represents the area of greatest proficiency. I’m going to call an approach that goes in this directionT-shaped development guide.For us programmers, software development engineers, it means that we have an understanding of all kinds of technology, but there is one technology in particular. To achieve this goal, do the following:

  • Rank the technology in order of interest, importance and popularity.
  • Choose the one skill that is most important to your career or that interests you the most and delve into it.
  • The rest of the technology, according to the prioritized, learn a general, know what this technology does, can write the code of the entry project is good.

For example, if you study Java, you can try front-end development, or learn about data science. In addition, I can also learn interdisciplinary knowledge, such as management, marketing, design and so on, to broaden my knowledge. But remember, you should spend the most time and energy mastering Java.

advantage

So what are the advantages of being a generalist with expertise? There are many, but here are a few that are important.

Better manage occupational risks

When you’re being transferred at work, or you want to move into a different industry, if you need to move to a different technology stack, and you happen to know something about it, you can move to that technology stack more quickly, and then you can master it on the job. On the other hand, if you don’t, then you will have a fear of unfamiliar technology and territory in the beginning, and your psychological stress will be more thanPeople who already know about the technologyIn turn, it affects your productivity and confidence. Therefore, it is better to be exposed to more knowledge in the limited time.

Generate a sense of the big picture

When you have knowledge of multiple fields, you can think about the relationship between different fields or technologies at a macro level and have a holistic view of them. For example, if you learn more than one programming language, you will be able to learn other programming languages more quickly because you will find that many concepts are common between them, and you will be able to make better choices about technology selection for projects because you understand the different features, strengths, and weaknesses of each programming language. For example, if you learn project management, you will have a new understanding of both personnel management and project management.

Increase in wealth

If you have a side business, or want to make money on the side business, such as outsourcing, consulting, up and so on, then you need to master a variety of fields and skills, because doing a side business is entirely by your own efforts, it requires a lot of knowledge and miscellaneous, but also must be proficient in a certain technology or field. For example, if you are a programmer, your expertise should be writing code, but you need to teach others, so you need to know more than everyone else in order to be trusted. In addition, you need to know how to edit and market videos to create compelling, high-volume videos. These are interdisciplinary fields, and knowing them will help you build your personal brand. Another example is outsourcing. If you have more technical or industry knowledge, you will be more competitive than others, can receive more projects, and can complete them in less time. In addition, in outsourcing projects, communication skills are the most important part, and it is necessary to learn how to discuss needs carefully to reduce losses. This only specialized technology is not feasible, but the ability to deal with people is the only way to win.

conclusion

Ok, we have analyzed the dilemma of programmer development: why facing so many technologies, do not know how to choose? The reasons are as follows: First, the career direction is uncertain. Second, they want to learn a skill once and for all. Third, lack of confidence. The solution is to use the T-shaped development strategy, master the most knowledge in a limited time, and then master one of them. The benefits of doing this include but are not limited to:

  • Be prepared for a change of position or career to better manage risks.
  • Have a macro understanding of domain and technology concepts and be able to make better choices at the right time.
  • When you start a side business, you can make more money.

These are some of my personal suggestions, if you think it is helpful, please give me a thumbs up, if you have any questions, please leave me a comment ~ thanks.