The specialized courses mentioned here mainly refer to algorithms, data structures, operating systems, compilation principles, linear structures, discrete mathematics and so on. For students who are not computer majors in universities but want to engage in front-end development in the future, is it necessary to take time to understand these "high-level" computer professional courses?
Viewpoint 1:
If you just want to be the front end of an ordinary code page and accumulate some experience and skills bit by bit to make a living, it is unnecessary.
it is very useful if you love code and front end, and want to make your work more and more interesting and meaningful.
With the change of the times, the function of the front-end is more than just cutting the picture and making pages. The functions of front-end engineers are getting bigger and deeper, and the development of front-end technology forces us to have higher professional quality. The front-end engineer at this time, first of all, is an engineer.
There are three reasons for learning these basic courses:
The functions of the front-end are changing, and we need to deal with different challenges such as desktop web, desktop application, mobile web, hybrid and node application. Although these may be subdivided, I think as a competent front end, I should have the ability to control these knowledge by myself.
the front-end technology and tools are developing very fast. For example, babel and eslint, which are commonly used now, do you need some knowledge about compilation principles if you want to write some loader and plugin yourself? Commonly used node, if you don't understand server-side development, then the code written must be very bad. Not to mention webgl and so on.
the threshold of high-tech is declining. In the past, the thresholds of image recognition and machine learning were relatively high, but now, the perfect tool library has given the general public a very low threshold for use. What follows is the low-cost application of these technologies by other technologies. Have you ever considered using image recognition to do some interface generation or testing? Or the application of machine learning to the front end. These are exciting scenes.
Viewpoint 2:
"The foundation determines the height you can reach, while the business determines your minimum bottleneck", and both cannot be neglected.
the front-end is developing so fast that the new things you pay attention to today may be completely different or even abandoned next year. Therefore, it is very important to maintain high learning ability to cope with this change. High learning ability is closely related to your computer foundation to a great extent (let's put aside irresistible factors such as intelligence).
at present, there are almost no newly created knowledge fields in the pure front-end category. But on the other hand, no field has ever developed so rapidly as the Web front-end, and the old knowledge system has been repeated on it. I remember a famous saying to this effect: Everything will be realized once with js. I am deeply convinced now. I believe many people have also seen that the front end seems to have developed very vigorously in recent years, but in fact there are not many new things, and everything is a repeat. Computer foundation is the secret of keeping constant and changing. Now the front-end no longer needs stupid emphasis such as "I can write java background code" to stand up straight, and mature companies have begun to pay attention to the practical value brought by the front-end. Therefore, the front-end itself can't stand still, consolidate the computer foundation, flexibly apply it to daily business, and absorb new technologies, which is a natural thing.
Summary:
What knowledge you should learn and what knowledge you will use is almost only related to the work you do.
if your goal is to become an engineer with a solid foundation and a high skill threshold (even omnipotent), then it is nothing wrong or even necessary to learn those.
but if you just want to be the front end of discuz, Baidu Post Bar, Taobao and Alipay, then it may not be really cost-effective to invest in those.
On the other hand, it is a good way to break through the bottleneck by studying deeper and wider fields when learning the target skills well and feeling that it is difficult to make progress. The premise is that you really belong to that 1% or even 1%.