全栈工程师


最近,网上很流行一个词:全栈(Full Stack)工程师,也能够叫全端工程师,不管是前端知识,仍是后端架构你都要了解。甚至有些调皮的程序员这样理解全栈工程师:全栈工程师=屌丝战斗机=系统+网络+研发+dba+架构+安全=没女友、拿一份工资作三份事情的典型、每一个站长都是一个全栈工程师,每一个站群的站长都是超级全栈工程师。前端

之前,软件工程师最在乎的是成为某个领域的专家或者高手,现在,随着软件技术的发展以及需求的变化,尤为是愈来愈多的程序员出来本身创业,因为各类条件限制,许多技术上的问题不得不亲力亲为地去完成,所以,不少程序员慢慢地就练就了精通多门技术的本领。程序员


该截图来自    知乎网后端

这不,就有位程序员在知乎上提问:“    怎样成为全栈工程师(Full Stack Developer)?,在OSCON会议上,一名Facebook的工程师说他们只聘请“全栈(Full    stack)”的程序员。”此话题一出,引发了你们的热烈讨论。许多经验丰富的工程师纷纷在下面留言,讨论成为全栈工程师的价值在哪里,你们是否须要成为全栈工程师,笔者就知乎上的精彩回答进行了整理,不妨一块儿来看下:浏览器

Cat Chen    
安全

既然原文是说,Facebook工程师说Facebook只招Full Stack Engineer,那我就来讲说Facebook Engineer都是怎样的人。    
   
我以为任何一方面的具体经验都不重要,重要的是思惟方式和学习能力。首先说思惟方式,那就是不为本身设限,不会想着本身是前端工程师,所 之后端的东西我就一点也不碰。Facebook     的工程师,级别越高就须要保持越大的影响力。如何创造更大的影响力,就是寻找当前杠杆效应最明显的问题来解决。有些问题你解决了的话,投入进去的时间每小 时能换回来一千美圆;有些问题你解决了的话,投入进去的时间每小时能换回来一百万美圆。然而哪些问题更值得解决,这是动态的,每每还存在衰减效应。若是现 在性能瓶颈在后端,你作了一个季度两个季度优化后,瓶颈就已经不在后端了,你再优化下去衰减效应就会愈来愈明显。等瓶颈变成前端了,你是否是就说由于你不 懂,因此不肯意碰?那就至关于寄望于公司有个前端很懂性能优化的人来解决,但若是公司没有这样的人那就没有人来解决了。    
   
Facebook的众多海报当中,有一张写的是「任何一个Facebook 的问题,都不是别人的问题」。有问题,你就需 要去评估是否值得解决。若是值得解决,你就应该着手去解决,而不是假设公司内会有另一我的比你更合适解决这个问题。这时候极可能你就须要去作你历来没有 作过的事情,须要学习你本来可能彻底不懂的技术。若是你是个专门作数学模型的博士,加入Facebook 本来是打算作搜索结果优化的,结果发现这不是最急需解决的问题,JavaScript 性能才是最须要解决的问题,你怎么办?若是你觉得    Facebook 须要的是你作数学模型的经验,那你就错了。Facebook 须要的是你完成博士学位的学习能力。你历来没作过JavaScript而且以为JavaScript很恶心?正确的作法是当即在网上买几本 JavaScript入门的书连夜看完,而后着手分析性能瓶颈而且解决。在你完成手动优化后,你还能够思考一下可否把这作成自动化,例如说在代码提交时分 析JavaScript语法树而且指出可能成为性能瓶颈的地方,又或者说从用户浏览器那里收集性能数据扔到Hive而后再从中分析产生瓶颈的特征。这些都 可能涉及到一些你没有作过也没有学过的东西,但问题摆在那里你就须要去解决,而不管这要求你去钻研什么。这就是我所说的学习能力。 性能优化

顾鹏

设计、后台开发、前端开发、移动开发、运营维护、PS、文案... 好像都会了,这算Full Stack Engineer了么?    
   
不,这只是踏上成为Full Stack Engineer的第一步。你知道目前只是每一个stack都懂一点,离senior或者expert还差得远,而要每一个stack都作到极致,须要大量的 时间和精力。精力有限,产品开发紧迫,力不从心啊,这条道路也太孤独,由于你不须要与任何人进行协做。难道要把一些stack的任务交给别人作么?这样算 是放弃成为Full    Stack Engineer么?服务器

不!这不是。什么是Engineer?Engineer的本质工做是设计,开发出应用于大众的产品。网络

一个真正的Full Stack Engineer,他从生活中发现问题,洞察需求,他设计解决方案,并开发出初始版本的产品。为了达到目标,他愿意去学习任何领域的技能和知识。同时他不 追求一我的完成全部工做,若是有人能够比他在某方面作得更出色,便会十分热情的邀请他们加入。    
   
最终他的职位也许再也不是Engineer,他再也不设计UI,再也不写代码... 他的工做再也不是设计/开发一款应用/产品,由于他有更大更重要的任务要作——design    and building a team or a company which builds great products。    
   
