Should you be a full stack engineer?

Source: Internet
Author: User
Tags mongodb web services ember js ruby on rails

Asaf Yigal is Logz.io's co-founder and vice president of products. Prior to Logz.io, Asaf co-founded Currensee with others, a social trading platform, which was later acquired by Oanda in 2013. Prior to Currensee, Asaf was responsible for managing and developing an End-to-end performance monitoring platform in Akorri, and had developed a storage resource management platform in Onaro. Later, Akorri and Onaro were both bought by NetApp. Prior to Onaro, Asaf led a research team in the Israeli Navy to work on the development of artificial intelligence systems and militarization applications. Recently, Asaf wrote an article about his knowledge and understanding of the whole stack of engineers.

You often hear about the term "whole stack engineer", but what does it mean, do you think you should be a whole stack of engineers? Let's explore the topic below. There are 3 basic concerns in the world of Web and software development: front-end, back-end, and full stack. Let's explain what they mean.

What is the whole stack of engineers?

Front-End engineer: When you open a Web site, everything on the screen belongs to the front end. The front-end engineer is responsible for creating the code behind the user interface. These engineers are not only familiar with HTML, JavaScript and CSS, but also have many frameworks. These frameworks have foundation, angular JS, ember JS, Backbone and Bootstrap, and so on. Front-end engineers work with designers and other experts to convert a Web site from a model to a pattern that can be used. Back-End Engineers: The Web site you visit every day has a network of servers, databases, and applications, and they collaborate to communicate the pages and data you request. The back-end engineers are responsible for building these components. They are good at programming languages such as Python,. Net, Ruby, Java, PHP, and so on to write programs in these languages. They also need to use a variety of database programs such as MySQL, SQL Server, and Oracle to manipulate information and pass it on to end users. Back-end engineers need to work with various managers and other members of the organization to do their job. All-Stack engineers: The entire stack of engineers to understand both back-end development, but also to understand front-end development. They are "all-round" engineers, familiar with the service side while also understand the client user experience. The entire stack of engineers understands every aspect of the Web development process and advises and guides stakeholders on overall strategy and best practices.

Role evolution

In the early days of desktop computing, we often saw a person complete the development of an entire application. As programs become more complex and more and more technology emerges, it is hard for one person to fully control all aspects of application development. In the early 21st century, some experts with specialized skills began to appear. As the complexity continues to climb, many programmers come back to simpler ways when Web 2.0 sites start to appear. Rather than building complex databases and enterprise computing networks, developers are deploying stable lamp stacks (Linux, Apache, MySQL, and PHP) and creating flexible object-oriented languages such as Django and Ruby on Rails. In this environment, the value of the entire stack of engineers is becoming larger as they become familiar with most modern frameworks and languages.

The regression of operational dimension complexity

But with mobile computing and the rise of iOS and Android platforms, we are back to a new era of complexity: Low-cost cloud servers such as Amazon Web Services and Microsoft's Azure, MongoDB databases, Node.js and angular.js, such as front-end technology, Docker and other container technology. These platforms, services, and frameworks all have their own characteristics. As a result, it is almost impossible for a person to become a full stack engineer who can master all the techniques.

Generalists and Professionals

This column more highlights: http://www.bianceng.cnhttp://www.bianceng.cn/PC/it/

In the current environment, the advantage of being a full stack engineer is that not many people have enough knowledge, experience, and communication skills to control the use of a variety of platform and framework projects, such as HTML5, machine learning, and Scala. Therefore, the high standard of the whole stack of engineers is always in short supply. The downside, though, is that for the entire stack of engineers, he needs to be proficient with these components, but it's very difficult, and there will be new technologies coming up in the future. You may be smart, but the components themselves are very complex and new languages and platforms appear every few months. It is extremely difficult to maintain a technical lead at all times. For this reason, professionals have their own unique advantages. Organizations tend to hire specialized roles, so professionals are better at deep knowledge and a narrow field of experience than other developers.

Salary of the whole stack of engineers

Whether you choose to go deep into the front end or back end, or you can position yourself as a generalist on the whole stack, it's good to look at the job prospects. According to statistics published by the U.S. Bureau of Labor Statistics, software engineers are one of the most promising careers in the next 10 years. In 2014, there were about 718,000 software engineers; On a nationwide scale, the average salary was about $95,510. The figure will continue to climb in the future. So what is the best job? It depends on your background, experience and goals. Front-end engineers need to master the following skills:

HTML and HTML5

CSS, CSS3 and Sass

Php

Javascript

JQuery, Angular.js, React,js and Node.js

WebSockets and AJAX requests

Browser development tools and debuggers

Python

Git

Backend developers should be proficient in server-side programming, language, and framework, such as:

C and C + +

Python

Javascript

Ruby on Rails

Php

Perl

Node.js and Express

Mongodb

Postgres

MySQL and NoSQL

Git

Web APIs

Go

If you want to move toward a whole stack of engineers, you should have a lot of knowledge and skills and be familiar with the various components mentioned above. In addition, you need to improve your personal communication skills so that you can manage and achieve better collaboration with front-end and backend developers. The good news is that the future is bright for every type of web developer, whether it be front-end, backend, or full stack. Keep learning about all the things that are valuable, learn new frameworks, languages and platforms, and maintain efficient communication with developers and end users. In this case, no matter what the world changes, you will always remain invincible.

SOURCE InfoQ

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.