什么是全栈工程师?

全栈工程师源于Facebook,是指能在任何能在一个技术栈的任何层次完成工作的工程师 。

  • 知道计算机操作系统的基本运行原理
  • 知道如何操作数据库
  • 用一种语言写后端的 API 代码
  • 前端合适的技术可以实现业务逻辑
  • 工程管理,包括不限于需求分析、敏捷开发、文档管理等等
这种说法最开始源于 Facebook,“Nothing at Facebook is Somebody Else’s Problem”,换句话说,有问题就马上评估是否值得解决 。如果值得解决,你就应该着手去解决,而不是假设别人比你更合适解决这个问题 。
举个例子,你原本是一个后端工程师,在做响应时间的调优,初期后端上改进很大,后期效果已经不明显,但是你发现网络传输和前端有很大空间 。假设现在前端的工程师对这两块也不是很了解,这个时候怎么办?
  • 顺其自然,不了了之 。
  • 从外面招一个会的工程师 。
  • 自己学相关知识然后直接去调整 。
Facebook 之所以选择第三种,有这么几点理由:
  • 本身的挑战已经非常大了,极大的用户量带来极大的问题,很难从市面上直接找一个能解决问题的人 。
  • 如果解决掉新发现的一个问题大于手里正在做的事情,哪怕它不是自己擅长的,也应该自己去把它做好 。
  • 真正高素质的人不仅仅是掌握知识,而是拥有学习知识的知识,也就是学习能力 。有了学习能力,具体的知识总能学会 。
  • 每个技术都有自己的背景和优势劣势 。有时候强行规定使用的技术反而会限制大家的产出 。倒不如根据需求去选择合适的技术 。
  • 关注整个公司的产出和效率 。大部分提升效率的地方往往来源于别人没有思考过的问题,不如谁发现,谁解决 。

【什么是全栈工程师?】


    推荐阅读