什么是全栈工程师

如题所述

近国内外都在流行一个词叫Full Stack,中文翻译过来叫全栈工程师,也叫全端工程师。微博上很多专业人士都在讨论全端工程师,有赞有毁的。我对全端工程师的定义是:掌握多种技能,并能利用多种技能独立完成产品的人。打外比方,全栈工程师就是一个能独立盖一幢10层小洋楼的人,而普通工程师,则是可以和一群人盖一幢摩天大楼的人。至于要掌握哪些技能,我觉得这个要跟从事的行业与技术方向有关,做互联网的和做软件的是不一样的,即使是做互联网的,后端也可以分为很多种技术流派。

8/2定律在哪都适用,全栈工程师就是掌握20%常用技能的人,但这20%的技能会有80%的几率被用到,剩下那80%不常用的,让我们Google吧。

有人说,全栈工程师在中国已经很多年了,他们叫站长。这个说话有点靠谱但又不那么靠谱,我自己也做过站长,深知作为一名站长需要掌握很多种技术。不靠谱的是,很多站长其实并没有真正写过多少代码,而是熟练利用一些建站软件来建站。

全栈工程师的价值

有人说了,你再牛逼,你懂五种技术,你能干五个人的活吗?全栈工程师并不是说一个人能干几个人的活,而是要从多个方面来看这个问题。

全局性思维

现代项目的开发,很少说只用到一两种技术的,特别是移动互联网大潮下。随便一个互联网项目中用到的技术,就会需要用到后端开发、前端开发、界面设计、产品设计、数据库、各种移动客户端、三屏兼容、restFul API设计和OAuth等等,一些比较前卫的项目,可能会用到Single Page Application、Web Socket、HTML5/CSS3这些技术,还有像第三方开发像微信公众号微博应用等等。

Web前端也远远不是从前的切个图用个jQuery上个AJAX兼容各种浏览器那么简单了。现代的Web前端,你需要用到模块化开发、多屏兼容、MVC,各种复杂的交互与优化,甚至你需要用到Node.js来协助前端的开发。

所以说一个现代化的项目,是一个非常复杂的构成,我们需要一个人来掌控全局,他不需要是各种技术的资深专家,但他需要熟悉到各种技术。对于一个团队特别是互联网企业来说,有一个全局性思维的人非常非常重要。

像如果是我经手的项目,我肯定会注意到网页优化,也会考虑到API来兼容各种客户端,更会考虑到三屏兼容的问题。不会说项目中完全使用AJAX而不顾SEO,也不会为了功能性而忽略访问速度,我会很好的把握这个平衡,因为我知道它们的权重与实现成本。

沟通成本

项目越大,沟通成本越高,做过项目管理的人都知道,项目中的人力是1+1<2的,人越多效率越低。因为沟通是需要成本的,不同技术的人各说各话,前端和后端是一定会掐架的。每个人都会为自己的利益而战,毫不为已的人是不存在的。

而全栈工程师的成本几乎为零,因为各种技术都懂,胸有成竹,一不小心自己就全做了。即使是在团队协作中,与不同技术人员的沟通也会容易得多,你让一个后端和一个前端去沟通,那完全是鸡同鸭讲,更不用说设计师与后端了。但如果有一个人懂产品懂设计懂前端懂后端,那沟通的结果显然不一样,因为他们讲的,彼此都能听得懂。

创业公司

对于创业公司来说,全端工程师的价值是非常大的,创业公司不可能像大公司一样,各方面的人才都有。所以我们需要一个多面手,各种活都能一肩挑,独挡多面的万金油。对于创业公司,不可能说DBA前端后端客户端各种人才全都备齐了,很多工作请人又不饱和,不请人又没法做,外包又不放心质量,所以全端工程师是省钱的一妙招。虽然说全端工程师工资会比一般的工程师会高很多,但综合下来,成本会低很多。

全栈工程师的困境

我讲技术有两个发展方向,一种是纵向一种是横向的,横向的是瑞士军刀,纵向的是削铁如泥的干将莫邪。这两个方向都没有对与错,发展到一定程序都会相互溶合,就好比中国佛家禅修的南顿北渐,其实到了最后,渐悟与顿悟是一样的,顿由渐中来。

如果一个公司不太懂全栈工程师的价值,那么全栈工程师的地位将会很尴尬,说得不好听一点,全栈工程师就是什么都会,都么都不会。曾经有一次面试,对方问我很基础的问题,我答不上来,我能做出产品,也知道什么是怎么一回事,我也不会犯那些错误,但我就是答不上概念,要考倒我非常容易。所以在应聘面试的时候,有些时候会吃亏,你可能会不如哪些在某一方面钻得很深的人工资拿得高。

