Programmer standards and requirements

Junior programmer

Can only complete the development of simple modules and projects is not competent for the development of complex modules. Usually, students with 1 year or less work experience in the industry.

Capacity requirements

  • Familiar with front-end basic knowledge such as HTML, JS, CSS.
  • Ability to use an MVVM framework for simple business development.
  • When encountering complex components and modules, I will use existing wheels.
  • Can use Baidu, Google and other search tools to search for problems.

Intermediate programmer

Independently responsible for specific tasks of a submodule or project with necessary coaching or standard process support for timeliness and accuracy. Usually students with 2-3 years of working experience.

Capacity requirements

  • In addition to the front-end basic knowledge, familiar with computer, network and other professional basic knowledge.
  • Familiar with the technology stack used in the job development business. In addition to the MVVM framework, you can also learn about webPack configuration.
  • Understand and be responsible for the entire lifecycle of a requirement from development to launch.
  • Basic logical analysis, problem decomposition, summary and other abilities.
  • Understand basic data structures and algorithms and be proficient in code writing.
  • I know to look for problems from reliable channels and build some simple wheels to assist business development when I can’t find the right wheels.

Senior programmer

The ability to work independently and with high quality to grasp the overall implementation of a system/team and to refine new methods or solutions or propose improvements to existing solutions in the implementation process and have proven effectiveness. Usually 3 years + work experience.

Capacity requirements

  • Independent ability to complete module level work with high quality.
  • Be familiar with the stacks used in the work and understand how they work.
  • Ability to identify pain points in a requirement from development to launch lifecycle and use technical solutions to improve efficiency.
  • Be able to analyze and disassemble problems or requirements in module dimension and make a relatively reasonable implementation plan.
  • Good command of basic data structure and algorithm code with standard logic.
  • Good technical selection ability.

The evolution of the programmer

Elementary -> Intermediate

Usually at the beginning stage where there’s the most room for improvement there’s no ceiling.

  • Coding coding is one of the most common things to do in the early stages and it’s the same old adage that code makes perfect.

  • Do more business in the company to try different business goals is to make yourself a skilled worker. After work, you can do some small projects. You can choose something that interests you and try to implement it yourself.

  • How to write code learn to imitate the cow’s coding style. If your company has code specifications that follow your company’s code specifications if you don’t refer to industry specifications and use tools like ESLint to discipline yourself. If you encounter something that you can’t write, even if you find some code that you can refer to, you can copy it.

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

  • Understand the business and not just write code but understand the business and participate in the requirements review process and know what you’re doing.

  • Be familiar with the work flow. Be familiar with every link of work from requirement – development – joint adjustment – test – on-line.

  • To increase productivity, try not to be interrupted when you work. Schedule a no-disturb time slot for example, between 2 and 4 in the afternoon, where you can only code and do nothing else. Reduced the amount of time it takes to fill a swarm with water and map.

  • You can accept reasonable overtime work, such as working overtime for a short time to meet a demand. You can not accept daily overtime work without any compensation or leave, because daily overtime will compress your time for study and life.

  • The primary stage of learning requires a lot of learning to improve one’s ability.

  • Learning is designed to improve your skills so that you can do more complex and challenging jobs.

  • Should learn what content front-end foundation JS, CSS, HTML repeatedly learn. A front end MVVM framework used in work. Learn a broad knowledge of HTTP, regular expressions, Web security, performance optimization, design pattern data structures, and algorithms.

  • Find the right way to learn reading + coding buy classic books to read and as usual write code reference tools reading and coding is a repeated process is basically reading -> coding -> reading -> coding cycle 3-4 times this process is constantly practicing internal skills. Video MOOCs network entry actual combat video according to their own needs to buy to fully learn their own purchase of every video carefully follow the teacher to learn again write again meet do not understand to actively ask questions learning lies in depth rather than much. The advantage of videos over books is that they are more relevant to the practice and more relevant to the business of the company and there is more flexibility to upgrade and update courses. The best way to get started with each new technology stack is through its documentation to systematically go through the documentation and hand tap it for each example. Community MOOCs notes, Digg, CSDN, InfoQ and other Chinese communities use fragmented time to read high-quality articles to learn. Clone, fork, pull, and push operations are available on GitHub.

  • If you want to grow faster than others, you have to spend more time learning than others. This is why daily overtime is discouraged, especially at this early stage, where the growth curve is very fast.

  • Knowledge precipitation as the saying goes, a bad memory is better than a bad pen can form the habit of writing a blog.

  • There are always going to be questions at the beginning of the game. Asking questions is a skill. Good posture can help you get more done.

  • A bad way to ask “What does this error mean?” lacks thought and does not reflect your thought process about the problem. “Why does my code look exactly like yours just won’t work?” Lack of context should tell the code if it compiled but still won’t work, error messages, related code, analysis of what might go wrong. The gods don’t know how to solve the relevant problems without enough context.” Why can XXX yyy “ask the question itself is a wrong conclusion is usually just to see the phenomenon without analyzing the essence of the problem.

  • A good way to ask questions is first of all, you should think enough before asking questions and learn to disassemble questions. In the process of disassembling questions, the complexity of the questions will be reduced. Secondly, we should make good use of search engines to extract the keywords to search engines to try to solve the problem first. If you still can’t solve the problem, you can send the relevant context of the problem, screenshots and necessary identifiers as well as your own thought process, relevant materials found and your own analysis to someone who wants to help you and can provide a question with minimal repetition. Finally, reorganize your problem and solution and inform the person helping you that the problem has been solved. Reorganizing and solving the problem will help you clarify your thoughts and gain a deeper understanding of the problem.