而这时,社会给了他们另外一个称呼——创业者。尽管众人已忘记他们engineer的身份,但在他们骨子里,心里深处,本身始终都是一个engineer。当他们须要从头再来时,他们绝不犹豫从设计开发产品作起。Nikola    Tesla,Ferdinand Porsche,Henry Ford,Jack Dorsey,Mark zuckerberg,Elon Musk...    细数那些改变了或正改变世界的创业者,他们大多数是engineer背景,热衷于设计创造。他们学习技能和知识,不是为了成为某个领域的专家;而是由于那些 是完成本身目标所须要的。    
前端工程师

李楠
架构

Full Stack Developer在国内不被接受的一个主要缘由是公司缺少稳定的T线(技术职位晋升路线)。不少有才华的人写了几年代码后去作了管理。今天的网络相关技 术,聪明又能持续学习的人,在三年以内能够在一个领域作到很高的水准。那么若是你作五年,十年甚至十五年呢?我认为成为Full Stack Developer是很天然的选择,并且能够跟随最顶尖的技术。

Full Stack Developer的核心并不是否认团队和协做,而是更多的体如今架构设计,快速原型和TroubleShooting方面。随着今天的分层愈来愈清晰,平台和语言愈来愈有特色,更加全面的技术人员能够根据不一样的语言搭建整个架构。

Full Stack Developer并不是杂而全——Facebook也不会雇庸手。他要求的是一种更加全面的深刻。 一方面,他是技术人员不断学习的结果。另外一方面,他也是对本身事业的一种责任。

kubisoft

既然叫工程师,就是应该负责技术的,而不仅是写代码。

各 方面的技术,各方面的技术架构。好比,关卡编辑器里面的图层该怎么搭,如何定义?美工PS出来的图片应该是什么规格?这些都是技术架构,都是工程师要去作 的。工程师应该帮美术作好图,作好动画;帮策划作好关卡,填好数据;这才是工程师。全部跟技术相关的东西,包括Photoshop的使用细节,3dmax 的使用细节,都是工程师须要去搞定的。美术只是在工程师作好的基础上让它更漂亮更好看,策划让它更好玩。

若是只局限 在本身的代码中,就只能是程序员。若是只关心客户端而不关心服务器,就没法对技术负责,就只能是一个程序员。每个实际问题,都有可能涉及各方面的技术。 举个例子来讲,作格斗网游,要作出良好的打击感,你就不只要关心渲染技巧,还要关心美术特效,还要关心网络,关心服务器应该传送过来哪些数据,还要关心哪 些东西是对玩家有用的必须表现出来的东西...当你的关注重心从代码转移到具体实际的问题的时候,就成为了一个工程师了,继续努力下去,就很容易变成全能 的工程师。

知乎上的匿名用户:

首先我以为好的开发者,即便不是全栈,也要融会贯通多种技术。我历来不认为一个只专精一种技术的人有可能成为好的开发者,即便是C,即便是汇编。(固然其实反过来看,那些大神们哪一个不会搞点其余的?好比几个作服务器端开发的大神竟然不懂服务器管理?) 

而后从广度和深度的组合看,我认为好的开发者大概有两种类型: 

  1. 手术刀

  2. 代码专家。

(来自《人月神话》) 

手术刀是业务驱动的,最须要全栈的人;他们的核心价值在于:懂业务,技术全面,都能拿的起来,并且能选择最合适的技术。代码专家是技术驱动的,即便不够全栈也能够用,可是技能树点的越多固然有好处。 

下面要讲的是创业逼出来的全栈,对于创业团队而言,手术刀更加剧要,代码专家要依靠各类开源组织的贡献,或者临时聘请。创业的最大需求技能是整合资源的能力,找合适的人作事的能力。 
因此我说的,是说对于我,种子期,天使期,最重要的都是我本身做为手术刀,而不是资源整合者。

全栈工程师不是为了工做自己,是为了方便实现本身的梦。 

若是不是创业,个人价值可能也就是个2w 多工资的架构师或者技术经理,这个价格远远对不起我这13年的付出。一个真正的全栈工程师,目标只有一个:创业。 

看了上面的回答,你是否知道了如何成为一名全栈工程师呢?关于该问题的更多讨论,欢迎你们访问知乎讨论页。(以上内容来自知乎网

随着工做经验的逐年增长,程序员/软件工程师所接触的技术领域会愈来愈普遍,无形中就会对某个技术有所了解,对于上进、想闯出一番天地的程序员而言,他们很是乐意而且会主动去学习这些技术,这样,天然而然的就学会了多门技术,精通多种语言。

立刻就要春节放假了,许多人都在作年终总结和新一年的规划,许多程序员都但愿本身在新的一年里能作出更好的产品、学到更多知识、进一步提高本身的技能和综 合能力,这或许也是全栈工程师成为热门的缘由之一。那么,这是否也说明,要想在软件开发领域走的更远,就必须掌握更多的技能,成为一名全栈工程师呢,这会 成为将来程序员的职业趋势吗?你们不妨一块儿来讨论下。

相关文章
相关标签/搜索