程序员效率的奥义

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

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


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

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遍。

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


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

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

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

目录
相关文章
|
3月前
|
JSON C# 开发者
💡探索C#语言进化论:揭秘.NET开发效率飙升的秘密武器💼
【8月更文挑战第28天】C#语言凭借其强大的功能与易用性深受开发者喜爱。伴随.NET平台演进,C#持续引入新特性,如C# 7.0的模式匹配,让处理复杂数据结构更直观简洁;C# 8.0的异步流则使异步编程更灵活高效,无需一次性加载全部数据至内存。通过示例展示了模式匹配简化JSON解析及异步流实现文件逐行读取的应用。此外,C# 8.0还提供了默认接口成员和可空引用类型等特性,进一步提高.NET开发效率与代码可维护性。随着C#的发展,未来的.NET开发将更加高效便捷。
61 1
|
4月前
|
程序员 开发工具 git
代码之舞:编程艺术与效率的探索
【7月更文挑战第18天】在数字世界的广阔舞台上,编程不仅仅是一项技术活动,它更是一种艺术,一种将逻辑思维与创造力结合的艺术。本文将带领读者走进编程的世界,探讨如何通过理解编程的本质、掌握关键技巧和持续学习来提升编程效率和质量。我们将一同见证,如何在代码的海洋中航行,不仅追求效率的极致,更要追求代码之美。
|
6月前
|
算法 搜索推荐 数据挖掘
掌握程序员之剑:解析常见算法与其在生活和工作中的影响
掌握程序员之剑:解析常见算法与其在生活和工作中的影响
91 1
|
6月前
|
敏捷开发 程序员 测试技术
《高效率程序员的45个习惯》读后小总结
《高效率程序员的45个习惯》读后小总结
32 0
|
11月前
|
弹性计算 数据可视化 程序员
码住!程序员高效工作的10个方法
作为一名程序员,高效工作是我们必须要具备的能力。以下是一些程序员高效工作的10个方法,希望对大家有所帮助。
推荐5款你可能没见过的效率软件
你有没有想过,有些软件能让你的电脑用起来更方便,更快,更好看?这篇文章就为你介绍了五款这样的软件,它们分别是BreeZip,ClipClip,燃精灵,Sticky Notes和Tabby。下面我们来看看它们都能做什么吧。
100 1
|
人工智能 JSON 缓存
身为程序员,你有哪些提高写代码效率的黑科技?
身为程序员,你有哪些提高写代码效率的黑科技?
|
NoSQL Java 程序员
要学的东西太多,自己能力不足,很焦虑怎么办
总有人问我,兔哥,现在java要学的知识点这么多,记不住,怕学不精很焦虑怎么办? 这是很多初学者都有的痛点。 其实吧,你可以试试贪多而不必嚼烂。
182 0
|
算法 程序员 持续交付
如果你有拖延症,程序员不如试试这个技巧提升效率?
  要吃掉一头大象,每次吃一口。   ——克雷顿·艾布拉姆斯(Creighton Abrams)   造成拖延的首要原因之一,同时也是造成生产力低下的祸根,就是总是在感慨一个问题:好忙啊,问题好大啊……实际上,你并没有真正试着去解决问题。当我们从任务的全貌来审视任务的时候,它们看起来比真实情况都要大,并且更吓人。   在本文中,我会谈及一个能够帮助你克服拖延的提高生产力的窍门:分解任务。通过将大任务分解为小任务,你会发现自己更有动力去完成它们,也更加稳妥地向着目标前进。
156 0
|
程序员 测试技术
人月神话札记:效率
人月神话札记:效率
120 0