这里我要推荐一本书,叫做《Web 全栈工程师的自我修养》,在看的过程中,自己也代入进去进行分析,然后写了这篇笔记。
“全栈工程师正在成为 IT 行业的新秀,无论是在上市互联网公司还是在创业公司,都对全栈工程师青睐有加。本书作者是腾讯公 司高级工程师,在前端、后端和 APP 开发方面都有丰富的经验,在本书中分享了全栈工程师的技能与要求、核心竞争力、未来发 展方向、对移动端的思考。除此之外,本书还详细记录了作者从零开始、学习心得。本书内容全面、客观务实适合互联网行业新人、程序员。以及期待技术转型的从业者阅读参考。”
作者余果毕业于西安点击科技大学软件工程学院,曾任腾讯社交用户体验设计部高级 UI 工程师、前端开发负责人,负责多个项目的产品设计,以自身的经历为模板撰写了这本书。
从自身说起,因为对技术和机器的热爱让他走向了计算机这门行业,而在书中,他也经常提及自己理性和感性思维相结合,对全栈工程师进行了深入分析。
全栈工程师是指一个能够处理数据库、服务器、系统工程和客户端所有工作的工程师。根据项目的不同,客户需要的可能是移动栈、Web 栈,或者原生应用程序栈。这是官方的定义。而以我目前出入前端的思维通俗点来说,大概也就是一个人包揽前端,后端,一个人处理数据进行项目维护,甚至于设计图都是自己做的。
很多人都说全栈有很多好处,不同担心很多人编写不同步,思维不一致,导致做出来的项目每个人的想法不同,全栈一个人包揽所有的过程,都在自己脑子里。
可能因为我进入这个行业不久,我认为全栈是不太合理的存在,打个比方说,在流水线还没出现之间,手工作坊基本都是一个人负责所有的产品制作,从原料,制作,打磨,成品,或许很经过很多步骤,但是一个人都可以完美的做出来,就这样类似全栈工程师这样的存在。
而生产线就更像一个团队,产品,UI,前端,后端测试等,每个人相互配合。
全栈和团队比起来,我个人觉得团队的优势更大,但架不住老板喜欢一个人干三个人活,更喜欢全栈一点。
培养一个全栈的花费的时间和精力难以想象,甚至不确定培养一定成功,但是如果专精某一技术领域,成为高级工程师的概率绝对远大于一个全栈。当然这也只是我个人的臆测,并没有具体的数据支撑。
书中也提及,流水线带来的另一个好处,不会对某个工程师产生依赖性,即使失去这个员工,也可以让被人接手工作
说了很多团队化的好处,这不代表就没有弊端,肯定是有的,书中总结出来几点:
- 工程师职责不清导致效率低
- 工程师缺乏主人感导致产品质量差
- 工程师缺乏全局的视野影响个人成长
- 更多角色导致项目效率低下
“因为各司其职的工作流程有效率低下、成本高的缺点,所以很多创业公司都不会配备齐全的流水线,而是希望采用更灵活的方式来组建团队,全栈工程师也因此成为了理想的选择。但是全栈工程师的兴起还离不开这两个重要因素:技术的发展,以及提供 PaaS 服务的平台越来越多。”
虽然做成为一个全栈工程师需要耗费大量的时间精力来打磨,但是这个思维我还是比较喜欢的。比如说,有 a,b,c 三个人,分别擅长各自的领域,有一天他们共同负责的项目出了一个小问题,但是问题出在哪里领域还不知道,虽然是个小问题,但需要每个人去查验一遍,因为是三个领域,这就导致应该有两个人的查验是无效的,这从另一个方向来说也降低了项目效率。
然后这时候,有一个工程师 s,注意他不是全栈工程师,只是喜欢学习多领域的技术,掌握了一些不算太高深的技术知识,查验了一遍,很快就找出了问题所在。
那他一个人效率就相当于三个的效率了,其实这样说并不严谨,我也只是打个比方。
我突然想到一句话,不知道说的准确与否,
“全栈的职位存在是不合理的,但全栈的思维是一个有上进心的工程师所必备的。”