What is a full stack engineer?

I don’t know when the word full stack was used. But the term was certainly not invented domestically. Should be foreign, foreign companies are more in need of full stack engineers.

What’s your first reaction when you say full stack? You can write a little bit on the whole back end. If that’s what you think. So this is a bit of a misunderstanding for full stack engineers.

Most of the “capital entrepreneurs” in China just treat you as a tool man and code farmer. Not as a programmer. You’re just a tool person for quick iterations.

What is a code farmer? You don’t know what needs to be done in the production and business of the whole project. You know, I only need to finish the function module of this piece of work today. Maybe I just need to connect the interface of the back end to see if the operation logic here is correct.

But have you ever thought about, in fact, the current back-end write interface they have not considered what data structure is most convenient for the front end. Anyway, I don’t care, CRUD directly give all the information of the database to your front end, don’t bother me. When front-end docking, I often do not know the background business. Anyway, I only know how to dock other interfaces. In this mode, the global thinking is missing, which is undoubtedly the biggest tragedy of software engineering.

There is a metaphor, wechat public documents, and the development of Alipay documents. The interfaces are completely different from each other. Wechat’s development documents tend to be more like this, without considering users and callers. There is no doubt that the person who designed this interface is seldom to do the work of the client side. He used his own and the client to call the development experience of colleagues to design the interface, and lacked the experience of the client side. Lead to wechat public number development documents, and a lot of interface calls, you really want to wish the company closed, but very rogue. Compared to the development of Alipay documents and the use of feeling is really comfortable too much. Antd, Alipay, payment documents, Spring Cloud, Alibaba and other tools are relatively easy for you to use. Alibaba is really standing in the development perspective to solve the pain point of development efficiency!!

Is full Stack really one person doing everything?

The domestic view of the full stack is the front and back end production, one-stop service programmers. But come to think of it, how can you make a complete system on your own when people’s energy is limited? Although you can write the business all by yourself, it is not advisable to stand in project management. Why is that?

Having all the functions in one person increases the risk of a project, metaphorically speaking, when you are writing code you will get stuck and have bugs that you need to fix!! . At this time, when you have to reject the problem, the progress of the later project will be delayed. Another person should write the back end at this point. From a System Integration Engineer (PMP) perspective, the risk of doing a project like this is not desirable.

At this point, if you are doing the back end, you will find that this is not a multi-process. This should be the full stack development model. Work interchangeably, as both the front and back ends understand, so during development it is up to the team to design requirements for how the front and back functional modules/data should communicate. In this way, in the process of development, people who have written the front end can check some problems by themselves when docking the back end.

I’ve heard from a lot of friends that sometimes you can wait too long to connect to a port (but that’s a good thing because you can touch the fish and throw the pot to the back end). Or, if you have a problem, it could be a code problem on the front end, but the front end keeps blaming the back end. When the back end checks the log, it doesn’t find anything at all. This is also the problem that most enterprises encounter after many separation, which is caused by the lack of global thinking.

Said so much, just want to say that the full stack engineering thing is not a person to do a dragon service, more time is similar to multithreading as must line development. Once in a while, you need to multithread to dock with someone else’s code and review it. Reading code is also a learning process. But how often do you go back to code review other people’s code during actual development? Only if you want to copy its functionality.

Does it exist to wipe people’s asses?

If that person’s code isn’t right, or if there are a lot of problems, isn’t that what I’m doing? This situation is possible, if this problem, it can only mean one thing! There was a problem with the team’s code quality control. I just want to ask what unit tests are for?

Isn’t unit testing just a way to check if there’s a problem with the functionality he writes? If you get this step right in your unit tests, and you make a few small changes, it’s easy for people who are generally nice. After all, THE KPI is right there. If you want to wait, you can throw it back to others to modify.

Full stack is to avoid development schedule risk

