写点什么

码农精进之路:我不相信 35 岁就做不了程序员

  • 2020-06-20
  • 本文字数:4028 字

    阅读完需:约 13 分钟

码农精进之路:我不相信35岁就做不了程序员

“我有一个梦想,我写的代码,可以像诗一样优美。我有一个梦想,我做的设计,能恰到好处,既不过度,也无不足。”



很多人会有一种固化的思维,认为只有伟大的人才配拥有伟大的梦想,但其实这个世界上原本就没有那么多伟大的人。所有伟大的梦想都是由普通人一点点的小愿望经过不断地努力,最终才变得不那么平凡,甚至称得上伟大的。张建飞一直觉得自己就是一个再普通不过的人,但是拥有自己小小的梦想,也愿意为了梦想坚持和努力。

坚强的母亲带给自己不愿服输的性格

张建飞于 1982 年出生在皖南一个很普通的农村家庭。出生的那天,全村人都在参加婚礼,也许是受热闹气氛的影响,他比预产期提前了好几天降临,直到建飞已经呱呱落地了,父亲才从酒席上赶回来。还好母亲心态好,一切也都顺利。


80 年代的中国农村,虽然已经不存在温饱问题,但是日子过得还是很紧巴,一到下大雨的天气,家里的土房里就会下小雨。建飞从小就会帮助家里做一些力所能及的活儿,一家人虽然生活清贫但也拥有朴实的幸福。


在他 7 岁的时候,母亲决定建新房子。这可不是一件小事情,虽然妈妈和爸爸靠做衣服这个手艺挣到一些辛苦钱,但是离建房还差一些。就是在那种比较艰难的环境中,家里还是修起了新房子。建飞知道母亲在这其中做了很大的努力,这再次让他感受到母亲坚毅的性格,只要她决心要去做的事,一般都可以做成。


母亲有两个哥哥一个妹妹,在她 9 岁的时候外婆就去世了,外公是一个脾气暴躁、不会关心人的粗线条男人。母亲除了要给一家人洗衣做饭以外,还要在父亲发火的时候,保护妹妹。不好好的生活环境养成了她坚强不愿服输的性格,而这种性格从小又带给建飞很深刻的影响,让他自小就愿意多去尝试和努力,不会轻易服输。



张建飞和家人

成长中的无数小事,铺就了日后的路

小时候的张建飞并不是一个很自信的人,总觉得学习平平的自己在各个方面都很普通。小学 5 年级的时候,他和几个小伙伴在村里的一个池塘游泳。当轮到建飞的时候,他用最大的力气把自己抛向空,等砸到水里之后感觉一阵剧烈的刺痛,左脚被严重的割伤了,脚底几乎一半的肉已经被割开,可能是速度太快,伤口好像都来不及流血。正值小升初的关键期,这件事耽误了考试,他不得不在 5 年级又多待了一年。


但是塞翁失马,焉知非福,在留级的那一年,张建飞小宇宙开始爆发,成绩出奇得好,在各种竞赛中都拿到了很好的成绩。做惯了普通学生的他,突然发现自己也是有潜力变好的。后来在高考时分数刚刚跨过重点线,为了能选上一个比较热门的专业,他特意选了一所离家很远的普通 211 学校——云南大学。


离家遥远的代价就是每年他不得不坐上 2 天 2 夜的火车去学校上学,而且每年春运火车票非常紧张,连坐票也没有,只有站票。因为离家太远了,建飞基本上一年只在寒假的时候回家一次,暑假一般都留在学校勤工俭学。可以说,这个过程很大程度培养了他去探索和敢于吃苦的精神。


大学时候,张建飞有两个兴趣爱好,一个是英语,一个是打篮球。英语对编程的帮助主要还是在看书和看资料方面,打篮球也让他拥有健康的体魄。在建飞看来,人生是一场持久战,健康是 1,其它都是 0。更何况编程要学的东西非常多,没有一个好身体打持久战可不行。

人生每个转折点都是一种选择,工作让我更成熟

2007 年计算机工程硕士毕业后,张建飞先后在软件公司 InfoSys 与互联网公司 eBay 担任高级研发和技术专家的职务。2007 年到 2010 年是高级研发工程师,2010 年到 2014 年是技术专家。这段工作经历最大的成长是在 eBay 学会了大型分布式系统的技术体系。


2014 年,他加入阿里巴巴,先后在 1688、ICBU 和零售通担任技术主管。他非常认同阿里的文化和价值观,比如“客户第一,员工第二,股东第三”,就是一种利他文化,当我们越多地帮助他人成功的时候,自己才会成功。再比如“唯一不变的是变化”,阿里强调拥抱变化,他也非常认可。这两个价值观促使建飞不断学习、不断成长。


