Standards and requirements for programmers

Junior programmer

Can only complete the development of simple modules and projects, difficult to be competent for the development of complex modules. Usually the students who are not long into the industry and have 1 year or less working experience.

Capacity requirements

  1. Familiar with front-end basic knowledge such as HTML, JS, CSS.
  2. Simple business development using an MVVM framework.
  3. When encountering complex components and modules, it will find existing wheels to use.
  4. Can use baidu, Google and other search tools to search questions.

Intermediate Programmer (Ali P5)

Independently responsible for specific tasks of a submodule or project, with necessary coaching or standard process support, with responsibility for timeliness and accuracy. Usually two or three years of work experience.

Capacity requirements

  1. In addition to front-end basic knowledge, familiar with computer, network and other professional basic knowledge.
  2. Proficient in the technology stack development business used in the work. In addition to the MVVM framework, you can also understand the configuration of WebPack.
  3. Understand a requirement’s lifecycle from development to launch and be responsible for each step.
  4. Basic ability of logical analysis, problem decomposition, induction and summary.
  5. Familiar with basic data structure and algorithm, proficient in code writing.
  6. Know from the right channel to find the problem, in unable to find the right wheel, will build some simple wheels to assist business development.

Senior Programmer (Ali P6)

Ability to work independently with high quality, grasp the overall implementation of a system/team, refine new methods or solutions during implementation, or suggest improvements to existing solutions and prove their effectiveness. Usually those with 3 years of work experience.

Capacity requirements

  1. Have the ability to work independently and to complete modul level work with high quality.
  2. Familiar with the technology stack used in the work, and can understand how they are implemented.
  3. Can find the pain points in the whole life cycle of a demand from development to online, and can use technical means to solve, improve efficiency.
  4. Able to analyze and disassemble problems or requirements in the module dimension, and make relatively reasonable implementation plans.
  5. Proficient in basic data structure and algorithm, code conforming to specifications, clear logic.
  6. Good technical selection ability.

The evolutionary path of the programmer

Beginner -> Intermediate

Usually in the initial stage, where there is the most room for progress, there is no ceiling.

coding

Coding is the most common thing to do in the early stages, and it’s the same with writing code as the old adage that to err makes perfect.

  • Sample code for what

    Do more business in the company, try different businesses, and aim to become a skilled worker first. You can also do some small projects after work, you can choose what you are interested in, and try to achieve it by yourself.

  • How to Write Code

    Learn to imitate, reference Daniel’s coding style, follow the gourd. If your company has a code specification, follow the company’s code specification, if not, refer to industry specifications and use tools such as ESLint to constrain yourself. Encounter some can’t write, even if find can refer to the code, copy again.

work

You spend most of your time at work, so how do you make the most of your 8 hours?

  • Not only write code, but also need to understand the business, seriously participate in the requirements review process, clear their own tasks.

  • Familiar with work process

    To be familiar with the requirements – development – coordination – testing – online each work link, carefully in accordance with the specification of the implementation, to be in awe of the online.

  • Promote efficiency

    When you’re working, try not to be interrupted. Schedule a “do not disturb” time, say 2-4 p.m., to code and not do anything else. Reduces the time spent filling water and bucket maps in the group.

  • Work overtime

    It is acceptable to work reasonable overtime (for example, working overtime to meet a particular demand for a period of time), but not to work daily overtime without compensation or time off (996), because daily overtime will reduce your time for study and life.

learning

The primary stage requires a lot of learning to improve their ability.

  • Learn to develop skills that will enable you to do more complex and challenging work.

  • Should learn what content front-end foundation, JS, CSS, HTML repeat learning. Work using a front end MVVM framework. Learn breadth of knowledge such as HTTP, regular expressions, Web security, performance tuning, design patterns, data structures, and algorithms.

  • Find the right way to learn

    Reading + coding: buy classic books to read, and as a reference tool for writing code at ordinary times, reading and coding is a repeated process, basically is reading -> coding -> reading -> coding cycle 3-4 times, this process is in continuous cultivation of internal work.

    Video: moOCs’ introductory actual combat video, which can be purchased according to your own needs. You should fully learn each video you buy, carefully follow the teacher to learn and write again and again, and actively ask questions when you don’t understand. Learning lies in depth rather than more. The advantage of video over books is that it is more relevant to the practice and the business of the company. In addition, the course is more flexible to upgrade and update.

    The best way to get started with a new technology stack is to go through its documentation, going through it systematically and tapping on each example.

    Community: MoOCs notes, Nuggets, CSDN, InfoQ and other Chinese communities, using fragmented time to read some high-quality articles to learn.

    GitHub: Learn how to use GitHub and know the basic operations such as Clone, fork, pull, push, etc.

  • If you want to grow faster than everyone else, you have to spend more time learning than everyone else (which is why daily overtime is discouraged). Especially at the beginning, the growth curve is very fast.

  • Knowledge precipitation as the saying goes, good memory is better than bad writing, you can develop the habit of writing a blog, the content of learning in the form of words to record, sort out the written, and according to the technical direction of learning to do classification.

