高效程序员的6个习惯

分享与发现 qloog · 2019年12月31日 · 314 次阅读


习惯是什么意思呢?一个人常常出现的行为,通常是在后天养成的,有些是不自觉地模仿,有些是刻意练习。一件事坚持的久了,就会慢慢变成习惯。比如我,读书、写作就是我的习惯,无论多忙,不读不写总会觉得少点什么。

不管是生活还是职场,好的习惯总能让人受益一生。巴菲特曾建议年轻人,“找一个你崇拜或者最想成为的偶像,从他身上找出你最欣赏的特质,然后开始学习和模仿他,把这些特质变成你自己的习惯。”

之前一个同事问我,有哪些习惯可以提升工作效率,我当时推荐给他文卡特·苏布拉马尼亚姆(Venkat Subramaniam)和安迪·亨特(Andy Hunt)合著的一本书——《高效程序员的 45 个习惯》。这本书的两个作者都是敏捷开发的权威人士,他们通过一个个职场案例生动地总结了高效开发人员应该具备哪些习惯,涵盖了开发者态度、项目和团队管理、软件开发进程以及持续学习等几个方面。我从中挑选出 6 个习惯,结合自己的经验,和你分享一下。

一、欲速则不达

当出现 bug,时间又很紧迫时,普通程序员做的是迅速改完代码,然后马上转向下一个问题。快速修复虽然看起来很高效,但它往往解决的只是表面问题,当问题积累到一定程度后,代码将没有清晰度可言,甚至没人能看懂,最终变成一团迷雾。“千里之堤,溃于蚁穴”,大灾难往往是由一个个小问题逐步演化来的。如果每次都不去探究问题根源,最后只会全盘皆输。

那么,优秀程序员是怎么做的呢?他们会挖掘更深一层的问题,理解哪里要做修改,改后会产生什么影响。此外,他们还会投入时间和精力保持代码的整洁,而不是每次都缝缝补补,让代码变得越来越乱。

我们常说“欲速则不达”,其实就是希望大家不要一味追求速度,要以真正解决问题为基本原则,治标也治本。做事也好,做人也罢,有些事情急不得。心急连热豆腐都吃不了,更何况其它的事呢?

二、跟踪变化

世界上唯一不变的就是变化。人会变,技术也会变,尤其是在互联网时代里,一切都按下了加速键,共享单车从巅峰到衰落只用了 3 年,O2O 从风口到冷却也只用了 3 年。

软件开发行业也是如此。它不停发展,永远变化,Rust 从出现到流行只用了 10 年,Go 从诞生到入选“TIOBE 最佳语言”只用了 9 年。谁也没办法保证未来哪门编程语言最流行,谁也说不好哪个语言会被拍在沙滩上。对于技术人来说,不断充电才是提升职场竞争力的关键法宝。

以下 4 个小方法可以帮助我们不断学习,拥抱新技术:

1、迭代和增量式的学习每天拿出一部分时间用于学习新技术,当你听到自己不熟悉的概念时,可以把它们先记录下来,之后再有计划地逐步深入研究。

2、了解最新行情从媒体网站或科技博客中了解新技术发展,看看大家都在关注哪些领域。平时可以多看看 InfoQ 网站以及极客时间的专栏,新技术出现并不可怕,可怕的是别人都摸清门路了,你却一无所知。

4、参加知识讲座全球每年都会举办各种知识讲座和大会,极客邦主办的就有 QCon 和架构师峰会等,主办方通常都会找到行业内知名的专家或顶尖技术人才发表演讲,你可以近距离向这些厉害的人物学习。

4、持续阅读既要阅读技术相关领域的好书,也要阅读其他领域的好书。对开发人员来说,提升技术硬实力很重要,但像沟通、管理等软实力也不能忽视。

三、把握开发节奏

很多程序员在工作中都没有明确的规划,总是随意安排工作,一会做做这部分的功能开发,一会改改那部分的代码,毫无章法可言。

高效的程序员和团队做事有稳定的节奏,从编写代码、运行测试、Code Review、迭代到发布,整个项目有规律并循序渐进。他们把一个庞大的目标分割成数个小目标,设置好每个目标的 deadline,每完成一个目标也会更激励自己和团队,一起加速前进。

四、使用短迭代,增量发布

没有完美的人,也没有完美的软件,我们要做的是让它不断趋于完美。如果你想从一开始就做一款超级完美的软件,一口气给出大项目的全部规划,那你多半会失败。因为时代变化太快,玩法也越来越多,而你却花了大量时间浪费在第一个版本,开发过程中没听到外面的声音和反馈,闭门很难造出好车。

做大项目时,最理想的办法就是小步前进,这也是敏捷方法的核心。开发人员可以使用短迭代和增量开发,既专注又有效率,还能及时从反馈中获得新的灵感,一步步走向完美。

五、代码要清晰地表达意图

都说字如其人,我觉得代码也是如此。有的人细心,写代码的时候喜欢加上各种注释;有的人随性,写出的代码除了自己几乎没人看得懂。第一种还好,但第二种,你有考虑过同事们的感受吗?

写代码能准确实现功能,不出 bug 固然优秀,但能让大家读得懂才是本事。在工作中,代码阅读的次数要远远超过编写的次数,所以,不能只为了自己方便,就忽视了代码的可读性,编写时还得多花点功夫才行。这本书中甚至还表达了这样的观点:从衡量标准上来看,代码清晰程度的优先级甚至要排在执行效率之前。这个说法当然有点绝对,但不可否认的是,清晰的代码对于个人、团队乃至公司而言,都无比重要。

六、保持简单

简单不是简陋,也不是指难易程度,真正的简单是既把功能实现了,又没有多余的代码,一眼看上去,简洁有力,易于理解。

我们常说“less is more”,简单就是美,这句话放在技术圈里同样适用。和那些复杂的代码相比,简单的代码其实最难。这话听上去有点拗口,打个比方,同样的功能和运行效果,有人写了 200 行代码就实现了,你洋洋洒洒写了 1000 行,多出来的是智慧吗?很可能你是在代码里绕了几个圈,兜兜转转,在平坦的道路上曲折前行,而人家走的却是直线。

以上就是我挑出来的 6 个习惯,这本书里还有很多值得学习和借鉴的好习惯,适合所有程序员阅读,希望每个人都能从中受益。其实,养成好习惯并不难,据说养成一个好习惯只需要 28 天。那么,你愿意挑战一下吗?

转自:MacTalk