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

精通one,学习another,关注next相关推荐

  1. java从入门到精通_Java入门到精通、学习路线、就业方向、薪资及前景分析(上篇)...

    今天就大家最关心的Java热门问题进行简要分析,希望能对想要学习或是正在学习Java的小伙伴能够有所帮助~(大家多多关注呦~) 一.首先我们要了解Java是什么? 好学吗? Java是一种广泛使用的计 ...

  2. Java学习从入门到精通的学习建议

    想要学好java技术,首先打好基础很重要,不论学什么基础都是重中之重,学习Java更是如此.如:基础语法.核心类库.面向对象编程.异常.集合.IO流等基础如果学不好,那么后边更深入的语法也不容易学会. ...

  3. Unity2019 从零到精通视频学习笔记

    Unity2019 从零到精通视频学习笔记 该文对Unity2019 做简单的自学了解,并做相应的笔记 文章目录 Unity2019 从零到精通视频学习笔记 一.C#基础回顾 基本数据结构 面向对象数 ...

  4. 七夕福利 | 3D视觉从入门到精通系统学习教程

    写在前面 首先提前祝大家七夕快乐,感谢大家对工坊的陪伴与支持! 今天是七夕福利活动的最后一天,共100张券,已经送出去了60多张,还剩不到35张,大家可以抓住本次的活动机会,享受全年的最低价(优惠了7 ...

  5. Python精通-Python学习路线详细介绍

    导语   自从上次说完Python学习路线之后就再也没有更新过关于Python的东西,那么从这篇博客开始将对整个的Python技术栈开启以场全面的旅途,更其他系列一样,博主会不定期的更新关于Pytho ...

  6. 网络安全从入门到精通的学习资源汇总

    以上内容部分来源于网络,为提高大家安全学习的效率,我做了收录和整理.学习之路注定是孤独而寂寞,但是重要的是坚持以及对于安全的热情,引用黑哥的一句话:"整就牛!" 综合学习平台 ht ...

  7. 视频+课件|3D视觉从入门到精通系统学习教程

    前言 很多粉丝在公众号后台留言,不知如何入门3D视觉.3D领域的主线是什么,一些难点该如何解决,有哪些方法,导师新开的3D视觉方向无人指导等等.这些痛点,工坊的许多童鞋都踩过坑,也为大家提出了许多非常 ...

  8. unity 5.x从入门到精通_Unity学习中值得收藏的学习资料(书籍)与博客

    前言: 对于入门任何领域,收集相关比较优秀的学习资料,都是你不断提高自己的必备技能.而在信息爆炸的时代想要在繁杂的网络世界中找到好的学习资料,必然会耗费一定的时间和精力.为了给大家节省一点时间,在这里 ...

  9. java框架 零基础从入门到精通的学习路线 附开源项目面经等(超全)

    目录 前言 1. 学习路线 2. 学习方法 前言 这篇文章主要总结我之前所学过的框架以及学习路线 从实打实的零基础到框架再到项目 之后实习工作 也在这篇博客中记录我的学习笔记 以及在笔记中遇到的配置安 ...

  10. python从零基础到项目实战怎么样-2018完整Python零基础到项目精通的学习书籍

    Python 是初学者的语言:Python 对初级程序员而言,是一种伟大的语言,它支持广泛的应用程序开发,从简单的文字处理到 WWW 浏览器再到游戏.Python编程语言的流行直线上升,如何学习好Py ...

最新文章

  1. P、NP、NPC问题最通俗的讲解
  2. 前20个关于FLEX技术、源码、实例、技巧的网站.
  3. Oracle 体系结构2 - 共享和专用服务器
  4. java 多个监听_​Java中使用for循环对多个Jbutton按钮监听
  5. 简约几何艺术海报PSD分层模板,即使简单也足以控制观众的注意力。
  6. mysql索引选择_MySQL 索引选择原则
  7. (详解)IDEA中使用git教程
  8. 2018电工杯数学建模A题
  9. 谷歌出品!机器学习中英文术语对照表
  10. 程序员年薪40万被国企同学怒怼:没啥贡献,凭什么工资这么高!
  11. 【JAVA作业】异常、随机数、List
  12. Javaweb安全——JSP Webshell
  13. python中shelf_Python cmds.shelfLayout方法代码示例
  14. Python输出[m,n]既能被3整除又能被7整除的数的个数
  15. 什么品牌的蓝牙耳机通话音质最好?通话音质好的蓝牙耳机
  16. War3地图编辑器基础:自动刷兵
  17. div标签别样的属性——tabindex
  18. 新学期,新FLAG——新征程
  19. 漫谈TCP拥塞控制算法(2)
  20. 新颖的基于BS结构的毕业设计题目50例

热门文章

  1. android平板电脑怎么样,苹果还是安卓?一图教你如何选择适合自己的平板
  2. 关于前++和后++的区别
  3. 笔记本上触摸板如何打开和关闭?
  4. 全面解密QQ红包技术方案:架构、技术实现、移动端优化、创新玩法等
  5. 生气,是因为你不够大度;嫉妒,是因为你不够优秀;悲伤,是因为你不够坚强;郁闷,是因为你不够豁达。记住,所有的负面情绪都源于你的弱小,唯有强大自己才能够百毒不侵!
  6. 博图TIA软件安装完成后各软件作用
  7. OpenCV轮廓提取和椭圆拟合
  8. 机票预订信息系统——数据库系统设计
  9. CCD、COMS,数字摄像头和模拟摄像头
  10. 解决VScode创建Vue项目时一直显示downloading template的问题