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

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

转载于:https://www.cnblogs.com/ganmk/archive/2008/06/12/1218090.html

揭秘成为最牛程序员的五大要诀相关推荐

  1. 硅谷最牛程序员,总是不经意间碾压众人

    1 本科毕业,直接读博 1960年,22岁的小高毕业了,获得数学学士学位. 但是他的本科学业如此出色,俄亥俄州凯斯理工学院教师们投票一致同意,同时授予他硕士学位! 于是,本科生小高直接去加州理工去读博 ...

  2. 最牛程序员最爱逛的10大编程网站,你知道几个?-卓帆网

    今天我给大家推荐10个高级程序员经常逛的网站,你又去过几个呢?来跟着小编一起看看都有哪些牛逼的网站吧. 0.https://github.com/trending 全球最大的开源仓库网站,不过现在嫁给 ...

  3. 最牛程序员最爱逛的10大编程网站,你知道几个?-卓帆网之美

    今天我给大家推荐10个高级程序员经常逛的网站,你又去过几个呢?来跟着小编一起看看都有哪些牛逼的网站吧. 0.https://github.com/trending 全球最大的开源仓库网站,不过现在嫁给 ...

  4. 对大龄程序员的五大误解

    最近我过了40岁生日. 一个朋友开玩笑的对我说:嘿,我想这个意味着你已经老的不适合再去编程了吧!,我表面上哈哈一笑,但心里却触动不少. 年龄歧视在我们这行里并不可笑. 就像今天用Java的兄弟沦落到这 ...

  5. 我心目中的牛程序员、我们可以对比看看(人家还是看多年朋友面子上才肯帮忙1周,至少需支付1万元辛苦费)...

    为什么80%的码农都做不了架构师?>>>    最近碰到客户整个网站改版的需要,非常短的时间里只有1周时间里,需要把整个B2C网站彻底的进行版面,我自己估算了一下,就是往死里干一天工 ...

  6. 揭秘!腾讯程序员告诉你当今最热门的5门编程语言

    刚刚,<腾讯研发大数据报告>正式发布. 里面有一些可能你比较感兴趣的内容,比如: 鹅厂有多少程序员? 鹅厂一年输出多少代码? 鹅厂程序员最喜欢用什么编程语言? 鹅厂技术 Leader 写代 ...

  7. 程序员离职五大原因,为何跳槽大数据成首选?

    首先,引用马云的一句话,员工离职的原因基本上可以归结为两点:钱,没给到位;心,受委屈了.这些归根结底就一条:干得不爽. 程序员工作做的不开心的原因比较典型有4种,程序员网友们都是这么回答的: 程序员一 ...

  8. 求伯君20年跌宕起伏:最牛程序员华丽转身

    20年跌宕起伏,演绎中国软件业发展史 求伯君的名字已经写进中国软件的历史,他写出了WPS这个和微软抗争了十多年的国产办公软件,是程序员荣耀的象征,随着金山的上市成功,求伯君也最终成为国内最为富有的程序 ...

  9. 最牛程序员,雷军年度演讲:最好的投资,就是投资自己

    导读:8月10日19:30,2021雷军年度演讲暨小米秋季新品发布会举行.雷军聊起他奋斗路上的梦想,和一路走来所遇到的艰难选择.小米MIX 4.小米平板5 等重量级新品也在发布会上一齐亮相.雷军在发布 ...

最新文章

  1. 关于yum库的相关问题
  2. 学习 Message(14): 区分左右 Shift、Ctrl、Alt
  3. python绘制条形图-python matplotlib库绘制条形图练习题
  4. 广播系统android安全:flag FLAG_RECEIVER_REGISTERED_ONLY的意义
  5. nmap扫描局域网存活主机_安全工程师都在用的网络扫描软件,巧用ARP协议发现主机。第二节...
  6. 以下结点node定义了一个学生的信息。函数find查找并返回学号小于num,且下一节点学号不小于num的结点指针
  7. Parsing Netflow using Kibana via Logstash to ElasticSearch
  8. 【MFC系列-第18天】企业信息管理软件开发
  9. java enumeration接口_20180824-Java Enumeration 接口
  10. [转]Python numpy函数hstack() vstack() stack() dstack() vsplit() concatenate()
  11. lato字体可以商用吗_Google Fonts最受欢迎25款,免版权字体
  12. 三角网导线平差实例_三角网间接平差示例
  13. 高中信息技术python及答案_(完整)高中信息技术《Python语言》模块试卷
  14. 在.net Core中使用StackExchange.Redis 2.0
  15. M. Bottle Arrangements
  16. 海外游戏广告投放操作技巧
  17. 什么是浮动、为什么要清除浮动
  18. JQuery Smart UI 简介(六) — 框架设计【后篇】(数据接口、后台框架)[简介系列完结]...
  19. 基于HTML节日主题网页项目的设计与实现——圣诞节日介绍(HTML+CSS)
  20. 网页视频直播、微信视频直播技术解决方案:EasyNVR与EasyDSS流媒体服务器组合之区分不同场景下的直播接入需求

热门文章

  1. set获取元素_C++与STL入门(4):关联容器:集合set
  2. 程序员如何勇敢说“不”!
  3. 二、bootstrap table 父子表和行列调序
  4. 深入浅出聊Unity3D优化:从Draw Calls到GC
  5. Flex入门的好书——《Flex3 Cookbook 中文版》
  6. vue-transition过渡动画
  7. java 监听端口_java游戏服务器检查报告(经验分享)
  8. php mysql 备份还原_php 数据库备份还原
  9. ssh-copy-id命令的介绍,使免密更方便
  10. 内核参数 linux dd,Linux dd 命令详解(测磁盘的吞吐量)