In the ever-changing IT industry, every few years and months, a revolutionary technology or cutting-edge framework emerges to set the pace.
For example, in front-end development, when I first started working, most of them were static pages + JavaScript, with only a few simple interactions on the page.
Then came theAjax
process safetyJQuery
Library, now remembering the first time I used theJQuery
When it does, it really feels like that's the end of the front-end library.
As it turned out, within a few years, there was a riseMVC/MVVM
framework, and with it theAngularJS
cap (a poem)EmberJS
And then, all of a sudden, it's likeJQuery
It doesn't smell as good.
AngularJS
cap (a poem)EmberJS
I don't get it.React
Another crossover, followed closely by theVue
。。。
Looking at back-end development again, in the early days I mainly used the.NET
or with someJava
but back-end languages and frameworks weren't so highly regarded back then.
More effort has been put into databases, especially Oracle, and projects withDBA
role, specializing in database issues.
Back then, applications were basically standalone.
Later, as the application scaled up, performance issues became apparent and caching technologies (Memcached, Redis) began to be introduced, the
At the same time, asynchronous programming and multithreading techniques are beginning to be widely used.
At this time, a variety of Web frameworks are also springing up, well-known such as Spring, Django, Rails and so on.
Then later, Internet applications grew by leaps and bounds, and stand-alone applications began to look unwieldy and difficult to maintain and scale.
Cloud services, microservices.Docker
become mainstream, continuous integration and continuous deployment (CI/CD
) process has also been widely adopted.
The importance of data security and privacy protection is also increasing, and back-end development is becoming more demanding in terms of security and authentication.
Similarly, with the development of hardware and the amount of data accumulated on the Internet reaching a certain scale, neural networks, deep learning and reinforcement learning have allowed the field of machine learning to develop rapidly, and AI has truly begun to move into the lives of ordinary people.
In short, we are constantly in a cycle of technology iteration.
1. Choosing generalists or specialists?
There is no other industry that iterates as fast as IT, so in the world of technology, should we focus on one area or try many?
That is, we should begeneralist(having a wide range of knowledge, useful or not) or to be themaster(devoted to a topic or a particular branch)?
Before answering this question, it's important to understand exactly what the difference is between a generalist and a specialist.
1.1 Generalist
generalistIt refers to those who are adventurous and maintain a spirit of exploration in a wide range of fields.
In the vast world of technology, they are not only proficient in one area of specialization, but also have deep knowledge in many areas.
Rather than limiting themselves to a single career path, these individuals tend to cross different fields in their careers, constantly seeking new challenges and growth.
People like that can change the world.
Famous generalists include geniuses like Steve Jobs and Elon Musk, who specialize in innovating new things.
Generalists don't just excel at everything they're interested in, they're also able to take the knowledge gained from solving one problem and apply it to different but related problems.
Once they learn the basics of a particular field, they use that knowledge in every new field they touch afterward. This is why the scope of a CTO's work can span multiple technologies and different fields.
They will use the insights and experience they have gained over the years to meet each new challenge, while continuing to learn new and emerging technologies.
Generalists focus on problem solving rather than a specific technology.
1.2 Experts
In contrast, experts show a high degree of concentration.
They are committed to deep cultivation and steady progress in a particular field, as if they were guides holding a bright light.
Experts are passionate about fully mastering all knowledge in a particular field, and they tirelessly research, experiment and study in pursuit of greater professional attainment and deeper understanding.
The vast majority of technological advances are attributed to experts who are deeply involved in their respective fields.
They specialize in the development and optimization of machine learning (ML), web technologies, mobile technologies, infrastructure, middleware, and a variety of other technology domains, and with their years of accumulated expertise and experience, they drive continuous development and innovation in these areas.
Experts need to have a systematic mastery of the core fundamentals and be able to reach and become proficient in advanced topics in a specific field through a long period of intensive work in that field.
Behind the success is irreplaceable hard work and accumulation, there is no shortcut, such as the inventors of various programming languages, frameworks, pioneers in the field of machine learning, and so on.
Major discoveries and advances in various disciplines rely heavily on the contributions and advancement of experts in these fields.
Software specialists utilize a stable set of technology stacks over time, building deep knowledge within their own domains and maintaining insight into external advances.
They have become authorities in the industry through continuous efforts, while actively seeking and practicing innovative methodologies.
However, software specialists are not required to confine individuals to a single technical field; they are free to explore other technical fields as well.
2. Individual recommendations
My own feelings aregeneralistcap (a poem)masterFalls into both extremes, and as a regular person (myself included), my choice is somewhere in between.
If one is very interested in a particular area of technology, then one can take the time to master all aspects of that area, the
But don't limit yourself and don't exclude exposure to other related fields.
For examplegithub
, we can see that many front-end masters, who already have a lot of knowledge and experience in front-end, also go to learn theRust
The first is to use Rust to develop tools that improve the efficiency of front-end development.
There are also many masters in the field of machine learning who learn front-end techniques to create interactive interfaces for their big models so that more people can use them.
Two very important factors to take into account when choosing what technology to study areinterest (desire know about sth)cap (a poem)experiences。
interest (desire know about sth)While it helps us to narrow down our choice of technology areas, it's best to decide on your true interests after trying out different technology areas.
For example, don't set your interest in front-end just because your first job exposure was front-end and you found it to be quite interesting.
Before deciding on an interest, get more exposure to a few different fields, try to make some gadgets in different fields for fun, and don't worry about learning useless or wasting time.
Think generalist, where any skills learned in other fields are not wasted.
Secondly.experiencesis another important factor that helps us make decisions.
To become an expert, it takes years to gain experience. If you've been in a field for a number of years, moving towards being an expert is usually a good option.
However, if you're just starting out or work in a job that otherwise spans several fields, it may make more sense to choose to become a generalist.
Finally, a word of advice, never give up on becoming a specialist and turn into a generalist simply because it's difficult.
Because a generalist is not simpler than a specialist, a generalist is not a "jack of all trades", but more of a specialist in several fields.
In any case, don't get all worked up about something and then run off to something else and reassure yourself that "I'm just a generalist with a wide range of interests!". I'm more of a generalist!".