一、概述
编程效率在工作中扮演着至关重要的角色,优秀的程序员往往都有着很高的效率,这样一来就会有更多的时间去学习或者做其他事情。那么如何提高编程效率呢,下面给出了一些建议,开发人员可以根据自己的实际情况进行思考和提升。
二、方法
1.训练编程能力
很多程序员在工作或者工作之余,并没有拿出多少时间去刻意训练自己的编程能力。大多数的编程积累是在工作中完成的,如果是有目的的完成工作任务倒也很好,但是如果只是为了完成任务而编程的话,其实对于编程能力的提升并不大。球队员通过“网上训练”提高技能,音乐家通过练习演奏来提升水平,歌手也需要不断通过练习改进。那么关于能力的训练,可以采用刻意练习和一万小时理论。练习的内容从编程基础做起,像数据结构、算法、编程语言用法等,做到编程最基础核心的部分可以熟练掌握。阅读一些诸如《 Effective Java 》和《 Design Patterns 》等类型的书,并每天做些基础训练。从欧拉项目中找出些问题,然后 用你最喜欢的计算机语言解决它。其他部分以相同的策略拓展练习就可以了,这样编程能力就会慢慢提高。
2.阅读代码和技术资料
阅读代码和修改/编写代码一样困难。在当今开源世界的情况下,可以参阅大量优质代码。选择一个你最喜欢的开发库,然后仔细阅读以充分利用里面的资源。或许你不能很快便理解所有的内容,但是通过不断的训练,你将能够区分其中使用的不同模式,同时把这些模式用到你的代码中。除了看代码之外,你也可以订阅专业领域内优秀专家的博客,来获取最新趋势信息。
3.集中注意力
集中注意力,想清楚了,再去专注高效的写代码。可以使用番茄工作法,在进行番茄任务时,除了专心写代码之外,不做其他任何事情。不要整天盯着你的微信、QQ等,在工作时将它们最小化或关掉它们,戴上耳机。Tiny hack说:“即使不听音乐我也戴着耳机工作,这样便不会有人打扰到我。”如果不能集中注意力,那么思路就很难清晰,这样一来,不论是做需求还是修复问题,都是非常不利的。另外,还可以训练如何集中注意力,来加强专注聚焦的能力。
4.掌握代码编辑器
工欲善其事必先利其器。之前w3cschool推荐过获得程序员高分的编辑器,比如Notepad++、VIM、LightTable、jEdit、Sublime Text、emacs、visual studio、IDEA等。无论是文本编辑器还是IDE编辑器,没有高低之分,熟练掌握一种可以进行高效的开发才是王道。包括优化配置、各种运行调试、快捷键的使用等等。
5.练习快速打字
事实上很多程序员并不具备盲打的能力,但是盲打可以提高键盘输入的速度,当我们思考完毕如何开发的时候,快速的键盘输入可以让编程工作更加高效。因此,对于还停留在一个个敲键盘的程序员来说,学习一下盲打,会是一个不错的体验和能力的提升。
6.善用搜索
对于那些不属于业务上的问题,比如API的使用、一些常见问题的处理,建议不要浪费时间自己琢磨,直接使用搜索引擎寻找答案即可。我们都知道,在一些情境下不要重复发明轮子,除非是自己有目的的需要。对于搜索引擎,建议谷歌和百度结合使用,谷歌的搜索结果更精准,百度本地化做得比较好。另外,像github、stackoverflow、csdn、掘金等等,建议经常去逛逛。
7.编写单元测试
很多程序员会认为编写单元测试浪费时间,所以根本就没有这个工作习惯。不否认,在一些场景下会有这个问题。看似是一个取舍的问题,其实是一个习惯的问题。如果养成了编写单元测试的习惯,熟练之后并不会浪费时间。TDD的编程模型,在一些复杂的场景下,可以很好的帮助程序员提前发现问题。避免了一旦出现问题造成一时无从下手的尴尬。很多时候困恼程序员的Bug并不是什么大问题,而就是一些非常简单低级错误引起的,所以建议养成编写单元测试的习惯,不要写完就扔给测试人员去测,经自己手的东西,要保证质量。
8.精力管理
离开10分钟往往就可以解决一个问题。控制编程时间,给自己一个多姿多彩的生活,劳逸结合能让你在工作时更高效、更愉悦。当然,即便是上了年纪的程序员也知道,以最少的时间完成最高效的工作是成为10倍效率开发者的必要条件。
9.与编程高手一起工作
和大牛有经验的程序猿一起工作。和勤奋的人一起共事。永远不要相信“你改变不了环境,但可以改变自已。”这句话。这一般只有牛人才能做到。和勤奋的人一起,才能潜移默化的影响自己更勤奋。作为一个程序员,我觉得在职业生涯中最好的一件事儿就是从电脑前站起来,去拜访那些在某一领域有所建树的人们。
10. 站在巨人的肩膀上
个体的力量总是有限的,软件行业发展这么多年来,已经有很多前人为我们铺平了道路。在资源有限的情况下,可以考虑使用第三方的解决方案,暂时不去重新发明轮子。但是这只是停留在用的维度,待业务稳定之后,要进一步去学习和理解轮子是怎么创造出来,而且最好是要自己也经历发明创造的过程,这样技术才能有所提高。对于资料文献和开源项目,尽量去使用比较活跃的,在社区有影响力的。
11.设备要求
一个程序员通常是要两个显示器,两屏可以一边编程,一边看api的doc。当然,还要有相当不错的机械键盘。很多程序员男朋友一定要有个机械键盘。如果你是个妹子,一定要送给程序员男朋友一个,我担保他心花怒放一整天。除此之外,一张合适的座椅,也能够减缓程序员编程的疲劳感,谁说上班不可以自备座椅呢? 另外建议使用Mac进行开发,至于为什么,谁用谁知道。
12.敏捷开发
敏捷开发是
采用迭代、循序渐进的方法进行软件开发,简单、快速可以不断的优化,有以下几个建议:
- 沟通第一,如果需求都理解错误了,最后做出来才发现,只能加班返工。
- 必要的地方要写明注释,不解释
- 过早的优化是一切罪恶的根源
- 选择最简单的解决方案。
网友评论