Hi, I’m an amateur coder.

Back when I was a student, I often heard the term “full stack engineer.” At that time, I felt that this post must be very awesome, and the technology of the front and back end will be the person in the programmer.

Later we also heard that the full stack engineer is actually everything, but nothing good, just like those majors in our college days.

They seem to be extensive and profound, but they only scratch the surface. Is the whole stack a bullshit?

With the increase of working years, I have also been in touch with and undertaken some development work on full stack recently, and I think this direction is quite interesting.

The feeling is that no programmer is so exaggerated, but the need to master and dabble in the technical point is really a lot of.

Here are some characteristics of full stack engineers:

First, the big picture is more important

Since it is full stack, of course, the front and back end of the technology will understand some, otherwise how to act as a team.

But don’t be too mythologized about this status. After all, few people can claim to be proficient in front-end or back-end technology.

A full-stack engineer is more likely to be an indie developer, and unsurprisingly can handle all the code components of a small project.

It includes front-end UI rendering, component packaging, page layout, data request and necessary logic processing, and back-end interface packaging, database design, data verification, service construction and architecture design modules.

From a technical point of view, it is more comprehensive than a front-end engineer or a back-end engineer.

As we all know, in the collaborative development of large projects, communication coordination is often the most troublesome and tiring part.

Because the students at the front and back end often only think and plan the interface and the formulation of technical scheme from their own single-end standpoint and perspective, this will lead to the lack of overall feasibility of the scheme.

Therefore, relatively speaking, full-stack engineers can save a lot of energy and time spent on communication and collaboration, and can carry out full-link analysis and scheme formulation by themselves.

At this level, full-stack engineers can’t match single-end engineers in terms of overall project risk assessment and control, as well as simplification and harmonization of technical solutions.

So it seems to me that the perspective of a full stack engineer is not necessarily one that leans to one side, but one that needs to have a global perspective. From the dual identity of user and technician, the whole link review and evaluation of the whole project.

Many backend developers think of the front end as a cutting diagram drawing UI, requesting data to render the next diagram; A lot of the front end will feel that the back end of the database is to add, delete, change and check, tune the interface pieced together under the data return. This is actually because the idea is more one-sided caused by.

For a full-stack engineer, he should be able to distinguish the difference between the front end and the back end and distinguish what he is good at, and divide the logic reasonably in code construction.

For example, the back end should not be brainless, the front end should not do too much heavy data processing logic. Avoid being top-heavy on the project as a whole.

Two, suitable for small and beautiful projects

As mentioned above, a full stack engineer is essentially an indie developer, a team. However, as I understand it, a full stack engineer is not suitable to complete a large project.

Full-stack engineers have higher learning costs and development energy than single-end engineers because of their comprehensive technology. This leads to the stereotype that “full stack is all jack of all trades and no master of none”.

Although it can not be a stick to kill, in a word, but at least it can show that the full stack in the actual large-scale project development, the probability of single-end ability is not as good as single-end engineers.

Moreover, due to the consideration of labor cost and project planning, the full stack is more suitable for small and beautiful projects. As opposed to a few hundred million minutes of super projects.

So once you realize that, there’s a lot you can do with a full stack. In big factories, full stack is usually not involved in the development of the big MAC app’s main end, and is more involved in the development of various platforms and efficiency tools.

We all know that there is a serious problem in large factories.

As similar platforms emerge, each team imagines promoting its own internal R&D platform to the entire department or even company, followed by various open source operations to increase impact.

So don’t underestimate the whole stack of platform building and efficiency tool development. Now, of course, the real platform is not just full stack engineers, as long as they can write some code will do the platform.

What front and back end client test open, learn the front end to see the back end, one by one to do the fly. Understand all understand.

Three, easy to transfer to technical management

As we all know, one way out for the average technician is to do technology management. This is leadership.

At present, many leaders in Internet big factories, especially those that pay more attention to technology, are actually managers who have turned from technology to technology.

The benefits of this approach are self-evident, and it’s best to have someone who knows the technology lead the technical team. And a slightly more mature technical team, there is not only one kind of position.

Many leaders manage large teams that include technical positions such as front-end and back-end testing.

In such a team, the requirements for the technical vision and breadth of the leadership are very high. A full stack engineer is born with such advantages.

From the very beginning, full stack engineers have a more comprehensive perspective, from project planning to technical solutions, from risk assessment to scheduled delivery, full stack engineers have a closer perspective to God.

It’s actually a leadership perspective, which is essentially helpful for the work of technical management.

In addition, full stack engineers have more extensive access to technology and focus more on breadth in technology, which is actually the basis for understanding and collaborating with technical people in different fields.

Of course, this only means that full stack engineers have a relatively more comprehensive technical breadth and a relatively high technical vision. It doesn’t mean full stack is easier to get promoted or become a leader.

After all, as a technical manager, the most important is leadership and management ability. More often than not, it’s luck and opportunity.

Low code light service

As mentioned above, full stack is better for small and beautiful projects. From this premise, there are many tools that can help full stack engineers build platform artifacts quickly.

For example, the most common is the front end tools that can quickly do page layout by dragging and dropping components, and now there are slowly popular visual background management configuration systems.

These are essentially low-code or even no-code tools that can be built quickly and easily by mastering basic front and back end theory.

In an era when programmers have become the new labor-intensive migrant workers, it’s easy to imagine a use for this low-code platform on the TOB side.

In addition, light services are a great tool for building platforms quickly. At present, major Internet companies are basically inseparable from all kinds of cloud services, and they are also making efforts to expand the research and development of cloud servers.

Hence the popularity of light services based on a variety of mature cloud servers. Light services provide an out-of-the-box development experience compared to traditional back-end frameworks.

Developers don’t need to worry about infrastructure such as servers and databases, and don’t need to worry about test environment configuration, data backup and online operation and maintenance, just focus on the product development itself.

In fact, light services are essentially containers deployed on cloud servers, in which cloud functions, cloud methods and even cloud projects can be established. Developers themselves do not need to care about setting up various back-end environments.

Of course, this approach is more suitable for lightweight backend, such as Tencent cloud and byte light services are similar so-called backend low code implementation.

Therefore, for full-stack developers, low code and light service can help to build the platform quickly and conveniently to a large extent. Of course, it is also easy for single-end developers to build full-stack projects.

In fact, full-stack engineer is not a very lofty position. Compared with simple front-end or back-end engineer, full-stack engineer has a broader technical vision and global perspective. In the current technology environment, single-end engineers can easily do the full stack work.

Therefore, in the later stage of career development, full-stack engineers also need to specialize in one direction and improve the technical depth of a certain technical direction on the premise of ensuring the technical breadth. It will last longer.

As I do now, I use the technology stack of my job to do business requirements or technical reconfiguration, but when I participate in the construction of r&d tools and platforms, it is always the front-end and back-end clients.

Python, JS/TS, C/C++, Java, Go, Ruby.

Technology itself is open-ended, and once you’re in it, you can’t always write only in one language or one technology stack.

In different scenarios, different demand backgrounds and different products, the ability to choose the appropriate language, appropriate framework, and keep learning is the basis for continuous progress.

Every developer should, and can, be a full stack engineer.