大家好,我是你们的黑马大大。
前几天看到了阮一峰老师在他的日志上说:“全能程序员”的出路,明显不如“特长程序员”。
阮老师是这么说的:
在一些篮球报道里面说NBA球队不喜欢“全能型球员”,更喜欢“特长型球员”。
所谓“特长型球员”,指的是其他方面可能都不行,但是某一方面特别突出,比如防守特别好、三分特别准,或者篮板很强等等。球队愿意签这样的球员,关键时刻派上场,没准就能立下奇功。
反过来,“全能型球员”各项技术都很均衡,防守、进攻、投篮都还可以,能达到平均水平,但是每个方面都不突出,没有明显的过人之处。球队看不上这样的球员,觉得让你上场,赢不了球。
基于以上内容阮老师联想软件行业也是如此。正好前段时间看到有人提问:“前端、后端,全栈哪个方向更好”?
其实现在各大企业的岗位划分已经非常精细化了,网上不是都淘汰“面试造飞机,实际拧螺丝”,这就反应了一个问题,没有那么多全栈。反而越是小体量的企业,越希望一个员工全能。最好开发部就五六个人,但是每个人什么都能做,什么都能搞定。
那比如前端程序员应该往全栈的方向发展吗?还是守在前端?
其实程序员是没有界限的,比较好的情况是前端我可以做,后端我也可以。但是涉及到了经验和经历问题。至于如何成为一个领域的大牛,其实公司也就是发展平台很重要的。
什么是全栈开发:
全栈开发是后端和前端开发工作的混合。这种混合并不是后端的所有东西+前端的所有东西。这是根据任务的选择性组合。
当一项任务涉及诸如向数据库表中添加字段,编写后端代码以及更改前端形式和逻辑以交付此新功能之类的事情时,该任务将被视为全栈工作。
能够执行全栈任务意味着了解栈的两面,以至于可以执行栈任务。咨询更多有经验的团队成员,看看是否可以改进任何东西,将是很棒的。
全栈进阶:
超级堆栈开发工作不仅涉及在(开发人员)机器上开发功能/应用程序(全栈式),还涉及对其进行部署并使之可访问和可扩展。
这类工作包括了解服务器,近来云化以及进入DevOps/SRE领域。
超级堆栈工作还包括考虑安全性,利用对OWASPTop10之类的知识以及编写安全代码。
所以,个人认为程序员可以通过专精技术选择进入大厂或者是晋升管理,在其他时间逐渐吸收更多的知识。