建飞在阿里工作最大的转折点发生在 2015 年年底,也就是加入阿里半年后。因为自己自小就不是一个太自信的人,而且还很敏感,非常在意别人的眼光和看法,所以在入职阿里之后,张建飞想要快速地去证明自己,这种“求功心切”的想法无形中给了他巨大的压力。在这种压力和焦虑之下,工作也很难做好,工作做不好又会更加焦虑,形成了恶性循环。最严重的时候,他连续失眠两个星期。



张建飞和朋友


使得张建飞状态逐渐调整好的方式是看书。这个阶段对他影响最大的有两本书,一本是《 成长型思维 》,另一本是《 活出生命的意义 》。


《成长型思维》教会了他要用发展的眼光看自己,焦虑不能改变现状,而持续学习、提升自己可以。《活出生命的意义》教会他生命的潜能是无限的,即使在最糟糕的境地,我们也有选择的自由。这之后张建飞逐渐放平了心态,平复了思绪,该学习学习,该运动运动,该努力努力,该度假度假,不再那么敏感,也不再那么在乎别人的眼光,这才有了后面的 COLA,有了《代码精进之路:从码农到工匠》。


2018 年的时候,建飞带领团队在部门的代码大赛上拿到了第一名。当时的奖励是和集团副总裁玄难共进晚餐。在晚餐会上,玄难同他们聊了很多有关自己的心得,这对张建飞有很大的激发。张建飞向玄难表达了想写一本书的想法,玄难表示很支持,还答应给书写序。


后面,每当在工作中遇到问题,玄难也会像朋友一样给张建飞指点,给了他很多的力量。

好奇心给我热情,写代码是一直探索到老的事情

对张建飞而言,当初选择了计算机专业并不是没有后悔过,选计算机专业没有别的,就是因为计算机是当时的热门专业,但其实他一度认为自己不适合编程。直到大学毕业那年,他也没有写过几行代码,还好学校的计算机课程大部分是不用编程的,否则建飞认为自己甚至会很难毕业。后来读了研究生,研究生的前半部分生活简直就是大学的延续,上课、寝室、球场、英语角……直到开始做一些小项目,才开始了张建飞真正的编程人生。


他是一个典型的慢热型程序员,虽然很慢热,但他一直没有放弃学习,没有放弃得的更好 。建飞不相信什么“35 岁之后做不了程序员”之类的话 ,他认为我们就是要活到老,学到老。写好代码不是一件容易的事,唯有不停地学习,不停地探索,向国外的编程大师们看齐,保持精进,才有可能把这件事做得更好。


好奇心对建飞职业的影响是他一直在探索如何写好代码。从开始工作的第一天起,就有这个想法,不过受限于当时的技术能力和经验,一直没有找到很好的方法。直到《代码精进之路:从码农到工匠》的出版,才算是找到一些门路。但他知道,这只是开始,未来的路还很长,自己会继续保持好奇,继续探索。


张建飞的偶像是维克多·弗兰克尔博士,正是他让自己看到人类如何在最恶劣的环境下仍然可以发出人性的光辉。反观自己,我们受的这点苦,根本就不值得一提。维克多·弗兰克尔博士说过:“人越是忘记自己——投身于某种事业或献身于所爱的人——他就越有人性,越能实现自己的价值。所谓自我实现,绝不是指某种可以实现的目标,因为人越是追求这个目标,越是容易失去。自我实现是自我超越唯一的副产品。”这些都给了建飞很大的启迪。


说到研发 COLA(全称是 Clean Object-Oriented Layered Architecture)的初衷,建飞觉得在做了多年业务技术开发之后,他发现“日子再也不能这么过”,为什么所有的业务代码都这么混乱,这么复杂?解决复杂度就是他研发 COLA 的初衷。


COLA 的优点是它给那些想实践 DDD、想写好业务代码的同学提供了一个可以落地的框架,可以减少他们的学习成本和探索路径。COLA 对行业的最大贡献是让 DDD 从一个形而上的思想,变成一个可以看得见、摸得着的代码框架。同时其扩展点的设计是继承之阿里中台的扩展设计,对于那些想要通过一套代码支持多个业务,或者多个租户的场景也能提供帮助。

创作《代码精进之路》的初衷,写出更好的代码

2018 年 7 月,张建飞在阿里巴巴内部的技术博客 ATA 发表了一篇文章《技术人自己的 KPI》,表达了对技术团队越来越没有“技术味道”的担忧,以及技术团队除了业务项目之外,还应该有属于自己的 KPI,而不是完全和业务的 KPI 绑定。让业务先赢应该是底线,而不是全部。文章中还提到,程序员要有工匠精神,并鼓励大家通过学习、实践、分享不断提升编码能力和设计能力。用工匠精神写每一行代码,而不是简单地通过代码堆砌实现业务功能来交差。



