Why is the future the world of all-stack engineers?

Source: Internet
Author: User

Technology has progressed rapidly over the last few decades and will grow faster in the coming decades. Today's technology is falling faster than ever before, with a team-made web app that needs only one or two people now.

At the same time, due to the change of organizational structure, it also determines that the responsibilities assigned to each person will be more and more. While we see the advantages of factory-generated production, we see the changes brought about by lean thinking. It is this change that allows more and more experts to move to the full stack, allowing better communication within the organization.

You'll also see two different learning modes for experts and the full stack, as well as the future of the full stack of engineers.

A History of technological innovation

From the beginning of the CGI to the MVC pattern, and then to the front-end separation of the architectural patterns, are constantly reducing the threshold of technology. And the lowering of these thresholds is enough to get one or two people to do most of the work.

Cgi

20 years ago the site was in a static form, such a site does not require too many people to maintain, management. Then, people invented the CGI (Universal Gateway Interface, English: Common Gateway Interface) to implement a dynamic website. is an early site architecture diagram:

The URL for this site was similar to: Https://www.phodal.com/cgi-bin/getblog

(PS: This link exists for the sake of explanation, and there is no real existence.) )

When the user accesses the page above, it accesses the corresponding Getblog script under the Cgi-bin path. You can use the shell to return to this page:

#!/bin/shecho Content-type:text/plainecho Hello,world

BlaBla, various codes are mixed together in a chaotic manner. Have to say: This code in 2012, I also saw some. Simply put, the code structure of this era is this:

It was a nightmare. Today, though, it's like those new PHP programmers write code.

Well, then we can discuss the MVC pattern.

MVC architecture

I have reason to believe that Martin Fowler's "Enterprise Application architecture Model" must have been very popular at the time. The code is changed from the above coupling state:

Similar people are already familiar with such a structure, we will not explain more. If you don't know it very well, you can look at the back part of the book.

Background service and front-end consistent architecture

In today's view, we can see the schema as shown:

The background in the unknowingly has been serviced, that is, only provide API interface and services. The front end at this point has tried to combine with the app side so that they can stay consistent.

The core problem of software development: communication

Software development has been a big company's patent for the past few decades, and small companies simply don't have the capacity to do it. In the decades since the invention of computers, the development of software is what big companies can afford. Generic non-technical companies cannot customize their own software systems, only to purchase existing software. And as the cost of technology falls, today's smaller companies can hire one or two of people to do the same. This evolutionary process is really interesting:

Each of these processes is essentially a solution to the problem of communication. From waterfall to agility is to solve the problem of communication within the Organization, from agile to lean not only optimizes the communication problem within the organization, but also strengthens the relationship with the outside. In other words, Lean combines a part of the internet thinking.

Waterfall Style

At the very beginning, we designed our features in advance, then coded them to release our software at the right time:

However, this development is difficult to cope with the changes in the market-when we spent a few years developing a software that was needed a few years ago. At the same time, due to the complexity of software development, replication system needs a lot of system integration work in the later stage. Such integration work can take a lot of time-weeks, months.

When people are aware of this problem, they begin to improve their workflow. The emergence of agile software development can explain why product managers often change demand. If a function itself is not necessary, then why take the effort to develop. But if a function is not designed in the early stages of design, then the need for change is inevitable.

Agile type

Existing Internet company workflows and Agile software development are similar in many parts, with iterative, analytical, and so on:

But as far as I know: most Internet companies in the country do not write tests, no code review, and so on. Of course, this is not an article on how to practice agile. There is a big difference between agile and waterfall development: communication problems. The traditional software development after the research is completed is the analysis, the development and so on. Agile development will emphasize the communication problem in this process:

Throughout the process, there is a constant emphasis on communication, but there is a problem: the organizational structure itself. Such an organizational structure as shown in:

If the marketing department/Product manager does not sit with the research and development team to analyze the problem, then the problem is much more. When a requirement is encountered in the process of implementation, which department is the problem?

Similarly, if our research and development department is such a structure:

Then in the development, on-line process will still encounter a variety of communication problems.

Now, let's go back and look at the full stack of big company experts and small companies.

The experts of large companies and the full stack of small companies

If you read a lot of technical articles about the whole stack and the experts, you will find that different people are emphasizing different directions. Big company articles like to emphasize to become a field of experts, small companies like small and beautiful team-full stack engineer.

As we can see: big companies and small companies are solving different types of problems. For big companies to solve performance problems, small businesses need to rely on almost all-powerful people to survive. Also, big companies and small companies are working overtime. In this sense, we can see that large companies are exploiting the labour force.

