我是一个非计算机科班出身的程序员,职业生涯已过13年,期间从国企到外企再到菊厂再到福报厂,收入也翻了10倍不止,回顾这一路当然比我厉害的人有太多,但我确实也做到了自己所能做到的最好,于是想在2026伊始,将我过去13年的经历记录下来,希望能帮到和我有类似境遇的同学。
职场第一站
毕业后很快入职了国企,开始了漫长的打工生涯。
学校里做的只能算玩具
刚开始工作,很快就遇到困难了。
前面提到过,我是非科班出生,唯一的编程课就是C语言,那时候的开发工具叫Visual C++,是在我自己的windows电脑上做的开发,但是到公司以后,我发现代码的编译和运行需要在Linux上,我当时就有点懵逼了,Linux我只是听过,完全没用过,我当时就想这玩意也没个图形界面,全靠命令,这么难用,为什么要用这个啊?但是没办法,我也不敢声张自己完全没有用过这个,只好默默学习,好在学习能力还不错,很快也能掌握Linux的基本用法了。这是刚入职场遇到的第一道坎。
第二道坎是第一个独立做的项目。有一天老板把我和另外一个应届生叫过去,说有个印度的项目,要做个XX工具,并要去印度现场交付,问我们两谁想去。我主要是感觉虽然是印度,但是“出国”这个事情有点洋气,况且还有对当时的我来说不菲的出差补助,于是当即就把这事应承了下来,然后就开始了交付前期的开发工作。
软件工程不光是写代码
开发了一两个月后,因为这个是和现场环境强绑定的一个工具,所以就需要去到印度现场进行现场调试交付,我也就跟随团队去到了印度客户现场,开始了这个工具的第一轮测试。
测试的过程中肯定会不出意外的有问题,真正让我意外的是,这个时候我发现这个完全是我自己写的这个工具,我却基本上无法维护它了。
原因是我一两个月前写这个工具的时候,还是学校里用的那一套,变量名可能叫a、b、test之类的,然后整体也没考虑怎么拆分函数,导致的第一个问题是我看不懂我一两个月之前写的代码是什么意思了,因为时间有点长回忆也回忆不起来,后来我才知道,这个叫做代码的可读性;第二个问题就是看懂了也改不动,因为我如果为一个功能改了一段代码之后,可能就让用了同一段代码原本正常运行的另外一个功能就工作不了了,后来我才知道,这叫代码的耦合性太高,没有做到解耦。
这个时候我才深刻的认识到,所谓写代码,并不是说实现功能就行了,而应该是一个完备的工程,除了功能外,还有可读性、可维护性等跟功能同等重要的考量维度,甚至根据我自己的经验来说,可读性、可维护性比代码的功能更重要,这也为我后来的职业生涯打下了对软件工程质量良好的理论基础。
正应了那句话:人教人教不会,事教人一教就会。
费了一番功夫后,印度的项目算是顺利交付了。有趣的是,回国没多久,差旅补贴就到账了,对于当时月收入不过万的我来说,拿着这一笔5位数的补贴,我产生自己的消费能力得到了巨大提升的幻觉,之前想买nike时都是网上各种搜折扣比价,拿到补贴后就想去直接去线下专卖店买双原价的。
下一站
在这里待了一年多后,我就开始思考下一站的问题了,因为我的老家是某二线城市,我想了下我始终是要回老家生活的,所以就想回老家找份工作,于是就开始了下一站的寻找,没过多久,就在老家找到了一份外企的工作,也在毕业两年后,达到了曾经向往的“年入10w”。