下面这段话是《Effective Java》里的一段话,我觉得很值得借鉴,所以贴上来了。
如果你的一个同事突然走过来跟你说“今天这个晚上我家里将会有一个宴会被制造,你会来吗?”。听到这个后,你脑子里可能产生三个想法:第一,你被邀请去一个宴会;第二,你的这个同事的母语不是汉语;第三,听他说汉语有点像猜谜题的感觉。
当你学了一门外语,并且想用她来表达一些东西的时候,在这之前你必须做到三点:学会这门外语的语法,背诵很多的单词,运用这门外语表达你的想法。但是,我在上外语课的时候,我们只能从老师那里学到语法和单词这两项。当你真得尝试去运用她的时候,说出来的句子经常让外国人觉得挺有趣的。
学习一门编程语言也是一样,首先,你得先了解与这门语言相关的基础知识,例如:一些算法和面向对像思想等等。你还要学习这门语言给你提供的库,例如:她实现了的那些数据结构,她所支持的运算操作种类以及她所提供的那些工具类等等。然后,你才能学会怎么灵活有效的运用这门编程语言去编程。大部的有关编程语言的书籍会把重点放在基础知识和她所提供的库上。很少有书籍会把重点放在怎样灵活有效地运用这方面上。这可能是因基础知识和一门语言所提供的库是固定的,写这方面的东西比较容易些。而灵活有效运用确是因人而异的,写起也比较困难。
对于Java而言,我们知道她是一门面向对像的编程语言,并且支持网络编程,分布式编程,图形编程等。我们学完这些东西的之后,是不是应该问一下自己:怎样才能有效的运用它们呢?
还得注意一点,一个程序不像我们平常看到的书籍,杂志等等经常被更新,不断推出新版。修改一个程序的是一项很难的工作。我们编出来的程序仅仅做到能够运行并且还能被其他人读懂还是不够的,我们还应该尽量做到编出来的程序能够被很容易的修改。对于同一个编程任务,可能会有十种编程方法能够完成这项任务。而其中的7种方法可能是效率低下的,算法让人费解的。对于剩下的三种,我们还需要考虑哪一种方法编出的程序最容易被修改,以便我们能够更快更容易的推出新的版本的软件。
分享到:
相关推荐
做一个受欢迎的好同事.doc
感恩同事.doc
上一个修订版本:2015.01.23A1(废弃) 版本修订者:Yungchin.Hsu 修订日期:2015.02.05 修订内容: changelog 2015.02.05A1: 1、重新编译dynamo/Iometer/IOmeterCLI (Win 7 64bit平台编译) change...
之前在做Echarts的树图的时候需要这个JS(这个是之前一个同事移交给我的,他做了一半多了的样子,然后他没有给我这个JS),自己在CSDN上找了一个,发现并用不了,后来找他要了这个JS,不知道是不是有什么特殊的原因....
例如你想要把一个word文件加水印并转换为加密的pdf文件发送给多个同事,且每个pdf都有特定的水印和特定的密码。 a同事收到的文件:水印为:a同事专属,密码为:xxxxxx b同事收到的文件:水印为:b同事专属。密码为:...
Selenium.WebDriver.3.141.0该版本是最新稳定版的,之前帮同事下过,然后自己电脑nuget安装的时候总是报错,没办法,只好拷过来了
Java 聊天室系统程序设计实验报告 第 0 页 共 13 页 0 Java 聊天室系统程序设计实验报告 编辑整理: 尊敬的读者朋友们: 这里是精品文档编辑中心, 本文档内容是由我和我的同事精心编辑整理后发布的, 发布之前我们...
用streams实现不同数据库下不同schema间DDL同步 上个礼拜有同事问我 ...
同事相处有学问.doc
夸夸我好同事(老师)我才女同事.doc
三十年同事聚会感言.doc
这是你使用Vim的最后一个阶段, 也是最漫长最有挑战性同时也 充满无数奇趣的阶段. 这个阶段里你开始定制一些希奇古怪的颜色. 开始以敲入i18n来输入internationalization, 开始让Vim替你纠正经常 把the 误敲成teh的...
最近在看一个老程序,里面好多基础类都被封装了起来,读起来很费劲,听同事问起有没有安装反编译工具。对啊 !干嘛不自己安装一个,以前用过Java Decompiler。 但是在这个大型系统中,使用Java Decompiler很不方便...
同事高升欢送词精选.doc
我身边的最美同事.doc
服从领导,团结同事.doc