提升程序员编程效率的建议,工作理念值得借鉴

shuke 2018-4-19 1710

Facebook程序员工高效工作理念

Doing is better than perfect.

先实现,再优化。这个老生常谈了。


Stop multi-tasking. It merely kills your focus。

同时干几件事将会分散你的注意力,而且极其消耗能量,毕竟人脑不是CPU,程序员务必单核。

Only ever work on the thing that will have the biggest impact.

划分事情的紧急优先程度,先把线上bug解决。

Always take notes.

勤于记录!

你现在是否开发的时候感觉很吃力,就只知道每天去写代码,没有总结一些简便的方法,为了找段代码,差点就发动整个朋友圈了,其实学习代码是讲究方式方法的,不管是做什么工作,只要你找对了方法什么都难不住你,下面是开发大牛总结的提升编程效率的几点.建议。不管你是编程菜鸟还是资深程序员,或许都能从中得到启发。


计划

所谓plan,其实就是对于编程中的“设计”阶段,当然,这里的plan并不像设计那样重量级。它要求我们程序员在正式编程前最少要考虑一下下面的问题:

你这个程序,工具或是项目的目的,究竟是用来干什么的。你只有知道做什么,要达到什么样的目的,你才能做得好,做得对。

需要有什么样的功能。需要你给出来个功能表。这样可以保证我们不会遗漏了什么。

准备好一些技术难题的前期调查和解决方案。不要等到开始编程的时候才去想。下面是你因为有“plan”而得到的好处:

你能够清楚地明白你要做的东西长什么样?

你能清楚知道你要开发的东西要干些什么事?

你能够在开发工程中解决你所有可能发生的难题。


使用伪代码

伪代码是一个非常不错的方式,让你可以看到你要写得程序长什么样?

一些人并不喜欢伪代码,因为他们并不想把同样的代码写两遍,一遍是伪代码,一遍是真代码。其实,这是可以理解的,因为两个copy的东西是比较不好维护的。但是我想,这是可以权衡的,如果的算法很简单,那么就不需要伪代码了,如果你的算法比较复杂,比较绕,那么,有一个伪代码提纲挈领将会是一件非常不错的事情,因为他有利于让别人从一个简单的文档来了解一个复杂的算法或系统。这就好像一个电线的布线图一样,你可以很容易地通过一个简单的文档从复杂的实现中找到头绪。

让你身边的人也高效起来

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

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

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


高效的开发环境

我们可以从编缉器谈起,这里有IDE vs Text Editor,有Vim vs Emacs,有Sublime vs Atom,那该如何选择呢?在做选择之前,我们先想想自己的目标。我们希望这是一个长期的投资,这款编缉器能被长期使用,在这个过程不断的打磨,使其能完全适合自己的习惯,最大化编缉效率。如果程序员是侠客,编缉器则是他手中的剑。

虽然我是Vim的重度用户,但我觉得当年选择Vim时有欠考虑。如果让我重选一次,我的第一选择会是Emacs,第二选择会是Atom。Emacs已存在30年,社区仍然活跃,其可扩展性在编缉器中无人能出其右。Emacs的脚本语言elisp又是lisp的一种dialect,我觉得对lisp的学习可以提升程序员对编程核心思想的理解。另一个加分点是Emacs由于其本身的高门槛及lisp特质,吸引了大批高质素的程序员,其社区可谓藏龙卧虎,更诞生了像Org-mode这样神级的插件。

注释和命名

编程的时候,可能时间紧任务中,而且项目对注释或者命名没有强制要求,很多程序员就偷懒。结果就是坑别人,也可能坑自己。所以,注释一定要写,不管是否有要求。命名一定要规范,杜绝拼音,一定要用英文(拼音有时候有歧义)。注释和命名是一个程序员的逼格,不能偷懒。在多人项目中,建议偷偷学习一下同事的编码规范。

把玩并掌握代码

到了这一步,你可能会觉得你已经从这本书所给予的信息中提取出了全部。然而,你还是没有把玩示例代码并试着让它以别的方式运行。试验是学习的关键。将书本中的示例代码试验一下,是提升你技能的好方法。当你做了各种各样的延伸时,你应该开始理解代码的变化如何在整体上影响应用。这类知识无法通过其他方式学习——你需要通过试验去精准地理解一门语言所提供的特性。

最后,你将开始创造出与书中代码不太一样的应用。这时,你走到了一个新的阶段。在这个阶段中,你开始自信地创建自己的应用,并且真正地理解了它们是如何运作的。

认真沉思

创造的过程,就是将你脑海中的代码进行结构化,体现到实际中并用它们解决某个问题。想象一下,在办公室里有两个书桌,一个用于写作(此Tip),一个用于编辑(Tip 7)。从书桌能望向窗外,你可以异想天开、开放思考,像追逐蝴蝶一样追逐你脑海中的想法。

不要害怕散步,或者害怕尝试可能是,也可能不是最好的最终解决方案。我最有生产能力的实习生之一,当想弄清楚她代码下一步该怎样写,她喜欢在CMU的走廊上走路。编程就像写作一样,不仅仅是在屏幕上打字,更重要的是你脑中想的东西。所以在种植前,先为土壤施肥而庆祝,然后再浇水。


必须像工匠一样写够十万行代码,又须像写诗一样来写代码

程序员像木工一样,熟能生巧。程序员必须写足够代码量的程序,才会有感觉,这是一个苦力活,没有任何捷径可走。

计算机是一门实践性的科学,没有动手能力做支撑,很难做出好的科研成果。我的一个学长是美国卡内基梅隆大学的博士,卡内基梅隆大学计算机系在全世界都非常出名,他说每个博士生必须写十万行代码才能毕业,卡内基梅隆大学博士生进任何一个大企业基本不用面试。而国内培养的大部分研究生、博士生,动手能力都偏弱。没有写过足够代码量的程序员,想成为高手是不可能的,只能纸上谈兵!

那么,怎样像写诗一样写代码呢?很简单,买几本经典的编程书,把书上所有例程全部重新写一遍,逐个比较和书上范例的差距,一步一步改善自己编程的风格和技巧。时间长了,自然就能写出像书上例程一样的代码,甚至可以比书上写得好。基础扎实后,多看看Linux等系统级的源代码,看看高手是如何写的,就有感觉了。通读一下MSDN中所有的资料,这样就“读书破万卷,下笔如有神”。

   对于web前端的学习有不懂的,或者不知道学习路线,不知道学习方法,不知道该如何扎实能找到工作的朋友,我还是要推荐下我自己建的前端学习群:523218370,首先你要是前端党,其次不管你是小白还是大牛,我都挺欢迎,小白嘛,主动点多问问题也就学好了,群里每天分享干货,包括我自己最近花了一星期整理的一份适合2017年自学的最新web前端资料,送给大家,欢迎初学和进阶中的小伙伴。

最新回复 (0)
全部楼主
返回