程序员效率的奥义

简介: 为了提高效率,我特别重视如下几点:工具化、预见和练习、打破惯性和让你身边的人也高效起来。

自我感觉还是蛮在乎效率的人。为了提高效率,我特别重视如下几点:


工具化
我是个典型磨刀不误砍柴工的人。

2011年的时候,在开发一个项目前,我先花了几个礼拜自己开发了一套Web框架。

因为我之前做过一段时间的Ruby程序员,一对比,我发现,Java的Web框架都太不好用了,Java的ORM框架也不好用,Java 的MongoDB Client 也不好用。于是我决定开发一套一站式Web框架。

正好除了搜索的任务以外,公司希望做一个全站通用的标签系统。当时在选型上,老大说用Spring,我当时说,给我点时间,我自己开发一套开发框架出来,老大说,你有信心做好么,我说有。老大给予了肯定的答案

来自:这些年,我工作上走过的路

这套Web框架就是ServiceFramework。自己现在很多开源项目也都是基于这套Web框架是做的。比如StreamingPro编译的时候依赖的Web库是ServiceFramework,配置引擎则是ServiceframeworkDispatcher,都是自己非常常用的工具。

其实都是造轮子,然而这些轮子我们先不说它是否优于其他相似的开源项目,至少我对它们是把控力的,而且解决的也是我工作中比较常遇到的问题,所以用了起来特别的顺手,自然也就效率很高。

所以,积累自己的工具库,是非常有必要的。再提下刚才的StreamingPro,它的诞生是为了解决我使用Spark的问题。而为了解决运维相关的问题,我和同事也做了非常多的工具,有些我们花了一年以上的业余时间在持续完善。


预见和练习
虽然很多人似乎不Care所谓语系,不Care所谓工具,总觉得自己掌握了开发的真谛,其他一切我只要用的时候学下就能搞定了。

实际真不是这样。我们还是以语言为例,我学Scala只用了几天时间。在等火车,以及在火车上把官方的tutorial 看完,觉得差不多了,然后写了些简单的程序后,就能写一些业务了。然而我真正用顺了,用的不堵了,却花了几年的时间。对于一个不趁手的语言,代码质量是否能保证我们先姑且不论,其实也严重影响了开发效率。

所以我工作中潜在的可能会用到的东西,我都会先花很多时间去调研和练习,等真正用到的时候,就能如鱼得水,随心所欲。比如Scala,我早先只是简单用了下Spark,我完全可以用python或者Java去开发Spark 应用。但是我觉得Scala是有必要学习的,所以我花了很多时间去做练习。所谓练习其实就是真的把他应用到项目上。我之前有很多项目是java/Scala 混合的,这就为我后续对Spark Core的研究做好了铺垫。

所以对于一个程序员,对于自己工作技能的预见性能让你未来越来越游刃有余,而高强度的练习,则保证你做事情可以做的很顺手,不会用起来畏首畏尾。


打破惯性
所谓语言之争其实某种角度是守旧势力之争。每个势力都不愿意深入到别的地方看看,然后就说自己的地方是最好的。程序员是拥抱变化的,体现在程序员常说,一天不学习,就感觉自己进入了古代。然而程序员又是害怕变化的,对于自己不熟悉的东西,总是会比较排斥,这或许也是人类的天性。

尤其是在时间比较紧张的情况下,我们会常说,用最笨的办法先把这个解决了吧,这其实是在用蛮力替代一个良好的思考。好比命名可以用一个for循环解决的问题,你非要复制黏贴100遍。

所以,喜欢调研和测试新技术的程序员,往往是具有打破惯性的特质的群体。他们在不断的尝试过程中,不断的更新换代自己的武器,让自己保持某种先进性。这就好比一个国家不断更新自己的武器装备,一家工厂不断更新自己的机床车间。


让你身边的人也高效起来
这个是我直到今天才感悟到的。我一直努力让自己更加高效,不让时间虚度。然而当我们面临越来越复杂,越来越繁琐的任务时,我们不得不借助于团队。道理我都懂,然而却一直不上心。我们一直说团队是最重要的,然而我们终究并没有把心思完全放在团队上,为了自己的那点小九九。

只有身边的人也如你般高效,才可能释放出你来去做更多让更多人高效起来的事。更多的人更加高效,即节约了他们的生命,也反过来再次让你变得高效。

当你能够让身边的人也越来越高效,或许你就真的到了高效的最高境界。

目录
打赏
0
0
0
0
110
分享
相关文章
揭开Java性能提升之谜:异步编程如何让你的应用响应速度飞升?
【8月更文挑战第30天】随着互联网技术的发展,系统性能和用户体验成为关注焦点,异步编程因其能提高应用响应速度和吞吐量而在Java领域广泛应用。本文将详细阐述Java异步编程的概念与优势,并通过实战示例展示其在实际项目中的应用,如使用`Future`、`Callable`及`CompletableFuture`等接口和类实现异步操作,帮助开发者更好地理解和运用这一技术,以提升程序性能和用户体验。
70 0
代码之舞:编程艺术与效率的探索
【7月更文挑战第18天】在数字世界的广阔舞台上,编程不仅仅是一项技术活动,它更是一种艺术,一种将逻辑思维与创造力结合的艺术。本文将带领读者走进编程的世界,探讨如何通过理解编程的本质、掌握关键技巧和持续学习来提升编程效率和质量。我们将一同见证,如何在代码的海洋中航行,不仅追求效率的极致,更要追求代码之美。
《高效率程序员的45个习惯》读后小总结
《高效率程序员的45个习惯》读后小总结
43 0
身为程序员,你有哪些提高写代码效率的黑科技?
身为程序员,你有哪些提高写代码效率的黑科技?
攻城狮都应当知道的——编译器的工作过程
源码要运行,必须先转成二进制的机器码。这是编译器的任务。 比如,下面这段源码(假定文件名叫做test.c)。
214 0
攻城狮都应当知道的——编译器的工作过程
C语言学习资料汇集 助你成为更好的程序员
人们通常觉得计算机编程有点麻烦,但是有些人却从中发现了乐趣。每一个程序员都需要跟随计算机编程语言的潮流。大多数程序员开始编程的时候选择C语言,因为C语言是在编写操作系统和应用程序中用的最为普遍的语言。
245 0
C语言学习资料汇集 助你成为更好的程序员
如果你有拖延症,程序员不如试试这个技巧提升效率?
  要吃掉一头大象,每次吃一口。   ——克雷顿·艾布拉姆斯(Creighton Abrams)   造成拖延的首要原因之一,同时也是造成生产力低下的祸根,就是总是在感慨一个问题:好忙啊,问题好大啊……实际上,你并没有真正试着去解决问题。当我们从任务的全貌来审视任务的时候,它们看起来比真实情况都要大,并且更吓人。   在本文中,我会谈及一个能够帮助你克服拖延的提高生产力的窍门:分解任务。通过将大任务分解为小任务,你会发现自己更有动力去完成它们,也更加稳妥地向着目标前进。
184 0