When you’re working on a project, no doubt you’ll often encounter some situations, which are job-hopping. What would you do if you were understaffed?? The usual management will gently retain you, this time will ask someone else to do your job. Or a raise asking if you can stay. Nothing more than these two results, domestic enterprises most commonly used means.

So what would you do if you weren’t hired within a month and you were the administrator? The project schedule is right there. Contract law is there. You can’t just say you can’t let someone go for a month, can you? Here are three choices you’ll make

  1. It’s a rough and easy way to do it. But you’re not going to have an easier time there, and the workload is bound to increase. Chinese as long as you refuse to accept me, I will let you xx.

  2. Write the server/Fornt code at the same time. If you are suddenly asked to write about an area of ignorance without systematic learning, it is extremely painful for developers, even search engines are just a mystery in front of you. But the funny thing is that in many enterprises, once you accept this way, you will be responsible for all the following things. The Chinese people are most afraid of taking the blame, and you will label you as a full-stack engineer, but he is not, because he has not been through the special system learning.

  3. Dispatch other project team to coordinate, but often project team staff is also very short. You ask my project team to lend people, I will lend ah? Don’t forget that project teams compete with each other, and each project team in a company is like a small studio.

Having said all that, full stack engineers can actually avoid this risk. But install the urine of the bloodsucking capitalists in China, surely you can finish it alone, save the cost first. You may never see another partner to fight with… .

Sometimes if you ask for leave for a project, in order to ensure the smooth progress of the project, you can go to the full stack project to troubleshoot problems. What happens in this case? For example, operations suddenly tells us that there is a bug on the line that needs fixing.

My colleague in this area just took a leave. The most annoying thing is to ask you to come back and fix it. Then the full stack engineer can avoid this kind of thing.

Unification of programming specifications

Speaking of this problem, many people in China think that the programming specification belongs to, code writing unified, unified format is ok. But this is not the case, the ultimate purpose of programming specification is to ensure the unity of programming ideas!! But how many companies can do that? It must be a big one. Taro. Js, for example, clearly shows the code specification, if you do not install his specification to write, in the process of webpack compilation, more or less there will be all kinds of strange problems. However, many developers using taron.js do not read this section!! In the actual development process, encountered problems will always be isset and search engine programming. Many of these problems can be avoided if you take a look at the taro. Js programming specification.

Full stack can accept others and work for others premise is the same, need unified programming specification. Java JS is a class language written in many strange ways. The expert and the novice understand differently and write different code. Why is something written in a language like Python Go understandable to both experienced and novice speakers? They have unified programming specifications and standard libraries from the beginning of the design. The same is true of the framework, which regulates all constraints during the design process.

Compared with other programmers who are separated before and after, full stack requires more recognition of the overall system, which can better simplify the pain points of development in the process of redevelopment.

I don’t know if you know GraphQL? If this author just do front-end or back-end, I guess he would not think of this idea.

Not proficient in full stack knowledge?

Let’s take a look at my interview feedback for JAVA 25K.

Take a look at the front-end 21K interview feedback

In China, many people’s cognition of full stack is that they can write code and are not good at it. To put it plainly, they are code farmers. Such a person is not a full stack engineer.

Full stacks that are out of proportion are false full stacks

Feel the domestic full stack is either front end/ratio imbalance, hit for example you will be front end 80%, but back-end knowledge only 20%. Since it is already the era of JWT/LocalStore, most of the front end to write back end is also written interface, but there is no systematic learning of the back end. There are plenty of people who call themselves full stacks. Cookiet, Seesion and the like have probably seen these questions in interviews, but what is the role of practice? Shouldn’t they think of front-end development as a docking interface? Cookiet is just a tool to store data, but in the actual development process, there is really no edge.

