Previously, many colleagues on Zhihu invited me to answer some front-end related questions. However, everyone knows that it takes a lot of time and energy to answer a question seriously. For me who is still in the stage of continuous learning and accumulation, from time to time It is actually not cost-effective to distract your original energy and disrupt your original rhythm. Just like email or WeChat, if you read a message when it comes, your time and energy will be greatly dispersed, and your work and study efficiency will inevitably be greatly reduced. So my strategy is to dedicate time to unified processing after a period of time, so that the time utilization rate will be higher and the input-output ratio will be greater.
Regarding these front-end problems on Zhihu, I also plan to use the same routine, taking advantage of the two nights of free time before the Dragon Boat Festival (correction that night: I will definitely not be able to solve it in two nights, for fear of having to All of them can’t be written before the end of the month), and I decided to pick ten more representative front-end questions that I can control and answer them uniformly.
The problem is described as follows:
No one has read the submitted resume
My answer:
After much deliberation, let’s start with a personal story in a non-front-end field.
My hometown, Taixing, Jiangsu Province, is the hometown of ginkgo in China, with a production of 1/3 of the country’s ginkgo. My grandpa’s hometown, Xuanbao Town, is also known as the No. 1 ginkgo town in China, except for the small wonton market. When I was a child, the medicinal and practical value of ginkgo was discovered, and the price of ginkgo suddenly soared. At that time, no one specially planted ginkgo trees. They were all old trees from a long time ago, more than a hundred years old. There are many ginkgo trees everywhere, or they are all big and thick ginkgo trees (see the picture below). At that time, ginkgo cost 30 to 50 yuan per catty. 30 yuan 20 years ago is equivalent to 300 yuan now, and a century-old ginkgo cost A big tree can produce thousands of kilograms of ginkgo in a year. According to today's purchasing power, a tree can bring an annual income of 300,000 yuan to a family. So I went on a blind date in that era and heard that there were apartments in the city. Well, it was okay! I heard that there is a century-old ginkgo tree at home. Damn it, it just happened! At that time, a finger-sized ginkgo could be sold for a few cents, which could be exchanged for a pound of watermelon. So when the ginkgo tree matures, the owner of the ginkgo tree (the one in my field is mine) will keep watch outside all night long.
Seeing that this thing was valuable, the government encouraged it, so every household, really every household, including my grandpa, had many, many grafted ginkgo trees in front of and behind the house, but the tree thing, it It doesn't mature as soon as it is grafted. It doesn't take 3 or 5 years to see a single flower. Then I went back to visit during the National Day a few years ago. During the ginkgo season, I found that there were bright yellow and ripe ginkgo fruits hanging on the ginkgo trees in every household. I was very surprised. Why didn't they collect them?
Later I chatted with my grandpa and found out that ginkgo now only costs more than one yuan per catty. After deducting a series of labor costs such as harvesting and molting, it is a completely loss-making business, so everyone lets the fruits hang on the trees. It fell naturally and then rotted in the ground. Many people even cut down the ginkgo trees that had finally grown up and planted sweet potatoes and peanuts.
I think why there are so many front-end people now is similar to how there are so many ginkgo trees all at once.
Essentially caused by market demand.
One is the rise of mobile web (essentially the emergence of multi-terminal), the second is the development of large front-end brought about by the development of Node.js, and the third is that my country's Internet is still in the rapid development stage, including many traditional Transformation of the industry, etc.
Just like when smartphones emerged, the demand for iOS development and Android development was very strong, which later led to an overabundance of related developers.
History is always surprisingly similar, but it is inevitable.
After all, the wages in the Internet industry are indeed much higher than those in other industries. Once a huge job gap appears in the market, many people will naturally flock to this piece of cake. It’s better to come early and you can still eat it. To a bite of cake. Just like the stock market, some people are keen and follow when the bull market starts, but most people follow when everyone already knows that something is hot, and often bear low returns and high risks.
So, when questions like "Why are there so many people on the front end now" began to appear on Zhihu, it already indicated that the market was beginning to be saturated. Those who took advantage of the spring breeze and heard that the front end was very popular and saw high wages Friends who have just entered this industry will enter the stock market at the end of the bull market. Others who make money with ginkgo trees will be like those who plant ginkgo trees. They will inevitably face the two major problems of devaluation and risk.
In front of the market, we are actually all commodities.
When the market stabilizes, the products that will finally be put on the shelves will be those genuine products. The so-called "big waves wash away the sand", discard the rough and select the essence, time will prove everything, actually means the same thing.
So, friends who ask this question, you should realize that the problem is not that there are so many people on the front end, but that you are not good enough at the front end, and intend to take advantage of the spring breeze to enter a certain industry. , and have a great success, the probability of this is very small, because career is a long-term process, even if you enter this industry while taking advantage of the shortage of industry demand, your own ability is not up to standard, you will always stay in this position, and will gradually become marginalized Characters, life is not necessarily happy.
You think about it, if you are better than most people and more capable than most people, you don’t need to worry no matter how many people enter this industry, so in fact, the most important thing is to settle down and do well. Gather your front-end knowledge, solid basics, and learn the system. Don't have any thoughts of getting rich overnight. Events with a small probability will definitely happen to a group, but they will not happen to you as an individual.
When I graduated from college, I actually had more experience in the front-end field than many people, but I still quit my job and went into seclusion for 9 months to learn basic knowledge. You see, I am now in my early 30s. Although he is still on the front line, he will not worry about Xiao Xianrou taking his place at all, because his internal strength is solid enough, and these things are the ones that can truly stand the test of time.
So, if you calm down and pay more attention to your own growth, maybe one day you will look up and say, hey, the Internet of Things has risen, and a large number of front-end positions are needed; artificial intelligence has risen, and front-end positions have come again. ;JS has gone deep into the field of biogenetic engineering, and it is a high-paying position.
At this time, you are standing at the starting point of the bull market. You are a huge and strong ginkgo tree, and the price of ginkgo is very high...
And the story of ginkgo is actually It’s not over yet. Many farmers have cut down their ginkgo trees and replanted ordinary crops. Therefore, the price of ginkgo has begun to rise steadily in the past few years... So no one is interested in your resume. Don’t worry, if you persist for another year or two, you will definitely get it. There are new opportunities!
The problem is described as follows:
I just graduated and have been doing front-end development in the company. Before, I used to learn some basic front-end knowledge by myself (html +css+js). Now I am getting more and more confused, not knowing what I should study. All I learned in school was some basic knowledge. After graduation, I taught myself JavaScript. In this company, the requirements are not high and I just need to be able to build a page, but I want to improve myself. .Please give me some advice from my seniors!
My answer:
It is right to want to improve. The company's requirement for employees is to build a page, which can only happen in the following two situations: 1. The page quality is top-notch in all aspects, and you can maximize your profits; 2. Your technical ability is limited to building a page, and other activities Don't worry about leaving it to you. Since you have just graduated, I think you should be in the second category. Therefore, if you are satisfied with the status quo, it will definitely be very detrimental to your career development. Any position that can be easily replaced is not competitive. Building a page is There is no position with the lowest threshold in the IT industry. Although it actually requires a lot of accumulation to be good at it, for most companies, most users, and most scenarios, only the visual appearance of the page is acceptable, and at this level The requirements are really easy to achieve, and too many new people entering the industry are at this level, which leads to the emergence of "problem one".
Theoretically, as long as you are proficient in HTML and CSS and the page is good enough, you can enter a good unit and achieve good development. However, it is difficult. For most students, it is often a road of no return. The so-called blinding one's eye cannot see the mountain. Simple and comfortable, it is easy for people to ignore the continuous exploration of the boundaries and bottom. Even in large companies, I don’t want you to spend too much energy on things where the benefits are not direct or obvious. As the saying goes, people are in the world and can’t help themselves, so it is difficult to persevere.
So, my suggestion is to give priority to the learning of JS. The learning must be systematic and must be basic knowledge.
There are two types of learning: experiential learning and systematic learning. The empirical method can harvest some knowledge that is not found in books, such as the pitfalls of WeChat browsers, and the possibility of reusing knowledge with a very high probability. It can be said to be a learning method with a very high input-output ratio; but it also has many shortcomings. Obviously, the first is that the knowledge learned is relatively narrow. Taking the page as an example, the commonly used CSS is just that, so many friends have never seen CSS attributes such as unicode-bidi
; the second is work. In fact, the efficiency is not high. Once you encounter a scenario or demand that you have not been exposed to before, you will not know where to start. Asking people a lot of time is wasted; the third is that technical implementation is often not The optimal solution, for example, is to know whether element A contains element B. Previous work experience has taught us that parentElement
can obtain the parent element, so maybe we will write a method that continuously traverses the parent element to determine whether the element is included. The writer thought he had written a very powerful method, but little did he know that browsers, including lower versions of IE, naturally support the DOM method contains
of whether an element contains it.
Systematic learning is necessary to become a technical expert. All knowledge points are in your mind (or have an impression), and naturally whatever you want to achieve is at your fingertips. However, systematic learning is very boring and time-consuming. Some knowledge may not be used a few times in a lifetime. On average, it seems to be a business with high investment and low output efficiency. People always like comfort and hate useless efforts. Therefore, there are many developers who learn by experience, and then use it for 1 year and 3 years, and then have a mid-life crisis.
"Basic knowledge" is relative to upper-level tools or applications. For example, Vue is very popular recently. For you who have just graduated, and the company does not need you to write Vue, therefore, even if Vue is mentioned in the sky Go, don't study, take the time to learn the basics of JS, the native things.
Although I mentioned that learning needs to be systematic, there are so many JS knowledge points. If you spend a lot of time learning each knowledge point, let alone whether you can understand it, I am afraid that you will not be able to spare so much time. Spend more spare time. Therefore, it is necessary to point out which content is suitable for your current study, otherwise you will be like a headless fly and easily get confused.
Key points for learning JS for non-computer majors:
Very important: First, you must have an overall and perceptual understanding of the JS language;
Master the basic concepts of strings, functions, objects, arrays, literals, etc. in JS, and memorize all built-in methods (including parameters and return values);
Skip all inheritance and prototype related content, please note, skip it, don’t read it! You can live very well without these JS, and your daily work will still be fun. Of course, it doesn’t matter if you can’t help reading the relevant knowledge, because you will find that you can’t understand it;
DOM events and all DOM methods must be mastered firmly;
Learn regular expressions well;
However, remember Memorizing all JS string, function, array-related methods, and all DOM-related methods is a huge task, because it is easy to forget and the methods are also very simple. The so-called good memory is not as good as bad writing. Get rid of the JS completion prompts in the editor, start with small interactions, and try to use native JS to write. As you write, you will definitely remember it. This is the fastest way to learn and grow.
The learning process must be painful and long. Never make comments like "I have finished reading "JavaScript Advanced Programming" and "JavaScript Language Essence", what should I learn next?" Do you think you are Huang Rong? You will remember it after just one look! If you read it over and over again, you will definitely forget it. If you forget to read it again, I also read these two books to learn JS. The book "JavaScript Advanced Programming" has been turned to the page by me, and the book "JavaScript Language Essence" is full of books. I have a lot of notes and if I don’t remember any knowledge points, I can basically get to the exact page number by just flipping through it, because I’ve flipped through it too many times.
The key to success in learning ultimately lies in “persistence”.
In a relatively fair environment, if you want to surpass others, you only need to be able to accomplish things that others cannot. It is difficult for most front-end practitioners with non-computer backgrounds to persist in the systematic learning of JS. It takes a long time and the benefits are slow. However, if you persist, you will surpass these people and you will not catch a large number of them. Page boy, and can truly take charge of the most popular front-end development, completing a class leap in the field of front-end development. If you feel like giving up when studying, think about the previous sentence and you may have extra motivation.
The problem is described as follows:
The girl who is the subject of the question is currently training and learning the front-end, and I saw someone saying not to train the program. Because of my poor foundation and poor self-learning ability, I have to pay attention to this issue; Self-study is not recommended, because there is no systematic study and the foundation is not solid. However, some people say that more people prefer self-study than training.
My feeling is that this world is so complicated, and everyone wants different things. So in fact, the only criterion is a good foundation, right?
Then the question is:
For front-end or other IT positions, what is a solid foundation?My answer:
We can actually understand this question by chewing the words. First, we must understand what "basic" is, and then understand what "solid" is.
The Chinese characters for “foundation” include “earth”, “stone” and “mountain”, which were originally used in building structures. Due to the gravity of the earth, modern buildings are built from bottom to top, and in the end The bottom layer below is used to stabilize the building. It is the "foundation". As we all know, the taller the building, the stronger the foundation must be, otherwise there will be a situation of "watching someone build a building and seeing it collapse". There are many, many things in this world that are built from scratch, just like a building rising from the ground. First there is a foundation, and then things are slowly added to it, and finally Forming a complete thing, and this "foundation", we also call it "foundation", can be regarded as the foundation for the development of things.
Personal skill growth is a very typical process of building something from scratch. For example, playing basketball, basketball rules, dribbling, fixed-point shooting, etc. are very basic things, we can call them As "basics", even the basketball god Michael Jordan grew up based on these foundations; let's take front-end development as an example. Before coming into contact with this thing, everyone obviously knew nothing about it. Later, I hope that person can play some tricks. Come on, this process of making something from nothing must be accompanied by something called "basis". So what is it?
Back to the question itself, there are currently two types of front-end development in the industry, one is more logical, and the other is more visual. No matter which department, the foundation is inseparable from HTML. , CSS and JavaScript, but the most basic things are different in different departments. If it is a logic department, the foundation of the foundation is JavaScript. As for logical thinking ability and abstract ability, it is not the foundation, but talent. The foundation is through hard work. It can be consolidated. If it cannot be consolidated no matter how hard you try, it cannot be called a foundation. If it is a visual system, the foundation of the foundation is HTML. Yes, it is HTML, not CSS, although CSS is used several times more frequently than HTML. There are many ways to do this, but the most basic one is HTML, which comes with its own behaviors and styles, the front-end within the front-end. The same aesthetic ability and concrete ability are not the foundation. They are innate and difficult to develop.
The last job of the girl who asked the question was in recruitment. According to my unreliable empirical guess, the girl should be in the visual department, and the basic order of the front-end should be HTML > CSS > JavaScript. Everyone must not have the misunderstanding that the importance of basics is directly proportional to the study time. In fact, this is not the case. Many people have learned HTML for only a few weeks and feel that they have learned it very well. They can write the word "proficient" on their resumes because the final effect seems to be as expected. I am not saying this to complain about these people. , but what I want to express is that HTML is a very powerful language. It is definitely a language that will be very prosperous for a long time, because it is important and very easy to get started, and with the development, maybe it will be unified in the future.
The focus of this question is actually "solid". Let’s talk about “solidity” first. Take rice as an example. If we fill a bowl full of rice and press it with a spoon, we will feel that the rice is very “solid” and filling. But I don’t think anyone will ever think that. A bowl of porridge is very "solid", right? Why? Although there is rice in the porridge, it is actually 80 to 90% water. Everyone knows that water enters the stomach and disappears after a while...
The learning of basic knowledge is actually It's similar, so "solid" means that it should be full, that there should be no gaps, and that there should be no moisture inside. Assume that basic knowledge, whether HTML, CSS or JavaScript, is regarded as a bowl of rice. Then we spend two weeks to quickly acquire that knowledge, or the grains of rice represented by the knowledge used in daily project development are at most a bowl of porridge. Regarding the amount of rice in the bowl, although you are full when you eat it and you think you know the whole world, in fact all you know is the small handful of rice in the bowl. This is not "real" enough.
Therefore, the so-called "realization" means a detailed understanding of everything from the center to the boundary. For example, to give a very simple example, I asked the intern of our factory a question: "CSS vertical-align
Supports several key attribute values? CSSvertical-align
Doesn’t support negative values? CSS vertical-align
Which attribute is the percentage value calculated against? "CSS vertical-align
attribute must have been used by everyone, middle
must be used the most, and sometimes top
or bottom
, and then too many people will think that vertical-align:top/middle/bottom
is the world of vertical-align
attributes. This is a typical CSS front end If the knowledge is not solid, it is very simple to want to be solid, as the MDN documentation looks like. There are a lot of tags and attributes in HTML, including the behavior of new tag words, some attributes have their own behaviors, and some attributes have their own styles, which affect accessibility. If you want to be "real", you must read the documents one by one. Remember that there are so many attributes in CSS, what are the default values, what are the supported attribute values, and what are the definitions, they are all very simple things that do not require logical thinking, so remember them all. So you will find that these things are actually very superficial. You won’t be able to see them in two weeks. I think many people can’t finish them in two years, or they can’t finish them at all. They can’t calm down and their eyes are too fast. Scan, um, I get it. These things are so simple. In fact, you can't see anything at all. It's like typos in articles you write. Sometimes you can't see them even after checking them a dozen times. To see something different from the simple things you think you know, this actually requires talent, and it all has to do with mentality, concentration, etc.
So, although I have answered this question carefully here, I still have great doubts about how good the results will be in the end.
Finally, let’s answer “tie”. “Soli” means “full”, which can be understood as breadth, while “tie” can be understood as depth. We can look at two pictures to feel this “tie” vividly. "This action:
In other words, another layer of a solid foundation means to "go under the water" and "go deep into the skin." In other words, in addition to memorizing the definitions, grammar, and parameters on the surface, we also need to know more. Think about it, why is it designed this way? Why is there such a performance?
To give a simple example, we have all heard more or less that writing pages must comply with W3C standards and HTML must be semantic. But have you ever thought about why you should pay attention to semantics? The reason behind this is "tie".
If we compare the basic knowledge of the front-end to many people, the front-end foundation will be solid, including: Everyone here, I know what your name is, what your parents are called, where you work, and your zodiac sign. What is it? What are your specialties? I even know why you have this name and why you have such a character.
Did you find that the words "front-end basic knowledge" seem to be very simple, but in fact it is very difficult to do it well. HTML, CSS and JavaScript belong to three different languages. Each language has a lot of basic knowledge. If you want to remember them all and be able to apply them freely in projects, it will definitely take a lot of time to learn and accumulate.
But if you accumulate to a certain level, just like a tall building, you have a very good foundation. In the future, in the front-end field, especially in technology, your future height will be very impressive and continue to rise. And invisibly, he will transform from a front-end user to a front-end creator, become a real senior front-end developer, and become a hot commodity in the industry.
The problem description is as follows:
Sophomore year, I have been learning front-end for more than half a year. I can’t say I am proficient in html, css, js, jq, less, and bootstrap. , but I am also proficient in it and have done a lot of projects. Recently, when I was learning React, I began to feel overwhelmed. Later, when I tried to understand webpack, npm, node, etc., I was completely confused. I couldn't understand the various configuration command lines, as if I was in another world.
How should I continue to learn at this stage? Is it because of my lack of basic knowledge?
My answer:
Today’s young people are just impatient. There is an old saying that goes well, if you don’t know the true face of Mount Lu, you just have to be in this mountain.
If you just look at the surface of the problem and cannot proceed, it must be because of insufficient basic knowledge, mainly basic computer theoretical knowledge. At this time, you can see the advantages of a computer professional background and the fact that the mastery of JS is very weak.
But what I see is that you may be going in the wrong direction, or it may give people the feeling of blind learning.
I think the biggest gain from my university is "self-awareness". I bought a thick psychology book called "Personality Psychology" and read it very carefully. I read every page without missing a page. There were notes and insights on almost every page. This book was a turning point in my life. It made me understand why I am so unique, why my personality is rarely distributed at two opposite ends, why I am more like a girl on the inside, sensitive and delicate, like and When getting along with girls, you like to listen to girls’ songs (it’s normal to have this orientation), what is the proportion of this personality trait, what are the advantages and disadvantages of this personality, etc.
The benefits of "self-awareness" are that you are more confident and mentally stronger. For example, if some mean people say you are a "pervert", you don't have to take it to heart, because you You know what kind of person you are; you know where your shortcomings are, and you can know where to work hard to make yourself better in the future; you know where your own strengths are, and where you can work harder to make yourself better. You can go higher and further, and you will not be blind when learning. Even if it is a road that others have not walked, you will continue to walk. Note that this last point is the key point I want to say. As the saying goes, "people know themselves", people's energy is always limited. Blindly learning, or even directly chewing on the bones that you can't chew at the moment, is actually meaningless. consumption and waste.
In my opinion, learning react has no effect other than making yourself feel good, if your goal is to join a great front-end team. Because in school recruitment, or even social recruitment, foundation is definitely more important. Therefore, I think you need to think carefully about what my major is, what my interests are, and what is my strongest trait. Since you said that you are not capable of react, it is obvious that things like react are not available at the moment. It is suitable for you, but if you further analyze the essence, it may not be suitable for you in this life. The years of college go by very quickly. If you want to get an offer during the school recruitment, you must study the basics. If you want to learn jq, less, bootstrap, don’t learn how to use it, but learn other people’s source code. Why is it so implemented? If If you can't understand or understand, it means that your foundation in HTML, CSS, and JS is still very weak, and you are still a few blocks away from mastering it proficiently. You need to continue to accumulate, and continue to accumulate, and you will be able to do several projects without even using them. Among the competing front-end universities, which one has not done a few projects, but only has a few recruiting places. When will you be able to understand jq, bootstrap and even react source code? Congratulations, you have arrived in another world. Your vision and cognition have been completely transformed. Even some expressions that you have not noticed yourself will be easily felt. There are great technical achievements inside!
So, don’t learn those things that make you confused. Just have a general understanding and lay a solid foundation. See question 3. This is your direction.
Then, for school students, from a probabilistic point of view, the probability of getting hired is higher if they are in-depth in JavaScript than in-depth in CSS. However, there are also teams that recruit people who are very good at CSS but have little experience in JS, such as our China Literature Group, but like this There are not many businesses. Of course, if I want to speak from my heart, I would encourage everyone to pursue their own inner world, not to be influenced by external things, to be themselves and wait for the opportunity. But for most people, they just want to earn a living and make a living for their parents. There is nothing wrong with being more utilitarian. There is nothing wrong with targeting popular front-end developers for positions. Steve Jobs's famous saying "follow your heart" is actually only suitable for those with capital and ability. those people.
The problem is described as follows:
When I was taking a required course, the teacher introduced many of her scientific research results, which felt so high-end. Finally, the teacher asked us to think about what is the meaning of learning computers by ourselves? Is it just for writing web pages?
I personally know how difficult it is to write a good web page. But it feels like the problem it solves seems to be dispensable. Even without the front end, we seem to be able to use many Internet functions. What is the meaning of front-end? It just optimizes the visual effects and makes users happy (I admit this is a very important part, and I want to know if there are any others)
Since the answers to the two questions are essentially similar, therefore, I will answer unanimously.
My answer
From the perspective of a migrant worker, the meaning of the front-end is to support your family.
As a profession itself, the meaning of front-end is actually as you said, human-computer interaction makes users more happy. As for other lofty meanings, there is actually none. The value of front-end engineers is actually to make users more happy when interacting with machines, so that users will like it more and more, and even spend money on it, creating value for the enterprise.
You said that if you want to change the world through front-end code, it will be difficult, unless you create something like jQuery, which will only change the world a little bit.
So don’t overestimate the value and significance of the front-end position. There is an effect called the "endowment effect", which means that "once an individual owns an item, his evaluation of the value of the item is greatly increased compared to before he owned it." As front-end engineers, our evaluation of the front-end position is naturally higher than the real situation.
When I first started working, I had a very strong feeling that I was a front-end person. I pursued perfect code, and whether to develop PK JS should be placed at the bottom or at the top. I was afraid of the http generated by the person in charge of third-party promotion. Too many requests and so on. Of course, the perspective of looking at the problem is completely different now. For example, when we look at Sina Weibo, the front-end experience is actually very poor, and the performance is also very poor. If the Weibo page is hanging while watching Tencent videos, the video will be stuck. Suddenly, it would be fine to close the Weibo page immediately, but if you look at other people's financial reports and stock prices, you will find that the value of the front-end used in the entire product is not as high as we thought.
I suddenly remembered that I attended the D2 front-end technology conference in the early years, because the seniors of Alipay shared a very interesting case, which is the loading time of the very important payment page. I can’t remember the specific time. Roughly speaking, two values are represented, that is, 1 second becomes 500 milliseconds. Then we looked at data such as the user's bounce rate and retention, and found that there was no obvious change. In other words, the loading time that we desperately optimize to improve actually has little value to users.
Therefore, from an enterprise perspective, the front-end is only an important part of the entire product process. If you want to truly change the world, you need to work together upstream and downstream. Of course, the most important thing is the direction of the upper-level leaders. The decision must be correct.
I can mention something else by the way. The salary level of a front-end engineer is actually determined by the value he brings to the company. A front-end worker, no matter how skilled he is, if he just works alone The value he brings to the company is actually limited. Even if the product he makes is world-class in the front-end area, he may encounter obstacles to promotion; but if he can make other front-end colleagues better together, now upstream Designers or downstream developers also become better and generate more value, so their salaries will naturally increase. Therefore, front-end managers usually have relatively high salaries (even if they do not participate in front-line development), because they need to make many front-end staff organized and operate efficiently, which also requires a lot of energy and cost and huge pressure. Another category is Front-end architects are responsible for the infrastructure construction of high-quality class libraries, business supporting tools, etc. to ensure that the entire product line is of high quality, while saving labor and other costs, and will also have relatively high income.
As a professional, when talking about the value of front-end engineers, we should not only focus on technology, or focus on users who actually don’t understand them at all. In fact, we can think more about what they bring to the team and the company. What values and can support it. If you think outside the profession itself, you may have different insights and growth.
By the way, whether your code can ultimately change the world is actually decided by your boss. Even if the code you write is average, but your boss is very powerful and the product is used globally, you have actually changed. world. In the end, you will find that changing the world seems to have nothing to do with whether your skills are good or not. Again, from the perspective of the boss, the meaning of the front-end is actually that.
The problem is described as follows:
Let me explain the problem first: I want to switch to web front-end development, but I don’t know where to start. When I asked others, some said that training is more reliable, while others said that there is no problem with self-study. So I would like to ask my brothers for advice and brainstorm ideas, but please avoid detours.
Situation: I am a Grade 14 graduate from an ordinary second-tier university, majoring in embedded development in electronic information engineering. After graduation, due to some reasons such as "iron rice bowl", "job stability", and "development of state-owned enterprises", my family found a job in a bank here, and I have been working there for a year now. After working for a year, I finally realized that this was not the life I wanted, so I resigned decisively. I learned C language during school. I was also interested in web design and studied a little by myself. However, at that time, I only studied Dreamweaver, Fireworks, Flash, etc., and did not study HTML, CSS, and JavaScript.
So I still want to ask here, if I want to do this, is it more reliable to find a job and study on my own while working, or is it more reliable to find a training institution to study. This is my first time asking a question on Zhihu, asking for some guidance. Thank you very much.
My answer:
From my personal point of view, self-taught is definitely reliable, because I am completely self-taught.
However, my growth is not representative, so it does not necessarily have reference value.
Although I went to a university of science and engineering, I am very interested in design, painting, humanities and other things, but I feel confused and melancholy. In this case, I have already done something I like. For example... browse through FQ, FQ, go fishing in the East Lake behind, or go to the library and borrow all the books on painting (the old library doesn't have many books on this subject), and copy and study, colored pencils, oil pastels, I have enjoyed myself with watercolor.
When I got a computer in my sophomore year, I taught myself Photoshop. During the summer vacation, I practiced PS technology assiduously and became very good at it. I did graphic design, PPT design and so on. In the next semester, I started to teach myself Flash and make some cartoons and so on. Of course, it is also out of interest and for self-entertainment, such as the following flash animation with a strong Shamate style (click to load).
Click to load Flash animation
Later in my junior year, I started playing in clubs and joined the school’s online research team. The mustache brother Yama also came out of here. At that time, he was making cool flash on the web page and writing Write simple AS2.0 scripts, which was popular back then. Later, when there was no need, I started writing to help other friends deal with CSS and HTML work. After reading the code implemented by others all night, I was able to tinker with the page myself. It can be seen that the entry barrier for writing pages is too high. TM is low.
However, the above things are actually hobbies and self-entertainment. They are different from many talented students. They have different visions from the beginning and rush to top-level good companies. Therefore, Growth is relatively professional and on track. For a casual person like me, I spent my summer vacation helping teachers in school as an internship. Now that I think about it, I really want to talk about it.
When I was a senior, I had been playing for 3 years. I watched my classmates going abroad, getting direct jobs, or getting soft offers, but I couldn’t find a reason to go to graduate school. BAT didn’t care about me. I was anxious, and then I realized that the things that make me feel good about playing as an amateur are just "chocolate ice cream" in the eyes of professionals. So, I sold my labor force to start a small entrepreneurial workshop and worked hard to learn and grow (I ate and slept in the company). The boss liked the revision very much, which happened to be enough. I had enough work, so I got up early every day and worked late at night to write pages. I wrote 1,000 pages a year. Therefore, CSS and There is a very simple way to learn HTML, which is to write. Many people have written Taobao homepage, and JD.com homepage seems to think I can do it. Maoxian, please write the entire site completely, write hundreds of pages, and then compare yourself What is the difference between the implementation of the front-end and the other party's implementation? One advantage of the front-end is that it is all plain text, especially CSS and HTML. It cannot be compressed, so just remove spaces and line breaks. If you encounter any doubts, understand them all. The growth rate will be faster than going to a training class. What you hear and see is not as fast as what you practice.
After graduation, everyone went to work happily, so I quit my job in the small workshop, resigned naked, and then went away to study in retreat. It can be seen that I am still a person with great ideas and personality. Even many people who grew up in a greenhouse and feel very good about themselves do not understand that you can study while working. As mentioned in question 5, you know what kind of person you want to be in the future. At that time, I hoped that I could become a master of front-end technology within 3 years. However, when I looked at myself, I could write some pages. JS is a Damn it, the back-end language is a P, and its weaknesses are very obvious. If you want to be high enough in the future, these foundations must be laid solidly. However, if you work and study at the same time, considering that the small workshop used to be from 9 am to 1 am every day, with only half a day off every week, and you have no time to learn knowledge other than work, you will find that your Technology will definitely encounter bottlenecks early, and then become an ordinary technician, running counter to one's future expectations. So I went back and realized that I needed to learn a back-end language and systematically learn JS to lay a solid foundation.
This retreat took me a total of 9 months. I left home alone and went directly to a province I had never been to to retreat. In 9 months, I spent all the little money I earned from my previous small workshop. , what you gain is that you can use php+sql to make a dynamic website by yourself, which is basically a full stack, and you have consolidated the basics of JS. The way to learn is to read books, "PHP and MySQL Programming""Basic Tutorial on PHP 6 and MySQL 5", "JavaScript Advanced Programming" and "JavaScript Language Essence", read them repeatedly, understand and memorize them repeatedly, I didn’t visit any page, and I ran through all the examples myself. After reading it, I arranged a project for myself, and built my own personal website from 0 to 1. I only wrote the code by hand. It was regarded as an exam for my own retreat. The results It took me 3 months from design to development and launch of the website, because it includes a complete account system, as well as many internal and external channels.
Although I have only told half of my self-study story, it is enough to answer this question.
Actually, the girl’s experience was somewhat similar to mine. She had played with some web-related things as a hobby, and now she hopes to pick up and enter this industry. I transferred from my hobby to my career. This included a 9-month small workshop + a 9-month retreat, a total of 18 months, which is one and a half years of intensive front-end knowledge accumulation. In addition, I also have a computer professional background. So, for your question, especially when I see the words "no way to start" and "avoid taking detours", I think whether you study while working or attend a training class, the final result will be "Problem 1". If you want to become Career is not that simple. I think you need the courage to go all out and cut off the road ahead. There will be constant setbacks on the road ahead. If you don't have enough psychological expectations, it may end up being just words. What is "avoid taking detours"? With this kind of thinking, it is easy to take detours, identify the target, and rush forward without hesitation. Even if there are thorns or deep ditches on the road, don't retreat. At this time, the absolutely straight road is the real shortcut. Therefore, whether it is self-study or training, the form is not important at all. What is important is how brave your heart is.
The problem is described as follows:
I am a senior in college and I am preparing for school recruitment ~ but I am a computer major, and I especially like design, UI design Visual design, graphic design, etc. I am proficient in PS. I have designed for friends and also designed this web page. Since I have spent most of my time learning front-end, I am proficient in PS when designing software. Of course I don’t hate programming. I know the basics of front-end development and have done a lot of website projects. But when I think about the many languages I need to learn if I want to do front-end development well in the future, I get a headache. But when I think about design, it doesn’t matter. I'm not worried about what I should study in the future. I don't know which of the two careers I should choose, web design or front-end development.
I want to choose design, but I am not a design major. If I don’t study design, most companies will not care about me. . ? But there are too many things to learn on the front end. . And is the front-end programmer? . .
My answer
See "Question 6". From my experience, you have the basic potential of a truly excellent front-end in the traditional sense. I advise you not to do web design. Don’t mistake interest and impulse as talent. If non-design majors want to achieve something in the design field, unless they are individual geniuses, it is basically impossible. Design theory and design literacy are very difficult. Supplementary, and these determine the future height. At that time, I saw the work of the top classmate in my major and realized that I would not be able to catch up in 20 years, so I gave up my plan to do design. However, the experience of engaging in design as an amateur will be of great benefit to you in the front-end, especially the experience-oriented front-end. I didn't realize my advantages in this area before I started working. Later, when I went to Tencent, I discovered that my delicate personality and my previous experience in design and animation were my biggest advantages compared with other front-end developers. , which is also the reason why more of my learning centers later focused on interactive experience, so that I can give full play to my own advantages and make myself more irreplaceable.
So, you can choose the position of front-end design. Damn it, let me tell you, it is super scarce. You need to be able to write code smoothly and be sensitive to design. Basically, it is those with a computer background but interested in design. Man, you are like this. Oops, the question was from 2 years ago. I don’t know what kind of work you are doing now. It would be a pity if I really became a designer. The real front-end should be responsible for human-computer interaction, and is closer to interaction and experience. This type of position requires taking into account both code and design. It is a cross-cutting position, and it is not the same as a programmer in the traditional sense. Usually we don’t get along with each other, but we get closer to the designers, haha.
The problem is described as follows:
What are the key points that need to be investigated? Is there any way to effectively judge its level?
My answer: Usually I do not participate in interviews, but if there is an interview, I usually spend half an hour to learn as much as possible about all aspects of the candidate.
I don’t like to prepare some uninspiring questions to ask the interviewer, but I always try my best to let the interviewer express what he thinks is the most powerful, which can be JS, CSS or HTML. Yes, SVG and Canvas are also available. The ultimate purpose of the interview is not a test-taking test, but an accurate assessment of the candidate's ability and other uncertainties. If you come up with a few fixed topics, those interviewing parties may have just studied this topic, and there are also people with good skills whose technology stack is not at your level, and the quality of recruitment will be greatly reduced.
So, my strategy is to show your most powerful side, and then let me see how powerful your most powerful side is, and then express some interesting information in your words based on it. Ask in-depth questions, why is this happening? Are there any other strategies? What were you thinking at the time? What was the final result? For questions like this, you can look at the way of thinking about the problem and the depth of the technology.
Never use your own strengths to face others. Instead, discover the strengths of the other person and see if you can bring enough help to the team.
In addition to technology, candidates’ communication skills and characteristics will also be examined. For example, this person is very good at answering questions and has very strong skills. Sorry, you will most likely be killed. The boss prefers simple and pure friends because it is good for the entire team, because people who are very good at answering questions are very good. If there are too many, it will be difficult to lead the team.
In short, it is to outline the candidate from multiple dimensions, and then see if it is the puzzle piece that the team currently needs.
For interviewers, I have a suggestion here, try to show the most authentic version of yourself, because you have no idea what kind of people the application team needs. For example, you originally hoped to recruit a neurosurgery, but you deliberately tried to be serious. , can only be destined to have no separation, wouldn't it be a pity for each other.
The problem description is as follows:
Isn’t there anyone who really likes the front-end? QAQ A freshman girl, majoring in information security, has just determined her future direction, hug Big front-end, and hope to introduce myself as a front-end engineer in a few years, but it may be a little bumpy when I determine my front-end direction. I hope I can get the experience and guidance of my predecessors from Zhihu. It was very bumpy when I decided on the direction of the front-end. I thought a lot and gave up a lot. But I am very curious about why the seniors in the front-end field choose front-end engineers. What are your interests?
My answer:
Honestly speaking, the reason why I chose the front-end position is because I can’t do other things. In fact, I can dance quite well in the national standard. My height In terms of body strength and flexibility, I had the potential to be a successful national standard master, but at that time my personality was relatively introverted and I had a slight social fear. For a dance that requires a close partner, I felt that it was not an easy path. I am actually very interested in design, but I always feel that I am not strong enough to use it. I have no skills, but the designed things, ahem, I think it is humiliating to use them as toilet paper. I will continue to do it even if I bite the bullet in the future. , he is probably just an ordinary design handyman. My major is bioinformation technology. If you don’t get a PhD in biology, you will basically have to work hard. It’s pitiful. I want to get a doctorate and have to take the postgraduate entrance examination, but I can’t find a reason to take the postgraduate entrance examination. So, this is the path of biology. We can only find ways to save the country through curves in the future. Information is a computer. I started computer programming relatively late when I was in college. I had never been to an Internet cafe before going to college. To use a computer keyboard in college, you need to stare at each letter and then type it. How can I win the prize with VB in junior high school? Compared with my classmates, although I also learned some theoretical knowledge, at that time I was confused about what the program was, let alone the actual operation.
Later I found out that the front-end seemed to be easy to play. You need to know some PS and write some code. Just write code that is process-oriented, and what you see is what you get, so interest is easily aroused. Then I started to choose to do front-end.
When you are not satisfied with other things, and suddenly find that you are very good at doing something, this thing will naturally become your interest, and this interest in turn will make you persist. Keep doing this and form a virtuous cycle, which will eventually become your lifelong career.
My answer:
I actually don’t care about the prospects of Web front-end development. Just like the career I chose back then, I never thought about what it would be like in the future. how. So thirty years in Hedong and thirty years in Hexi, if there is a job opportunity in front of you, Lenovo and Tencent ten years ago and Lenovo and Tencent now, how would you choose?
Similarly, between .net development and web art ten years ago and .net development and front-end development now, how would you choose?
The future is actually unpredictable. Before the financial crisis, everyone was completely unaware that there would be a financial crisis.
A person’s career lasts 40 years, and the technology industry is developing so fast. Within a few years of your career, Web front-end development will definitely decline, and maybe it will be beeping in 10 years. . Is it because of this that you don’t want to be in this profession? What if front-ends thrive for another 30 years because of their simplicity and broad applicability?
What do I mean by saying so much? If we can put our careers on the so-called prospects like gambling, it is actually a very dangerous thing. Just like leaves that follow the waves, it is difficult to control the direction of our progress, and there is a danger of capsizing at any time. What I really care about is, what do you think in your heart? What are your interests? Who do you want to be? What is your ideal? What are your values?
As Steve Jobs said: "Follow your heart!" - Follow your heart!
In addition to the profession itself, we should also always pay attention to improving our competitiveness in soft power, communication and expression, dealing with people, teamwork, project promotion, etc. Even if the industry is in recession in the future, don’t worry about it. Gone by the wind.
Of course, if you only answer the literal question, I think front-end development can still continue. If you have to add the premise of Web, it will be difficult to say. The secondary shell of the browser will be used on a large scale in the next generation. When terminal devices appear, they may disappear, and naturally there will be no such thing as the Web.
Why am I so sure about the prospects of front-end development? Because the simpler something is and the easier it is to popularize, the more likely it is to prosper and last for a long time. In addition to the Web, front-end development can also appear on desktop software. Various IoT terminals and even operating systems are developed for front-end development because it is simple enough. Simple things have more vitality. This is a philosophy proven by hundreds of millions of years of biological evolution.
HTML and CSS are great inventions, simple and practical; JavaScript is actually also very great. Don’t listen to those programmers who are blindly complaining about some shortcomings of JavaScript. For those programmers who are accustomed to C and C++, they will naturally I think JavaScript's routines are strange, and I also criticize performance aspects.
But from the perspective of designers and ordinary developers, if they are not polluted by things like C and C++, they will feel that JavaScript is like a smart elf, friendly, free and unrestrained. The routines are more in line with realistic perceptions and are very suitable for scenarios such as human-computer interaction. Of course, if you want to use JavaScript to implement the functions of traditional back-end or desktop software, then naturally the current routines are insufficient. This is why ES6 began to appear, to make traditional programmers comfortable and happy.
When we judge the general direction and trend of a thing, it is actually a very good thing to apply ancient philosophical ideas. There must be a reason why these ideas can be spread for thousands of years. If we only focus on the information on the surface at the moment to make judgments, it can easily lead to the wrong direction. It's like you enter a misty forest. If you only judge the direction based on the current trees and roads, you can easily get lost and go in the wrong direction. But if you use the Big Dipper in the sky as a guide, you will never go wrong. road.
If the original intention of this question is to ask "How is the money scene for Web front-end development?", I just say that thirty-six lines, the best in any line, any industry, even if you are a cleaner, you need to be top-notch, " "Qian Jing" don't worry at all.
This question seems to have been raised in 2014. Looking at it now, the prospect is touching, touching without quotation marks, it is really touching. The most popular training position in 2016 is also the most competitive position.
If you encounter any problems during the learning process or want to obtain learning resources, you are welcome to join the learning exchange group
343599877, let’s learn front-end together!
Life is a long road, find the right goal, the right direction, persevere, and you will eventually achieve something
The above is the detailed content of Deep understanding of today's learning front-end issues. For more information, please follow other related articles on the PHP Chinese website!