2017年,我从学校毕业,来到杭州找工作。第一份实习是一家金融软件公司的Lua脚本实习岗位。由于在学校里一直写C/C++代码,当时对这份Lua脚本工作没什么好感(站在2026年回头看,编程语言只是一种工具,只是那时年轻气盛,不懂得这些),于是没多久就离开了,转而加入了一家中小型科技公司。
巧的是,那家公司正好需要一个做Lua与C交互开发的人------发现还是要写Lua。不过在那里,我遇到了一位C++开发经验非常丰富的技术主管。在接下来的两年里,每次代码提交,他都会手把手审核,甚至走到工位上告诉我哪里写得不好、这里需要改、那里容易出现内存泄漏。就这样反复打磨了两年,我感觉自己总算入了门。第三年时,我调去了其他组。当时同事们得知我是从那家金融软件公司过来的,还常拿这事笑话我。不过平心而论,2017到2019这两年,在老师傅的帮助下,我收获非常多,周末也常常在家看编程相关的书。至于当初离开那家公司的选择是对是错,到今天我也说不好------但那段经历确实塑造了我。
2020年疫情爆发,我面试拿到了南京一家公司的工作机会,结果临到入职被对方放了鸽子。后来经熟人介绍,进了一家物联网小公司。老板也是一位老师傅,亲自设计的软件架构,分层思想非常浓厚,接口的定义和分离做得很好,那份代码的设计水准相当高。我在那家公司主要就是对接通信协议,按照老板的架构做开发,周末依然在家看书。前后对接协议开发了大约一年半,总体感觉写了大量重复代码,但代码能力也算有所精进。
2021年,我跳槽到了现在这家安防行业的大公司,一直工作到今天。这些年下来,我逐渐意识到这家公司的产品应用场景极其复杂,开发人员的代码质量整体并不算高,但智力水平总体是很高的,脑子都很聪明------因为现场遇到的问题本身就足够复杂。在这里,我从事应用开发,每个应用都有项目管理,同时还有现场项目支持,每天要处理大量琐事,对技术的深度精进确实少了许多。公司的普遍状态是:大家代码水平差不多,项目又多,主要靠测试兜底,倒也不会出什么大问题。
现在是2026年。回顾毕业以来的工作轨迹:一开始是用Lua对接协议,然后是用C++对接网络通信协议,到如今对接现场、对接平台,连产品的UI设计也要参与,用户使用Web时的错误提示也要考虑。写了这么多年代码,我的体会是:从公司的视角看,用户购买了设备或服务,保障功能完善、让使用者能良好上手才是最重要的;当出现错误时,给出清晰的提示同样关键------至于个人代码质量,反而不是公司层面最重要的事。但从开发者的视角看,个人的代码水平依然非常重要;同时,保证产品和服务能良好运行,同样重要。这两件事,一个是对自己的要求,一个是对用户的责任,缺一不可。