普通视图

发现新文章,点击刷新页面。
昨天以前首页

关于近期求职的近况和思考

2025年2月21日 05:23

自去年秋天裸辞之后,一直在考虑职业生涯的问题。之后加入求职大军,目前进展还算顺利,作为软件工程师的下一站也将很快确定下来。但是这一次的 career break,虽说时间不算长,却给了我莫大的启发,我也有了一些思考。

从 fullstack engineer 到 platform engineer

其实在去年年初的时候就简要叙述过这个事情。熟悉我的朋友都知道,我的职业生涯有点奇怪,从 Huawei 开始,我是一个全栈工程师(fullstack engineer),从网页设计、前端开发到后端开发都是一锅端的,当时也非常喜欢这个方向,这也是我后来在极客时间上写 《全栈工程师修炼指南》这门课的原因之一。

不过后来这个兴趣点也在慢慢迁移,在加入 Amazon 之后,我陆续经历了两个大的 data platform 团队,一个是做销量预测(demand forecasting)的,一个是为 retail 一侧计算成本和利润的。在这两个 team 中,都要和大数据打交道,和 scientists 和 analysists 一起合作,而我作为一个 engineer 的基础工作,就是把 infra 维护好,提供好用的工具让他们的问题观测和分析更简单。也是从 Amazon 开始,我开始更关注一个模糊的目标,一个可以持续建设的 platform,关注一个 solution stack,而不是具体某个 service,或者某个具体技术。

差不多六年之后,在 Oracle,我带领的 team 则是侧重于 infra 了,依然是作为 engineer,主要为 cloud 管 datacenter 的两个东西,一个是 process automation,一个是 matadata storage。在这个比较大的 team 我获得了比较大的职业生涯成长,我们 own 一个非常完整的 solution stack,也越来越确定我关注的重点,以及未来发展的方向。虽然从一定意义上来说,做的事情依然是 full stack 的,但我开始更多地称呼自己 platform engineer,而不再是 fullstack engineer 了。

之后在 2022 年加入了 Doordash,从巨头转向更加敏捷的中型互联网公司,一开始在一个偏向于 infra 的团队,做 gateway platform,我还是比较享受这一年多的时间的。当时 team 里面有一个非常有经验和见解的工程师,我从他身上学到不少。后来因为 org 调整的原因,我选择抓住机会去做了很短一段时间的产品,回头看这个决定有些鲁莽,但至少也确认了一件事情,单纯做产品并不是我最喜欢和擅长的。

对于下一站,我的几个在考虑的选项中,无疑都是偏向于 platform 和 infra 的 team,其中有两个机会我尤其感兴趣,其中一个是维护开源的高并发 library 的,还有一个是做 AI infra 的。现在我正在努力做的功课,就是把它们前前后后都了解清楚,然后做出自己的选择。

AI 将替代软件工程师吗

这是个很好的问题。只不过,这个 “将” 可以斟酌,因为它已经替代一些初级的工程师工作了。但放眼未来,它到底能替代多少工程师的工作,我不知道。现在,很显然的有两件事:

  1. 软件工程师的很多工作确实是可以替代的,它们也正在被替代,包括某些设计和编码。
  2. 软件工程师这样相对有门槛的工作都可以被 AI 替代,更何况那些门槛相对低的工作呢?

但是关于上面这第 1 点,这样的 “替代” 到底能达到多深的地步,我不知道。我隐约觉得,能被替代的工作往往是非常具体,逻辑比较确定和简单,而且不需要处理人际交流和关系的工作。以前有人觉得,AI 不能替代艺术家的工作,因为他们的工作是创造性的。可是你现在看看呢,写作、谱曲、绘画,都变得可能了,可是我并不想反驳这条观点,而是想说,这从一定的角度上来看,我们是不是可以说,艺术家们的工作,其实也并不全是创造性的呢?

而关于上面这第 2 点,有更多岗位要远比软件工程师更值得担忧,而软件工程师们,只不过是因为现在站得和 AI 更近,替代后的成本节约更多,因而更焦虑。就如同软件行业是经济的风向标一样,当工程师们开始焦虑,不久的将来整个社会都会焦虑。从好的一面看,当工业革命开始,无数人担心机器代替人类工作,但最终机器却为人类创造了更多的工作,我想这一次机器替换成了 AI,道理也一样。无论如何,不要逃避,而要尝试改变和拥抱这样的变化,因为这个趋势是不以人的意志为转移的,该来的总会来。

