What is a full stack engineer

Full stack engineer, also called full end engineer, English Full Stack developer. Refers to a person who has mastered multiple skills and can use multiple skills to independently complete products.

Global engineer.

 

Global thinking

The development of modern projects requires mastery of multiple technologies. Internet projects need to use back-end development, front-end development, interface design, product design, database, various mobile clients, three-screen compatibility, restFul API design and OAuth, etc., more avant-garde projects, and also use Single Page Technology such as Application, Web Socket, HTML5/CSS3, and third-party development such as WeChat public account Weibo applications and so on.
The web front end is far from being as simple as cutting a picture with a jQuery and AJAX compatible with various browsers. For modern web front-ends, you need to use modular development, multi-screen compatibility, MVC, various complex interactions and optimizations, and even you need to use Node.js to assist in the development of the front-end.
Therefore, a modern project is a very complex composition. We need a person to control the overall situation. He does not need to be a senior expert in various technologies, but he needs to be familiar with various technologies. For a team, especially an Internet company, it is very important to have an overall thinking person. [1]  

Communication cost

The larger the project, the higher the communication cost. Those who have done project management know that the manpower in the project is 1+1<2, and the more people, the lower the efficiency. Because communication is costly, people of different technologies will say different things, and the front-end and the back-end are bound to be frustrated. Everyone will fight for their own interests, and there is no such thing as a person who does nothing.
And the cost of a full-stack engineer is almost zero, because they understand all kinds of technologies and have a good idea, so they can do it all by themselves. Even in teamwork, it is much easier to communicate with different technical personnel. Letting a back-end and a front-end communicate is a matter of the same thing, let alone the designer and the back-end. But if someone understands the product, the design, the front-end, and the back-end, the results of communication are obviously different, because they can understand each other.

Start-up companies

For startups, the value of full-stack engineers is very large. Startups cannot be like large companies with talents in all aspects. Therefore, we need a generalist who can carry out all kinds of jobs one shoulder, and can stand alone and multi-faceted panacea. For start-up companies, it is impossible to say that all kinds of talents for DBA front-end and back-end clients are all available. Many jobs are not saturated, and they cannot be done if they are not hired. Outsourcing and quality are not assured, so full-stack engineers save money. A coup. Although the salary of a full-stack engineer will be much higher than that of an average engineer, the overall cost will be much lower.
Technology has two development directions, one is vertical and the other is horizontal, the horizontal is the Swiss Army knife, and the vertical is Moxie, who cuts iron like mud. There is no right or wrong in these two directions, and they will merge with each other to a certain extent. It's like the gradual progress of Chinese Buddhist meditation. In fact, in the end, enlightenment and enlightenment are the same.
If a company doesn't understand the value of full-stack engineers, the status of full-stack engineers will be embarrassing. To put it bluntly, full-stack engineers can do everything and know nothing. Once in an interview, the other party asked very basic questions and he couldn’t answer them, but he could make a product and knew what was going on. He wouldn’t make those mistakes, but he just couldn’t answer the concept. It is very easy to fail him. Therefore, when applying for an interview, sometimes he will suffer a loss, and he may not get a higher salary than those who have been deeply involved in a certain aspect.
Because he often shuttles through various technologies, he often forgets the syntax of the code and some APIs, so he often needs to check the API or even the syntax. He feels that I can hardly work without Google. In the eyes of some people, this is a manifestation of insufficient technology. What he memorized was just a key, an index of how to find the answer, not all. The human brain is not a computer, and it is impossible for him to memorize everything.
Author: Gu Peng
link: http: //www.zhihu.com/question/22420900/answer/21770992
Source: know almost
copyrighted by the author. For commercial reprints, please contact the author for authorization, and for non-commercial reprints, please indicate the source.
 
Make such a simple app:
a weather application, clean and refreshing interface, weather information at a glance. It can not only accurately predict the weather in the next 10 days, but also display historical weather information for a certain place. It has a custom reminder function, supports web version, iOS version, Android version.

Why do you want to make such an App? Because you like to travel, but did not find a weather app that can provide you with the weather information for the next month or a specific month; because you are lazy, you don’t have the habit of looking at the weather forecast every day, and you want the temperature to reach 30 degrees the next day Or when the temperature difference is +/-7 degrees, get a warm reminder; because you want to become a Full Stack Engineer, you must continuously train the abilities of each stack.


## Web version
You decide to use MySql to store user data and NoSql to store historical weather data. You use Redis as a cache to cache some of the most frequently requested weather data. You use Python to write the background, the function is simple, the background is not complicated, users register and log in, grab the weather data returned to a certain city, and the historical weather data of a certain place, and it will be done quickly.

The backend is developed and tested, and the next step is the web front end. You are well aware of the importance of a good UI design to an App. You also understand that UI design is not only for beauty, but more importantly, to improve the readability of information and the usability of the program. Fortunately, your usual accumulation comes in handy this time. You study hundreds of excellent UI design works that you have saved before, and you take out the classic Norman-The Design of Everyday Things from your bookshelf and read it again. In the end, you finalized the first version of the UI with white paper and black pen. It is simple and intuitive, without any redundant design, and the arrangement, spacing, size and color of all elements are just right. You believe that even if the weather is bad, users will feel happy as long as they use this App.

So start writing the front end. Ah, don’t worry, I forgot that there are also Icon and Logo, but I don’t know PS, AI, Sketch. What should I do? Let’s learn. You like to make friends in different fields. Just a few weeks ago, at an event, you met a friend who made a design. She spends an afternoon teaching you the basic use of Sketch and gives some opinions on your UI design. You invited her to dinner to express her gratitude, and then immediately went home and adjusted the UI according to some of her suggestions. This time you drew the UI in the PS, and Icons and Logo also did it together.

In the next week, you learn HTML, CSS, and Javascript, and get the front end beautifully.


## Publish the App and post
a status in Moments. Find someone to help you with a Beta test. They all ask you what App you are first, and at the beginning you simply answer a weather app. But you find that this does not raise their interest. You think you need to use words and wrap it up with stories. Not only is it an answer to other people's "what App" questions, it is also an important skill on the road to becoming a Full Stack Engineer.

You go to the homepages of all your favorite products and get some inspiration from their copywriting; you read the classic On Writing Well and find that good copywriting and good design are actually very similar to good code, both The focus is on communication, how to let others understand what you want to express without any effort. Your story should be attractive, your product introduction should be explained clearly within 1 minute, and make sure that your parents can listen to it without pressure.

Everything is ready and the product is online. The response is good, and users continue to increase. Many users want a mobile version, so you immediately invest in the development of the iOS version.


## iOS version and background optimization
You spend less than a week learning the basic grammar and tool usage before investing in App development. You know that Learn by Doing is the best and the fastest. Because I learned the basics of design before, UI and Icons were quickly settled, and the iOS version was released soon. The release of iOS has brought more user growth, and the pressure on the back-end server is quite high. You know it's time to optimize the back-end.

You opened 2 more servers on AWS and wrote a script to automate the deployment process.
You switch to the uWSGi protocol and use uwsgi as the Application Server.
You use Nginx for concurrency, load balancing...
......
......
 

 

 

 

Guess you like

Origin blog.csdn.net/cao919/article/details/51595326