Actually I want to say that JWT is just one way, but if you want to save effort in the process of making your Web, what do you do on the Web side? If you have studied NGINx, you can reverse proxy directly, and then the Web front end can store JWT directly in session. So what you’re doing with the Web is you’re going to have a solid authentication management, expiration time that’s going to be done by the session. Other terminals can communicate as they are. We just need to add a session judgment JWT in the place of the JWT check. If you’re using session and you don’t have it, you go header. The client also does not get the so-called JWT because the session value is stored on the server. Isn’t that a lot of pressure on the server side? I also want to visit, in order to know the security of JWT, what is the difference between Redis? You can store sessions in Redis as well.

Or to put it another way. Backend programmers are called to see how the admin page fixes this embarrassing problem. This kind of person in this kind of environment for a long time to work, for a long time also mistakenly people themselves is the whole stack, once out after. In fact, it’s still the back end, just a little bit more front-end knowledge than the pure back end. His proportions were completely out of whack.

The ocean of knowledge on the front end and the ocean on the back end is unfathomable. I’ve read every minute of the interview for six years.

Then the real whole stack is 5 and 5 open, there is no weak and strong. He is a whole and needs to be familiar with every piece of knowledge (85%). The biggest difference between a coder and a programmer is that a coder can only code, while a programmer is more about software engineering.

Software engineering is not coding but more of a project. Do a project should have a project charter, project plan, risk control. In the process of project production we are more projects for demand analysis, and then in the implementation of demand, so for programmers to the most important step is the selection of technology, if you are not familiar with each knowledge point, you can do the best scheme, that is false. I don’t believe that the risk of the project can be controlled if you choose the technology in a disproportionate way.

I’m sorry if you say that you only use coding to implement the creation of functional modules. If you break down all of these points, you won’t know how to tune them when you run into problems (risks). Of course, this scenario is not the coding process, but the actual problem online.

Not to the product manager/project manager development of the full stack are all brush rogue.

Having said that, why do you want to do full stack. In fact, to put it bluntly, full stack engineers exercise more global thinking in software development projects. Another way to say it is product thinking.

Didn’t you say full stack is interchangeable writing code? Can you still practice global thinking by piecing together code? You forget one thing, because you are in this interactive programming mode, you will need to do code review more. Reading code is also a learning process. You learn the business in your mind when you look at someone else’s code. I believe that many friends in China write this function is finished, code review these care me shit? Only if you have too much time to read other people’s code.

After working in this development mode for a long time, you will have a deeper understanding of the production and risk control experience of a project. Such experience can only be experienced by yourself. I don’t know how to say it, but you will understand it naturally when you have done code review. Of course, your usual communication is also a process of training a product manager how to communicate with others. Is it reasonable to do so?

Isn’t the product manager trying to sort out the requirements that are reasonable and achievable, and then talking to the programmer again? Communicating clearly to describe requirements and implementation is also a required skill for a PM.

Collaboration, communication, and skills between teams can be learned during this alternating full stack development process. This is a project team management course. I won’t go into details here. Full stack development is an overall control of the project. Product/project managers should have overall control over a project. Only when making functional realization and designing functional modules can they have better control over the plan and construction period.

Of course, the cost of domestic choose and employ persons is relatively low, because there are many people, there is no lack of working people, anyway, you do not do a lot of people. You can split everything up into different departments, and that’s why people with technical backgrounds, what do they do in the highest positions? Department manager!!

You are going to be project manager/product manager if not manager of this whole thinking development. To really control the implementation and risk control of a complete project. If you don’t have those thoughts. You can’t be a product manager/project manager.

Often the most funny thing is that domestic product managers are evolved from designers, and it is common to hear many UI designers call themselves product managers. Does THE UI really understand the program? The UI doesn’t understand the program, and I’m curious, do they design the product to be functional? If not, who will bear the risk??

myth

  1. Full stack is not a person to complete a dragon service!! I don’t know who defines this development model
  2. Full stack technology is no worse than front/back end (domestic programmers are just too busy)
  3. Full stack exercises global thinking. You can better learn the whole process of software development, as well as the estimation of risk, better calculate the estimated cost of the project.