这十年,为什么他一直选择编码?

举报
华为云社区精选 发表于 2018/05/02 11:23:12 2018/05/02
【摘要】 时光荏苒,从2008年加入公司,至今近10年了。这十年来,我一直奋斗在软件开发编码一线,经历了公司历年的软件开发改革,从一个开发小兵成长为编程精英,还获得过两次网络编程界最高奖项 “网络十大金码奖”。软件编码工作在很多人看来也许是繁琐、枯燥的,不过我却始终乐在其中。

做一个快乐的代码工匠
                                                                ——朱康毅 

时光荏苒,从2008年加入公司,至今近10年了。这十年来,我一直奋斗在软件开发编码一线,经历了公司历年的软件开发改革,从一个开发小兵成长为编程精英,还获得过两次网络编程界最高奖项 “网络十大金码奖”。软件编码工作在很多人看来也许是繁琐、枯燥的,不过我却始终乐在其中。

热爱——动力之源


回想起来,我会从事软件开发,并不是心血来潮或者阴差阳错,而是从小打电子游戏时建立的理想。我算是比较早接触电脑的人,一开始是为了打游戏,那时觉得电子游戏太神奇了,做出这些游戏的人一定超级炫酷,慢慢就产生了成为编写电脑程序的人的想法,可能从那时起就开始了我和编程的不解之缘。


上大学时我毫无悬念地选择了计算机专业,而且在班级中也算是编程小能手。那时最复杂的编译原理课程有项作业是编写一个简单的编译器,班里不到十分之一的人能够编写出来,我就是其中一员。当我经过一周的钻研和开发把作业交给老师演示时,老师点评:“你是一个编程的料。”我很兴奋,至今想起依然难忘。


带着对编码的喜爱,我进入华为成为一名研发人员。当然了,即使它成为了我的工作,我仍然能在其中找到自己的乐趣。平时就很喜欢看各种编程书籍的我,觉得书籍比小说电视剧有意思,还曾做了好几本编程语言和算法书籍上的习题,有的还做了好几遍,用不同方法来解决。就像打游戏一样,不仅要玩通关,还要各种花式通关,如果有机会向小伙伴“炫耀”一下就更完美了。


后来公司推出了一个做编程练习的OJ平台,有各种各样的编程题目供大家挑战,还有积分系统,所有人都能看到排名。我常常在上面做题,是我们团队第一个积分超过一万的人,排名第一的记录也保持了很长时间。在积分榜上排行前列,然后在小伙伴面前装出一副“我只是随便做做就拿了个第一”的样子,想起来就很酷,这太符合我低调却又好胜的性格了。还记得有个最高分挑战题,一开始组内几个人都做不出来,为了第一个完成,我花了一个礼拜在网上查资料,还为此买了一本最新的算法教材,研究了好几种搜索和动态规划的算法,最后终于第一个成功解题。那段时间我连晚饭都不想吃,觉得不解出来吃饭都索然无味,当然,解出来后在小伙伴“崇拜”的目光下还是要摆出“这个其实很简单”的样子。


因为热爱,这么多年我始终坚持做软件编码,不断提升。公司是个很大的舞台,这些年我也有成为管理者或者去其他在别人看起来更优越的岗位的机会,但我还是最热爱编程,所以选择在这条道路上一直走下去。也有很多同事和我一样是因为真正热爱编程,才把编程当事业来经营的,而不仅仅是一份工作。我相信真正热爱编程的人,一定能在编程的道路上走得更高更远。

image.png

2015获得产品线开源骑士勋章



极致——精益求精


真正热爱就会全情投入,只做到合格是不行的,还要精益求精,做到极致。这感觉和我老婆在朋友圈晒自拍是一样一样的,那真是“拍照五分钟,修图两小时”,让自己满意为止。


记得以前遇到一个问题,我们有一种管理服务,在系统过载的时候多个客户端同时连接认证处理不过来,会导致有的客户端认证失败,性能需要优化。经过第一次优化,性能得到提升,大多数情况下都没有问题了,但是一些极端情况下还是会出现这个现象。于是做第二次优化,但处理效率已经没有提升空间了,只能设法限制同时认证的客户端个数,这样即使极端情况下也不会再出现问题。问题虽然解决了,但是我觉得如果做成动态控制的话会更灵活,于是又做了第三次优化。这个过程中我又发现动态检测有时会有些延迟,及时性还可以再提升,但是如果提高检测的灵敏度又会影响其他地方,一时也没有想到很好的方法。于是那几天我一直左思右想怎么才能做得更好。