我觉得,总体来看,AI 将很快替代的,未必是工作,而是特定领域的技能。我觉得这句话里面,有两个重点,一个是 “技能”,一个是 “特定领域”。同一份工作,也许需要能力和技术将大不相同。对于一个需要做出复杂判断的工作,并且这个工作还需要许多不同领域视野和经验积累的,AI 相对会更难替代。

对于一些传统行业而言,那里有更多的固化、低效、不愿革新和进取的工作。我有个朋友在保险行业,做的事情就是要用科技(不仅仅是 AI)来变革,把保险公司从传统上认为人力资本巨大的企业变成一个靠软件来横向扩张的 SaaS(软件即服务)公司。趁这个 job hunting 的机会,我也去了解了一番。我觉得,这些看似红海的传统行业实则是使用软件革新的蓝海,未来会有更多的 SaaS 公司。有很多这样的传统领域,成长缓慢,或者利润率低,资本不太看得上,但是从这个角度思考,或许有大的机会。

如今的就业市场怎样

在刚离职的时候,我曾经提到过对于就业市场的理解。大致来说,就是比我 2022 年下半年那会略好,但是想要回到疫情前那种 “无比风光” 的状态是不可能了。现在回头看,在经过了一番求职的折腾后,我可以说,这种观点还是大致正确的,不过就业市场比我最初想的,还是要好不少。简单说来,我觉得近期软件工程师的机会,比 2022 年下半年要多不少。

其次,一个萝卜一个坑。我记得 2017 年那会找工作的时候,我可以先把 phone screen 搞定,然后排一堆 onsite 在同一周并行,这样的话一旦我拿到 offer,如果需要选择的话比较容易操作,因为它们的时限都比较接近。但是这次好几家公司都是过了 phone screen,然后告诉我坑已经被填了。所以之前并行的策略没有那么有效了,看到心仪的职位,不仅需要面试得好,还需要尽快完成。

再次,bar 还是很高。有时候看到很多软件工程师朋友还在谈论刷题的话题,其实刷题是必要条件没错,但是离实际需要差太远了。从分配时间的角度,还是需要更多时间分配到其它环节去。总体来说,就算两轮 ps 加上 5 轮 onsite 的话,ps 全都要 positive,onsite 全都要 positive,也许最多一轮 on boundary,否则基本就挂了;有些情况下,就算全是 positive,如果不够 strong,还是会 downlevel。所以,总体来看 bar 还是比较高的。行业发展就是这样的,软件业也不是例外,求职门槛提高,这是行业成熟的一个标志。

最后,回头看,去年的这个裸辞还是果断(或者武断)的,但是回想起来,如果再给我一次机会,我估计还是会做出同样的选择。没有什么对错,就是做出自己的选择而已。这段 break 的时间我还是比较享受的,而且除去 career 发展的目的以外,由于再在 job market 上面走一遭,起码从面试的角度来说,有了比较新鲜的认识,哪一天如果被裁员,我相信也不会过度慌乱。这也算是一个额外的收获吧。

我知道有很多朋友和我一样,近期在求职。这个过程很辛苦,也可能有磕磕绊绊,希望大家都能保持自信,或长或短的时间,找到自己理想的职业生涯下一站。

文章未经特殊标明皆为本人原创,未经许可不得用于任何商业用途,转载请保持完整性并注明来源链接 《四火的唠叨》

关于软件行业未来和职业生涯的一点思考

2024年1月16日 13:46

关于行业未来

软件行业裁员到处是风声鹤唳,关于行业,关于职业,关于未来,平日里总有一些零散的想法,可是总体来说,始终是忙碌太多,而思考太少。于是,这个周末静下心来,想努力把这些碎片串起来——可是似乎这并不是一件很容易做的事情,那就先把这些想法记录下来。

