以下内容引自:阮一峰 科技爱好者周刊(第 174 期)

我读过一些篮球报道,里面说 NBA 球队不喜欢”全能型球员”,更喜欢”特长型球员”。

所谓”特长型球员”,指的是其他方面可能都不行,但是某一方面特别突出,比如防守特别好、三分特别准,或者篮板很强等等。球队愿意签这样的球员,关键时刻派上场,没准就能立下奇功。

反过来,”全能型球员”各项技术都很均衡,防守、进攻、投篮都还可以,能达到平均水平,但是每个方面都不突出,没有明显的过人之处。球队看不上这样的球员,觉得让你上场,赢不了球。

我马上联想到, 软件行业其实也是如此,”全能程序员”的出路,明显不如”特长程序员”

如果你什么都会干,前端、后端、数据库、服务器管理都能上手,那么哪里缺人手,就会让你顶上去。但是,一旦遇到疑难问题,又指望不了你,因为你不是那个方面的专家,解决不了。

反过来,你精通某一项技术,其他都不懂,公司反而会觉得你更有价值。因为你可以把这个技术做得很深,克服技术难点,超过竞争对手,所以你的晋升会快得多。

我甚至读到过这样一段话:

“绝大多数成熟的程序员都专攻某一个技术栈,因为这样更容易找到工作。 一些专家甚至认为,在不同的技术栈中工作是简历的污点。

所以,大家写简历的时候,千万不要把自己懂的所有技术都写进去,那是简历的扣分项。而只写你掌握最深的那项技术,以及与之相关的工作经历。

同样的,新人如果想在软件行业长远发展,建议选择一两个技术方向进行专研,成为专家,而不要什么技术都懂一点,但是哪一项都不精通。

但是,这样也有风险,万一你选择的技术栈走下坡路(比如 PHP),甚至消失了(比如 Flash),你可能被迫要换技术栈,那就惨了。

最保险的做法,就是选择那些有大公司支持的技术。这就是为什么市场上有那么多 Java 专家和 .Net 专家的原因。

总之,”全能程序员”在这个行业是不受待见的,被视为”万金油”。如果你不幸属于这一类,那么除了抓紧时间开发特长以外,也不必过分灰心。我觉得,全能程序员也有自己的价值和优势,这个就放在下一次谈吧。

说起来,其实全能只是个虚词,即使早几年盛行的全栈研发,也不过是略知而已。

特长型,按我理解应该并不是说只专精于一两个技术栈,应该是类似于T型的技能树才对,光知道自己的技术栈明显是不够的,你一个只懂PHP开发的人,如果遇到Web环境有问题、或者数据库缓存异常的时候,就说这不是你的问题,需要运维团队处理,明显是一件很蠢的事情。

更科学的操作应该是逐层定位问题根源后,交由相关团队处理。知其然知其所以然,才算是比较合格的研发。

又比如你要做一个功能,设计使用什么样的数据结构,能实现现有需求,并且支持未来可能出现的变化,考验的就不只是一个程序的能力,基本的数据结构的领悟(不一定要学过数据结构)也是必要的。

全能型选手,通常会因为技能太过分散,阮一峰提到,深入的问题无法解决。而特长型选手(T型技能树)则专精于自己的技术之内,也能熟知相关延伸的技能。在我看来,这个挖掘问题根源的能力不在于技能多少,而在人,有些废物他就是浅尝辄止不求上进(不分大厂小厂),就是苟且能用就行,你是不太容易推动这些人去解决一些底层的疑难杂症的。只有部分天生优秀的卓越的人,才会具备挖掘分析改良的能力,任何情况下,这类人才是公司应该抓牢的宝贝。

现在的就业环境,或者说一直以来,T型的人才就不多见,而碰上部分大厂镀金的“能人”,单以能用为准,那确实OK,一旦深入到稳定性自动化就逊色很多。

技能是自己选的,能力是自己锤炼的,碰到问题,探究到底的人,才能最终爬到更高的地方。


如您从本文得到了有价值的信息或帮助,请考虑扫描文末二维码捐赠和鼓励。

尊重他人劳动成果。转载请务必附上原文链接,我将感激不尽。


与《全能程序员 vs 特长程序员》相关的博文:


留言

avatar
😀
😀😁😂😅😭🤭😋😘🤔😰😱🤪💪👍👎🤝🌹👌