Intermediate -> Advanced

Getting to the intermediate level basically means that you can go to a big company when there’s a shortage of people and then you have to work your way up to the senior level if you want to be an undeniable talent in a big company.

coding

That’s right. At intermediate level, the most important way to improve is to code.

What kind of code

In addition to doing business, as opposed to doing business, you will also be involved in some more technical types of projects such as working on in-group component libraries and general purpose JSSDK development which will be more demanding on your skills. If you have the opportunity to participate in the co-construction of some open source technology stacks that you usually use, for example, if you want to implement each feature but the existing open source library does not meet the requirements of the implementation difficulty, you can propose a pull request.

How to Write code

Learn to imitate not only what they’re doing but also how they’re doing it and why they’re doing it. Learn a component-based, modular approach to development learn to reuse and encapsulate CV operations. Take responsibility for the quality of your code and organize regular code reviews.

work

To advance requires some production at work.

Business thinking

Understand that the goals of the business and the company are involved in the early stages of demand and also think about the business and whether there are technologies that can add value to the business such as reduced white screen time on mobile that can lead to better user experience and retention.

Technical thinking

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

Optimize workflow

Not only should we be familiar with each working link from requirement – development – joint adjustment – test – launch, but also think more about whether each link can be improved, especially in the launch process, such as whether automation can be achieved, whether small flow can be launched, and whether the code can be rolled back in time.

Technology to share

Some of the problems encountered in the work of the solution, the study of some new technology to produce some of the technical project summary down as a group sharing and output a second precipitation can be summed up your technology is lets everybody can know the things you do and active technology atmosphere within the group of three is to exercise their ability of this ability is very important in big company’s reporting on activities in the promotion.

learning

The intermediate stage still needs a lot of study to improve one’s ability.

Define your learning objectives

Learning is to improve their hard power, not only to improve work efficiency, but also to better serve the business promotion and salary increase.

What should you learn

The toolchain used in the research work is not just the run-time MVVM framework but also the compile-time Webpack to explore the source code implementation if necessary. Dive into broad knowledge such as HTTP, regular expressions, Web security, performance optimization, design pattern data structures, and algorithms and apply them to your work.

Find the right way to learn

Read a book to find the study direction of classic books to read appropriate take some study notes. The advanced practical video of moOCs is purchased according to their own needs. The official website documents can try to see the English document. StackOverflow, HackerNews MOOCs notes, Nuggets, etc. In addition to using fragmentation time to read some high quality articles to learn, you can also post some high quality articles to them. GitHub is following Trending’s participation in the open source community and trying to build some wheels of its own.

In intermediate level, you still need to spend a lot of time learning. This is when you need to focus on the depth of your learning.

As the saying goes, a bad memory is better than a bad pen. Develop the habit of writing a blog. Write down and post the non-sensitive knowledge that you have learned in depth at work instead of just Posting the basic knowledge.

Technical breadth

In addition to the technology stack used in my own work, I should also understand other excellent open source technology stacks of the same kind from multiple dimensions feature integrity, documentation, difficulty to get started, maintenance strength, ecology and so on to make comparison. Be sensitive to new technologies and think about whether they can add value to your business and choose the right technology when needed.

So in conclusion, technical skills are basically problem solving skills and learning skills so it doesn’t matter what level you’re at or even beyond that that’s what you should be doing all the time.