首先,关于软件行业。很显然的是,任何行业都有周期,软件行业也不例外,软件行业已经过了最疯狂的时间段,现在整个市场都在高利率下,在高昂的借贷成本下冷静下来。我依然记得最疯狂的时候,大概就是在疫情大放水期间,小红书上都有各种行业的牛鬼蛇神 “三个月转码” 的小作文,那些就让我想起了好多年前,我刚读大学的时候,听说招计算机专业的毕业生,因为需求火爆、一将难求而面试大量走过场(那个时候还没有软件专业毕业生)的故事。和做 manager 的朋友聊天,他也说,那段时间招进来的程序员能力整体上很明显下降了一个档次,而对于公司和团队来说,消化这些人的代价又显得很巨大。

软件行业是夕阳产业吗?显然不是。但软件行业是新兴行业吗?说真的,也不太适合谈什么 “新兴” 了。我认为,现在的软件产业依然再走着明确的上坡路,但是市场很明显很理性了。长远看,这是一个太正常不过的、健康的行业发展的过程。就像中国的房市经过了十几年的高增长,需要冷静下来一段时间一样,但是它和房市还不一样,房市的其中一个根本影响因素——人口,在经过了转折点之后,开始走下坡路,因而房市从长远看,缺乏持续上行的根本;而作为典型科技产业的软件业却不是这样,尤其是 SaaS 行业,因此从长远的角度看,这并没有什么问题。

和 2022 年那会的裁员比起来,那个时候更像是一种粗暴和直接的方式去消化疫情期间过度吸纳的人才,而现在的裁员有点像是意味着,这个行业如今已经不太需要那么多的工程师了。现在风口上的概念是 AI,而它再炒作也是和当年的互联网泡沫有所区别的,毕竟那个时候还缺乏扎实的产品和盈利,而现在 AI 已经看得到切切实实能够取代许多(低端)职业的可能性了。因此除去短期的利率变化因素,长远看很有可能就是不需要那么多软件工程师了。

关于职业生涯

一年多以前,我迈出了从大公司走向小公司的一步,也谈不上顺利,但是这 15 个月来,还是有很多收获。很不一样的工程师文化,很不一样的技术栈,很不一样预期和标准,其中的感触是混杂的。

回头看自己过去做过的各种角色,我明显和那些目标明确而技术栈专一的工程师不同,但是领域上既不能算是纯粹的 infra,也非常规的做单个终端用户向的产品,很多都是内部的一系列系统和平台。于是,向未来看,我把自己定位成一个更关注于完整解决方案的 Platform Software Engineer。相应地,有一个概念与之比较的是 Product Software Engineer——我认为这是一种相较于过往的前端软件工程师和后端软件工程师,或者是做用户产品和做基础设施,更加普适的分类方法。

很多人容易觉得 Platform Engineer 更像是以往大家口中的 “后端工程师”,其实这个看法非常不正确,Platform Engineer 也可以做前后端开发,也可以提供全栈的产品,但是最为关键的是,他们的客户群体并非直接的最终产品用户,而是内部的、制作产品的工程师团队们。换言之,他们往往是 “间接” 面相企业的最终用户的——

While Product Engineers focus on building and enhancing features that solve end user problems, Platform Engineers focus on the infrastructure that supports the product.

以上来自 《Product and Platform Engineers》这篇文章,我觉得大致上归纳得挺不错的。

至于为什么我对于这个角色感兴趣,主要还是基于我过往积累的领域,以及我感兴趣的部分。

随着 AI 进一步地融入我们的生活和工作,一方面编程能力越来越普及化,因其入门门槛越来越低;另一方面简单的编程劳动也逐渐被它代替,因此一个不断被拿出来问自己的朴素的问题是——“我的工作会被 AI 取代吗?” 作为软件工程师,唯有保持思考,保持对于技术的敏锐和创造力,我认为这是唯一的出路。如果发现每天开始套用同样的方法去机械地解决问题,去写无聊的样板代码,那它也许就是一个危险的信号了。

再说说近期的计划,我目前在公司内一个做平台的团队中,能学不少东西,做的事情还算有趣,但是我也努力保持敏锐,如果有符合上述方向的好机会我当然不想错过。

就说这些吧,有更多想法的时候,也许我会把这篇再更新一下。

文章未经特殊标明皆为本人原创,未经许可不得用于任何商业用途,转载请保持完整性并注明来源链接 《四火的唠叨》

❌
❌