张建飞和阿里的同事


该文章在阿里巴巴内部和外部(在公众号“阿里技术”上也有发表)引起了不小的反响,道出了很多一线工程师和技术 Leader 的心声。大家纷纷表示技术味道的缺失不利于工程师自己的成长,从长远来看,也不利于公司的发展。我们需要做出改变,需要一种追求卓越的工匠精神。


基于这个出发点,建飞提出了一套对技术人员技术工作进行量化的指标,并通过“工匠平台”这个产品进行落地。“工匠平台”会收集这些技术指标,并对其进行评分和统计,从而提供一个更加全面的技术人员画像,更加客观地反映技术人员的技术贡献。


张建飞很多次在思考,在软件的世界里,到底有没有优雅的代码和整洁的架构呢?他想还是有的,但是更准确地说是:有优雅代码和整洁架构,但是没有一成不变的优雅代码和整洁架构。在软件的世界里,一定要学会变通,不能教条。


就是这样的,我们学会规则的目的是为了知道在什么时候打破规则。不是说你使用了 COLA,就一定要遵守 COLA 的条条框框。不是的,你完全可以变通,可以发展,可以尝试不一样的做法。只要这种做法在你的语境下是合理的,就可以去做。


张建飞说,他有一个梦想,他写的代码,可以像诗一样优美;他做的设计,能恰到好处,既不过度,也无不足。他认为工程师最大的美德就是写出让人可以看懂的代码。



编后语:张建飞说过,他最希望将《代码精进之路》推荐给职场新人看,因为如果在你初入职场的时候,就有一个人教你怎么写好代码,那一定是一件很幸运的事情。


“种一棵树最好的时间是在十年前,其次是现在”。我不相信什么“35 岁做不了程序员”,也不相信什么“年纪大了,精力不够”。我只知道有些人在持续学习,有些人过早地享受安逸。


愿你在新的一年可以快乐,也能有所收获。


2020-06-20 18:361366

评论

发布
暂无评论
发现更多内容

架构师训练营 Week 11 作业

Wancho

Week 11 作业

鱼_XueTr

架构师训练营 第十一周 总结

CR

系统不可用的原因和解决方案

极客李

第十一周命题作业

菲尼克斯

漫画解读:唐僧师徒如何帮助大唐官网打造CDN+OSS完美架构?

阿里云Edge Plus

架构师训练营第十一周作业

子豪sirius

云上度假村木莲庄酒店助你远离城市的喧嚣

InfoQ_967a83c6d0d7

系统稳定高可用的方案以及用户密码验证函数

Acker飏

极客时间架构师训练营 - week11 - 作业 2

jjn0703

极客大学架构师训练营

用户密码验证函数

任小龙

Flink算子状态-9

小知识点

scala 大数据 flink

用户密码验证函数

周冬辉

加密

Apache Pulsar 社区周报:08-15 ~ 08-21

Apache Pulsar

云原生 Apache Pulsar 消息系统 消息中间件

架构师训练营 Week 11 总结

Wancho

架构师训练营 - 第 11 周作业

Jam

java安全编码指南之:拒绝Denial of Service

程序那些事

Java 安全编码指南 java安全编码 DOS攻击 zip炸弹

架构师训练营 第十一周 作业

CR

【高并发】高并发秒杀系统架构解密,不是所有的秒杀都是秒杀!

冰河

高并发 分布式限流 秒杀系统 异步削峰 签约计划第二季

安全架构和高可用系统的架构

周冬辉

高可用系统的架构

【华为云数据库技术大公开】机房失火后,还能拯救你的数据吗?

华为云开发者联盟

数据库 机房 华为云 数据存储 云数据库

Week11总结

熊威

极客大学架构师训练营 0 期 week 11 作业

chun1123

高可用 密码校验

架构师训练营第 0 期第 11 周作业

无名氏

Newbe.Claptrap 框架入门,第四步 —— 利用 Minion,商品下单

newbe36524

云计算 微服务 dock .net core ASP.NET Core

etcd的高可用

李小匪

极客大学架构师训练营 0 期 week 11 学习笔记

chun1123

安全 高可用系统的架构

高可用的系统架构

莫莫大人

极客大学架构师训练营

Week 11命题作业

Jeremy

第十一周学习总结

菲尼克斯

Week11作业1

熊威

码农精进之路:我不相信35岁就做不了程序员_文化 & 方法_技术琐话_InfoQ精选文章