With my personal experience, completely dispel your doubts and misunderstandings about full stack programmers

Hello everyone, I’m Fishskin. I’m sure all of you who learn programming often hear the term “full stack”, but do you know what a full stack is?

I’ve seen a lot of questions about full stack programmers online, and even a lot of misconceptions. As an interest-driven full stack programmer, I couldn’t bear it, so I quickly sorted out the ten most common questions, answered them one by one, and finished this book, hoping to eliminate everyone’s doubts and misunderstandings about the full stack.

1. What is a full stack engineer?

For those of you who don’t know what a full stack is, let me introduce you.

Programmers today have many directions, front-end development, back-end development, testing, algorithms, etc. The front and back ends are the most popular.

As the name implies, the front end is the interface that the user can see and use at the front. Front-end programmers write these interfaces and figure out how to more efficiently produce beautiful, stable, experienced, and high-performance pages.

The back end is the tool man who hides behind, saves and processes data for the front end, and silently provides services. Back-end programmers implement functionality by designing and writing logical code and figuring out how to make it more usable, more stable, faster, cheaper, and more people can use it at the same time.

On the other hand, a full stack programmer can do everything from the front end to the back end, even testing, and so on. One person can do the whole product by himself!

Well, we have an idea. We just need a full stack programmer.

2. Is full stack better than other developments?

Every time I mention my profession to others, they hear, oh, my god, all stack? That’s awesome! As if full stack programmers are better than front-end and back-end programmers.

No, everyone has a limited amount of time to learn, and full stack programmers just split their time between front-end and back-end, and maybe a little product. This will inevitably distract the energy, and the depth of knowledge learning is usually not as good as the students who focus on the front or back end.

Why does that give you the illusion that the whole stack is stronger?

I think there are two main reasons:

  1. Full stack programmers are relatively rare.
  2. When you study in one direction, the deeper you learn, the harder the progress is and the less noticeable the improvement is usually. Take the front-end for example. When you first learn how to write and style pages, every new syntax you learn enriches your web pages. But when you get to the later stages, like performance optimizations, where the page load time goes from 3 seconds to 2 seconds, a little bit of optimizations may require a lot of research, but to the average user, it’s basically the same. By the time you’re done digging into this, someone else may have already learned all about the background framework.

3. Full stack programmers get paid more?

Of course not!

As with the previous point, everyone’s time and energy are limited, it doesn’t mean that just because you can write a little bit on the front and back end, one person can replace two people’s work, and the boss will offer you a higher salary. Salary is determined by many factors, such as company, department, position, region, level, and of course, your personal ability.

Take myself for example, although I am a full stack, but compared with other goose factory at the same level of the small partner, the salary will not have too big difference, and the front end and the rear end of the salary is also a unified standard, this point in the school recruit salary small program can see.

4. More work for full stack? More overtime?

Of course not!

Again, you’re one person, you have a limited amount of knowledge, you have a limited number of hours in the day, and it’s impossible for your boss to make you work two jobs, even on a cost-saving basis, unless he’s unscrupulous and doesn’t consider the project’s lead time.

However, full stack programmers can be more “miscellaneous”, because you can write everything, so the boss will prioritize you when it comes to staffing.

Take myself as an example, which project front end of the next group is short of manpower! Ok, I’ll do it. What project is missing a backend! Ok, I’ll do it. This project is too busy at the front end, why don’t you do both at the front end together? Okay, what the hell am I.

Although it may seem like doing everything, it must be a lot of work. However, full stack programmers tend to be more business oriented than architecture, and are less difficult and specialized than students who are more in-depth in one area.

As to whether to work overtime, besides the job allocation, still should see oneself working method and efficiency.

5. Full stack Programmers better job hunting?

Quite the opposite!

First, many large companies don’t hire full-stack programmers, and there are fewer jobs. You can’t do two jobs, so why not hire a more professional front end and back end?

And just because you know both the front end and the back end doesn’t mean you can get both. There may be some overlap between the front end and the back end, such as computer basics, but the focus is completely different! The consequence of trying to balance things out is that you get more and more confused and end up rolling over in either direction.

Of course, startups prefer the full stack, because it saves costs.

In addition, Tencent also has a full-stack development direction, with certain requirements on the front-end and back-end, and different departments will have different emphases.

6. What does a full stack programmer do every day?

The whole stack is also a kind of development post, what can also do special, every day is friendly communication with the product sister, and then design, knock on the code, bug change, incidentally drop a few hair what.

7. What are the benefits of being a full stack programmer?

From my own experience, if you are a full-stack programmer, you may have to do both the front and back end of a requirement, so you don’t have to communicate “friendly” with other programmers, which can reduce communication costs. There is more room for your own design and development. It is up to you to decide whether to write logic on the front or back end, and what is more convenient and reasonable. This will deepen your understanding of the whole business and system architecture and give you more say when discussing products or other students.

Also, if you are working with others and a front end says to you, “Gee, this front end is a bit of a pain to implement, leave it to the back end.” If you don’t know the front end, you might actually think it’s a hassle, and you might take the code you should be writing on the front end. But if you both front and back, you can help him think of a more reasonable or more convenient way to achieve, he found that he did not say so complex, may just do not want to do, in fooling you, want to dump work.