Ask questions

In the initial stage, it is inevitable that often encounter problems, will ask questions is also a technical work, good posture can make you get twice the result with half the effort.

  • Bad way to ask a question

    “What does this error mean?” ; Lack of thinking, not reflecting their own thinking process about the problem.

    “Why is my code exactly the same as yours, but it doesn’t work?” ; Lack of context, which should tell you that the code compiled but still won’t run, error messages, relevant code, code analysis that might be wrong. Without enough context, the gods don’t know how to solve the relevant problem.

    Why XXX can (can’t) yyy? The question itself is a false conclusion, often just seeing the phenomenon, without analyzing the nature of the problem.

  • Good way to ask

    First of all, before you ask questions, you should go through full thinking, and learn to disassemble the problem, in the process of disassembly will reduce the complexity of the problem. Secondly, we should make good use of the search engine, extract the keywords to search the search engine, and try to solve the problem by ourselves first.

    If you still can’t solve the problem, send the relevant context of the problem, screenshots and necessary identifiers, along with your own thought process, information you find, and your own analysis to someone who wants to help you, with the ability to minimize the recurrence of the problem.

    Finally, reframe the problem and the solution, and inform the person who helped you that the problem has been solved. Reframe the process of solving the problem will help you clear your mind and gain a deeper understanding of the problem.

Intermediate -> Advanced

Reaching the middle level basically means you’re ready to work for big companies when they need people, but you need to work toward the advanced level if you want to be an irresistible talent.

coding

Yes, at the intermediate level, the most important way you want to improve is to code.

  • Sample code for what

    Unlike the beginner, in addition to doing business, you will also participate in development and do some technical type of projects, such as the development of the group’s component libraries, some general JSSDK development, which will require more technical requirements on you.

    I have the opportunity to participate in the common construction of some open source technology stacks. For example, if I want to implement each feature but the existing open source library is not satisfied, I can raise a pull request when the implementation is not difficult.

  • How to Write Code

    Learn to imitate. In addition to referring to the coding style of the bull, you should also think about how they code and why they do it.

    Learn the componentization, modular development mode, learn to reuse and packaging, reduce CV operation.

    Take responsibility for the quality of your code and organize code reviews regularly.

work

To get ahead, you need to produce something at work.

  • Business thinking

    Understand the business and the company’s goals, get involved in the early stages of requirements, but also think about the business and whether there are technical ways to improve the value of the business, such as reducing white screen time on mobile, which can lead to better user experience and retention.

  • Technical thinking

    Consider some of the pain points in business development, how to use technical means to optimize the business development process, improve the efficiency of development, such as a customized scaffolding tool for the business.

  • Optimize workflow

    Not only should we be familiar with every working link from requirements to development to joint adjustment to testing and going online, but we should also think more about whether there are any points that can be improved in each link, especially the going online process, such as whether it can be automated, whether it can go online with small traffic, and whether it can roll back the code in time.

  • Technology to share

    Some of the problems encountered in the work of the solution, the study of some new techniques, the output of some technical project summary, as technology sharing in the group and the output, the precipitation can be summed up your technique, 2 it is can let everybody to know what you do, the technology and active team atmosphere, 3 it is to exercise their own ability, This ability is very important in promotion reporting in large companies.

learning

In the intermediate stage, you still need to learn a lot to improve your ability.

  • Define your learning goals

    Learning is to improve my hard strength, which can not only improve my work efficiency, but also enable me to better serve the business and get a promotion and raise my salary.

  • What should I study

    The tool chain used in the research work is not only the MVVM framework at run time, but also webPack at compile time, where necessary to explore the source code implementation.

    Dive into breadth knowledge such as HTTP, regular expressions, Web security, performance optimization, design patterns, data structures, and algorithms, and apply them to your work.

  • Find the right way to learn

    Read: Find classic books in your study area and take notes.

    Video: such as moOCs advanced actual combat video, according to their needs to buy.

    Official website documentation: You can try to see the English documentation.

    Community: StackOverflow, HackerNews, MOOCs notes, Nuggets, etc., in addition to using fragments of time to read some high-quality articles to learn, but also to post some high-quality articles to the above.

    GitHub: Follow Trending, get involved with the open source community, and try to build some wheels yourself.

  • Learning time and depth

    At the intermediate level, you still need to spend a lot of time learning, and this is the time to focus on the depth of your learning.

  • Knowledge of precipitation

    As the saying goes, a good memory is better than a bad writing. You can develop the habit of writing a blog, and record and publish some non-sensitive knowledge you have learned deeply in your work, rather than just publish some basic knowledge.

  • The view

    In addition to the technology stack used in my work, I should also learn about other excellent open source technology stacks of the same kind and compare them from multiple dimensions (feature integrity, documentation, difficulty in getting started, maintenance intensity, ecology, etc.).

    Keep a sensitive eye on new technologies and consider whether they can bring value to your business, and choose the right technologies when needed.

conclusion

Technical skills are really problem solving and learning skills, so no matter where you are, or even higher, improving both of these skills is something you should always be doing.