`
coffeescript
  • 浏览: 124176 次
社区版块
存档分类
最新评论

想成为最牛程序员吗?

 
阅读更多

Tip 1 要方法而不是记忆

我的一个程序员朋友常跟我说记住超过200个C++函数是多么的有帮助。 “我从来不必去查找函数的定义,因此我可以比其他程序员编程快上50%。” 他自豪的说。可结果是什么?

难道他不知道编译器的代码自动完成功能可以节约大量查找函数及输入函数的时间吗,另外当C#发布出来后,他在记忆函数上面的努力就白费了。

当然,编程中对函数的熟记是一件必需的事情,但是你应当花费更多的时间在学习做事的方法上,比如说创建一个数据库连接, 如何产生RSS源等,然后是关注于代码是如何实现的。 学习做事的正确方法远比死记硬背重要

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

我们都会有因为这样或者那样原因而不得不建立的代码集。 我从来不记得连接数据库的准确代码语句,所以我每次都不得不在代码集中花10分钟去查询它。 为了解决这个问题,我创建了一个用于记录代码片段的Word文档,以帮助我记忆和查找。

我的一个同事建了个记录链接的书签,另外一个同事在他的邮件中存储了这些内容。 无论你的方法是什么,都是一种可以使你方便查找到文件或内容的好习惯。 当你建立你的知识库后,你会发现它将极大的帮助你去把代码写得更好和更快。

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

很多初级程序员问我“我怎样做这个,或者我怎样做那个?”我总是会跟他们说“你想做什么呢?” 听闻此言后,他们会死盯着我,就好像我跟他们的妈妈约会了一样。

这就是我的下一个观点,绝不要在知道你想做什么之前去学习怎样做,比如一个程序员想要搜索一个文本文件中是否存在的某个特定的词汇。

下面是用C#来实现该目的:

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 创建适合你的注释风格

每一个程序员都讨厌注释,但是为了写出更有质量和易读的代码,我们需要注释。

问题是大多数程序员常被告知如何注释,一些公司希望每一行代码都有注释,另外一些则想要在每个函数前面有一段注释,还有的规定在不同的代码块前注释。

我并不同意这种强制性的规定,只要代码是可用的、易读的和有效的,那么程序员应当可以用其个人喜好的格式来注释。 对我来说在每一行都注释将破坏代码的节奏,我更喜欢在函数的前面注释,罗列我接下来一步步将要做什么,然后在函数中参考注释中所写的步骤进行编程。

这是适合我的模式,这样可以在我编程前帮助我组织设计,也保持了我的节奏,使我不会因为需要注释而在编程时中断,也有助于其他人阅读我的代码

下面是我怎样注释的例子:

C#代码  收藏代码
  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大概有一两个月了。 为什么呢?精通一门语言可以使你进步,在进步中写更好的代码,找到完成任务更好的方法等。 进步也是我作为一个程序员年复一年的工作,却仍没有觉得枯燥的原因。

分享到:
评论

相关推荐

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

    - **技术更新**:IT行业发展迅速,技术更新换代频繁,持续学习成为了必备技能之一。 - **适应能力**:面对行业变化和个人职业发展的需求,能够灵活调整方向,比如从MIS转向通信行业。 #### 六、综合素养与职场竞争...

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

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

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

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

    史上最牛代码

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

    cms 最牛 最经典 网站

    7. **网站开发流程**:使用.NET CMS可以简化网站的前端设计、后端编程、数据库管理等工作,使得非程序员也能通过拖放式界面创建和编辑内容。 8. **可扩展性**:基于.NET的CMS通常具有丰富的API和插件系统,允许...

    最牛X的高级java书籍《java深度历险》(深入java,适合中、高级java程序员)

    《Java深度历险》是一本面向中、高级Java程序员的权威书籍,旨在帮助读者深入理解Java语言的核心概念和高级特性,提升编程技能和解决问题的能力。这本书涵盖了Java开发的多个重要领域,包括但不限于JVM(Java虚拟机...

    鼎联汽车销售软件 最牛的

    总的来说,鼎联汽车销售软件以其强大的功能和优秀的用户体验,成为了行业内的佼佼者,帮助汽车销售商提高销售效率,优化业务流程,实现数字化转型。对于寻求提升销售管理效率的汽车经销商而言,这款“最牛的”软件...

    最牛SEO软件(网络营销)

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

    最牛的压缩工具

    标题中的“最牛的压缩工具”可能指的是某个在压缩效率和压缩比方面表现卓越的软件。这类工具通常具有独特的算法,能在保持文件完整性的同时,尽可能地减小文件大小,尤其适用于处理大容量的文件。虽然它被描述为...

    最牛Javascript 日历控件

    最牛Javascript 日历控件 很棒! 两步骤完全搞定 1.引用 <script language="javascript" type="text/javascript" src="My97DatePicker/WdatePicker.js"></script> 2.使用 onClick="WdatePicker()

    最牛通达信量化副图指标公式源码8.pdf

    最牛通达信量化副图指标公式源码8.pdf最牛通达信量化副图指标公式源码8.pdf最牛通达信量化副图指标公式源码8.pdf最牛通达信量化副图指标公式源码8.pdf最牛通达信量化副图指标公式源码8.pdf最牛通达信量化副图指标...

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

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

    世界上最牛的TXT程序

    从给定的信息来看,这段文本似乎是经过编码或者加密的数据,并没有明确地提供关于“世界上最牛的TXT程序”的具体描述或功能。不过,根据标题、描述和标签提供的线索,我们可以推测这个所谓的“世界上最牛的TXT程序”...

    最牛的垃圾清理工具

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

    你没有见过的屏保,2010最牛的屏保!当你沉闷的时候看看它!

    那一年,众多设计师和程序员在这一领域不断创新,力图将最新的图形技术、互动元素和独特的视觉效果融入其中。由此产生的屏保程序给用户带来了前所未有的视觉享受,成为了那个时代人们关注的焦点。 在这一背景下,...

    uehome我最牛添加游戏方法

    我最牛添加游戏方法 增加游戏将涉及到数据库,有一定的风险,请一定要先做好备份,对修改造成的一切后果由您自行承担! 就是增加游戏的sql,用PHPMYADMIN打开MYSQL数据库,运行SQL语句,如下例: INSERT INTO `...

    最牛的截图软件(绿色版)

    标题中的“最牛的截图软件(绿色版)”指的是这款截图工具在用户中有着极高的评价,而且是绿色版本,意味着它无需安装,直接运行即可,方便快捷。在IT领域,绿色版软件通常指的是不含有安装过程,不写入系统注册表,不...

    我的最牛代码

    我的最牛代码,坐标角度计算。C#中的代码根据经纬度来计算方向。

    最牛的清理垃圾软件

    在当今信息时代,计算机已经成为我们工作和生活中不可或缺的一部分。然而,随着使用时间的延长,我们不难发现,电脑系统会逐渐积累大量无用文件和垃圾数据,这将导致电脑运行缓慢、系统效率下降。因此,一款能高效...

Global site tag (gtag.js) - Google Analytics