This will not only increase your workload, but also increase the efficiency of your collaboration and move the project toward a more sound architecture.

In addition, the whole stack programmer in the process of learning, knowledge more widely accepted, plus a lot of programming knowledge is associated with each other, so they learn new knowledge, such as the technical framework, some at the knowledge that can be associated with you, to quickly accept and understand, even said to fit will be able to write a document.

8. Should I be doing full stack?

I think before, someone on the net said to learn the front end is good, we said: I want to learn the front end! Someone said that the back end is good, we said: I want to learn the back end!

Cause a lot of friends to think, what the hell am I learning?

Then I am a full stack engineer. After explaining the full stack to you, I wonder if you will have this idea: since there are so many advantages to being a full stack programmer, I want to do the full stack too! And front end and back end I both learn, don’t need to tangle?

Don’t think so! If you can’t learn the front end, you can’t learn the back end. If you can’t learn one direction, you still want to learn more than one direction?

Whether to become a full stack programmer depends on your personal interest and time, but do not follow the trend, do not follow the Internet said full stack everything to learn, is awesome, you also believe, the result of everything to learn a little, scattered limited time and energy; Plus not necessarily interested in, which leads to nothing well.

Of course, if you are interested in other skills, you can learn more, but you must decide on a direction for further study. After all, most people learn to code just to get a good job and make a lot of money. How can you compete with others who devote all their time to one skill?

In my case, when I first started programming, I heard the term “full stack development” for the first time. I didn’t know anything at the time, but for some reason, hearing “full stack” made me feel awesome, and I decided I wanted to be a full stack programmer. So at the beginning of university, I learned everything: front-end, Java backend, Python, C++, crawler and so on. I thought I learned a lot, but when I looked for an internship in the summer vacation of sophomore year, I found that no company needed so many different technologies! Besides, I am not good at every technical level. Although I can write codes, it is far from enough for the interview.

So AFTER that, I focused on learning Java backend, and then I also focused on Java backend in my internship and campus recruitment, which helped me pass the interview and get the offer from the big factory. During this period, I also learned a lot of other knowledge out of interest, but all of them were for improving my back-end development level, such as network, cloud computing, etc. The front end, which I had been focusing on, slowed down a bit and was more of a tool to show off my back-end development.

Why is my current position full stack? In fact, it was a coincidence that I was interviewed for background development, and later I arrived at the company to find that it was in the direction of full stack, and doing everything. However, this is also related to my continuous learning of knowledge in various directions before. After work, I am still driven by interest. While in-depth learning of Java, I have learned knowledge in various directions to expand my vision and make continuous progress.

In the short term, I recommend that you set a direction in which you can pursue the diversity and breadth of technology, but only if your main direction is good. Bite off more than you can chew, and there’s no need to put too much pressure on yourself.

But in the long run, I think everyone should be a full stack programmer! If you want to become a technical Leader, you need to have a broader range of knowledge and a broader vision and pattern. For example, my current Leader is able to have his own unique opinions on front-end, back-end, algorithm and product (otherwise, his subordinates are lazy and idle). Of course, this takes time to build up and you don’t have to learn everything in depth, but it’s always good to learn more.

9. Is it harder to be a full-stack programmer?

I have a direction is not good, the whole stack will be at the same time the front end and back end, it must be very difficult!

No, as mentioned above, you can focus in one direction first. When you learn in one direction very deeply, in fact, you have accumulated a set of learning methods, but also to the information on the Internet, then you can learn other directions, it will be much easier.

10. How to become a full-stack engineer?

I read a lot of full-stack books, such as Self-Cultivation for Full-stack Engineers.

I think the most important thing is: interest + practice + accumulation + delayed gratification + continuous learning.

Without interest, learning anything will be very tired, so find your own programming fun.

Without practice, it is all theoretical knowledge, just like learning English, you can read and write, but not speak, so you lose the meaning of learning programming — technology is to serve business.

If you don’t accumulate, you learn and forget, you learn and forget the back end, you learn and forget the front end, how do you become a full stack?

Without delayed gratification, it’s easy to settle for nothing once you’ve landed a job. Why would you even think about learning a new direction?

Of course, the most important thing is to keep learning, even if there is no time to learn new directions, you can also learn other knowledge through some public accounts, technical blogs, RSS and so on.

For example, follow my public account [programmer fish], I myself is a full stack programmer, will share with you all the direction of programming learning experience and technology, I hope to help you to become a full stack engineer in a subtle way!


Believe you are capable, and you will be!

I am fishskin, the original is not easy, if you think the article is good, I hope friends point support, give me some creative power.

Recently, I am still developing my programming navigation (www.code-nav.cn), a project to help you find programming resources, welcome to use!

How did I get the offer from Tencent, Byte and other big companies through self-study in college? You can read this article and no longer feel confused!

I learn computer four years, mutual encouragement! Co/q0mS) (t. 1 yb.