Experts

Most of the articles we have seen about the technical staff should be experts, and most of them have been written by experts in a technical field. And the interesting thing we can find is that they are all managers. Managers are motivated by hiring and therefore need to be experts in the field to help them solve their problems.

Full stack

Similarly, most of the articles we have seen about becoming a full-stack engineer are written by the CTO of a startup company. The CTO of these startups is also mostly full-stack engineers who need to recruit full-stack engineers to help them solve their problems.

Two different types of learning models

And I don't know if you've noticed one thing: Experts are also emphasizing "how long". Because there are few experts who rely solely on the technology of one field, technical experts have to open up different fields according to the needs of the company. After all, "company" means that all capital is constituted by shareholders ' contribution, and a kind of enterprise form is established by law for profit-making; "The management assumes that the technology itself is interlinked, since you have a fairly high length of board in the technical field, then entering a new technology is not a difficult thing."

As a technician, we are a sub-domain expert in this field. As such an expert, it is not very difficult for us to expand our learning to another field. Drawing on our previous learning experience, we can quickly grasp the knowledge of this new subdomain. As we have seen, we can quickly make up the short plates in the diagram:

One of the most interesting discoveries in recent explorations is that if you rely on the 20/80 rule, then the learning time of becoming an expert and full stack is quite good. At the very beginning, we had to reach a 80-point level in our all-stack engineering and experts in a technical field.

Experts, then, need 80% of the time to delve into this technology field. and full stack engineers, you can rely on this 80% time to open up four new areas:

Although this is theoretically the case, experts have a cross-cutting learning disability-to apply the existing paradigm. The whole stack also has learning disabilities-how to become an expert, but how to learn new areas.

Problem-solving ideas: different ways

The interesting thing is that being an expert or being a full stack depends on the nature of the person, which is also determined by two different personalities. Becoming a manager or technician looks like a simple division, and being an expert in a technician or full stack is another division. It depends on how people think about a problem: whether it's a matter of external or internal solution. Here's a picture of what I think:

And this kind of thinking is based on the different things may happen some difference, but in general is similar. When you encounter a problem that requires a wheel, we see two different ways.

For all-stack engineers, they like to rely on external thinking to create disruptive thinking. such as the Angular.js framework is an example, the front end combined with the back-end development language Java thinking. And experts rely on internal conditions, creating a different type of adaptive innovation. such as the previous popular backbone framework, adapted to the situation at the time of the production.

The future of all-stack engineers: no stack

Full stack engineers themselves should not be confined to front-end and background development, but can try to open up a wider range of areas-because the entire stack itself is dependent on the ability of the engineers themselves, it is this excellent learning ability allows them to access to a wider range of knowledge.

Full stack of short plates

If you have tried to interview a full stack of engineers, how will you interview them? Take out all the different areas of the problem you know and ask them again. Yes, this is the question that the company that hires the full stack of engineers will ask you.

People think that all-stack engineers will, this is a clear misunderstanding-but it is difficult to change this misunderstanding. Finally, the result is that everyone thinks the level of the full stack engineer is the same. In other words, people simply don't know what a full stack engineer is. In your usual job, your team knows you have a lot of knowledge in different fields. And in the impressions of those who don't know you, guess what you're going to be.

Thus, it becomes a stigma and a problem that seems difficult to change at the moment. In this regard, only as far as possible to understand some common problems, and not to understand all the problems. During an interview with a full stack of engineers, there was an interviewer who prepared several questions in different languages (Javascript, Java, Python, Ruby) to ask me, I just want to say ciao--Italian: Hello!

Apart from this problem-people don't understand what a full stack engineer is. There is one more problem that we have just talked about becoming an expert.

No stack

Let me not hesitate to choose when the full stack of engineers have two reasons:

    1. The world is full of mysteries, but I just want to unlock the parts I'm interested in.
    2. Without exploration, where is the true love? You have not explored the world, you say this is your favorite area.

When I first saw the name of the full stack engineer, I discovered that I was already a full-stack engineer. Because my Learning route is quite unique:

Primary and secondary schools: programming languages, High School: Operating system, kernel, game programming-University: Hardware, Web Development, work: Backend + front End

And at that time I was very interested in SEO, I found this analysis and marketing seems to be able to do. Then went to the growth hacking developed:

And this is the full stack of learning to bring advantages, learn more things, learning ability to become stronger. As you learn, you are more likely to enter a new field.

Source: Huang (Public number: Phodal)

Why is the future the world of all-stack engineers?

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.