“Reprint” I recruit front end in Ali, how should I help you?

Author: Pan Chong

The original address: segmentfault.com/a/119000002…

Proficient in JavaScript

Junior:

You need to know all the concepts of JavaScript, and the contents of the JavaScript Language Essentials book need to have concepts, and you need to be able to blurt out what the core points are. Here are a few for reference:

  • You know combinatorial parasitic inheritance, you know class inheritance.
  • Know how to create class function + class.
  • Know how closures are used in real-world scenarios, common pitfalls.
  • Know what a module is and how to use it.
  • Know what an Event loop is and can illustrate how an event loop affects the usual coding.
  • Master basic data structures, such as stacks, stacks, and trees, and understand the role of these data structures in computer infrastructure.
  • Know ES6 array related methods, such as forEach, Map, reduce.

Intermediate:

  • Know the difference between class inheritance and combinatorial parasitic inheritance and can give examples.
  • I know the principle of Event loop, macro and micro tasks, and can explain why to distinguish from each other from a personal understanding level. Know the difference between Node and browser implementations of loop.
  • Can integrate concepts such as inheritance, scope, closure, and module, and illustrate how these concepts fit together with practical examples.
  • Can blurt out the core ideas of more than two design patterns, and combine the JS language characteristics for example or the implementation of oral spray basis.
  • Master some basic algorithm core ideas or simple algorithm problems, such as sorting, adding large numbers.

Familiar with common engineering tools, master modular ideas and technical implementation schemes.

Junior:

  • Know webpack, rollup and the scenarios they apply to.
  • Know the difference between WebPack V4 and V3.
  • Blurt out the Basic WebPack configuration.
  • Know the code structure and execution flow of webPack result, know what index.js, runtime.js do.
  • Know what AMD, CMD, CommonJS, ES Module are respectively.
  • Know all modularity standards that define how a module is written. Given 2 files, can spit out a piece of code to complete module packaging and execution of the core logic.

Intermediate:

  • Know webpack link, know plugin life cycle, know how to write a plugin and loader.
  • Know what common loader does, can explain a few words, such as babel-loader, vue-loader.
  • Can talk about how to do webpack configuration in combination with performance optimization, can clearly explain what the core points are, and explain what problems to solve, what external dependencies are needed, such as CDN, access layer, etc.
  • Understand the realization principle of asynchronous module loading, and be able to implement core logic by spouting code.

Senior:

  • Ability to design or specify team development infrastructure. Specifically including but not limited to:
  • Project scaffolding, and how to share in tool form.
  • The team specified how ESLint should be designed and updated uniformly.
  • Tool-based packaged publishing process, including local debugging, cloud build, online publishing system, one-click deployment capability. At the same time, the solution is not limited to front-end engineering, including related server infrastructure, such as CDN service construction, access layer cache design, domain name management and control, etc.
  • Client caching and preloading solutions.

Familiar with React front-end framework, understand the underlying technology. Knowledge of vue and other frameworks such as Angular is a plus.

Junior:

  • Know common optimizations in React, blurt out common life cycles, and know what they do.
  • React can compare react and JS to control the native DOM, and can spit out a simplified version of React.
  • Know the general implementation of diff algorithm.
  • I have my own experience in using state and props, combined with the description of controlled components, Hoc and other features, I need to explain the application scenarios of various solutions.
  • The same applies to the react or Angular substitution.

Intermediate:

  • Can explain why Fiber is being implemented and the potential pitfalls.
  • Be able to explain why a hook should be implemented.
  • Explain why immutable is used, and why it is necessary to use it or not.
  • Know react features that are not commonly used, such as context and portal.
  • Explain the nature of the React like framework with your own understanding and how these frameworks can coexist.

Senior:

Ability to design framework independent technical architecture. Including but not limited to:

  • Explain how to solve possible conflicts based on actual cases.
  • It can explain the logic of architecture hierarchy, the core modules of each layer, and the problems to be solved by the core modules. It is better to be able to give examples of pits or elegant treatment schemes based on actual scenarios.

Familiar with common tools like Redux/React-Router, etc.

Junior:

  • Know about react-Router, redux, redux-thunk, react-redux, IMMUTABLE, ANTD, or equivalent community component libraries.
  • Know what vue and Angular family buckets are.
  • Learn how to use the React plugin.
  • Know the react-router v3/ V4 difference.
  • Know antD componentized design idea.
  • Know what thunk does and how it works.