由于经常在各种技术穿梭,我会经常忘记代码的语法和一些API,所以我经常需要去查API甚至查语法,我觉得没有Google我几乎没法工作。这在某些人的眼里,是技术不够的表现。我记的只是一个Key,一个如何找寻答案的索引,而不是全部,人脑不是电脑,我不可能要求我能记下所有的东西。

有一次面试官问我一个问题,我说我不知道,但我猜大概是如此这般,对方问我,你为什么这么猜,我说凭直觉,对方笑了笑没说话。面试完后我一查,果然和我猜的差不多。没错,我就是凭直觉,但这种直觉和女人的直觉不一样,这种直觉是技术上的直觉,是你过去技术经验累积的一个反射。

我不是一个非常专业的Web前端,也不是一个非常专业的Node.js开发工程师,更不是一个非常专业的iOS开发工程师。用人单位会问我,你到底是专业做哪一个方面的,我为什么要给你这么高的工资?

有什么资格来谈全栈工程师

我应该算是一个全栈型工程师了,行业经验已经超过10年。独立做过不少产品,也带过不少项目,经过的产品包括桌面端、Web产品、移动端产品,Web端涵盖前端与后端,移动端主要做iOS和混合开发。

熟悉Web前端,对MVC/模块化开发有实战经验,熟悉CoffeeScript、Grunt、RequireJS、Handlebars等等,自己写过小型的Javascript框架,一个项目中的JS代码超过一万行。熟知网页优化,知道如何让网页变得更加快速。也略懂SEO,知道什么样的URL和代码会更讨好Spider。

熟悉Node.js,有几个项目都是基于Node.js的,目前发布有开源的Blog程序Purelog,在NPM上有多个模块发布。熟悉混合开发,过去我曾经有超过一年的时间是在研究Hybrid技术,多个App基于混合开发技术,也有开发类似于PhoneGap的解决方案。对HTML5在手机上的表现颇为熟悉,挖过很多的技术坑,如白屏问题,Sqlite问题,滚动条问题,硬件动画加速、点击延时问题等等。

会做设计,熟悉Photoshop,所有的产品不管是Logo还是界面全都是自己做的设计,虽然在资深的设计师眼里不值一提,但在工程师队伍中算是比较另类了。

熟悉Objective-C,有两年以上的iOS开发经验,在App Store上有约十款App。熟悉服务器的一般性操作,自己有VPS并运行多个网站,虽然配置服务器经常要去Google。

早年曾经做过一年的Delphi,也曾做过几年的ASP.net,虽然这些技术我目前已经放弃,完全转向*nix平台,但累积下的经验是在的。多年的项目管理经验,曾在三个公司担任过项目经理,累计项目管理经验超过4年。在多个科技门户发表过技术和评论文章。

为什么我会成为全栈工程师

我相信很多全栈型工程师会和我一样,是因为要创业才成为全栈型工程师的。我有一颗创业和做产品的心,而且我又是一个不愿意麻烦别人的人,有些人擅长整合资源,空手套白狼,但我显然不是这种人,所以我只好自己做了。

在经历过两次孤独的创业之后,我发现我并不是一个适合独立创业的人,所以,我成为了一个全端工程师。我最初是做ASP,后来自己创业写客户端用Delphi,然后写了三年的ASP.Net,2010年的时候因为公司需要开始做iOS开发。Web前端是一直自己在做,项目中的的Javascript基本都是我自己在做。

我热爱写代码,热爱重复发明轮子,热爱新技术,我想这也是我成为一个全栈工程师的重要原因。

