The introduction

Hello everyone, xiaobian after a little front-end project experience, feel good, feel Ctrl + C/Ctrl + V method can play all over the world, so, chance coincidence, sprint a few bytes of interview. Having experienced the process of byte written test, I have a new understanding of front-end development. Here is a brief description of my feelings.

experience

The author uses online video interview, direct video call online to do the problem. First, introduce yourself and then do the questions. There will be an operation interface between you and the interviewer. The interviewer will send you the questions on the spot. There are about 3 questions in the pen test, which may be increased or decreased according to the situation.

Xiaobian did three problems

  1. The first basic question, inspected the prototype chain method call output results, the basic concept around me dizzy, error;
  2. The second question algorithm, under the guidance of the interviewer, fixed some low-level errors, debugging done;
  3. The third algorithm, in the case of their own write about logic, do not know where made a low-level error, not debugging success;

I have to praise the interviewer of byte, very kind development brother, although xiaobian is very dish, but let xiaobian feel very comfortable communication, can knock code and communication god, I admire.

thinking

  1. First of all, the C/V method directly pass, because it is to online direct hand typing code, there is no placeCtrl+CSince it’s an online written test, you can search for answers, but the interviewer is staring at you.
  2. But also not completely hand knock, byte online interview with the niuke.com online do, or grammar tips, so you just remember the basic JS grammar, can also write out, the problem is not big. But if you know what apis are out there, not if you just search for the answer to a question;
  3. Their own field hand knock code, or not skilled, because usually can copy to use the code, why to hand knock? That’s right, you have to type by hand, so get in the habit of typing code by hand later, a) to memorize the code and b) to speed up your typing
  4. And finally, the algorithm, the algorithm, the framework is not important, but the underlying logic, the deep logic, is the most important, right

conclusion

Before the interview, I said in the email that one should first prepare an understanding of system design, which I can explain, but the interviewer didn’t ask. Here I make up the summary of the content to share out.

The questions are as follows:

How to implement a system design from one requirement, how to measure the quality of two different designs, how to choose a more appropriate design under various constraints (personnel, time, resources, etc.), and improve the scalability of the design, etc.

Small make up to imagine bragging scenes:

  • From a requirement implementation to a system design,

    1. Firstly, conduct demand analysis, sort out function points and general product solutions according to specific business requirements, dig out hidden requirements, and timely adjust the parts that are difficult to achieve
    2. Do prototype design according to the scheme
    3. According to the prototype design to determine the architecture and technology stack, interface data structure, database table structure, back-end data structure, module planning, etc
    4. After UI design, front-end side: adjust interface data structure, set front-end DOM rendering data structure, develop file directory, module division, etc
    5. Develop, test, iterate, optimize
  • How do you measure the quality of two different designs from two perspectives

    1. First, from the developer’s point of view, whether the design of modules and code structure is convenient for development, easy to maintain and expand, how about performance, and whether the code specification is reasonable
    2. Second, from the user’s point of view, the system interface is beautiful, the operation is smooth and simple, and the opening speed is fast
  • How to choose a more appropriate design within various constraints (people, time, resources, etc.)

    1. For people, choose a technology stack where developers are well-stocked, such as Vue/React if market research shows that Angular developers are hard to recruit
    2. In terms of time, do MVP when time is tight. Do the most core and important functions first, postpone unnecessary functions, and then iterate on optimization
    3. In terms of resources, when resources are insufficient, the most useful functions can be realized by existing resources should be considered, which is also the idea of function simplification. Then, through these functions already realized, we can obtain or apply for more resources
  • Improve the scalability of the design

    1. The structure of the file directory is reasonable, the category is clear, if you add related functions, you can see at a glance where to add the appropriate

    2. Data structure design as far as possible when you think of the future may also increase which parameters, leave a good cut, for example, if you set a variable in state management, you can set a parent variable first, then the current use of variables in the child, in this case, if later need to add a similar to the variable data, you can add in a variable, So the overall data structure won’t be too messy

    3. Modules or functions should be split. Note that each module is responsible for one function and clearly marked

    4. Common modules, methods, variables, and components need to be pulled out and shared between modules or projects to provide reuse rates

And topic the expediency leetcode, not difficult, and boy, small make up a simple topic knuckles is not complete, the next do work study, experienced friend said requirements about intermediate difficulty levels, I mean if you understand the intermediate difficulty finishing, are you sure no problem, if intermediate difficulty but it takes a little time, that also can, It just takes a little practice.

In short, check leetCode

leetcode

Pound pound pound!!

Bytedance has hired a front end team in Shanghai, and is currently engaged in the business of flying documents.

30 — 60K · 15 salary

Benefits of looking for me to push inward:

  • Resume preference
  • Follow up the interview process
  • Contact the immediate leader first

Contact the bottom end technology, dance with the big boys!

Interested can come to consult

The job description

  • Responsible for the development of enterprise communication and collaboration tool Lark products, including but not limited to online forms;
  • Responsible for high quality design and coding; Undertake key and difficult technical problems;
  • Cooperate with product manager, deeply participate in product requirement discussion, function definition, etc.
  • Main front-end frameworks: React, Electron, etc.

Job requirements

  • 1 year or above Web front-end development experience;
  • Proficient in computer related basic knowledge, good taste in design and coding, love to write code can produce high-quality design and code;
  • Master WEB front-end development technology: JavaScript(including ES6), HTML, CSS, DOM, protocol, security, etc.
  • Experience in table related research and development is preferred; experience in client development is preferred; well-known open source works are preferred;
  • Positive and optimistic, serious and responsible, willing to cooperate.

Office environment: