出品|CSDN(ID:CSDNnews)
我常常在想:当一名软件工程师至于“疯”成这样吗?同时我也时常怀疑,其他行业难道也都这么离谱吗?
说实话,当一名软件工程师真的很难。刚入行时就得掌握好几种编程语言和各种开发工具——但这远远不够。公司还要求你精通他们用的那一套特定框架,可能是Rails、Django、Laravel或别的什么东西。CSS更是必修课,虽然你可能花一辈子都搞不明白为什么布局会崩,但勉强糊弄的水平还是能达到的。
JavaScript这个坑你也绝对躲不掉。运气好的话,或许只需要在维护祖传代码时偶尔插两句jQuery,但情况总会改变……
某个时刻,Facebook那群工程师造出了React——这个拥有上万名工程师的大公司,突然让整个开发圈都开始分前端和后端了。整个技术圈突然集体认定:React才是正道。然而与此同时,各家公司又觉得“雇不起那么多工程师”,于是“全栈工程师”这个物种诞生了——恭喜,这个天选之子就是你!
“赶紧去学React,顺便用你熟悉的后端技术搭套RESTAPI吧。”
这还没完。类型系统总得要吧?那还得学TypeScript。还打算在React里用useState管理全局状态?Redux也得了解一下。你正庆幸躲过了这两劫?很遗憾,Webpack/esbuild/rollup配置大礼包+Prettier+ESLint正在向你招手。
哦对了,刚才说的才只是入门级考验。
在远古时期,曾经有一类专业人士叫“系统管理员”,他们的工作就是确保后端服务正常运行:基础设施变更、数据库升级、系统打补丁、守护进程维护、重启服务……全包。后来,某家穷疯了的公司发明了DevOps,从此这些活就全归工程师了。
于是,你又要学Docker了。
到这里,旅程才过半呢。你还得学AWS(或类似云平台)。当然你不能像“小白”一样点点控制台GUI,你得学Terraform、Pulumi或者类似的基础设施即代码工具。
都干得不错?于是公司提拔你当上了管理者,恭喜你,又要重新学一门完全不同的“职业技能”了。但也没关系,毕竟这代表你“通关”了,对吧?
可此时,你的任务清单又多了几样:
(1)预估项目的交付时间;
(2)给团队成员分派任务;
(3)撰写任务规格说明;
(4)参与年度绩效评估;
(5)在产品评审会上发表建设性意见
(6)……
你最好祈祷公司此时已经员工数量翻了四倍以上,不然在管理工作之外,你还得继续做前面那一大堆技术工作。
更离谱的还在后头。
前几天,一位招聘人员联系我,说有个神秘公司正在招高级工程师,要求熟悉Rails、Hotwire,甚至还要掌握原生移动端开发。我当时寻思:你怎么不干脆把内核和编译器开发也写上?
软件确实越来越复杂,每个环节都有其必要性。但问题是,专精的时代去哪了?
想象一下盖一栋房子:建筑师、结构工程师、水电工、泥瓦匠、设计师、屋顶工、测量师……一个也不能少。没人会指望某个人,甚至某家公司能包办所有。
这么看来,未来用几个prompt就能搭建一整套应用,或许也不是坏事吧?





