How to become a Full stack engineer? What is the accumulation of skills required? What are the benefits of being a full stack engineer? I hope this article can provide some help for students who want to become full stack engineers, and share with students.

As developers, we do not excessively distinguish between server and client. We are Web developers, engaged in Web development, and more to understand the technology and practice.

Path to full stack engineer

It is neither difficult nor easy to become a full-stack engineer, in which the accumulation of skills accounts for a large part:

1. Stay current

Have enough input.

Pay attention to the new news release of overseas community, new products and new technologies in the industry, learn to obtain high-quality information, do it consistently and habitually.

2. Focus on learning & practice

Have their own thinking and rigorous output.

Master efficient learning methods, such as K8s container cluster related work, need to understand the underlying design and cluster scheduling, need to learn the learning process of Golang, new technology:

  • Invest in a good IDE such as Webstorm, Goland, IntelliJ IDEA, etc., and stick with it.

  • Look for official documents and keep learning.

  • API manual view, constantly familiar with and memory.

  • Write learning summary, form a virtuous circle: define function -> code design -> complete function -> refactoring optimization -> optimize code design -> complete -> refactoring -> complete mastery.

Conclusion: practice requires persistence. In the face of new and unknown fields, we should also grasp the nettle.

3. Focus on the basics & summarize

A clear understanding is half the battle.

For example, as Web Developer:

  • Basic knowledge: Basic language, Web application, familiar with Linux operating environment, network transmission process HTTP protocol, TCP protocol.

  • Advanced knowledge: familiar with browser request process, Web Server port monitoring principle, database principle, browser request principle, APPLICATION secure communication TLS protocol, data encryption and decryption scheme, data signature scheme.

  • Architecture level: application layered pattern, data model definition pattern, micro-service partitioning idea, system design pattern.

4. Being a wireless team: the most profitable and investment part

With a clear understanding of the principles behind the most common problems, we can solve the vast majority of problems independently, improve the efficiency of full-link RESEARCH and development, and communicate barrier-free with people from all positions, and cooperate without resistance.

To do one thing, what is the most appropriate scheme, what role is the most suitable, and what kind of technical architecture is more appropriate:

  • The language is basic: HTML/CSS/Javascript/ECMAScript/Typescript/Node.js/Golang/Java etc.

  • Network protocol layer HTTP protocol, DNS, layer 7 / layer 4 load balancing, here will involve the server, front-end, SRE, network security and other basic knowledge of various posts.

  • Framework layer principles and details: Application framework React/Koa/Spring, database framework, security components.

  • Framework layer agreement and business framework derived from the company’s technical system: Ali/Ant middleware.

  • Engineering: CI/CD continuous integration, automated testing, code build release process.

  • Infrastructure IaaS: private cloud, hybrid cloud, and public cloud; AWS, Ali Cloud, etc.

Value to the team:

  • Due to the characteristics of wireless: will encounter problems related to HTTP protocol accounted for a large proportion of end performance optimization, network exception handling, front and back end interaction of the basic process. I can quickly locate and repair the offline debugging, and make quick decisions when encountering problems online.

  • Not all problems can be remedied by experience. People will make repeated mistakes in many cases, so they need to solve the problems from the source or master the basic knowledge of the whole stack.

Conclusion:

  • Understand the basics. When using upper-level technologies, such as various frameworks and o&M systems, you can quickly see the nature of the technology behind the use.

  • You make fewer mistakes and make more good decisions.

5. Practice of full stack technology system

Three people must have my teacher, learn from the people around you.

Take an example around you: when doing login authentication user system, the first thing is to design the system, data model design, interface design, and finally implementation. The most important and valuable part is the early design stage. Finally, the implementation of Node.js, Java, Golang, different languages and frameworks are similar, the function of transplantation is very fast, can be carried out in parallel.

The prerequisites for designing good code are exactly the same as those for mastering the basics. The better the basics, the better the design.

Conclusion:

  • Good design not only makes the system reliable, but also makes the design simple and clear to understand.

  • There is no burden to write and no high cost to maintain.

6. Avoid pitfalls

Full stack does not mean to reduce requirements. Full stack is to improve development efficiency. If the quality is poor, it is difficult to maintain, but reduces team efficiency.

  • Avoid just dabble more, and lack actual combat, read not equal to can apply.

  • Being able to write the full stack does not mean that the code written can be used in the production environment. Avoid subconsciously lowering requirements for yourself. If the code quality is not good enough, it will violate the original intention of the full stack.

Benefits of being a full stack engineer

1. Master the whole link knowledge system and core knowledge of the front-end and back-end servers

  • Improve the efficiency of research and development, improve the ability to solve problems, improve the efficiency of troubleshooting problems, can quickly detect problems, timely processing problems.

2. Able to understand the demands of students from different positions

  • Backend students: Can understand why front-end students have high requirements for interface fields and expect the interfaces provided by the backend to be defined according to the standards of the open source community (good interfaces are self-explanatory, don’t require much documentation, follow industry API design specifications, use interfaces intuitively, and have stable interface fields).

  • Front end students: Understand why the back end students are reluctant to write special logic judgments (a set of models is already elegantly defined, adding a special branch breaks code consistency).

  • R & D students: I can understand why the operation and maintenance students are reluctant to give the operation and maintenance authority easily (once the operation of the bottom operation and maintenance is improper, it will cause too much damage and requires profound technical accumulation).

A counter example of incomplete knowledge

True counterexample: Full stack helps reduce low-level errors.

All of the examples here have actually existed. In the process, we can find that these are not profound problems, but problems caused by incomplete knowledge:

  • The application service is online, and the server is configured with the CDN on the Nginx proxy, and 502 is returned. The developer and SRE do not have access to the public network (reason: the application owner is not familiar with the network knowledge and operation and maintenance system, and does not cooperate well with SRE).

  • The front-end domain name is different from the back-end domain name. The browser fails to request the domain name because of a cross-domain problem (cause: the user is not familiar with the use of headers in THE HTTP protocol).

  • The name design of the back-end interface is ambiguous, non-standard, and does not meet the RESTful API specification (reason: I am not familiar with the specification based on HTTP protocol, which is essentially the application of method in HTTP).

  • Other issues such as Websocket issues, front-end performance optimization, and cache-related issues are inefficient to troubleshoot (mostly due to unfamiliarity with HTTP headers).

The last

Full stack is not a certification certificate, do not need someone to do the certification for you, when you can get the trust of the students of different technology stack, is the biggest affirmation for you.

“Alibaba Cloud originator focuses on micro-service, Serverless, container, Service Mesh and other technical fields, focuses on the trend of cloud native popular technology, large-scale implementation of cloud native practice, and becomes the public account that most understands cloud native developers.”