于我自己来说,我觉得全端工程师的乐趣要比一般工程师来得多,因为你知道一个产品的形态,你可以去设计一个产品,你是从全局的视野来做事情,你得到的成就感会更多一些。
温馨提示:内容为网友见解,仅供参考
第1个回答  2017-04-20
全栈工程师,也叫全端工程师(同时具备前端和后台能力),英文Full Stack developer。是指掌握多种技能,并能利用多种技能独立完成产品的人。
【价值】
一、全局性思维
现代项目的开发,需要掌握多种技术。互联网项目,需要用到后端开发、前端开发、界面设计、产品设计、数据库、各种移动客户端、三屏兼容、restFul API设计和OAuth等等,比较前卫的项目,还会用到Single Page Application、Web Socket、HTML5/CSS3这些技术以及像第三方开发像微信公众号微博应用等等。
Web前端也远远不是从前的切个图用个jQuery上个AJAX兼容各种浏览器那么简单了。现代的Web前端,需要用到模块化开发、多屏兼容、MVC,各种复杂的交互与优化,甚至你需要用到Node.js来协助前端的开发。
所以说一个现代化的项目,是一个非常复杂的构成,需要一个人来掌控全局,它不需要是各种技术的资深专家,但它需要熟悉到各种技术。对于一个团队特别是互联网企业来说,有一个全局性思维的人非常非常重要。
二、沟通成本
项目越大,沟通成本越高,项目中的人力是1+1<2的,人越多效率越低。因为沟通是需要成本的,不同技术的人各说各话,前端和后端是一定会掐架的。每个人都会为自己的利益而战,毫不为已的人是不存在的。
而全栈工程师的沟通成本几乎为零,因为各种技术都懂,胸有成竹,自己就全做了。即使是在团队协作中,与不同技术人员的沟通也会容易得多,让一个后端和一个前端去沟通,那完全是鸡同鸭讲,更不用说设计师与后端了。但如果有一个人懂产品懂设计懂前端懂后端,那沟通的结果显然不一样,因为他们讲的,彼此都能听得懂。
三、创业公司
对于创业公司来说,全栈工程师的价值是非常大的,创业公司不可能像大公司一样,各方面的人才都有。所以需要一个多面手,各种活都能一肩挑,独挡多面的万金油。对于创业公司,不可能说DBA前端后端客户端各种人才全都备齐了,很多工作请人又不饱和,不请人又没法做,外包又不放心质量,所以全栈工程师是省钱的一妙招。虽然说全栈工程师工资会比一般的工程师会高很多,但综合下来,成本会低很多。
第2个回答  2018-09-27

前端工程师:在打开一个网站时,屏幕上的一切都属于前端。前端工程师负责创建用户界面背后的代码。这些工程师不仅要熟悉HTML、JavaScript与CSS,还要掌握很多框架。这些框架有Foundation、Angular JS、Ember JS、Backbone及Bootstrap等等。前端工程师要与设计师和其他专家协同工作,从而将网站从模型转换为可使用的模式。

后端工程师:在你每天所访问的网站背后有服务器网络、数据库以及各种应用,他们相互协作将你所请求的网页与数据传递给你。后端工程师负责构建这些组件。他们要擅长各种编程语言,如Python、.Net、Ruby、Java及PHP等等,从而通过这些语言来编写程序。他们还需要使用各种数据库程序如MySQL、SQL Server及Oracle等来操纵信息并将其传递给最终用户。后端工程师需要与组织中的各种经理及其他成员通力配合来完成工作。

全栈工程师:全栈工程师既要了解后端开发,也要了解前端开发。他们是“全方位”的工程师,熟悉服务端的同时又懂客户端用户体验。全栈工程师理解Web开发进程的每一个方面,同时又会就整体策略与最佳实践对相关干系人提出建议与指导。

第3个回答  2017-06-14
全栈工程师,也叫全端工程师(同时具备前端和后台能力),英文Full Stack developer。是指掌握多种技能,并能利用多种技能独立完成产品的人
对于创业公司来说,全栈工程师的价值是非常大的,创业公司不可能像大公司一样,各方面的人才都有。所以需要一个多面手,各种活都能一肩挑,独挡多面的万金油。对于创业公司,不可能说DBA前端后端客户端各种人才全都备齐了,很多工作请人又不饱和,不请人又没法做,外包又不放心质量,所以全栈工程师是省钱的一妙招。虽然说全栈工程师工资会比一般的工程师会高很多,但综合下来,成本会低很多。
第4个回答  2016-07-22
如果你想成为WEB全栈工程师,一定是需要通过学习的。
如果你是有一定基础的,比如计算机专业或者相关专业的,你可以先自学,毕竟你是有相关知识的,了解过一些,那么自学起来肯定不差,在你不计较时间成本的基础上,你可以一直自学下去,毕竟,学习是一件终身的事情,铁许磨成针!
如果你是有一点基础,但是自学能力比较差,或者自制能力差的话,我的建议是:先自学,一段时间后,带着问题去培训;双管齐下;一个靠谱的培训机构可以让你事倍功半,同时你有基础,并且带着问题去学习,效率也高;本人推荐你去无限互联,那里WEB全栈的师资和环境都挺好,适合你去学习。
如果你是一点基础都没有,那就省去自学的步骤,虽然说,自学+培训是最好的学习方法,但是程序员这个行业,没有人带入门,还是有点困难的。当然,参加培训不意味着你放弃自学,学习是终身的事情,这句话适用于一个人的一生。

