【转】全栈工程师到底有什么用

[评论]全栈工程师到底有什么用

 

2014-01-16 09:42:47 5521 次阅读                             稿源:涂雅 18 条评论
 

感谢涂雅的投递html

最近国内外都在流行一个词叫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来协助前端的开发。ide

因此说一个现代化的项目,是一个很是复杂的构成,咱们须要一我的来掌控全局,他不须要是各类技术的资深专家,但他须要熟悉到各类技术。对于一个团队特别是互联网企业来讲,有一个全局性思惟的人很是很是重要。

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

沟通成本

项目越大,沟通成本越高,作过项目管理的人都知道,项目中的人力是1+1<2的,人越多效率越低。由于沟通是须要成本的,不一样技术的人各说各话,前端和后端是必定会掐架的。每一个人都会为本身的利益而战,绝不为已的人是不存在的。< p="">

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

创业公司

对于创业公司来讲,全端工程师的价值是很是大的,创业公司不可能像大公司同样,各方面的人才都有。因此咱们须要一个多面手,各类活都能一肩挑,独挡多面的万金油。对于创业公司,不可能说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基本都是我本身在作。

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

于我本身来讲,我以为全端工程师的乐趣要比通常工程师来得多,由于你知道一个产品的形态,你能够去设计一个产品,你是从全局的视野来作事情,你获得的成就感会更多一些。

相关文章
相关标签/搜索