什么是全栈工程师
余果
全栈工程师(full-stack engineer)是一个在国内外渐热的话题,最近也有一些创业公司开始追求全栈工程师的加入。所以我开辟这个专栏,谈谈我个人对全栈工程师的理解。
我叫余果,我的博客是http://yuguo.us/ ,平时会在上面写一些随意的文字。我是腾讯在职的高级前端设计师,并不敢自称全栈工程师,写这个专栏一方面也是锻炼自己写作的能力,一方面是逼迫自己去学一些跨界的知识。
专栏第一篇讲讲全栈工程师的定义,为什么会出现对全栈工程师的需求,以及全栈工程师的职业发展前景。
什么是全栈工程师
全栈(full-stack)中的“栈”是指software stack或者solution stack。一系列的软件子模块或者组件组合在一起,不再需要其它第三方的模块依赖就可以完成一个任务,这些子模块的集合就叫一个栈。这里与计算机数据结构中的“堆栈”不是同一个东西,后者是指先入后出的数据结构。
举个例子,要开发一个web页面,工程师需要使用操作系统、服务器、数据库以及几种编程语言,这些技术组合在一起叫做web stack。MEAN就是一个web stack。
擅长web stack的工程师就可以称为web stack engineer。
依次类推,擅长所有的stack的工程师就是全栈工程师。
翻译下quora上对what does the term ‘full-stack programmer’ mean?的回答:
全栈工程师的意思是说一个工程师可以处理数据库、服务器、系统工程和客户端的工作。根据项目的不同,客户需要的可能是mobile stack, web stack, 或者原生应用程序。
基本上当客户需要一个全栈工程师的时候,客户需要的是一个全能的大神。或者至少当客户让他去做一些舒适区之外的工作的时候,他不会有太大意见。
web工程的历史
想要理解为什么现在会产生对全栈工…