Intermediate:

  • Read the whole family bucket source code, do not require every line to see, but know the core implementation principle and the underlying dependency. Can spit out a few lines of key code to achieve the corresponding class library standards.
  • Can thoroughly explain Redux from a data-driven perspective, and can spit out how to combine native JS with Redux.
  • Talk about the similarities and differences between Vue and React with redux, Vuex, MOBx and other data streams.

Senior:

  • Have experience in building complex applications based on family buckets, such as the recently popular micro front end and the integration of these libraries, what should be paid attention to, what will be the pit, how to solve

Familiar with various Web front-end technologies, including HTML/XML/CSS, have experience in front-end application development based on Ajax.

Junior:

  • HTML aspects include but are not limited to: semantic tags, history APIS, storage, Ajax 2.0, etc.
  • CSS aspects include but are not limited to: document flow, redraw rearrangement, Flex, BFC, IFC, before/ After, animation, KeyFrame, draw triangle, priority matrix, etc.
  • Know AXIOS or equivalent network request library, know axios core functionality.
  • Be able to use XHR, know the relevant technology and the underlying technology of network request, including but not limited to: Content-Type, the role of different types; Restful design concept; Cors processing scheme, and browser and server execution process; Mouth spray file upload implementation;
  • Know how to complete the login module, including but not limited to: how to implement the login form; Cookie login state maintenance scheme; Token Base login mode scheme; The session concept;

Intermediate:

  • The HTML aspect can describe the implementation of common class libraries in conjunction with various browser apis.
  • The CSS aspect is able to combine concepts and explain the principles of hacks or optimizations on the web.
  • Can explain the overall architecture and process of the front and back end of the interface request, including: business code, browser principle, HTTP protocol, server access layer, RPC service call, load balancing.
  • Know websocket usage, including but not limited to: authentication, room allocation, heartbeat mechanism, reconnection scheme, etc.
  • Know the PC and mobile terminal login state maintenance scheme, know the token base login state implementation details, know the server session control implementation, the keyword: refresh token.
  • Know oAuth 2.0 lightweight and complete implementation principles.
  • I know how mobile terminal API requests and sockets are sent through Native, how to interact with Native data, and the implementation principle of IOS and Android JsBridge.

Senior:

  • Know mobile webView and basic abilities, including but not limited to: differences between UIWebView and WKWebView on iOS; Webview resource loading optimization scheme; Webview pool management scheme; Native routes.
  • The login abstraction layer can provide a complete technical architecture design of the front-end and back-end user system to meet the unified user system with multiple business forms. Consider scenarios such as cross-domain, multi-organizational, cross-terminal, and user-mode opening.
  • Mock schemes, the ability to design mock data schemes to meet the needs of various scenarios, and at the same time to express the understanding of the separation of the front and back ends. Consider the versatility of mock schemes, scenario coverage, and code or engineering intrusion.
  • Buried point scheme, can explain the front-end buried point scheme technology to realize the bottom, and the principle of technology selection. Able to design data acquisition and analysis schemes based on buried points, including: bucket strategy, sampling rate, timing, data warehouse, data cleaning, etc.

Good coding habits, continuous enthusiasm for front-end technology, optimistic personality, strong logic, good at working with people from various backgrounds.

Junior:

  • Know ESLint and how to use it with projects.
  • Understand the important front-end update events in the past three years.
  • During the interview, I can give a general thinking path from the logical analysis to the questions I can’t answer.
  • Know several popular domestic and foreign front-end technology websites and can give some examples of where the core points in the interview process are seen.

Senior:

  • Implement ESLint within the team and provide engineered solutions.
  • The interview process is clear, with the interviewer giving key words and being able to respond quickly to relevant technical points, but avoid going on and on about a lot of inessential stuff. For example, during my interview, the teacher asked me a layout method of left picture and right text. I replied that I had summarized seven schemes, among which BFC, float and flex were the most useful. Then I sprayed the key CSS port, and the CSS was finished.

Experience in TS/mobile front-end development/NodeJS/server development is preferred

  • According to the depth of understanding, it is divided into early/medium/advanced.
  • Know what TS is, why TS is used, and have practical experience in TS engineering.

Know the common problems of mobile front-end, including but not limited to: REM + 1PX solution; Preloading; Jsbridge principle, etc. Can say the general server technology, including but not limited to: Docker; K8s; RPC principle; Middle background architecture layer; Cache processing; Distributed; Responsive programming, etc.

For RMB, rush duck!