zishu's blog

zishu's blog

一个热爱生活的博主。https://zishu.me

Some thoughts on full-stack

Here I want to recommend a book called "Self-Cultivation of a Full Stack Engineer". While reading it, I analyzed it from my own perspective and wrote this note.

"The full stack engineer is becoming a rising star in the IT industry, favored by both listed internet companies and startups. The author of this book is a senior engineer at Tencent, with rich experience in front-end, back-end, and app development. In this book, the author shares the skills and requirements, core competencies, future development directions, and thoughts on mobile development for full stack engineers. In addition, the book also provides a detailed account of the author's learning experience starting from scratch. The content of this book is comprehensive, objective, and practical, suitable for newcomers and programmers in the internet industry, as well as practitioners who are looking to transition to a technical role."

The author, Yu Guo, graduated from Xi'an Dianzi University's School of Software Engineering. He has served as a senior UI engineer and front-end development lead at Tencent's Social User Experience Design Department, responsible for product design in multiple projects. He wrote this book based on his own experiences.

Speaking from personal experience, his passion for technology and machines led him to the field of computer science. In the book, he often mentions the combination of rational and emotional thinking and conducts in-depth analysis of full stack engineers.

A full stack engineer refers to an engineer who can handle all aspects of database, server, system engineering, and client work. Depending on the project, the client may require a mobile stack, web stack, or native application stack. This is the official definition. From my current understanding of front-end thinking, it roughly means a person who takes care of front-end and back-end, handles data processing for project maintenance, and even does their own design work.

Many people say that full stack has many advantages. They are not worried about different people writing code inconsistently, resulting in different ideas in the final product. A full stack engineer handles the entire process, all in their own mind.

Perhaps because I have recently entered this industry, I don't think full stack is a very reasonable existence. Let's take an example. Before assembly lines appeared, most manual workshops were responsible for the entire production process, from raw materials, production, polishing, to finished products. Although it may involve many steps, one person can perfectly complete it, similar to the existence of a full stack engineer.

On the other hand, assembly lines are more like a team, with roles such as product, UI, front-end, back-end, and testing, each person cooperating with each other.

Compared to full stack, I personally think that the advantages of a team are greater. However, the boss prefers one person to do the work of three people, and prefers a bit of full stack.

The time and effort required to cultivate a full stack engineer is unimaginable, and it is uncertain whether the cultivation will be successful. However, if one specializes in a certain technical field, the probability of becoming a senior engineer is definitely greater than that of a full stack engineer. Of course, this is just my personal speculation and does not have specific data support.

The book also mentions that another benefit of assembly lines is that they do not create dependence on a particular engineer. Even if an employee is lost, someone else can take over the work.

Having talked about the benefits of team collaboration, it doesn't mean there are no drawbacks. There are definitely some, and the book summarizes a few points:

  • Unclear engineer responsibilities leading to low efficiency
  • Lack of ownership among engineers leading to poor product quality
  • Lack of a global perspective affecting personal growth
  • More roles leading to low project efficiency

"Because of the disadvantages of inefficient and costly work processes with clearly defined roles, many startups do not have a complete assembly line and instead prefer to build teams in a more flexible way, making full stack engineers an ideal choice. However, the rise of full stack engineers is also due to two important factors: technological development and the increasing number of platforms providing PaaS services."

Although becoming a full stack engineer requires a lot of time and effort, I still quite like this mindset. For example, let's say there are three people, A, B, and C, each specializing in their own field. One day, they encounter a small problem in a project they are jointly responsible for, but they don't know which area the problem lies in. Although it is a small problem, each person needs to investigate it individually. Since there are three different areas, this means that two people's investigations are ineffective, which in turn reduces project efficiency.

At this point, there is an engineer, S, who is not a full stack engineer but enjoys learning technologies from multiple fields and has some knowledge of not-so-advanced technologies. S investigates the problem and quickly identifies the cause.

In this case, the efficiency of one person is equivalent to that of three people, although this statement is not rigorous, it's just an analogy.

I suddenly thought of a saying, I don't know if it's accurate or not,

"The existence of full stack positions is unreasonable, but the mindset of full stack is essential for an ambitious engineer."

Loading...
Ownership of this post data is guaranteed by blockchain and smart contracts to the creator alone.