全栈工程师是什么意思
全栈工程师是指具备前端和后端技术能力的工程师。全栈工程师是指能够在软件开发过程中,同时掌握前端和后端技术栈的专业人士。他们具备全面的技术知识和能力,能够独立完成软件的全栈开发过程。全栈工程师的技术能力涵盖了前端开发、后端开发以及相关的测试、部署和运维工作。在前端方面,他们需要掌握HTML、CSS和...

全栈什么意思
全栈意思即指的是全栈工程师。1.工程师的定义与角色 工程师是指具备相关专业知识和技能,从事工程设计、施工、监理和管理等方面工作的专业人员。他们在各个领域中发挥着关键的作用,如土木工程、电气工程、机械工程等。工程师的任务包括规划、设计、计算和协调各个工程环节,并确保项目按照预期完成。2.工程...

全栈工程师是什么
全栈工程师是指掌握多种技能,并能利用多种技能独立完成产品的人。也叫全端工程师(同时具备前端和后台能力)。对全栈工程师有以下几个方面的技术要求:PC、H5、Nodejs、小程序、移动端,掌握大前端所有技术栈;能够实现类Element-ui组件库,设计Vue组件;掌握Vue\/React源码,MVVM库原理;了解Koa2源码,定...

什么叫全栈工程师,需要具备哪些知识和技能?
全栈工程师,顾名思义,是一种能够熟练掌握从前端到后端,再到数据库管理的综合技术人才。他们具备跨领域的知识与技能,能够独立完成从需求分析、设计、开发到部署的全链条工作。全栈工程师的范畴并非固定,而是根据所处项目的性质而定。在网站开发领域,全栈工程师需要同时掌握前端开发语言如HTML、CSS、Java...

什么是全栈工程师?
全栈工程师,也叫全端工程师(同时具备前端和后台能力),英文Full Stack developer。是指掌握多种技能,并能利用多种技能独立完成产品的人。【价值】一、全局性思维 现代项目的开发,需要掌握多种技术。互联网项目,需要用到后端开发、前端开发、界面设计、产品设计、数据库、各种移动客户端、三屏兼容、...

全栈工程师是什么
全栈工程师是同时具备前后端技术能力的开发者。全栈工程师这个概念源于软件开发领域,特指一种全能型的软件工程师。他们不仅要掌握后端技术,如服务器架构、数据库管理、APIs设计等,还要熟悉前端技术,如用户界面设计、前端开发框架和交互逻辑等。这种综合性的技能要求,使全栈工程师能够参与到项目的整个开发...

什么是全栈工程师
百度百科给出的定义是全栈工程师(同时具备前端和后台能力),英文Full Stack developer。是指掌握多种技能,并能利用多种技能独立完成产品的人。当然并不是说一定要一种都不能少地具备哪几项知识才能叫做全栈工程师 。一般是指独立负责一个产品(或者一个产品模块),前后端全部搞定,东时的全栈开发是...

全栈工程师需要具备哪些技能?
【导读】全栈工程师,指掌握多种技能,并能利用多种技能独立完成产品的人,也叫全端工程师,同时具备前端和后台能。能够做到多样跨界通,掌握多种职业技能的复合型人才。那么,全栈工程师需要具备哪些技能呢?至少一门编程语言 你需要精通至少一门编程语言,JAVA 、PHP、C#、Python、Ruby、Perl 等,因为你...

全栈工程师是什么
全栈工程师是掌握多种技能,胜任前端与后端,能利用多种技能独立完成产品的人。1、多种编程语言和技术 全栈工程师需要熟练掌握至少一种前端和后端编程语言,如HTML、CSS、JavaScript、Python、Java、Ruby等,并能够使用多种相关技术,如数据库管理、版本控制、构建工具等。2、数据库管理和设计 全栈工程师...

什么是全栈工程师
全栈工程师是一种复合型技术角色。全栈工程师是指具备前端和后端技术能力的全面开发人员。他们能够独立完成软件开发的全过程,包括需求分析、设计、开发、测试和部署等各个环节。在全栈工程师的技能栈中,既包含前端开发的技术,如JavaScript、HTML、CSS等,也包含后端开发的技术,如Java、Python、Ruby等编程...

相似回答