到现在,入职已经整整一个月零一周了。回头一盘点自己在公司里的状态,跟上学时设想的软件工程师差距实在有点大——最起码,跟几个老同学日常干的活儿完全不是一码事。
如果有跟我一样准备从事制造业的软件工程师,下面这些闲扯,多少能让你们提前窥见点真实情况。

坐标:二线城市的偏远高新开发区。
上班原因:科班出身,专业是计算机,但整座城市找不到一家像样的大中型互联网公司。开车到家五十分钟,说远不远说近不近;钱还凑合,到手 7K 左右,有宿舍有食堂,早八晚五双休。钱多事儿少离家近,勉强占了两条半——那半条是钱不算多。离家近得解释一下:我从初中开始回家最短也要一个钟,大学更是得耗一天,现在住公司宿舍,对我来说已经是难得的近了。薪资调整、过节礼物、五险一金、法定假日,该有的都不缺。

闲话打住,说正事。
制造业的软件开发,大多数是给自己公司的人用的,当然也有服务其他公司的,但那不是主流。
准备入行的话,入职前一定得问清楚部门的主要业务和使用语言,这非常关键。我学的是 Java Web 方向,但之前一门心思想去做游戏策划,合同都快签了,结果被家里硬生生拦下来,这才转回程序员这条路。也正因为如此,我对目标公司完全没有摸底,到岗才发现,部门里大部分人用 .NET,写 Java 的满打满算不过六七个人,其中还有几位是 Java 和 .NET 双修。

这就很突然,一时间有点不知所措。可转念一想,反正来了都来了,先试试呗,万一混得下去呢?
紧接着就安排我接触一个相对较新的项目。带我的老师傅让我先熟悉熟悉,我习惯性问了一句,这项目什么架构?回答:SSH。那一瞬间头皮发麻——SSH 对我来说真就只是听过、从没碰过的存在。等真正接手打开一看,虚惊一场,实际用的是 SSM,还算能接受。然后最惊悚的一幕来了,师傅轻描淡写地说:没有文档,你自己摸索着写一份配置文档和开发文档出来吧。
这活儿是真考验人。没有文档太折磨了,光配置环境就耗了差不多十天。翻了些日志和作者留下的零散说明,推测这个项目是一年多前的产物。外包公司做完交付过来以后,公司因为不急着用,就一直没找对方要文档。接手之后只能硬啃,还伴随着一堆莫名其妙的 BUG,实打实的卑微。

一个月过去,总算把大部分功能跑起来了,真的仅限于能用。紧接着师傅又甩来一个界面,让我把接口什么的调通。打开一看,好家伙,Java Swing。人当场就麻了。
调试配置的间隙,还接了个前端的活儿。没错,我一个 Java 工程师被拉去写前端了。虽然这在中小公司不算稀奇,但我还是没想通,一个制造业要前端干嘛?师傅解释,别的部门要一个纯 HTML 页面,软件开发这边没几个会前端的,就让我顶上。那还有啥好说的,搞起完事。一上午做完发过去,照要求改了几轮,交差。
没过两天,新需求又来了:写一个接口,能输入参数并返回对应内容。我一听一琢磨,这不就是最熟悉的领域嘛。前后端分离露一手,用个 Vue,axios 一整,后端 controller、service 一写,数据库一连,齐活。这次给了一周时间,属实摸鱼摸到吐。到点交付之后,对方把我叫过去问,这玩意儿怎么用?我说就把后端跑起来的事儿呗。他听完人麻了:太麻烦了,我就要一个页面。这下轮到我蒙了,听了一阵才弄明白,他想用原生 JS 来做。可原生 JS 我是真不会,最后还得靠宿舍的好兄弟出手才摆平。

而且公司大部分项目基本都是 JSP 页面,几乎没有前后端分离的架构。项目普遍偏老,技术栈跟当下流行的东西完全不搭边儿。说句怪话,在这儿你得学会向下兼容——你 Vue 玩得溜,后端微服务写得好,可能都不如会个 Swing 好使。
这也意味着很多时候你学不到新技术,业务内容翻来覆去就那几样。出于稳定性的考虑,短时间内不会有太大变化。上次开会还听到一个恐怖的事实:整个公司的数据库,一条索引都没加过。至于为啥,没人说得清。
干到现在也能感觉到,周围同事大多都是奔十年工龄的老员工。跳槽难,新东西学得也慢,全得靠自己琢磨。
当然也不是没有好的地方,不可能处处都像要散架。真正切入业务后,局面未必像现在这么被动。毕竟我入行才一个多月,以下全是个人感受,您权当听个乐子。

总结
如果要从事制造业的程序员,结合各路老哥的评论,我归纳了这么几点:
- 入职前一定问清部门的业务方向和使用语言,是 Java 还是 .NET。制造业里 .NET 相当普遍。
- 前后端都得会一点。前端不用精通,能把样式整利索就行。一般没有专职前端,全靠自己动手丰衣足食。
- 最好学点老一辈的技术,比如 JSP、SSH、Swing 这些,都会有发挥的余地。里头的东西比你想象的还老,数据库设计也一样,可能连条索引都没有。
- 前后端不分离才是常态。你前后端分离玩得再好,在这可能根本没有用武之地。看点数据库知识,也许比琢磨 Spring Cloud 更实用。
- 养成随时写文档记录的习惯,并且做好应对一堆没有文档的老项目的准备。这种事儿真没辙。
- 了解 ERP、CPC、MES 这类制造业大系统,还有报表系统。偶尔会碰到重构需求,需要人手参与。
- 确定要入职的话,得有“半养老”的心理准备。钱不多但事儿少是普遍状态,升职加薪很难拼过工龄长的老员工,除非你出色到能无视工作年限。
- 优势也在:钱凑合、事不多、五险一金齐全、节奏不紧。劣势同样明显:不好往互联网跳槽,技术更新太慢。最终全看个人选择,反正我是不太乐意。
您能读到这儿,我是发自真心地感谢。类似制造业 IT 的经历和吐槽,在云栈社区也有不少同行在聊,有相似处境的兄弟不妨去看看。若要转载,还望带上链接。