事实证明,人民群众的力量是伟大的,一直困扰我的问题最后靠老婆的启发解决了。记得那段时间天比较冷,老婆抱怨家里水凉,洗脸时热水器要放好长时间才能出热水,她和我商量想买一个前置加热器,装在水龙头底下,热水流过来前先靠这个加热。这个想法让我突然想起一直在思考的问题,热水有延迟可以通过加个前置加热器解决,那么动态控制有延迟是不是也可以通过加个前置控制器来提高灵敏度,还不影响其他地方?第二天我立马做了第四次优化,效果果然很不错。大家也觉得这个功能很好,很快就有一些同事想直接拿去用。为了做到通用,让其他模块遇到类似问题也可以直接使用,我继续做了第五次优化。


就这样,这个问题前前后后优化了五次,达到自己满意的效果为止。

开放——成长之匙


软件开发是一个通过思想进行创造的活动,要做工匠,不能闭门造车,还要开放思想。我工作中也很喜欢和伙伴们交流,既可以分享自己的成果,又能学一下别人的妙招。


刚上公司的內源社区时,我有一次做了一个告警抑制的特性,要写一个抑制的算法,琢磨了好几天写了一个自己觉得挺不错的算法提交了上去,结果很快收到另一个团队的同事给我提的意见,提到好几个我没考虑到的问题,末了还说他们有一个现成的实现,比我这个好。一开始看到这些意见,我的内心是拒绝的,我那时已经得过一个网络“十大金码奖”了,竟然被评价我的代码写得不好?但当我看了他提供的算法的实现,“duang”地一下被砸中了,也有点羞愧——这个代码确实比我写的好,算法巧妙,考虑的场景很全面,效率也很高,相比起来我写的简直就像玩具似的。非常感谢那位同事,后续我们团队用了他们的实现,确实更好用,还提高了工作效率。


从这以后,开发代码的时候我都会先看看社区上别人相关的代码是怎么做的,多学习他们的好方法。自己的代码提交到社区更是要精心修饰一番,我终于深刻理解了老婆晒照片前要修半天的感觉。


后来团队成员在我们的带领下全都把代码提交到社区公开展示,我也常常给大家的代码提意见,辅导同事改进,讨论交流哪种实现方法更好。通过社区交流互动,我们团队的编程质量有很大提升,这几年也产生了多位网络金码奖得主。每天能够在内源社区上帮助同事提升,同时自己又有所收获,真是件很快乐的事。

坚持——进步之路


有人问我,你编程编得好,除了爱好还有没有其他秘诀?我觉得如果有所谓秘诀的话,除了“热爱”应该就是“坚持”了。我身边也有很多热爱编程的朋友,也有很多最终选择了其他事业。“坚持”可以说是我们人生中最知易行难的事情,道理大家都懂,但做到的人并不太多。


可能因为从小身体就弱,更需要锻炼,我从大学开始健身,一直坚持了很多年。工作之后,有了孩子,健身慢慢荒废了,体重也逐步爬升,连续两年体检出脂肪肝,给我敲响了警钟。2016年开始,我重拾健身的习惯,每日在Keep上打卡,每天至少认真锻炼30分钟,坚持了9个月,体重回到正常水平,瘦了二十斤。和我一起开始要减肥却中途放弃的朋友羡慕地问我怎么做到的,我看了看他练了一周就没有下文的运动记录,笑笑说:“坚持就好”。老婆也问,“我跟你一起坚持练了啊,咋没见瘦呢”,想想她每次被我拉着锻炼时躺在沙发上动动腰应付一下的样子,只能心里默默腹诽一句:“你骗谁呢。”


其实写好程序和健身一样,是需要持之以恒方能有所成效的事儿。我刚进公司时编程水平并不比其他同事高,但是我一直不断地学习、练习,头几年也没有超出别人多少,但是我一直坚持,努力,因为我知道时间终会给我回报。到了第五个年头,我成为网络的金码奖得主,让我看到多年坚持带来的收获与认可。


回顾这些年,我很幸运能够一直做自己喜欢的事情,坚持奋斗从不觉得艰苦。程序员对于自己有很多种称呼,比如码农,但我一直觉得不够贴切,直到我在网上看到代码匠这个词,觉得这才是最贴切的。不仅仅是“代码匠”,我觉得还可以再进一步,把自己定义成“代码工匠”,这个定义蕴含着我们这些编程者的热爱、开放与坚持。


我想,我会一直是一个快乐的代码工匠。

image.png

2016年在工程师盛典上作为金码奖获奖代表分享


本文为《华为人》版权所有,未经允许不得转载。如需转载请联系编辑部hwrb@huawei.com

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。