杜倩
最近评论
CHLOVEQ:原来这就是传说中的"云".
受教.
hanhenry:感觉一下才知道!
kittyjinhui:看不见图片啦
kittyjinhui:看不见图片啦
kittyjinhui:看不见图片啦
文章分类
    收藏
      相册
      存档
      软件项目交易
      订阅我的博客
      XML聚合  FeedSky
      订阅到鲜果
      订阅到Google
      订阅到抓虾
      订阅到BlogLines
      订阅到Yahoo
      订阅到GouGou
      订阅到飞鸽
      订阅到Rojo
      订阅到newsgator
      订阅到netvibes

      翻译 揭秘成为最牛程序员的五大要诀收藏

      新一篇: Ajax,浏览器崩溃的元凶? | 

      by Omar May 28 2008, 03:39 PM 原文地址:http://www.oateck.com/blogs/programming_tips/archive/2008/05/28/5-tips-to-becomming-a-better-coder.aspx

      想成为最牛程序员吗?以下几点有助你实现这个目标。

      Tip 1 要方法而不是记忆

      我的一个程序员朋友常跟我说记住超过200个C++函数是多么的有帮助。“我从来不必去查找函数的定义,因此我可以比其他程序员编程快上50%。”他自豪的说。可结果是什么?难道他不知道编译器的代码自动完成功能可以节约大量查找函数及输入函数的时间吗,另外当C#发布出来后,他在记忆函数上面的努力就白费了。当然,编程中对函数的熟记是一件必需的事情,但是你应当花费更多的时间在学习做事的方法上,比如说创建一个数据库连接,如何产生RSS源等,然后是关注于代码是如何实现的。学习做事的正确方法远比死记硬背重要。

      Tip 2 建立属于你自己的资源库

      我们都会有因为这样或者那样原因而不得不建立的代码集。我从来不记得连接数据库的准确代码语句,所以我每次都不得不在代码集中花10分钟去查询它。为了解决这个问题,我创建了一个用于记录代码片段的Word文档,以帮助我记忆和查找。我的一个同事建了个记录链接的书签,另外一个同事在他的邮件中存储了这些内容。无论你的方法是什么,都是一种可以使你方便查找到文件或内容的好习惯。当你建立你的知识库后,你会发现它将极大的帮助你去把代码写得更好和更快。

      Tip 3 知道做什么而不是怎样做

      很多初级程序员问我“我怎样做这个,或者我怎样做那个?”我总是会跟他们说“你想做什么呢?”听闻此言后,他们会死盯着我,就好像我跟他们的妈妈约会了一样。这就是我的下一个观点,绝不要在知道你想做什么之前去学习怎样做,比如一个程序员想要搜索一个文本文件中是否存在的某个特定的词汇。下面是用C#来实现该目的:

      string fileContent;
      System.IO.FileStream myStream = new FileStream("c:\\aa.txt", FileMode.Open);
      System.IO.StreamReader myStreamReader = new StreamReader(myStream); 
      fileContent = myStreamReader.ReadToEnd();
      myStreamReader.Close();
      int idx = fileContent.
      IndexOf("string"); 
      if (idx)
      {
      return true
      }

      现在我给他这些代码去做这件事,但是更重要的是理解自己正在试着做的是什么。在这个例子中我们想做的是: 1. 打开一个文件 2. 读其中的内容 3. 关闭文件 4. 搜索字串 5. 如果找到了则输出结果 用这个方法来解决事情产生了以下结果: 1. 它使语言无关 2. 使你的精力集中在需要做什么上 3. 使你的代码更易读和有效 知道要做什么将使你的代码更有目的性。现在在C++、PHP、VB.NET、Ruby on Rails中编写上述代码是很容易的事情了,因为你理解了要做什么而不是怎样去做。

      Tip 4 创建适合你的注释风格

      每一个程序员都讨厌注释,但是为了写出更有质量和易读的代码,我们需要注释。问题是大多数程序员常被告知如何注释,一些公司希望每一行代码都有注释,另外一些则想要在每个函数前面有一段注释,还有的规定在不同的代码块前注释。我并不同意这种强制性的规定,只要代码是可用的、易读的和有效的,那么程序员应当可以用其个人喜好的格式来注释。对我来说在每一行都注释将破坏代码的节奏,我更喜欢在函数的前面注释,罗列我接下来一步步将要做什么,然后在函数中参考注释中所写的步骤进行编程。这是适合我的模式,这样可以在我编程前帮助我组织设计,也保持了我的节奏,使我不会因为需要注释而在编程时中断,也有助于其他人阅读我的代码。下面是我怎样注释的例子:

      /* 1. Open File* 
      2. Read file into string* 
      3. Close file* 
      4. Search for key word* 
      5. If fond return true;
      */
      string fileContent;
      //1.
      System.IO.FileStream myStream = new FileStream("c:\\aa.txt", FileMode.Open);
      System.IO.StreamReader myStreamReader = new StreamReader(myStream);
      //2.
      fileContent = myStreamReader.ReadToEnd();
      //3.
      myStreamReader.Close(); 
      //4.
      int idx = fileContent.IndexOf("string");
      if (idx)
      {
      //5.
      return true;
      }

      这种注释风格使我和大多数程序员可以容易的阅读它。那么,找一个适合你的注释风格吧。

      Tip 5 精通one,学习another,关注next

      有时有程序员发email问我他应该学习什么语言,什么是最好的编程语言等等。你至少应该精通一门编程语言,可以相当好的去编写代码,然后再去学习掌握另外一门,逐渐的成长。以我自己为例,我精通C#,擅长PHP,并且已经开始使用Ruby on Rails大概有一两个月了。为什么呢?精通一门语言可以使你进步,在进步中写更好的代码,找到完成任务更好的方法等。进步也是我作为一个程序员年复一年的工作,却仍没有觉得枯燥的原因。

      本文仅代表原作者意见,不代表CSDN官方观点。

      发表于 @ 2008年06月06日 14:13:00|评论(loading...)|编辑|收藏

      新一篇: Ajax,浏览器崩溃的元凶? | 

      评论

      #leoong 发表于2008-06-06 17:04:54  IP: 121.32.147.*
      good
      #loloydsm 发表于2008-06-06 19:39:24  IP: 58.247.8.*
      精通一门语言可以使你进步,在进步中写更好的代码,找到完成任务更好的方法等。进步也是我作为一个程序员年复一年的工作,却仍没有觉得枯燥的原因。


      太同意了!
      #mengde007 发表于2008-06-06 20:44:16  IP: 125.45.19.*
      你写的都是啥啊,不同意!函数该记的,就得记,少来这个。
      #litao1988718 发表于2008-06-06 21:58:12  IP: 58.48.105.*
      我比较同意你的观点
      要记得有某个功能的函数存在
      但是不必记这个函数到底怎么写
      注重功能的实现而不是函数本身这些琐碎的事情
      #kezheng1234 发表于2008-06-07 09:45:52  IP: 221.15.249.*
      还是记些比较好的
      #freenux 发表于2008-06-07 18:14:52  IP: 221.223.40.*
      说得很对。但是公司规定注释的格式也是很有道理的
      #zjg011814 发表于2008-06-08 01:27:16  IP: 218.18.187.*
      很同意你的观点,我觉得磨刀不误砍柴功,如果你没有一个清晰地目标就去做事或编程的话肯定没有什么良好的代码或做事风格而言的,想好了,准备好了再去做要比出错了才发觉应该更改步骤要高效的多,让我们都为做一个思维清晰,目标明确的程序员而奋斗吧!
      #vegetable_king 发表于2008-06-08 08:30:25  IP: 59.56.3.*
      非常同意楼主的观点,我早也以为做注释没必要,后来发现想注释的时候,对那些做的事没有清晰的认识,做注释可以帮助我们把要做的事情理的更顺。
      #qiuye258 发表于2008-06-08 10:38:25  IP: 116.25.200.*
      很不错的文章!!谢谢!
      #vkqiang 发表于2008-06-08 11:23:19  IP: 125.219.53.*
      UP!
      #defortune 发表于2008-06-08 13:57:37  IP: 117.14.116.*
      很有启发,谢谢
      #zgc110 发表于2008-06-08 14:38:05  IP: 59.49.100.*
      非常好。。
      #A_flc 发表于2008-06-08 14:48:37  IP: 221.207.231.*
      试试看吧!!
      #fhjpjf 发表于2008-06-08 14:54:31  IP: 124.113.5.*
      同意....理解而不是强记....
      #gongxinfeng 发表于2008-06-09 09:51:14  IP: 117.61.138.*
      不错不错很好很好
      #rlj021 发表于2008-06-09 11:23:13  IP: 116.232.201.*
      good
      #lavern 发表于2008-06-09 12:06:18  IP: 218.28.247.*
      注释的太好了啊~~
      #kuge2010 发表于2008-06-09 12:34:27  IP: 117.36.8.*
      不错,支持。

      正在学习中。。
      #jimingxun 发表于2008-06-09 21:45:31  IP: 222.89.183.*
      如果说这5个中哪个最重要,我觉得还是第三种观点最重要
      #kkme88 发表于2008-06-09 22:26:56  IP: 58.48.168.*
      这只能说是成为一个牛程序员的五个好习惯
      做到这样离成为一个最牛程序员还差很远
      #musou1412 发表于2008-06-09 22:52:30  IP: 123.103.29.*
      初学程序,我会铭记于心的,谢谢。
      #guilong2008 发表于2008-06-10 09:05:54  IP: 122.224.27.*
      学无止境!
      #xzj127 发表于2008-06-10 10:12:08  IP: 124.126.12.*
      受教了。铭记在心..
      我想 这样做了。可能也不会成为最牛的程序员。但是。只要是朝着这个目标走的。我想,在正确的道路和明确的方向上。总有一天。我们会成为最牛的程序员的.
      #windylcx 发表于2008-06-10 22:20:30  IP: 116.19.80.*
      我 不知道会不会当程序员呢。。恩恩。。走一步算一步
      #linxingyu_mingren 发表于2008-06-10 22:26:01  IP: 59.38.10.*
      不错,非常强大.学习了
      #Zhang_yalin 发表于2008-06-10 22:50:16  IP: 123.117.82.*
      说的是有道理,但标题不正确,应该是:“成为程序员”的基本要求
      #gavin213 发表于2008-06-11 09:24:32  IP: 222.76.149.*
      tip2和tip5说得很有道理,好方法~!
      #Learnplus 发表于2008-06-11 10:13:30  IP: 163.244.246.*
      Up, 收藏
      #combojiang 发表于2008-06-11 12:49:40  IP: 60.209.248.*
      非常赞同你的观点:
      精通one,学习another,关注next
      #AndyJee 发表于2008-06-11 15:08:39  IP: 124.193.154.*
      #sparrow_liu 发表于2008-06-11 15:40:52  IP: 221.5.184.*
      额,叫我记也记不住
      #worldsilenceking 发表于2008-06-11 21:46:17  IP: 221.192.58.*
      强贴顶!!!但是我觉得这只是做程序设计人员的基础..目前我正朝着这个方向发展.希望在不久的将来能做一个优秀的设计人员
      #txxmj 发表于2008-06-11 23:43:42  IP: 125.35.5.*
      Tip 2 建立属于你自己的资源库

      觉得这条很好,其实时间久了,有时会发现这段代码有现成的,免不了Ctrl+C/Ctrl+V
      #gvstar 发表于2008-06-12 11:40:20  IP: 221.0.168.*
      太好了
      #CaiKanXP 发表于2008-06-12 12:25:57  IP: 60.190.149.*
      这个注释风格很有意思,也许我会参考借鉴的
      #Moon1 发表于2008-06-12 12:27:13  IP: 203.93.123.*
      我觉得没有程序员会去死背函数库.
      很多程序员为什么能背下来,上因为他们用的太久,太熟悉了.指望着ide的提示没有错,不过离开ide你还能干什么.

      #cho__cho 发表于2008-06-12 14:11:53  IP: 211.95.165.*

      赞同
      #clxcxx 发表于2008-06-12 16:37:23  IP: 125.43.85.*
      同意一点!
      #v83144191 发表于2008-06-12 17:08:12  IP: 124.229.166.*
      #Moon1 发表于2008-06-12 12:27:13 IP: 203.93.123.*
      我觉得没有程序员会去死背函数库.
      很多程序员为什么能背下来,上因为他们用的太久,太熟悉了.指望着ide的提示没有错,不过离开ide你还能干什么.


      不过写代码的时候你没用IDE?
      #gongwei13437103255 发表于2008-06-12 18:34:06  IP: 61.183.172.*
      有道理,方法是科学的,做程序员要有恒心...
      #wadefelix 发表于2008-06-12 23:05:53  IP: 61.150.11.*
      OMG
      完全正确
      #dushunfree 发表于2008-06-13 20:12:40  IP: 58.210.239.*
      刚学编程,你讲的我记下了
      #zhouqiao 发表于2008-06-13 21:20:34  IP: 116.1.34.*
      有道理,不过你必须知道记住一些可以实现的基本!
      #wcbenben 发表于2008-06-14 12:31:20  IP: 60.209.147.*
      受教!3Q!
      #caffeewithcoke 发表于2008-06-14 17:45:12  IP: 116.215.41.*
      呵呵
      #tu1101 发表于2008-06-15 09:27:32  IP: 222.172.183.*
      哈哈
      #wubctx 发表于2008-06-15 16:34:15  IP: 59.111.110.*
      支持
      #Hawk2099 发表于2008-06-15 18:52:06  IP: 58.48.158.*
      注释风格不错,可以借鉴一下。
      有些函数还是要记住的,这样速度可以快一些,至少记住函数开头的字母。
      #shanyejunjie 发表于2008-06-15 20:17:15  IP: 60.174.112.*
      我放心了,正不想记这些破玩意
      #paopaoda 发表于2008-06-15 23:08:06  IP: 220.211.102.*
      基本同意。但也不能等到讨厌编程再掉头就迟了。
      #yangjin123 发表于2008-06-15 23:38:52  IP: 59.52.134.*
      好!
      #Tokeyman 发表于2008-06-15 23:45:11  IP: 123.57.149.*
      受益匪浅的文章,不像我,弄了一大堆的各种程序,却没有一个精通的~惭愧
      #huangunhong 发表于2008-06-16 11:03:15  IP: 202.103.141.*
      不错,up
      #mqm456852 发表于2008-06-16 15:35:10  IP: 124.224.58.*
      受教了
      #oldkiddy 发表于2008-06-16 15:58:59  IP: 123.116.134.*
      学到了不少,谢谢!~~
      #max_yuki 发表于2008-06-16 16:23:26  IP: 124.42.78.*
      大家中肯的评论和温暖的支持 让我非常开心 ^_^

      以后会努力翻译好文章的 谢谢~
      #k2eats 发表于2008-06-16 18:45:37  IP: 58.213.113.*
      说的不错,顶一个
      #jackywang914 发表于2008-06-16 19:25:30  IP: 121.229.150.*
      API都可以快速查询的,程序学的是思想,而不是死记应背API,在大型项目里最耗时间的不是写代码,而是设计程序框架,设计最优算法.熟练掌握数据结构是最基本的,而可读性高,简洁高效的算法才是骨灰级程序员和菜鸟级程序员的最大区别,高手写代码能象演奏一曲优美的交响乐一样.
      程序员三个境界:
      新手级:只能勉强实现程序功能,消除非常明显的BUG
      熟手级:在完成功能的基础上,能够自己设计程序模块,代码的可读性高,效率也不错,并能最大程度的减少BUG,这已经是一个不错的程序员了
      大师级:能完成整个大型项目的整和,对程序的理解深入到内存处理和机器语言的深度,能够以最简洁的算法一次性写出最有效率的程序,而且在程序的风格上还带有优美的艺术感,使人一看到这个程序就知道是他写的.
      #Bluesky51 发表于2008-06-17 10:04:23  IP: 60.190.149.*
      受益了~!收藏~!
      #dayou123123 发表于2008-06-17 13:45:22  IP: 124.237.237.*
      有感
      #Young_suse 发表于2008-06-17 15:48:47  IP: 61.139.105.*
      说出来基本上都能赞同,就是需要付出实践啊!
      #colorapple 发表于2008-06-17 17:57:15  IP: 123.15.40.*
      在学校学编程,看程序的时候老是想着把里面的函数记下来,总觉只有记住了函数才能算是会编程了,现在已经放弃这种幼稚的想法了,在实际开发的过程中也许第一次记不住,用的多的记住了,用的少的也就用的时候查一下就OK,而简单的记住几个函数也没什么意义,又不是考你的记忆力,关键还是方法吧
      ~一点个人体会~漂过
      #ONIKAGE 发表于2008-06-19 09:51:03  IP: 220.178.1.*
      同意!除了第二条,实际上我保留了我做过的大多数项目,
      特别是第4条,简直和我一模一样,区别是我用中文注释.
      但是问题是.我怎么就是老是觉得我技术不行呢?
      #sharus 发表于2008-06-19 10:20:01  IP: 220.191.106.*
      留个名!
      #calyn18 发表于2008-06-19 21:05:35  IP: 222.240.167.*
      精通one,学习another,关注next
      #wangle100wangle 发表于2008-06-20 15:29:35  IP: 221.218.34.*
      受教了,UP
      #LSHDragon 发表于2008-06-20 17:31:15  IP: 218.28.144.*
      同意
      #zhuimeng0608 发表于2008-06-20 18:58:38  IP: 219.146.227.*
      有道理,谢谢楼主
      #benzite 发表于2008-06-20 19:55:35  IP: 159.226.20.*
      啥叫最牛?
      #tusing 发表于2008-06-21 10:51:29  IP: 59.52.168.*

      值得学习,值得借鉴
      发表评论  


      当前用户设置只有注册用户才能发表评论。如果你没有登录,请点击登录
      Csdn Blog version 3.1a
      Copyright © 杜倩