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

As developers, we do not distinguish too much between server and client. As Web developers, we are engaged in Web development, so we should understand more about technology and practice.

The path to becoming a full stack engineer

Being a full stack engineer is neither hard nor easy, and a large part of it is technical accumulation:

1. Stay up-to-date

Get enough input.

Pay attention to the new information released by overseas communities, new products and new technologies in the industry, learn to obtain information of high quality, persist in doing it and get used to doing it.

2. Focus on learning & practice

Have their own thinking and rigorous output.

To master efficient learning methods, for example, we are doing things related to K8S container cluster recently, so we need to understand the underlying design and do cluster scheduling, and we need to learn the learning process of Golang and new technology:

  • Invest in a good IDE such as WebStorm, Goland, IntelliJ IDEA, etc., and stick to it.
  • Read the official documents and keep studying.
  • API manual view, constantly familiar with and memory.
  • Write the study summary to form a virtuous circle: define function -> code design -> complete function -> refactoring optimization -> optimized code design -> complete -> refactoring -> complete master.

Conclusion: Practice depends on persistence. In the face of new and unknown fields, we should also rise to the challenge.

3. Focus on the basics & make more summaries

Clear understanding is twice the result with half the effort.

For example, as Web Developer:

  • Essential knowledge: Language foundation, Web application foundation, 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 security communication TLS protocol, data encryption and decryption scheme, data signature scheme.
  • Architecture: application layering pattern, data model definition pattern, micro-service partitioning idea, system design pattern.

4. As the wireless team: the most profitable and most invested part

A clear understanding of the principles behind the most common problems can solve most of the problems independently, improve the efficiency of full-link research and development, and facilitate communication and collaboration with people in various positions.

To do a thing, what plan is the most appropriate, what role is the most suitable, what kind of technology architecture is more appropriate:

  • The language is the most basic: HTML/CSS/JavaScript/ECMAScript/TypeScript/Node.js/Golang/Java etc.
  • Network protocol layer HTTP protocol, DNS, layer 7/4 load balancing, here will involve the basic knowledge of server, front end, SRE, network security and other posts.
  • Framework layer principles and details: application framework React/Koa/Spring, database framework, security components.
  • Framework layer convention and business framework derived from the company’s technical system: Ali/Ant middleware.
  • Engineering: CI/CD continuous integration, automated testing, code building and release process.
  • Infrastructure IaaS: private cloud, hybrid cloud, public cloud; AWS, Ali Cloud, etc.

Value to the team:

  • Due to the characteristics of wireless: will encounter the HTTP protocol related to a large proportion of the problem, on the end of the performance optimization, network exception handling, the basic process of front and back end interaction. Offline debugging can quickly locate and repair when encountered, online problems, the first time to make a quick decision.
  • Not all problems can be remedied by experience. People will make repeated mistakes in many cases, but they are afraid to find the root cause of repeated problems. Therefore, they need to solve the problem from the source and master the basic knowledge of the whole stack.

Conclusion:

  • With a clear understanding of the basics, you can quickly see what is behind the technology being used when using the top layer technologies, such as various frameworks and operational systems.
  • You make fewer mistakes and more good decisions.

5. Full stack technology system practice

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

Take an example around: in doing the login authentication user system, the first system design, data model design, interface design, the last is to achieve, the most important and valuable part is the early design stage. Finally, we use Node.js, JAVA and Golang to implement it again. The implementation between different languages and frameworks is similar. The transplantation of functions is very fast and can be carried out in parallel.

The prerequisites for designing good code are exactly matched with the mastery of the basics above. The better the foundation, the better the design.

Conclusion:

  • Good design produces systems that are not only reliable, but also simple, clear and understandable.
  • There is no burden to write and no high cost to maintain.

6. Avoid pitfalls

Full stack does not mean to reduce the requirements, full stack is to improve the development efficiency, if the quality is poor, difficult to maintain, but reduce the efficiency of the team.

  • Avoid just dabbling, and lack of actual combat, see is not equal to use.
  • The ability to write a full stack does not mean that the code can be written on the production environment, to avoid subconsciously lower requirements for their own, write code quality is not up to standard against the original intention of the full stack.

Benefits of being a full stack engineer

1. Master the knowledge system and core knowledge points of the whole link of the front-end server

  • Improve the efficiency of research and development, improve the ability to solve problems, improve the efficiency of troubleshooting problems, can quickly detect problems, timely handling 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-explanative, don’t need too much documentation, follow industry API design specifications, use interfaces with human intuition, interface fields are stable).
  • Front-end students: You can understand why back-end students don’t want to easily write specific logical decisions (a set of models is already elegantly defined, and adding a special branch breaks the code’s consistency).
  • R & D students: can understand why the operation and maintenance students are not willing to give the operation and maintenance authority easily (once the low-level operation and maintenance are improperly conducted, it will cause too much damage and require profound technical accumulation).

Counterexample of incomplete knowledge

True counterexample: A full stack helps reduce the incidence of rookie errors.

The examples here are all existing in reality. In the process, we can find that these are not profound problems, but problems caused by the lack of comprehensive knowledge:

  • The application service went online, the server configured the NGINX agent online CDN, and returned to 502. After checking together with the development and SRE, it was found that the access to the public network was not open (the reason: the application owner was not familiar with network knowledge and operation system, and did not cooperate with SRE well).
  • The front-end domain is different from the back-end domain, and the browser request failed due to cross-domain problems (cause: unfamiliar with headers in the HTTP protocol).
  • Backend interface name design is ambiguous, not standard, does not meet the RESTful API specification (reason: not familiar with the specification based on HTTP protocol, essentially the use of method in HTTP).
  • Other issues, such as WebSocket issues, front-end performance optimization, cache related issues, etc., are inefficient (mostly due to unfamiliar HTTP headers).

The last

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


Alibaba cloud nativePay attention to micro-services, Serverless, containers, Service Mesh and other technical fields, focus on the cloud native popular technology trends, cloud native large-scale landing practice, do the most understand the cloud native developer’s public account.”