Level “for reference only”

You probably found this article by searching.

When I started out, I was the only one in a small team. I have no reference frame, so I don’t know what level I am or everyone else is, let alone what the job market requires of one-year work experience. That kind of feeling, just like senior three, the whole class only oneself. I got XXX points in the mock exam, but I don’t know what school I can go to.

To put it bluntly, he has no self-awareness of how much he eats. Without self-knowledge, easy to arrogant, but also easy to inferiority. I often feel melancholy about this.

Of course, there is no standard answer to what the front end of a year’s experience should be. But any reference is better than no reference.

I’ve searched online for reference articles, but I can’t find a full, statistical summary of the year’s front end. A year ago the end of the personal summary or can find a lot of. So also want to contribute their part of the strength, write such a reference for the article.

I have been in the field for more than a year now. The technical level description in this paper is restored according to the preliminary draft several months ago, and the level description is slightly different, please forgive me.

A screwman on his own

One year is enough time to become a qualified screwworker, although I started out relatively inexperienced.

Start a new project from scratch when you join. One year, led this small project of 20,000 lines. Now if you open a new complex page, you can generally know how to do it and what the difficulties are. The overall pit step is not enough, some places still have a kind of step down do not know how deep the feeling.

The following from coding ability, engineering ability, management ability three aspects of the review of their growth in a year.

Coding capacity has been greatly improved. Coding power is the power of a programming language. In the case of a screwworker, the ability to turn a screw. Although still dare not say now master JS, but somehow also be skilled. I look back at the code I wrote a year ago and feel like I’m slamming the keyboard.

Small increase in engineering capacity. Engineering capability can be simply understood as the ability to achieve the expected target within limited resources and time. The screwman’s mind is on how to fasten the panel to the outside of the box. Generally can be twisted cross screws; Do not want users to open with triangular screws; For the time of the special temporary panel, and even adhesive tape. Proper technology selection is part of engineering capability. How to divide the components reasonably, how to make the components high cohesion, low coupling, is also a problem to consider. Oh, and a year ago I didn’t even know what high cohesion and low coupling were.

Management capacity has not grown much. In the face of a batch of workpieces, screwworkers and several helpers, how to organize everyone to complete the work together, track progress and control risks every day, is management ability. In this year, I failed to improve my management ability. On the one hand, I was the only one leading the team in the first half of the year, and there was no helper to speak of. On the other hand, I failed to keep up with my coding and engineering abilities. Uncertainty about how long a piece needs to be processed makes it harder to estimate the processing time of a batch.

Share an important lesson. If you are not good enough to manage risk, learn to report it in a timely manner. One thing new people don’t want to do is not sure if they can handle it, but they didn’t report up in time.

The technical level is about this

I can handle everything in my job description. Thankfully we didn’t have the need to change the app theme based on the color of the case or anything like that.

Js ability. JavaScript is really easy to learn but hard to master. At present, THE JS level is enough to cope with the work, but the underlying principle is not deep enough. I particularly like functional programming with arrow functions. Functional programming is one of the joys of programming.

Initial stage learns JS, encounter what to learn what, solved current obstructive problem to say again. In my middle years, I used the “carpet” method, which worked very well. At that time, the project to deal with the array more, I in-depth study of the array in JS related methods. I spent a couple of days hammering through all the array methods on W3. Later development, when it comes to complex data structure transformation, can write out more smoothly, this feeling is very good.

If the native array method is not familiar, it is not recommended to use the LoDash library directly in the first place. Otherwise, learning JS feels like memorizing a tripartite library interface, which feels terrible. Using LoDash once you’re familiar with the native method gives you a sense of how it encapsulates. It feels completely different.

Drawing ability. Canvas, SVG, D3, Echarts, Threejs have all been tried. I’m quite interested in computer graphics. I also wish to study computer graphics in depth. However, the project did not have high requirements for drawing, and I did not spare time to study deeply, which was a pity in the first year.

The CSS. There’s a big difference between writing a demo and working on a project. When I played demo, the design was fashionable and generous, the space was sufficient, and the picture was simple, elegant and beautiful. I can’t draw the layout, and I can change the design. Real projects need to work out a stable layout in the complex elements, but can not change the plan. Add functions here, buttons here, pop a window here, float a window here. After being abused thousands of times, CSS skills are now up.

React Technology stack. Although it said “know React” in the interview, I didn’t really feel like I knew React until a year later. In terms of data state, fortunately or unfortunately, I’ve used native state, Hook + Context, MOBx, redux all of them. The project now has all functional Component components that use native Hook + Context to manage state.

When using React, the most interesting bug I encountered was that setTimeout in hook could not get the latest data. At that time, hook feature was just released. Even if Google Google searched in English, it could not find a suitable solution, so we had to use the method of global variables to temporarily avoid. Later, when we studied JS in depth, we found that this was because JS used lexical scope, not dynamic scope. UseRef is the logical solution to this problem.

In order to make a more qualified front-end, learn Nodejs, Linux, Python, Java, database. Learn Nodejs in order to write mockServer yourself. Learn Linux in order to deploy your own code debugging. I learned Python to deal with algorithmic colleagues. I wrote about 100 lines of very simple Python as a relay layer and used Nodejs to pull up Python processes for simple communication. Learning Java is to better deal with the background. The purpose of the database is to populate the simulation data you want to debug the front end. These skills are very rudimentary. Understand the upstream and downstream of the work, try not to be blocked by the other side of their own development, in order to concentrate on the front end.

As for the mobile terminal, small programs and other popular technologies, because the current work is not involved, there is no force to in-depth understanding.

A big head (classmate) of an Internet company once joked to me that he really envied me as a newcomer who had worked in programming for less than three years, because he could purely enjoy the fun of coding and skill progress. Now his main value at the company is not in writing code, and his technical progress is slower. Being envied by rich people, I really don’t know what to say.

The tail

Not pigeon case, I will write in the future “two years”, “three years” article, splicing up the reference significance is greater.

Thank you for seeing it to the end. If you’re interested in my “reference point,” here are some of my previous posts:

What is the experience of naked resignation at 28

It took me 11 months to change careers

2019 summary, a year before the industry change, I add, delete, change and check