原文链接:https://www.changxuan.top/?p=836
从去年三月四号到现在已经一年零一月有余了,古人尚有“吾日三省吾身”,趁假期有时间也应该回顾与总结一下我工作后的第一年。
这一年里参与了 A 项目、B 项目从设计到研发交付的整个流程,临时支持了 C 项目组一周的后端开发,之后就被调入 D 项目组做后端开发。其实在 D 项目中,由于项目业务逻辑过于复杂最初只是在熟悉业务流程与阅读代码。前期交给我的任务也主要是改 bug,做一些小的功能点的实现。
在前两个项目中我做的更多是系统功能上的实现,系统框架本身以及乱七八糟的东西并不需要我去关心,而是由一个技术还不错的同事来负责。所以在这两个项目做完后就产生了一种错误的心态“以为自己掌握了很多东西,会了很多,看什么就感觉很容易,所谓的软件开发也不错如此”,这种想法真的是大错特错。所幸当头棒喝来的挺早,等到去支持另一个项目组的时候,遇到了一些问题后就开始思考,不过头上没长草。后来,在 D 项目做一些工作的时候才发现原来项目中除了技术重要,业务也十分重要(以前也知道这句话,也明白但是与现在的明白是不同的感觉。比如:前段时间对于 ‘熟能生巧’ 这个成语又有了深刻的理解)。对于技术来说你可以只关注单独的一个点,而对于业务来说则要关注项目的整体,有些术与道的感觉。涉及到项目整体的设计与实现,只谈技术是远远不行的而是需要设计者有丰富的经验以及对业务的深刻理解才能更好的发挥技术的长处两者是相辅相成、相得益彰的,而如果具有这种能力我相信一般有远见的公司不会轻易撵走的。有一段时间我看了很多自媒体在说程序员中年危机之后,还天真的以为做 IT 行业的从业人员特别是技术人员,年龄大了就真的没有了出路或者很难找到出路?现在有些明白了,其实不然。随后在对 D 项目相关子系统使用 Spring Boot进行重构时,摆正心态技术问题一个点一个点的去攻破,对于整体业务流程的理解也逐渐加深,感觉每天都能学到新东西。
一个程序员(说实话我本身不太喜欢程序员这个名词之前还挺喜欢,相比较而言现在更喜欢称自己为“工程师”,是自己的“虚荣心”在作怪亦或是因为社会上总会有些拿着”程序员“这个名词调侃的声音),为什么会存在中年危机呢?当然如果说客观原因,我想大多数行业(注意是大多数,排除个别少数以及*内)都会存在许许多多或相同或不同的客观原因并且还能罗列一大堆,这个就没有必要深入讨论。真实的社会规则就是这样子的,不会因为你是新人就把你放到一个“菜鸟训练营”打怪,因为你家有老小就多多照顾你。为什么说社会规则之前还加上了一个“真实的”定语来修饰呢?因为不能排除有些人是生活在人为建造的“小世界”中。那么主观原因是什么呢?我认为主要还是在于平时不注重个人的积累与沉淀。年龄大意味着经历丰富,但并不意味着经验也丰富。在找工作中经验可以作为自己薪酬的砝码,而经历或许只能拿来与面试官胡侃。特别是像做技术的,是真厉害还是假厉害不出一个月就能看出来了。
有段时间我在想一件事,毕业后 A 同学去了一家在二线城市做传统软件的小公司,B 同学去了一线城市的一家小型互联网公司。两个公司规模都差不多大,假如 A 同学和 B 同学工作中编写的代码功能都是一样的但是 B 的薪资刨去城市生活成本差异之外还高出 A 不少。可以看出这不是因为 B 的技术水平比 A 高,而是 A 写的代码可能只服务了一家企业的几百名亦或是几千名员工,但 B 写的代码在服务着几十万上百万的用户。这个差异则是个人无法弥补的,当然如有“ETC”非得说“怎么弥补不了,A 同学认真勤奋,天资异禀不出五年带领小公司变成了大公司”,那我只好再对这句话加个定语“这个差异则是普通的个人无法弥补的”。这个世界大多数人都是普通人,哪有那么多的 super hero,但是每个人应该都能从这件事中体会到自己需要的东西吧!
我学到了什么?
首先对于企业中软件开发的流程有了比较具体的了解,知道了在开发中如何使用版本控制工具,项目管理工具等与同事沟通协作。项目开发中与其他部门的相互配合,特别是测试部门。刚开始写程序时,测试部门同事给提出了很多 bug,都是在学校时做课程设计从来没有考虑到的点,不过后面多加注意就避免了。还有就是遇到 bug 时的心态更加稳重了。
不敢说技术方面得到了很大提升,总之进步还是有的。由于19年下半年个人的客观原因,没有加强专业技术知识的积累与学习,在20年之后就开始了有计划的学习、刷题。
... ...
我有哪些不足?
随着了解的越来越多,越感觉到自身知识积累的匮乏,还有好多不足。