But if you are proficient in the field itself, not just using a tool or a platform, you will find that you will not be silent with the industry, or you will find that you can quickly and naturally transition to the next related hot field.
IT is an inevitable trend to return to dullness, and five years is a long time in the IT field. It is not necessarily that technology is out of date, but that technology is too popular. But if you are more proficient than superficial, it doesn't matter to you whether you can return to dullness.
Trends and hotspots will definitely add value to the future/salary, such as big data (in fact, it has long been a fire) or AI. In a few years, the wages of employees will increase substantially. But as you said, hot spots and trends will cool down. For example, there will be more and more people in the society who can spark and run Tensorflow, and the dividends brought by hot spots will gradually decrease to disappear. Some people will be confused, why their value seems to be getting lower and lower, whether to change a hot spot; But some people are getting deeper and deeper, more experienced and more tactful.
-
My idea is that engineers should pay more attention to "Tao" than "technique" in order to remain competitive.
What is "art"?
For example, "choosing words and making sentences" is art. If you are a writer, choosing words and making sentences is undoubtedly a necessary skill.
Similarly, "familiarity with programming languages" is also a skill. As a programmer, it is absolutely necessary to be familiar with the characteristics of your common languages.
Big data, application development or database field. How to configure Hadoop and form a cluster; How to make a cool interface effect with a UI library; What parameters can be used to adjust the cache size of the database, etc. , are all skills.
So what is Tao?
For example, "how to find the layout of a novel" is the Tao. If you are a writer, there is no doubt that this is a skill that affects your career more than choosing words and making sentences.
Similarly, as a programmer, knowing the principle behind the system will have a far-reaching impact on your career development than being familiar with a language and a framework.
If you do big data, do you know the different designs and trade-offs of consistency assurance for distributed systems? How to achieve fault tolerance? If you are a database, do you know what are the characteristics of the data structures of different indexes? Or what is the principle behind the optimizer? Or developing business logic, are you familiar with the business process and related industry knowledge behind the logic?
-
The characteristic of technology is that it is easy to be outdated, or the added value is getting smaller and smaller. How to use tools is undoubtedly very easy to become obsolete in the computer field where new inventions are made every day, and the company will not invest too much money in the experience of using tools. After all, it is enough.
Admittedly, skills are your essential skills: you can't write code, you are not familiar with the language, and you can't find a job at all. But not your training direction: the company won't particularly favor you because you are proficient in all kinds of details of a language. The company does recruit people to write programs, but the company does not just recruit people to "write programs."
Tao is the foundation of our continuous improvement and growth in the field: only by understanding the principles behind it can you survive in the field of science and technology where new systems, new languages and new frameworks are born every day; You haven't touched a certain framework, but you know which indicators and characteristics are the basis of selection; You just heard about a system, but after reading the architecture design, you will know what kind of performance it will have in your usage scenario and what kind of pits it may have; Or you read a paper and find that its original design can improve the problems that your existing system can't solve, and so on. This kind of you is often more popular and respected than a code farmer who is only familiar with the language and proficient in API.
Some people may say, look at those great programmers who are not familiar with some languages. Yes, the coding gods we see are often well written in C++ and proficient in Go, but that's not because they specialize in practicing this language, but because they have honed their skills on the way of constantly learning Tao. In order to get better performance and new design, they must be more familiar with the language used.