TOC

关于程序员的两个观点

今天这一期《科技爱好者周刊》有两个观点,值得聊聊。

观点一:全能程序员 vs 特长程序员

我读过一些篮球报道,里面说 NBA 球队不喜欢"全能型球员",更喜欢"特长型球员"。
所谓"特长型球员",指的是其他方面可能都不行,但是某一方面特别突出,比如防守特别好、三分特别准,或者篮板很强等等。球队愿意签这样的球员,关键时刻派上场,没准就能立下奇功。
反过来,"全能型球员"各项技术都很均衡,防守、进攻、投篮都还可以,能达到平均水平,但是每个方面都不突出,没有明显的过人之处。球队看不上这样的球员,觉得让你上场,赢不了球。
我马上联想到, 软件行业其实也是如此,"全能程序员"的出路,明显不如"特长程序员"。
如果你什么都会干,前端、后端、数据库、服务器管理都能上手,那么哪里缺人手,就会让你顶上去。但是,一旦遇到疑难问题,又指望不了你,因为你不是那个方面的专家,解决不了。
反过来,你精通某一项技术,其他都不懂,公司反而会觉得你更有价值。因为你可以把这个技术做得很深,克服技术难点,超过竞争对手,所以你的晋升会快得多。
我甚至读到过这样一段话:
"绝大多数成熟的程序员都专攻某一个技术栈,因为这样更容易找到工作。 一些专家甚至认为,在不同的技术栈中工作是简历的污点。"
所以,大家写简历的时候,千万不要把自己懂的所有技术都写进去,那是简历的扣分项。而只写你掌握最深的那项技术,以及与之相关的工作经历。
同样的,新人如果想在软件行业长远发展,建议选择一两个技术方向进行专研,成为专家,而不要什么技术都懂一点,但是哪一项都不精通。
但是,这样也有风险,万一你选择的技术栈走下坡路(比如 PHP),甚至消失了(比如 Flash),你可能被迫要换技术栈,那就惨了。
最保险的做法,就是选择那些有大公司支持的技术。这就是为什么市场上有那么多 Java 专家和 .Net 专家的原因。
总之,"全能程序员"在这个行业是不受待见的,被视为"万金油"。如果你不幸属于这一类,那么除了抓紧时间开发特长以外,也不必过分灰心。我觉得,全能程序员也有自己的价值和优势,这个就放在下一次谈吧。

我的目标好像就是成为一个 “全能程序员”,戳心了。
阮一峰说的挺有道理的,如果不是在某一个领域钻研很深,对于公司来说,好像是没有没有很足够说服力,让它愿意为之付很高薪水。
其实,我也不知道今后要怎么走,个人职业规划方面。所以,我想听听下次他讲 “全能程序员” 的价值和优势。

观点二:算法裁员

美国的游戏服务公司 Xsolla 的收益今年下降了40%,决定裁掉三分之一的员工,大约150人。这件事的特别之处在于,公司使用软件算法判定,应该裁掉哪些人。
CEO 的内部邮件这样写道:
"你收到这封电子邮件,是因为我们的大数据团队分析了你在 Jira、Confluence、Gmail、聊天、文档、仪表板中的活动,并将你标记为不敬业和效率低下的员工。换句话说,当你远程工作时,你并不总是在工作。你们中的许多人可能会感到震惊,不认同软件的算法,但我真的相信 Xsolla 不适合你。"

十年打工人的经验告诉我,人们容易产生一种错觉,觉得自己对公司来讲很有必要,因为自己更清楚当前岗位的很多细节。可是对于公司来讲——或者说——对于有决策权的人来讲,这些知识的重要性并不强。

即便是一些在公司很重要的人离职,让人感觉好像没有他就不行的那种,可是走了之后,公司的业务也还是照样在运转,可能相关的工作会有那么一会儿受到影响。

打一个比方,就好像有一位物业工作人员,特别敬业,对小区业主很热心,被服务过的业主都觉得他不错。他可能也觉得自己不错,自己经手很多事情,也认识很多业主,知道很多重要的信息,如果自己不在,小区的很多事情都会有些麻烦。可是其实,最后业委会决定换一家物业公司,当然包括他。大家最后也会适应新的变化,世界并没有什么不一样。

所以,算法裁员的公司说的完全没毛病,你可能不认同这个算法,但这不重要,重要的是你不重要。