一、全栈工程师的定义
全栈(Full Stack)工程师,也可以叫全端工程师,无论是前端知识,还是后端架构你都要了解。甚至有些调皮的程序员这样理解全栈工程师:全栈工程师=屌丝战斗机=系统+网络+研发+dba+架构+安全=没女朋友、拿一份工资做三份事情的典型、每个站长都是一个全栈工程师,每个站群的站长都是超级全栈工程师。
也有人是这样说的:掌握多种技能,并能利用多种技能独立完成产品的人。
举例:假如你是一个Web开发者,如果你既能做前端(需要熟悉HTML、CSS、JavaScript、H5以及Bootstrap、EasyUI等各种前端框架),又能做后端(需要熟悉Java或ASP.net或php或Node.js或Go,选项太多就不一一列举了),可以独自一个人完成一个类似电子商务网站的产品的开发,那你就算是全栈工程师了。
有木有明白?木有的话我在给你来个解释 :
假如你是一个App开发者,既能开发Android应用(需要熟悉Java和Android框架),又能开发iOS应用(需要熟悉Objective-C或Swift以及Cocoa for iOS),又可以开发应用需要的后台(需要熟悉Node.js或Java或Go或。..),总之你可以独自一个人开发出一个覆盖Android和iOS的且有业务后台的App,那你也就算是全栈工程师了。
百度百科的说法是这样的:
全栈工程师是指掌握多种技能,并能利用多种技能独立完成产品的人。也叫全端工程师(同时具备前端和后台能力),英文Full Stack engineer。
那到底什么是全栈工程师?
我对全栈工程师的定义是:掌握多种技能,并能利用多种技能独立完成产品的人。打外比方,全栈工程师就是一个能独立盖一幢10层小洋楼的人,而普通工程师,则是可以和一群人盖一幢摩天大楼的人。
那说到技能,跟行业还是有关系的,比如金融行业的全栈与视频行业的全栈,需要掌握的技能就是有不同的。所以,需要掌握哪些技能,咱不展开讨论。
而对于技能的掌握程度如何定义呢?人毕竟精力是有限的。是的,8/2定律在哪都适用,全栈工程师就是掌握20%常用技能的人,但这20%的技能会有80%的几率被用到,剩下那80%不常用的,需要知道是什么,可以不用太懂。
二、全栈工程师的价值
当然有人会说了,一个人在牛,也不可能掌握所有的技能,即使能掌握很多技能,也不能一个人完成一个较大的项目,首先客户也不会同意。
这个问题很好,其实是在说全栈工程师的价值。
在实际项目中,会涉及到很多技术,随便一个互联网项目中用到的技术,就会需要用到后端开发、前端开发、界面设计、产品设计、数据库、各种移动客户端、三屏兼容、restFul API设计和OAuth等等,一些比较前卫的项目,可能会用到Single Page Application、Web Socket、HTML5/CSS3这些技术,还有像第三方开发像微信公众号微博应用等等。
所以说一个现代化的项目,是一个非常复杂的构成,我们需要一个人来掌控全局,他不需要是各种技术的资深专家,但他需要熟悉到各种技术。对于一个团队特别是互联网企业来说,有一个全局性思维的人非常非常重要。
在项目沟通中,全栈工程师因为各种技术都懂,与不同技术人员的沟通也会容易得多,你让一个后端和一个前端去沟通,那完全是鸡同鸭讲,更不用说设计师与后端了。但如果有一个人懂产品懂设计懂前端懂后端,那沟通的结果显然不一样,因为他们讲的,彼此都能听得懂。
全端工程师的乐趣要比一般工程师来得多,因为你知道一个产品的形态,你可以去设计一个产品,你是从全局的视野来做事情,你得到的成就感会更多一些。
全部0条评论
快来发表一下你的评论吧 !