Hello everyone, I'm Fan Wenjie , a front-end practitioner. I just finished writing my first booklet " Webpack Core Principles and Practical Applications ". This is a big career breakthrough for me, so I can't help but want to do it. A summary, sharing my growth experience in the past nine years of work, as well as my thinking and growth suggestions for the front-end career, hoping to help friends who are still on the road.
🦖 origin
My career starting point is not high. I was born in a seaside town on the 6th line, graduated from an unknown second college, and had no background and no connections. Fortunately, the job market was relatively loose when I graduated (13 years). From the beginning, I consciously participated in various computer labs in the school, and accumulated some practical project experience in advance, so the job search was smooth at the beginning.
Caption: My hometown, Honghai Bay, Shanwei, Guangdong
🙇 A startup company
2013: Overcame a number of technical points, transformed from an ignorant student to a migrant worker who is competent for general work
My first job was in an ultra-mini enterprise with no more than 10 employees. There were only two people at the front end. Naturally, there were vacancies in terms of specifications and technical precipitation, and no one took me, but this is the first time I am working I can get a fixed income every month, and I have a stable life and work rhythm. I don’t think there is anything wrong with the young people in the small town. The overall mentality is relatively stable. In addition to implementing basic functions, see if there are better tools and solutions.
At that time, the concept of front-end and back-end separation was just beginning to be discussed in China. The mainstream technology stack was still jQuery, and the engineering level was still very low. After reading a lot of information, I gradually migrated the company's technology stack from jQuery + JSP to jQuery + Grunt + Require .js + Less + ECharts + Bootstrap + various technologies that were dazzling at the time, I still clearly remember that these tools were gradually introduced into the project at that time, and the joy and excitement at the moment of landing were smoothly adjusted.
For me, this stage is not a deep technical accumulation, but at least it gave me a relatively free and relaxed environment, which allowed me to boldly practice various technical ideas, and also allowed me to develop the ability to encounter problems. The habit of taking the initiative to think and introduce new ways and methods to solve old problems can be said to be constantly conquering individual technical points, gradually transforming from an ignorant student to a capable student. Even though many of the technical judgments I made at that time were not necessarily accurate, but for me personally, I was constantly trying, making breakthroughs, and gaining a lot.
🤯 Another startup
2015: From entry-level engineer to mid-level
After several rounds, I went to another start-up company (50 people) when I graduated two years ago (15 years). At that time, it was another server-side classmate who had been working together for a long time and was more senior. I became a front-end lead, although the so-called front-end team was relatively small when I first came in - plus I was alone 🙂.
After entering, a lot of time was spent on recruitment, team building, newcomer training, sorting out development specifications, sorting out cooperation processes and other transactional work, leaving less time for myself to write code (in fact, I have not given up writing code so far). It is to catch the ducks on the shelves😖. The management methods and the cognition of things, industries and technologies are very immature. I have done some absurd things. I am deeply impressed that because of the unsatisfactory recruitment progress at that time, I wrote an article " Front-end, why do I I don't want you " complained 😭, the content of the article is real but very out of tune, at that time I was sprayed so that I closed my account and didn't dare to read the comments again.
Archaeology: " Front-end, why don't you ( https://www.cnblogs.com/vans/p/4550356.html )", light spray, forgive my immaturity at the time.
When I first entered, several main applications of the company were written by a group of students based on jQuery + PHP. The amount of code was large and very confusing, the performance was poor, there were many bugs, and the documentation was extremely lacking. It hit almost everything that a software project could think of. Bad features, basically I can't continue to write 🤬.
So although the manpower is limited, the first thing I need to do is to redesign a set of front-end architecture and development workflow that is more robust, maintainable, iterative, and more efficient in collaboration, which unexpectedly precipitated some things that looked cool at the time Technology stack, including: RequireJS, Sass, Glup, Browserify, and Angular\@1.x. These technical points were relatively new at the time, and there were very few Chinese materials, so after I finished my studies, I had to spend a lot of time on team training, sorting out practical cases, and analyzing technical principles.
Secondly, in the process of forming a team, I gradually realized that conventions are not as good as specifications, specifications are not as good as tools, so in addition to regular training, I also made some scaffolding tools and plug-ins around Angular, formulated ESLint development rules, introduced automated testing tools, etc. Attempt to hand over the tedious things to the "tools" as much as possible.
The final result was relatively lucky. After stumbling and stumbling, a team of about ten people was finally built, and the work was completed within the expected time. These technical designs, rules and regulations, and tools that took a lot of effort can be successfully implemented, even in the It was used after I left until the company declared bankruptcy.
At this stage, I began to feel a little enlightened , and let me step out of the familiar field to actively contact larger and broader technical aspects; initially learn to review the value of technology applied to technology itself from the perspective of managers; pay attention to teamwork, norms, Tools, efficiency, and some MVVM , OOP/FP, engineering and other thinking have also been initially acquired.
👾 Tencent
2016: Nothingness
After 16 years, I was fortunate enough to enter the first real big factory in my career: Tencent, this process was not smooth, there were almost 10 different positions before and after, and finally I was reluctantly selected ( 🥴). Tencent was my biggest career goal at that time. At that time, I thought it was a relatively high market recognition of my own abilities. If I can achieve this goal, my career should be much smoother in the future.
Tencent is the most comfortable company I have ever been in. The work pressure is not too high, and the sense of happiness is very strong, but slowly it has become a role of screwing a screw, and it has become lazy. There are many factors, but the main reason is me. My personality is not suitable for this kind of steady work rhythm, and I unknowingly get used to applying various ready-made and mature methods in the team to solve business problems. The efficiency is high, but there is not much room for technical growth and thinking for individuals. room.
Therefore, at this stage, I fell into a situation where the same skills were used repeatedly at work, and the technical growth was basically 0. Except for the basic computer knowledge that I picked up and learned in my spare time, there was basically no input. This situation made me feel very anxious. , Naturally, he couldn't stay for long, and he chose to evacuate in just 2 years.
BOP: It's not that Tencent is bad, it's just that it wasn't suitable for me at the time.
🕵️ Entering the startup company again
2018: From a single-sided technology user to a three-dimensional system designer
After coming out of Tencent, the choices are quite wide, and after some comparisons, I finally went to a small and beautiful artificial intelligence startup company. This company has less than 100 people in total, and only 4 full-time front-ends, but it is an artificial intelligence company invested by Softbank in China. It has won numerous awards at home and abroad. The founders, algorithm leaders, and technical leaders have strong backgrounds. In my opinion, the prospect is infinite and there is enough room to play, which perfectly fits all my imagination of "small but beautiful".
This company did meet most of my expectations, and the Leader gave me enough trust and authorization to let me go:
- Just 3 months after I entered, I refactored all the business systems;
- Many new tools are introduced on the basis of the original technology stack (Vue), redefining specifications, best practices, and engineering methodology;
- Optimize the core system architecture, and summarize a series of simpler development models (Dragon Slaying Warriors eventually become dragons?), so that new students can participate in development at low cost and high efficiency;
- Identifying the pain points and difficulties of business classmates, I have fiddled with many efficiency improvement tools in my spare time, including: JSON data visualization, JSON data streaming framework, MXGraph-based flowchart editor, etc.;
- and many more.
If I said that I was accumulating in the front, this stage really made me make a lot of thin hair , and fortunately I never made any mistakes. Slowly, the company even let me bring the server, data, algorithms, etc. Students with different functions such as products do more things together, step out of the front-end functional role, examine business needs, design application systems, organize development rhythms, etc. from a higher and more comprehensive perspective, and evolve from a single-sided technology user to a more three-dimensional and more mature. The system designer can link up students with different functions to complete a slightly complex business direction.
🥷 bytes
In 2020, the future can be expected
Then, I came to the company I am currently working for - ByteDance. The interview process was not very smooth. There were four rounds of technical and one HR round. All the way, I was lucky enough to pass the test. After I came in, the overall feeling was quite in line with expectations:
1) Cultural freedom, not paying attention to title, most of the R&D positions I have come into contact with have no so-called political considerations, and basically do not look at background or ability;
2) As long as you are willing, there are a bunch of technologies or process optimizations, refactorings, and even creations worth doing, and no one will stop you!
3) If you can explain the value of things clearly, even if you are just a front-line classmate, you can leverage a lot of resources to help you do this thing;
4) There are also many opportunities to contact the community in the company. After I learned about these channels, I slowly started writing blogs, writing brochures, going to youth training camps as a lecturer, etc.;
5) There are too many people with very strong technical skills in the company, countless, I even met an intern who made me feel ashamed, intern (bn)! ! ! !
6) and so on.
I have done a lot of interesting things here. Thanks to the care of my classmates, I have made progress in all aspects of technology, management, soft quality, and industry awareness. And the many cultural views of Byte have gradually affected my spare time, so I started to do some things that I always wanted to do but didn't do well in my spare time, such as the recently completed Webpack5 core principle and application practice booklet:
Booklet address: https://juejin.cn/book/7115598540721618944
Although this is not difficult for many big guys, it is already a very big career milestone for me. I have debugged almost all the functions of Webpack and read all the codes. It took me half a year. , I have repeated polishing with the editor for many times, and I have saved such a book. I am quite confident in the quality of the content of this book, and I hope it can help students who need it.
In the future, I will continue to do more things in my spare time, including writing articles, doing open source, eating seafood, and occasionally helping some destined classmates with career counseling, career planning, etc., hoping to see a bigger world .
☄️ Summary
Looking back on the past few years, from the very beginning of an unknown small start-up company, now it has entered the forefront of ByteDance and can output some community works. Although it is nothing to look at in the context of the industry, it is not a big deal for a small company like me. It is already very good for the young people in the town. Although luck is mostly involved, there are also some artificial and deliberate efforts in it:
- At first, I was ignorant and ignorant, and I seized an opportunity to work hard to learn a specific skill to meet - or even exceed the work needs;
- From point to point, dig deep into a promising technical system, transform it into technical design and apply it to the business, and precipitate it into a reusable experience to help others grow;
- Accumulate and use your own skills and experience to create technical solutions and tools suitable for business scenarios and team backgrounds, jumping out of roles and functions to help business achieve results;
- Expand outward and seek more opportunities for success in the context of the industry.
Although a bit of an afterthought, this is actually a career development path suitable for most ordinary people: Competence => Diligence => Creation => Influence . In the context of this year's cold winter, I think we need to calm down and think about how to take the next step well in addition to anxiety, so that we can enter the occupational safety zone as soon as possible. I hope this path can help you and encourage each other!
🦅 Some shallow opinions
In this way, I have worked for almost ten years, and I have worked in large, medium and small companies. I am a few years older than many of my classmates. I would like to share my views, let’s draw some ideas.
Q: The front ceiling is very low? 🤔
Many people think that there are too many ceilings in the front end. I do not agree with this view. Take me as an example. Although I have worked for 10 years, there are still many things that I don’t understand. where.
Secondly, although there are relatively few high-concurrency computing scenarios on the server side in the front-end field, there are also many complex things that can be done, such as: engineering, editor, visualization, IDE, etc. Each of these directions will be dismantled. There are many complex technical points, all of which are worth investing in and learning for a long time, and can also bring you a long-term career development space.
Therefore, those who have been advocating "the front-end ceiling is very low" may be either geniuses or just at the peak of ignorance .
Q: What should I do if I encounter career confusion and feel that my potential is low and growth is poor? 🤔
In the past year, I have been in contact with many classmates of different ages by various coincidences. I found that most people do not have a clear and specific career growth plan. They have not figured out what they should do now and where they should go in the future. , I was more confused and more anxious as a whole.
In the final analysis, I don’t think these students don’t want to, but they really can’t or won’t. Some of them are too busy with work, consuming most of their energy, and have no time to think ; make appropriate judgments and choices; there are many serious lack of self-confidence , excessive self-defeating and hesitating, and so on.
What to say, there is no standard answer to this question, and it is worth writing another long article, so here I just want to share a simple thinking pattern:
1) Set a specific goal with appropriate time granularity (refer to the Star principle), such as reaching rank xx within 3 years;
2) Putting it back, what abilities (not skills) do you need to have in order to achieve this goal, and what results did you make? Including technical, soft quality, management, draw a mind map;
3) Going backwards, set a number of milestones with smaller time granularity (bimonthly) based on these capabilities and achievements, and regularly review and rectify deviations.
Every step is not easy, especially, how to exercise ability? There are two ideas. One is to find a job that completely matches your ability level and growth goals, which requires the right time and place, which is not easy; the other is to actively learn, actively seek opportunities, and actively create scenarios outside of daily business work. , take the initiative to do something that others do not ask you to do, but you feel right.
Q: What do I do now to get the most benefit? 🤔
To be honest, I don't know. . . But there is a more general idea: build your own core competitiveness ! This sentence was given to me by the interviewer when I was rejected by WeChat in an interview a few years ago. At that time, I had a very strong feeling of empowerment. Only after that did I have the patience to do some long-term things.
In fact, many students, especially those who have just graduated, feel that the technology stack is more complete, the ability model is more three-dimensional, and there will be more market, so they will learn everything, rain and dew. But the fact is just the opposite. The best team's portraits of talents are basically depth first, and breadth will be considered only when there is enough depth. This is why interviews are often asked about the realization principle.
So, if you really don’t know what direction you should work hard in, and you really can’t hold back the so-called career plan, you can consider finding the technical point you are best at first, and then spend enough time to study it solidly and thoroughly.
In this regard, a previous article by a classmate has summarized it in more detail: https://juejin.cn/post/7139158428785737758 .
Blabla\~\~, there are too many, so I won't write any more 🤐🤐🤐, and students who are interested in continuing to discuss with me, or students who are in a period of career confusion can also add me on WeChat to chat.
🦀 Growth advice
Finally, I would like to share some suggestions that I personally think are more useful:
1) 🦑 Maintain professional sensitivity, don't let go of the big and small problems you encounter, continue to toss and iterate, and be a person with technical pursuits;
2) 🐠 Do the right thing - not the hard thing, nor the easy thing, but the right thing! ! !
3) 🦈 When it is broken, it is broken. If the work really cannot bring you growth, or causes you too much internal friction, make a decision as soon as possible;
4) 🦞 Depth is far more important than breadth. You should give priority to developing your core competitiveness , rather than piling up on anything new you see;
5) 🦐 Go out, take the initiative to understand the industry, talk to the old rivers and lakes more, understand what level of technical level people need to achieve at what stage, what state the individual achieves will have stronger occupational safety, etc.;
6) 🐙 People stay open beforehand and make more friends;
7) 🐡 Persistence may not always achieve the expected goal, but if you have no other better choice, then calm down and do one thing first;
8) 🐟 The best way to learn is to learn by yourself, but it’s best to have someone occasionally call out a sentence or two;
9) 🫕 Pay attention to your body, keep exercising 💪, stay optimistic 🥳, and say from time to time: Happy New Year 🧨🧨🧨\~
10) No, mainly because I can't find a suitable emoji.
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。