The entire stack of engineers, from Facebook, initially emphasized that engineers can develop programs as well as deploy and perform operations. For example, the development and operation of many large Web sites are separate. But with the full stack of engineers, the site's development, deployment, operation and maintenance by the entire stack of engineers to do their own. Development emphasizes mastery, and operation and maintenance emphasizes synthesis. The combination of the two requires the engineer to have a cow in both depth and breadth.
Popular understanding, the entire stack of engineers can be said to be capable engineers, small to the card cable head, big to do large-scale website architecture design. However, such a definition is too broad, and it is estimated that not many people can do it. We still have to limit the entire stack of engineers in the field of software more appropriate.
It is believed that a competent full stack engineer, Linux, SQL, HTML/CSS, C + +, Php/python/perl must be proficient or proficient. Specifically: Linux. Whether the front-end development-oriented, or back-end development-oriented, the daily use of Linux systems, common software (Apache, MySQL, etc.) compilation, installation, basic configuration, etc. are to be mastered. Sql. Do not understand the relational database, it is difficult to call a qualified software engineer. Today, SQL is not only used for server-side applications, but also for the development of smart devices, such as SQLite, which is inside Android. It is a necessary quality for software engineers to make clutter data into a record of structured storage and to query efficiently. The storage design of database records sometimes plays a decisive role in the performance of applications or software. Html/css. HTML or XML, CSS, and even JavaScript are things that Internet engineers have to master. Html/xml/css is not called a programming language, but its design, especially CSS, is very commendable. All-Stack engineers must be able to use Html/xml/css to write Web pages, even if they're static. C + +. Needless to say, these two do not understand, it is basically not possible to become a full stack engineer, because you certainly do not understand what POSIX is, how an application is running, let alone solve the problem. One of the php/python/perl/javascript. As a full-stack engineer, you must be proficient in a scripting language. The scripting language is the perfect choice if you need to write a small program to do a specific job in the real world. If all the programs are written in C + +, it's probably exhausting.
There are many technologies in the field of computing, but others do not need to be proficient, but they require the ability to master and make things in a relatively short time, or to quickly locate problems and solve problems. After all, it is unrealistic to expect a person to master all the fresh technology or gadgets that are in the midst of a technological explosion.
In short, the whole stack of engineers is actually focused on the ability to solve problems. But it is impossible to have a good problem-solving ability and a wide range of knowledge.
And how much effort is needed to become a full-stack engineer. This is really difficult, no five years of programming practice and actual project exercise, is not possible, most people need 10 years of time, but also have a relatively broad and deep theoretical knowledge to do the basis. As for China, many yards are 35 years old and are reluctant to continue coding, so basically only about 1% of engineers have the opportunity to become full-stack engineers.
With the development of the Times, the progress of science and technology, the era of universal programming will come. When you are a teenager or a dozens of-year-old kid who can program, the only place you are better than them is to know more, learn faster and do well. Otherwise, how do you do the role model.
The last word: An engineer who defines his or her interests or work category on a single platform, a single programming language, has no future.