`

揭秘:成为最牛程序员的五大要诀

阅读更多

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

Tip 1 要方法而不是记忆

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

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

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

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

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

  1. string fileContent;  
  2. System.IO.FileStream myStream = new FileStream("c:\\aa.txt", FileMode.Open);  
  3. System.IO.StreamReader myStreamReader = new StreamReader(myStream);   
  4. fileContent = myStreamReader.ReadToEnd();  
  5. myStreamReader.Close();  
  6. int idx = fileContent.  
  7. IndexOf("string");   
  8. if (idx)  
  9. {  
  10. return true  
  11. }  

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

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

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

  1. /* 1. Open File*  
  2. 2. Read file into string*  
  3. 3. Close file*  
  4. 4. Search for key word*  
  5. 5. If fond return true; 
  6. */  
  7. string fileContent;  
  8. //1.  
  9. System.IO.FileStream myStream = new FileStream("c:\\aa.txt", FileMode.Open);  
  10. System.IO.StreamReader myStreamReader = new StreamReader(myStream);  
  11. //2.  
  12. fileContent = myStreamReader.ReadToEnd();  
  13. //3.  
  14. myStreamReader.Close();   
  15. //4.  
  16. int idx = fileContent.IndexOf("string");  
  17. if (idx)  
  18. {  
  19. //5.  
  20. return true;  
  21. }  


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

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

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

66
25
分享到:
评论
1 楼 mzba520 2010-06-04  
不错,有道理

相关推荐

    一个程序员的奋斗历程(经典,这是见过最牛的程序员了)

    - **API使用**:作者强调了API的重要性,并指出选择合适的API可以极大地提高开发效率。 #### 五、持续学习与适应变化 - **学习态度**:始终保持积极的学习态度,不断探索新技术,即使在资源有限的情况下也坚持自学...

    做庄的故事:中国最牛操盘手讲述操盘故事.doc.pdf

    - 当法规收紧时,庄家可能会面临更大的法律风险,需要更加谨慎行事。 7. 资金来源: - 庄家在操作股票时,通常会寻求外部资金支持,如文中X X投资公司提供的1亿资金。 - 资金来源的谈判涉及到利润分配和风险共担...

    最牛SEO软件(网络营销)

    【标题】:“最牛SEO软件(网络营销)” SEO(搜索引擎优化)是提升网站在搜索引擎自然搜索结果中的排名的一种策略,而“最牛SEO软件”显然是一款专注于这一领域的工具,旨在帮助用户更好地理解和优化他们的在线存在...

    任务:最牛代码

    数据初始化的一些例子,可以用来参考学习JAVA课程的学习。

    100万!我是如何成为史上最牛淘宝客的

    100万!我是如何成为史上最牛淘宝客的,大家分享学习。

    cms 最牛 最经典 网站

    【标题】:“cms 最牛 最经典 网站”指的是一个被认为在CMS(内容管理系统)领域内具有卓越性能和广泛认可度的网站解决方案。这个标签突显了它在.NET技术栈上的应用,意味着该系统是基于微软的.NET框架构建的。 ...

    最牛core C++讲师授课代码

    【标题】"最牛core C++讲师授课代码"所涵盖的知识点主要集中在C++的核心概念和技术上,这里的"core C++"通常指的是C++语言的基础和核心特性,包括但不限于类与对象、内存管理、模板、异常处理、STL(Standard ...

    最牛的辞职报告.doc

    【标题】:“最牛的辞职报告.doc”实际上是一篇以辞职为主题的文章,通过一封书信的形式,表达了作者在辞职过程中的思考和感悟。 【描述】:“最牛的辞职报告.doc”可能是一个文档名称,暗示这封辞职信因其独特或...

    最牛的垃圾清理工具

    【标题】:“最牛的垃圾清理工具”通常指的是那些功能强大、效果显著的系统清理软件,这类工具能够帮助用户高效地清除计算机中的无用文件、临时文件、系统缓存、注册表错误等,以优化系统性能,释放硬盘空间,并保护...

    zidan-lite:宇宙最牛的高效沟通软件「子弹短信」macOS 客户端

    子弹短信社区版可能是 宇宙最牛的高效沟通软件「子弹短信」的 macOS 客户端InstallContributingFork it ( )Create your feature branch (git checkout -b my-new-feature)Commit your changes (git commit -am 'Add ...

    小程序源码:最牛王者荣耀装逼神器助手

    这是一款以王者荣耀为主的一款装逼生成工具 支持王者营地战绩DIY生成(支持新旧两种营地版本) 支持王者荣耀游戏首页DIY制作生成 支持王者荣耀个人主页界面DIY制作生成 支持天梯界面DIY制作生成 ...

    史上最牛代码

    ### 史上最牛代码解析 #### 概述 标题与描述均为“史上最牛代码”,这一表述虽然简单,但是蕴含了对于某段程序代码的高度评价。通常,“最牛”这样的词汇意味着这段代码在某些方面达到了极致,无论是从技术难度、...

    最牛日历控件.最牛日历控件.

    "最牛日历控件"可能是指一个性能优异、功能强大的JavaScript库,用于在网页上创建交互式的日历组件。下面将详细讨论日历控件的核心功能、设计原则以及`jkl-calendar.js`可能包含的特性。 1. **核心功能**: - **...

    鼎联汽车销售软件 最牛的

    【鼎联汽车销售软件】是汽车行业管理解决方案的一款杰出产品,被誉为“最牛的”汽车销售软件,这彰显了其在功能、性能以及用户体验上的卓越表现。该软件旨在为汽车销售商提供全面、高效的业务管理工具,帮助他们优化...

    程万云《100万!我是如何成为史上最牛淘宝客的》完整版下载

    程万云《100万!我是如何成为史上最牛淘宝客的》完整终极版下载地址

    最牛的截图软件

    综上所述,这款“最牛的截图软件”凭借其强大的截图功能、易用的编辑工具以及高度的自定义设置,成为了用户心中的首选。无论是在日常工作、学习还是娱乐中,它都能发挥出强大的作用,帮助我们更有效地捕获和分享屏幕...

    最牛工作总结.pdf

    【标题】:“最牛工作总结.pdf” 【描述】:“最牛工作总结.pdf”呈现了一种幽默而深刻的年终总结形式,通过歌曲、新闻和发现等不同视角,回顾了2010年的工作与生活状况。 【标签】:“技术” 【部分内容分析】:...

    英语口语我最牛 v2014.zip

    《英语口语我最牛》提供创新的八大学习模式,分别是“英语口语王”、“英语复读王”、“英语听读王”、“英语音标王”、“英语转录王”、“英语打印王”、“英语音标一日通”、“英语语法一日通”,完美解决了英语...

Global site tag (gtag.js) - Google Analytics