人生而有知,当有独立之思想,不因随众而喜,不以逆时为忧,不附强权乃立,不弃民弱是依。
离开博客中国
靓颖十大外文金曲大排名zz
中秋 九一八 国耻
免费网络硬盘大全zz
1]。这一类硬盘无需下载客户端,用起来比较方便.,比如相册之类的,空间经常是无限的.而且速度也很快.
永硕网络硬盘
硬盘类型:不需客户端,需注册,
硬盘大小:20M
推荐指数:★★★★★
硬盘网址:http://www.ys168.com
简介:虽小,但是功能多,只要把地址发给你的朋友,就可以和他们共享了.管理的自主性是同类产品中最强的.对于任何一个目录,均可以设访客的权限(先设密码,再设相应权限),若是付费,优势则更大.强烈推荐!!
雅虎公文包
硬盘类型:不需客户端,需注册.
硬盘大小:30M
推荐指数:★★★★
硬盘网址:http://cn.briefcase.yahoo.com
简介:30M ,http方式,提供共享功能.自动性也不错.
JRUE图片上传
硬盘类型:不需客户端,需注册.
硬盘大小:不定,最大500M)
推荐指数:★★★★★
硬盘网址:http://www.jrue.com/
简
介:是英文的,对英文好的朋友绝对是个大诱惑.可自由选择类型.比如,经常下载的,可选择"300mb Disk
Space,3000mb/month Bandwidth
"这个类型的.就是300M空间,下载量为3000M每月.而且注册之后类型也可以自由切换.很方便的.不过,只支持图片上传
网信科技
硬盘类型: 不需客户端 需注册.
硬盘大小:50M
推荐指数:★★★★
硬盘网址:http://vip.oot.cn/
简介:上传文件的类型不限,速度不错.
佳码软件网络硬盘
硬盘类型:不需客户端,需注册.
硬盘大小:100M
推荐指数:★★★★
硬盘网址:http://rlcode.com/webdisk/
简介:用邮箱注册.注册后收到确认信便可登陆.免费的有100M空间,速度超快.
86网络硬盘
硬盘类型:不需客户端,需注册
硬盘大小:86M.
推荐指数:★★★
硬盘网址:http://disk.86.net/index.asp
简介:顾名思义,就是86M的空间.速度还行.主站还提供"相册"等服务,挺好的网络硬盘.
FilesBak.CoM
硬盘类型:不需客户端,需注册.
硬盘大小:几乎不限!
推荐指数:★★★★
硬盘网址:http://www.filesbak.com/
简介: 第一步:选择所要上传的文件
第二步:选择上传到哪个服务器
第三步:点击备份文件
Filesbak解决了WEB方式上传文件的瓶颈.只要网络稳定,您可以上传任意大小的文件,通过实际测试,运用Filesbak可以稳定上传2GB的文件.模拟测试结果显示,稳定上
传
文件可达1TB.单文件上传不限大小,文件保存20天.
单线程下载,支持断点续传.有网通用户,电信用户,铁通用户,三种服务器可以选择.提取码提取文件. Filesbak.CoM支持如下文件:asf
asx avi rm rmvb ram wmv wav mpg mpeg swf mp3 mid rar zip exe msi dat
iso cab jpg bmp gif png psd htm html txt log doc xls ppt torrent pdf
ini lnk reg chm rtf .
万吉网络硬盘
硬盘类型:不需客户端,需注册.
硬盘大小:24M
推荐指数:★★★
硬盘网址:http://netdisk.9999g.com/
简介:只要你能上网,你就可以用你在万吉网络所注册的有效帐户登录到www.9999g.com进
行个人文件的上传、下载、删除及目录的新建、修改、删除等操作,随时随地存储自已的所有个人文件.上传、下载均支持断点续传,且提供多线程的支持,另效率
得到极大的提高.目录可共享、可公开,可设访问权限,令您的网络硬盘成为功能强大的网络办公室,与商务伙伴交流更快捷!你可以非常方便地在万吉网内部的所
有用户间实现目录及文件的共享.你不但可以设定共享的帐户,而且可以设定共享过期等相关属性,使您能够安全快捷地对自已的所有共享文件进行全程跟踪
.对jpg,gif,bmp,txt,doc等浏览器支持的格式的文件可以直接打开,非常方便.
西陆免费网络硬盘
硬盘类型:不需客户端,需注册.
硬盘大小:20M
推荐指数:★★★
硬盘网址::http://netdisk.xiluic.com
简介:IC提供20M网络硬盘,可以存放各种文件,不仅仅可以上传图片,还可以上.doc、mp3、ram、.zip、.exe文件等等.使用方便,安全可靠!
都市相册
硬盘类型:不需客户端,需注册.
硬盘大小:不限
推荐指数:★★★★
硬盘网址:http://photo.zj.com/
简介:跟其它的相册操作基本一致.
存吧网络收藏夹
硬盘类型:不需客户端,需注册.
硬盘大小:不存在这个问题
推荐指数:★★★★★
硬盘网址:http://www.cunba.com/default.asp
简介:“存吧网络收藏夹”可自动将本地IE浏览器的收藏夹内容导入,这是国内大多数网络书签服务所不具备的功能.分为直接导入和上传导入两种方式,登陆账号后点击导航菜单中的[导入]即可以开始导入本地收藏夹内容.注册后即可明白如何使用的.
Streamload
硬盘类型:不需客户端,需注册.
硬盘大小:可选,最大10G
推荐指数:★★★★★
硬盘网址:http://www.streamload.com/About/Home.asp(英文网站)
简
介:1、单击主页最上端的“SIGN UP”注册.USERNAME→用户名,PASSWORD→密码,CONFIRM
PASSWORD→确认密码“EMAIL”填写自己正确的EMAIL地址,在“COPY THIS TEXT”栏目中则需要输入所显示的验证码.在"
I agree to Streamloads's Terms And Conditions Of Use.
(You must set this checkbox to create your account.)"打上勾.最后点"SUBMIT TO CREATE YOUR ACCOUNT",
2、接下来要选择打算申请的服务标准,目前该网络硬盘的服务共分为五种标准:第一种是可拥有存储10GB的空间,每月最高只能下载100MB的文件.
网易相册
硬盘类型:不需客户端,需注册.
硬盘大小:不限
推荐指数:★★★★★
硬盘网址:http://photo.163.com/
简介:相信大家都用过,空间无限这是最大的优势!如果用插件上传的话,速度堪称第一!强烈推荐!!
广州视窗电子相册
硬盘类型:不需客户端,需注册.
硬盘大小:不限
推荐指数:★★★★
硬盘网址:http://photos.gznet.com/index.asp
简介:除了上传图片外,还可以制作贺卡,好实用!可以为自己喜欢的照片订造一张贺卡,像你的朋友送上真挚的祝福.在选中的照片上按"发送贺卡"后,填写自己的邮箱,及收件人的邮箱,
2],需要下载客户端,一般的也需要注册.这一类的特别是:上传速度快,空间有一定大小,不会太大.
GMAIL DRIVE
硬盘类型:需客户端,需注册.
硬盘大小:1G
推荐指数:★★★★
硬盘网址:http://gmail.google.com
简介:首先,先注册个GMAIL帐再先到华军下载客户端,下载地址:http://www.onlinedown.net/soft/35496.htm.装
好之后,在你的硬盘上生成一个虚拟硬盘分区GMail Drive,所有的操作几乎和"资源管理器"是相同的.你可以在GMail
Drive上进行任意的复制、粘贴、删除、创建新的文件夹,甚至拖曳操作,而所有的文件都是存储在Gmail的服务器上.这样你就可以充分利用Gmal的
1G空间了.
无限存
硬盘类型:需客户端,需注册.
硬盘大小:100M
推荐指数:★★★★
硬盘网址:http://www.flashsave.com/app.php
简介:到flashsave.com注册flashsave帐号 -〉然后登陆进入flashsave .到首页下flashsave文件管理器 -〉登陆进入 -〉 双击“我的文件夹” -〉把需要上传的文件和目录拖进来就ok了.各种操作不用学就会了.
蜂盘 1G网络硬盘
硬盘类型:需客户端,需注册.
硬盘大小:100M
推荐指数:★★★★★
硬盘网址:http://www.1g.cn/index/
简介:免费100M,上传单个文件大小为20M.可以共享,装好客户端之后,在"我的电脑"里会出现一个"蜂盘",操作与"资源管理器"几乎无差别.
Ibackup
硬盘类型:需客户端,需注册.
硬盘大小:300M
推荐指数:★★★★
硬盘网址:http://ibackup.grids.cn/index.html
简介:主要特性是:“容灾”、“增量”、“高速”和“安全”,
1、它利用软件冗余的办法将您上传的文件做成碎片,存储在多台服务器上,当其中部分服务器不能使用时,IBackup仍可以使用可用的碎片重构您的数据!
2、它每次存储的数据将是您这次本地修改过的数据,而不是将所有本地文件都存储,这样将大量节省您的时间和空间!
3、系统底层利用分布式技术,同时使用多台服务器,比普通文件传输方式,如ftp,更快速.
4、它采用文件分片编码技术和通讯加密技术,使得您存储的数据不能被别人窃取和监听(包括系统管理员),这点和传统存储方式如ftp形成鲜明对比.
5、为每个用户提供1G空间,让您随意存储.
6、每个用户的备份目录都可以产生多个版本,方便您恢复对数据的错误修改.
无忧备份15BAK
硬盘类型:需客户端(也可不装),需注册.
硬盘大小:1000M
推荐指数:★★★★
硬盘网址:http://www.51bak.net/
简介:上传文件保存20天,20天后系统将自行删除,最大可上传1000MB文件的特点.网站设计和配套硬件技术处于世界领先水平,是广大网络用户不可缺少的应用工具.
35网络U盘
硬盘类型:需客户端,需注册.
硬盘大小:50M
推荐指数:★★★★
硬盘网址:
简
介:只要剩余空间足够,网络U盘中可以上传任意大小的文件,上传文件有两种途径,总入口都在“我的网络U盘”
20M以内的文件,可以用普通上传方式,一次可上传多个文件
;20M以上的文件,需要装插件,支持断点续传:您在文件上传过程中,如果遇到网络中断,再次上传该文件时,系统会自动从上次中断处开始上传.
3]、需要其它软件辅助,一般出现在即时通讯工具中.
UC免费网络硬盘
硬盘类型:需客户端,需注册.
硬盘大小:不定
推荐指数:★★★★
硬盘网址: http://www.51uc.com
简介:免费获得网络硬盘.可以保存自己的聊天记录,重要资料,移动办公好帮手.
QQ免费硬盘
硬盘类型:需客户端,需注册.
硬盘大小:不定
推荐指数:★★★★
硬盘网址: http://disk.qq.com
简介:QQ普通用户免费拥有16M,会员128M,只要升级到QQ2004就可以使用,非常方便.
4]。无需下载客户端.不需注册的,这类一般可以上传比较大的文件.而且一般上传的速度很快.存放有期限.过期删除.或者文件小,但是文件存储没有期限,只要记住下载地址就行了.
中国活动通信(注:与:http://www.mofile.com/实名相同)
硬盘类型:不需客户端,不需注册.
硬盘大小:一次性最大800M
推荐指数:★★★★★
硬盘网址: http://www.chinamofile.com
简介:1、上传文件.进入主页后,选择"存放文件".选定文件,上传文件大小小于800M.填入用于收"提取码"的邮箱,共 可以填入四个.
2、提取文件.选择"提取文件",输入收到邮件里的"提取码",进行下载就可以,下载速度快.
还有一种方式:邮件方式 (可用于一次储存多个文件)发送带附件的电子邮件给save@chinamofile.com,附件数目不限,email的大小不超过50MB,系统将会立即回复给您一个电子邮件,通知您文件下载链接.保存3天
中国活动通信
硬盘类型:不需客户端,需注册,
硬盘大小:32M+512M
推荐指数:★★★★★
硬盘网址:http://www.mofile.com/
简介:免费空间为512M,免费从保存3天.永久保存32M.文件上传之后,可以可在"暂存"和"永存"二者之间自由切换.也可以通过16位提取码提取文件共享给任何人.最新开通网络相册服务.
YouSendIt
硬盘类型:不需客户端,不需注册.
硬盘大小:1000M
推荐指数:★★★★
硬盘网址:http://www.yousendit.com/
简介:简单发送1GB附件的邮件
步骤1:在“Recipient 's Email Address”栏目中,输入接收者的邮箱地址.
步骤2:从“Select File to Send(Upto1GB)”这个栏目标题中能获悉所发送文件的最大容量可达到1GB,这样的标准相信可满足大多数用户的要求.而单击栏目旁的“浏览”按钮,在出现的对话框中选择所要发送的文件即可.
步
骤3:为了使朋友知道自己的E-mail地址,可在“Your Email
Address(Optional)”栏目中输入自己的邮箱地址,并勾选下方的“Remember my email
address”选项对邮件地址进行记忆.在“Message to
Recipient(Optional)”文本框中进行留言.当所有设置准备妥当后,单击“Send
It”按钮即可发送.若用户想让自己的文件能以更安全的方式发送,可单击页面底部的“Need secure
transfers”链接,而后在打开的页面里进行文件发送即可.
小图片上传
硬盘类型:不需客户端,不需注册.
硬盘大小:单个不超过250K
推荐指数:★★★★★
硬盘网址:http://tinypic.com/
简介:本人一直使用的.点"浏览"后上传,记住上传成功后的地址.对于一些论坛不能上传太多的图片时非常有用.
多媒体上传
硬盘类型:不需客户端,不需注册.
硬盘大小:单个不超过5M
推荐指数:★★★★★
硬盘网址:http://www.putfile.com/
简介:是英文的.先"浏览"选定.再选择类型(必填)如果是图片点"IMAGE",视频点"VIDEO",在"I have read and agree to the TOS."前打勾,就可以上传了.
Gmail邮箱的快捷键列表 zz
疯狂的邀请函
mariah-hero
献给靓颖:反偶像狂欢中的英雄叙事
歧视河南人是谁的悲哀
boost 1.33.0出来了
实名制——要谁对言论负责
zz要脱大家一起脱:网络实名制与官员财产透明化
拥护张靓颖,我也做个凉粉

凤凰的李炜是个十足的狗腿子
向博客中国抗议
FireFox和它的插件们
自从FireFox出道以来,这个世界就发生了太多变化,一转眼就说到了关键,我下了一份FF(砖头、臭鸡蛋各2的10次方个@%^$*……).
FireFox确实很优秀,出道即受追捧不是偶然的,我只一上手我就不想再用别的了。优点不必多说,安全、标签式浏览、阻止弹出广告,不一而足。然而,比起MWIE,Maxthon,还是有些不方便的地方。
1、标签操作不方便。要想打开一个标签你必须用右键点击,然后选择在新标签页打开。左键点100%不会打开新标签,如果目标不是自己的话,肯定给你另开一个FF窗口。
2、拦截广告设置不完善,你仍然可以看到一些广告,虽然你可以用阻止来自***的图片拦截许多。也不能拦截flash,如果你不想看flash的话,可以不下载播放插件,可是这样的话,你就只好对着一个点击下载插件的白框框发愣了,很多时候,他会挡着你该看的东西,而你还移不了它。
3、下载难。FF自带一个下载管理器,当然是很贴心的设计,可很多情况下,我们需要自己的多线程下载工具,FF的下载器当然不如那些下载工具了。可是你没办法右键点击下载。最好的答案往往是最简单的,所以,我解决了,很简单。什么?答案?嗯……空格,再空格,另起一段。
先说好了,只告诉你一个,千万不要告诉别人。答案就是……………………
打开一个下载工具,然后右键点击链接,然后复制链接属性,然后在下载工具里新建下载任务…………(不要扔砖头,这真的是最简单的方法)
如果是IE,我们只好投诉微软,然后等它释放下一个版本。幸运的是,FF最大的长处就在这里——插件。你用过winamp吧?答无穷无尽的格式支持,音效工具,皮肤,都是因为有了插件机制,有了插件,你就可以无穷尽的扩展程序的功能。闲话少说,看看我们是如何用FF的插件机制帮你度过网络余生的(又是臭鸡蛋,我要发飙了)。
第一名:flashgot。看好了,不是flashget,也不是什么flash管理工具。它是一个FF的下载插件,flashgot本身并不会提供下载支持,而是调用你安装的下载工具,它支持很多工具,我们常用的flashget 和 net transport就位列其中。安装以后,右键点击不单有你所熟悉的下载所选链接和所有链接,还有两个很贴心的设计,下载所选链接和flashgot tab。故名,前者当你左键选中一些链接后就可以直接下载了,比起在全部链接中排除,真是方便多了,后者倒是不怎么实用,本来全部链接就够多了,再带上所有的标签页,ft。
flashgot主页 http://www.flashgot.net
第二名:adblock
从浏览角度讲,这是第一该装的插件,有了它,广告上的末日就来了。它不仅可以支持一般的页面拦截和通配符,还有最强大的武器——正则表达式,有了它,理论上你就可以无所不能。当然正则表达式学习起来有一定难度,不过会了之后,你就可以随心所欲了。你不想学?那也不要紧,网上有很多经验介绍,拿来主义就是了。
看一个天空软件站的广告屏蔽
(www\d?\.skycn\.com\/)((images\/.*\.gif)|(tuijianimg\/)|((js\/)((.*\.js)|(21cn.*\.htm))))
很晕吧,*3721*是不是很简单。
总之,发挥你的才智,只有想不到,没有做不到。
adblock主页 http://adblock.mozdev.org/
第三名:tabbrowser Preferences & table clicking options
其实他们两个在官方网站上星级并不高,众多FFer也没有给他俩很高的评价。为什么在这里放在第三名呢?好用,强大。标签浏览有了他们俩才算名符其实,后者实现了双击标签关闭,当然还有更多的功能,可以自己看设置。前者实现了在地址栏,打开链接实用新标签显示,还包括js弹出窗口控制,书签打开控制等等。有了这些功能,你是不是觉得更像一个我们惯于使用的标签浏览器了。
还有一些功能更强大的插件,比如tab mix、tbp等等,功能过于强大,其实并不是一个很好的选择。
tabbrowser Preferences 主页 http://216.55.161.203/theonekea/tabprefs/
table clicking options 主页 http://twanno.mozdev.org/
第四名: googlebar
google确实是不太离得了的东西,这样一个工具栏当然得有了,googlebar太强大了,google的功能无所不包,因这一点本不该入选的,因为有一个更light的bar,可是对于我来说,gmail是经常用的,而googlebar就有一键访问的按钮,所以我必须选它。现在官方也有一个bar for firefox了,不过和for IE大同小异,比起这个googlebar,真是差得远了。
googlebar 主页 http://googlebar.mozdev.org/
第五名:sessionsaver
我刚才访问的页面不小心关掉了,怎么重新打开? 嗯,记住刚才那个网址,然后在地址栏敲(救命啊,mm咬人了)。有了sessionsaver,一切都解决了,它可以记住你刚才浏览过的页面,如果你愿意,下次你重新打开的时候,仍然可以打开你关闭时的所有标签。
sessionsaver 主页 http://adblock.mozdev.org/sessionsaver
第六名:Sage 和 feedview
RSS要吗?什么东西,多少钱一斤?……,滚!
如果你需要一个rss阅读器,有很多,可是这个会让你觉得你只是在用FireFox,这就是他的好处了。Sage是个很全面的阅读器,而feedview,正相反,它很简单。你可以订阅一份rss,用sage阅读。也可以把一个rss加为书签,feedview会像打开一个普通网页一样打开一个rss的。
Sage 主页 http://sage.mozdev.org
feedview 主页 http://www.epigoon.com
第七名:autofill
听名字你也知道它会干什么,没错,它就是一个填表工具,为了不让繁琐的表格毒害你的身心,你该试试它。如果你只是希望能够轻松的登录网站,那么FF的密码管理器就足够了。
autofill 主页 http://autofill.mozdev.org/
第八名:text-bgcolor fixer
这是个没什么名气的插件,由此也足见我不惟名,只惟实的品质(我看大家扔砖头都累了,你砸着前面的脚了)。如果你眼睛很好,那么不用了罢。如果你眼睛跟我一样好(我真的是1.2),但是容易累,或者更差,那么它也许会有帮助。有了它,你可以自定义背景的颜色,比起白白的页面来说,其它颜色会节省你的眼睛,比如绿色或是灰色。今天才找到它,我终于可以抛弃MWIE了。不过也由此可以看出FF的一些问题,它的颜色选择对话框,真是奇怪,色块超级大,居然是7*10,也不提供RGB自定义,难道这就是犯低级错误的人才是高手的最好证明?
text-bgcolor fixer 主页 http://txtbgfixer.mozdev.org
其实还有很多优秀的插件,比如fireftp让你直接访问ftp,firemule对驴子们来说,真是个好消息…………
对我来说,以上的10个插件足够我打造一个理想的浏览器了。也许你需要更多的功能,但请记住,插件是免费的,但是省钱不代表也省资源。你的资源却不是无限的,为了你更快更方便的上网,你还是应该把握以下原则。
1、宜少不宜多。
不要装太多的插件,基本上你用不到那么多的功能,不必为那些用不到的功能浪费资源。
2、宜精不宜滥。
插件的功能要尽可能明确,尽可能选择精品级的插件。你能胜任许多工作,恭喜你,插件有许多功能,请慎重考虑。插件只是插件,不要把他当作浏览器。
3、宜小不宜大。
一个插件越大,意味着会用掉你越多的资源。绝大多数时候,这句话是正确的。尽可能选择那些轻量级的插件。
除了插件,FF还支持主题,你可以找到各种各样的主题。与winamp各种美轮美奂的皮肤相比,FF社区有个奇怪的现象,很多主题的设计很朴实(其实是很丑),居然也很受追捧,大约与firefox有一大批来自*nix世界的用户有关。我也推荐一款很丑的插件(因为我的显示器小,所以不希望美丽的主题占用我浏览的空间)。littlefox,正如其名,它已经little到不能再little了,有了它,我的视觉面积大了许多(主要是心理感觉)。与其他主题不同的是,它同时考虑到了插件的样式,很多插件都可以被它little进去,这样就避免出现,你的某个插件样式和当前主题完全不搭配的尴尬现象了,它支持的插件很多,你可以到它的主页上看看。http://www.geocities.com/alfredkayser/mozilla/themes.htm
FF的资源
看了上面的文章,你至少可以知道一处资源了,没错
http://www.mozdev.org 这是一个关于mozilla的开发者网站,内容不仅限于firefox
http://addons.mozilla.org 在这里你可以找到几乎所有的插件和主题,还有介绍和评级,对于插件的选择具有相当权威的指导作用。不过显然,这些资源都放在mozilla的ftp上,所以它的更新比作者主页要慢一些。如果你是狂热的追新者,当你选择了一款插件之后,你也许该直接到插件的主页上安装,并保持定时的更新。
http://www.mozine.org 这是mozilla中国网站的的一个用户论坛,里面有人气很旺。
http://www.firefox.net.cn 这是民间的一个mozilla网站,比mozilla.org.cn要早一些,后者初开通的时候,还引起一阵争论。mozilla本身是一个非营利性的组织,那么以一个早已开通的民间网站作为中国的官方网站也许是个美谈,遗憾。
http://www.moztw.org 一看就知道,这是台湾的mozilla官方站点,有不少很好的帖子,也有人作了不少辅助性的工作。值得一看。
当然还有很多,不过根据网络中心化理论,我们通过这几个中心总能到达任一个我们想去的叶结点。因此,mozilla的世界你也可由此一窥全豹。
写了很多,作为经验的总结,希望能和大家分享。
墨菲爱情法则
公德存在的基础
【侯捷】英中繁简体编程术语对照
作者:侯捷
以下是侯捷個人陸續收集整理的有關於我所涉獵的領域的術語對照(英中繁簡)。
歡迎所有朋友給我意見(任何意見)。謝謝。
新書寫作,或發表文章時,我會以此表為參考。
本表所列,並不表示我在寫譯書籍時一定會採用表內的中文術語。
我也可能採用英文術語。
一群性質相近同的「東西」,如果譯名一貫,閱讀的感覺就很好。
一貫性的術語,擴充性高,延伸性高,系統化高。
● 我喜歡「式」:
constructor 建構式
declaration 宣告式
definition 定義式
destructor 解構式
expression 算式(運算式)
function 函式
pattern 範式、模式、樣式
program 程式
signature 標記式(簽名式/署名式)
● 我喜歡「件」:(這是個彈性非常大的可組合字)
assembly (裝)配件
component 組件
construct 構件
control 控件
event 事件
hardware 硬件
object 物件
part 零件、部件
singleton 單件
software 軟件
work 工件、機件
● 我喜歡「器」:
adapter 配接器
allocator 配置器
compiler 編譯器
container 容器
iterator 迭代器
linker 連結器
listener 監聽器
interpreter 直譯器
translator 轉譯器/翻譯器
● 我喜歡「別」:
class 類別
type 型別
● 我喜歡「化」:
generalized 泛化
specialized 特化
overloaded 多載化(重載)
● 我喜歡「型」:
polymorphism 多型
genericity 泛型
● 我喜歡「程」:
process 行程/進程(大陸用語)
thread 緒程/線程(大陸用語)
programming 編程
●英中繁簡編程術語對照
英文 繁體譯詞
(有些是侯捷個人喜好,普及與否難說) 大陸慣用術語
---------------------------------------------------------------------------------------
#define 定義 預定義
abstract 抽象的 抽象的
abstraction 抽象體、抽象物、抽象性 抽象體、抽象物、抽象性
access 存取、取用 存取、訪問
access level 存取級別 訪問級別
access function 存取函式 訪問函數
activate 活化 激活
active 作用中的
adapter 配接器 適配器
address 位址 地址
address space 位址空間,定址空間
address-of operator 取址運算子 取地址操作符
aggregation 聚合
algorithm 演算法 算法
allocate 配置 分配
allocator (空間)配置器 分配器
application 應用程式 應用、應用程序
application framework 應用程式框架、應用框架 應用程序框架
architecture 架構、系統架構 體系結構
argument 引數(傳給函式的值)。參見 parameter 參數、實質參數、實參、自變量
array 陣列 數組
arrow operator arrow(箭頭)運算子 箭頭操作符
assembly 裝配件
assembly language 組合語言 匯編語言
assert(ion) 斷言
assign 指派、指定、設值、賦值 賦值
assignment 指派、指定 賦值、分配
assignment operator 指派(賦值)運算子 = 賦值操作符
associated 相應的、相關的 相關的、關聯、相應的
associative container 關聯式容器(對應 sequential container) 關聯式容器
atomic 不可分割的 原子的
attribute 屬性 屬性、特性
audio 音訊 音頻
A.I. 人工智慧 人工智能
background 背景 背景(用於圖形著色)
後台(用於行程)
backward compatible 回溯相容 向下兼容
bandwidth 頻寬 帶寬
base class 基礎類別 基類
base type 基礎型別 (等同於 base class)
batch 批次(意思是整批作業) 批處理
benefit 利益 收益
best viable function 最佳可行函式 最佳可行函式
(從 viable functions 中挑出的最佳吻合者)
binary search 二分搜尋法 二分查找
binary tree 二元樹 二叉樹
binary function 二元函式 雙參函數
binary operator 二元運算子 二元操作符
binding 繫結 綁定
bit 位元 位
bit field 位元欄 ? 位域
bitmap 位元圖 ? 位圖
bitwise 以 bit 為單元逐一… ?
bitwise copy 以 bit 為單元進行複製;位元逐一複製 位拷貝
block 區塊,區段 塊、區塊、語句塊
boolean 布林值(真假值,true 或 false) 布爾值
border 邊框、框線 邊框
brace(curly brace) 大括弧、大括號 花括弧、花括號
bracket(square brakcet) 中括弧、中括號 方括弧、方括號
breakpoint 中斷點 斷點
build 建造、構築、建置(MS 用語)
build-in 內建 內置
bus 匯流排 總線
business 商務,業務 業務
buttons 按鈕 按鈕
byte 位元組(由 8 bits 組成) 字節
cache 快取 高速緩存
call 呼叫、叫用 調用
callback 回呼 回調
call operator call(函式呼叫)運算子 () 調用操作符
(同 function call operator)
candidate function 候選函式 候選函數
(在函式多載決議程序中出現的候選函式)
chain 串鏈(例 chain of function calls) 鏈
character 字元 字符
check box 核取方塊 (i.e. check button) 複選框
checked exception 可控式異常(Java)
check button 方鈕 (i.e. check box) 複選按鈕
child class 子類別(或稱為derived class, subtype) 子類
class 類別 類
class body 類別本體 類體 ?
class declaration 類別宣告、類別宣告式 類聲明
class definition 類別定義、類別定義式 類定義
class derivation list 類別衍化列 類繼承列表
class head 類別表頭 類頭 ?
class hierarchy 類別繼承體系, 類別階層 類層次體系
class library 類別程式庫、類別庫 類庫
class template 類別模板、類別範本 類模板
class template partial specializations
類別模板偏特化 類模板部分特化
class template specializations
類別模板特化 類模板特化
cleanup 清理、善後 清理、清除
client 客端、客戶端、客戶 客戶
client-server 主從架構 客戶/服務器
clipboard 剪貼簿 剪貼板
clone 複製 克隆
(易與 copy 混淆)
"克隆" 是個可接受的譯詞,
反正有 "拷貝" 為前例)
如果做為動詞譯為 "克隆"
做為名詞時最好譯為 "克隆件"
相映於 copy 之 "複件"
collection 群集 集合 ?
combo box 複合方塊、複合框 組合框
command line 命令列 命令行
(系統文字模式下的整行執行命令)
communication 通訊 通訊
compatible 相容 兼容
compile time 編譯期 編譯期、編譯時
compiler 編譯器 編譯器
component 組件 組件
composition 複合、合成、組合 組合
computer 電腦、計算機 計算機、電腦
concept 概念 概念
concrete 具象的 實在的
concurrent 並行 並發
configuration 組態 配置
connection 連接,連線(網絡,資料庫) 連接
constraint 約束(條件)
construct 構件 構件
container 容器 容器
(存放資料的某種結構如 list, vector...)
containment 內含 包容
context 背景關係、週遭環境、上下脈絡 環境、上下文
control 控制元件、控件 控件
console 主控台 控制台
const 常數(constant 的縮寫,C++ 關鍵字)
constant 常數(相對於 variable) 常量
constructor(ctor) 建構式 構造函數
(與class 同名的一種 member functions)
copy (v) 複製、拷貝 拷貝
copy (n) 複件, 副本
cover 涵蓋 覆蓋
create 創建、建立、產生、生成 創建
creation 產生、生成 創建
cursor 游標 光標
custom 訂製、自定 定制
data 資料 數據
database 資料庫 數據庫
database schema 數據庫結構綱目
data member 資料成員、成員變數 數據成員、成員變量
data structure 資料結構 數據結構
datagram 資料元 數據報文
dead lock 死結 死鎖
debug 除錯 調試
debugger 除錯器 調試器
declaration 宣告、宣告式 聲明
deduction 推導(例:template argument deduction) 推導、推斷
default 預設 缺省、默認
defer 延緩 推遲
definition 定義、定義區、定義式 定義
delegate 委派、委託、委任 委託
delegation (同上)
demarshal 反編列 散集
dereference 提領(取出指標所指物體的內容) 解參考
dereference operator dereference(提領)運算子 * 解參考操作符
derived class 衍生類別 派生類
design by contract 契約式設計
design pattern 設計範式、設計樣式 設計模式
※ 最近我比較喜歡「設計範式」一詞
destroy 摧毀、銷毀
destructor(dtor) 解構式 析構函數
device 裝置、設備 設備
dialog 對話窗、對話盒 對話框
directive 指令(例:using directive) (編譯)指示符
directory 目錄 目錄
disk 碟 盤
dispatch 分派 分派
distributed computing 分佈式計算 (分佈式電算) 分佈式計算
分散式計算 (分散式電算)
document 文件 文檔
dot operator dot(句點)運算子 . (圓)點操作符
driver 驅動程式 驅動(程序)
dynamic binding 動態繫結 動態綁定
efficiency 效率 效率
efficient 高效 高效
end user 終端用戶
entity 物體 實體、物體
encapsulation 封裝 封裝
enclosing class 外圍類別(與巢狀類別 nested class 有關)外圍類
enum (enumeration) 列舉(一種 C++ 資料型別) 枚舉
enumerators 列舉元(enum 型別中的成員) 枚舉成員、枚舉器
equal 相等 相等
equality 相等性 相等性
equality operator equality(等號)運算子 == 等號操作符
equivalence 等價性、等同性、對等性 等價性
equivalent 等價、等同、對等 等價
escape code 轉義碼 轉義碼
evaluate 評估、求值、核定 評估
event 事件 事件
event driven 事件驅動的 事件驅動的
exception 異常情況 異常
exception declaration 異常宣告(ref. C++ Primer 3/e, 11.3) 異常聲明
exception handling 異常處理、異常處理機制 異常處理、異常處理機制
exception specification 異常規格(ref. C++ Primer 3/e, 11.4) 異常規範
exit 退離(指離開函式時的那一個執行點) 退出
explicit 明白的、明顯的、顯式 顯式
export 匯出 引出、導出
expression 運算式、算式 表達式
facility 設施、設備 設施、設備
feature 特性
field 欄位,資料欄(Java) 字段, 值域(Java)
file 檔案 文件
firmware 韌體 固件
flag 旗標 標記
flash memory 快閃記憶體 閃存
flexibility 彈性 靈活性
flush 清理、掃清 刷新
font 字型 字體
form 表單(programming 用語) 窗體
formal parameter 形式參數 形式參數
forward declaration 前置宣告 前置聲明
forwarding 轉呼叫,轉發 轉發
forwarding function 轉呼叫函式,轉發函式 轉發函數
fractal 碎形 分形
framework 框架 框架
full specialization 全特化(ref. partial specialization) ?
function 函式、函數 函數
function call operator 同 call operator
function object 函式物件(ref. C++ Primer 3/e, 12.3) 函數對象
function overloaded resolution
函式多載決議程序 函數重載解決(方案)
functionality 功能、機能 功能
function template 函式模板、函式範本 函數模板
functor 仿函式 仿函式、函子
game 遊戲 游戲
generate 生成
generic 泛型、一般化的 一般化的、通用的、泛化
generic algorithm 泛型演算法 通用算法
getter (相對於 setter) 取值函式
global 全域的(對應於 local) 全局的
global object 全域物件 全局對象
global scope resolution operator
全域生存空間(範圍決議)運算子 :: 全局範圍解析操作符
group 群組 ?
group box 群組方塊 分組框
guard clause 衛述句 (Refactoring, p250) 衛語句
GUI 圖形介面 圖形界面
hand shaking 握手協商
handle 識別碼、識別號、號碼牌、權柄 句柄
handler 處理常式 處理函數
hard-coded 編死的 硬編碼的
hard-copy 硬拷圖 屏幕截圖
hard disk 硬碟 硬盤
hardware 硬體 硬件
hash table 雜湊表 哈希表、散列表
header file 表頭檔、標頭檔 頭文件
heap 堆積 堆
hierarchy 階層體系 層次結構(體系)
hook 掛鉤 鉤子
hyperlink 超鏈結 超鏈接
icon 圖示、圖標 圖標
IDE 整合開發環境 集成開發環境
identifier 識別字、識別符號 標識符
if and only if 若且唯若 當且僅當
Illinois 伊利諾 伊利諾斯
image 影像 圖象
immediate base 直接的(緊臨的)上層 base class。 直接上層基類
immediate derived 直接的(緊臨的)下層 derived class。 直接下層派生類
immutability 不變性
immutable 不可變(的)
implement 實作、實現 實現
implementation 實作品、實作體、實作碼、實件 實現
implicit 隱喻的、暗自的、隱式 隱式
import 匯入 導入
increment operator 累加運算子 ++ 增加操作符
infinite loop 無窮迴圈 無限循環
infinite recursive 無窮遞迴 無限遞歸
information 資訊 信息
infrastructure 公共基礎建設
inheritance 繼承、繼承機制 繼承、繼承機制
inline 行內 內聯
inline expansion 行內展開 內聯展開
initialization 初始化(動作) 初始化
initialization list 初值列 初始值列表
initialize 初始化 初始化
inner class 內隱類別 內嵌類
instance 實體 實例
(根據某種表述而實際產生的「東西」)
instantiated 具現化、實體化(常應用於 template) 實例化
instantiation 具現體、具現化實體(常應用於 template) 實例
integer (integral) 整數(的) 整型(的)
integrate 整合 集成
interacts 交談、互動 交互
interface 介面 接口
for GUI 介面 界面
Internet 網際網路 互聯網/因特網
interpreter 直譯器 解釋器
invariants 恆常性,約束條件 約束條件
invoke 喚起 調用
iterate 迭代(迴圈一個輪迴一個輪迴地進行) 迭代
iterative 反覆的,迭代的
iterator 迭代器(一種泛型指標) 迭代器
iteration 迭代(迴圈每次輪迴稱為一個 iteration) 迭代
item 項目、條款 項、條款、項目
label 標籤
laser 雷射 激光
level 階 層(級)?
例 high level 高階 高層
library 程式庫、函式庫 庫、函數庫
lifetime 生命期、壽命 生命期、壽命
link 聯結、連結 連接,鏈接
linker 聯結器、連結器 連接器
literal constant 字面常數(例 3.14 或 "hi" 這等常數值) 字面常數
list 串列(linked-list) 列表、表、鏈表
list box 列表方塊、列表框 列表框
listener 傾聽器
load 載入 裝載
loader 載入器 裝載器、載入器
local 區域的(對應於 global) 局部的
local object 區域物件 局部對象
lock 機鎖
loop 迴圈 循環
lvalue 左值 左值
macro 巨集 宏
magic number 魔術數字 魔法數
maintain 維護 維護
manipulator 操縱器(iostream 預先定義的一種東西) 操縱器
marshal 編列 列集
參考 demarshal
mechanism 機制 機制
member 成員 成員
member access operator 成員取用運算子(有 dot 和 arrow 兩種) 成員存取操作符
member function 成員函式 成員函數
member initialization list
成員初值列 成員初始值列表
memberwise 以 member 為單元…、members 逐一… 以成員為單位
memberwise copy 以 members 為單元逐一複製
memory 記憶體 內存
menu 表單、選單 菜單
message 訊息 消息
message based 以訊息為基礎的 基於消息的
message loop 訊息迴圈 消息環
method (java) 方法、行為、函式 方法
meta- 超- 元-
例 meta-programming 超編程 元編程
micro 微 微
middleware 中介層 中間件
modeling 模塑
modeling language 塑模語言,建模語言
modem 數據機 調制解調器
module 模組 模塊
modifier 飾詞 修飾符
most derived class 最末層衍生類別 最底層的派生類
mouse 滑鼠 鼠標
mutable 可變的 可變的
multi-tasking 多工 多任務
namespace 命名空間 名字空間、命名空間
native 原生的 本地的、固有的
nested class 巢狀類別 嵌套類
network 網路 網絡
network card 網路卡 網卡
object 物件 對象
object based 以物件為基礎的 基於對象的
object file 目的檔 目標文件
object model 物件模型 對象模型
object oriented 物件導向的 面向對象的
online 線上 在線
opaque 不透明的
operand 運算元 操作數
operating system (OS) 作業系統 操作系統
operation 操作、操作行為 操作
operator 運算子 操作符、運算符
option 選項,可選方案 選項
ordinary 常規的 常規的
overflow 上限溢位(相對於 underflow) 溢出(underflow:下溢)
overhead 額外負擔、額外開銷 額外開銷
overload 多載化、多載化、重載 重載
overloaded function 多載化函式 重載的函數
overloaded operator 多載化運算子 被重載的操作符
overloaded set 多載集合 重載集合
override 改寫、覆寫 重載、改寫、重新定義
(在 derived class 中重新定義虛擬函式
package 套件 包
pair 對組
palette 調色盤、組件盤、工具箱
pane 窗格 窗格
(有時為嵌板之意,例 Java Content Pane)
parallel 平行 並行
parameter 參數(函式參數列上的變數) 參數、形式參數、形參
parameter list 參數列 參數列表
parent class 父類別(或稱 base class) 父類
parentheses 小括弧、小括號 圓括弧、圓括號
parse 解析 解析
part 零件 部件(?)
partial specialization 偏特化(ref. C++ Primer 3/e, 16.10) 局部特化
(ref. full specialization)
pass by address 傳址(函式引數的傳遞方式)(非正式用語)傳地址
pass by reference 傳址(函式引數的一種傳遞方式) 傳地址, 按引用傳遞
pass by value 傳值(函式引數的一種傳遞方式) 按值傳遞
pattern 範式、樣式 模式
※ 最近我比較喜歡「範式」一詞
performance 效率、性能兼而有之 性能
persistence 永續性 持久性
pixel 圖素、像素 像素
placement delete ref. C++ Primer 3/e, 15.8.2
placement new ref. C++ Primer 3/e, 15.8.2
platform 平台 平台
pointer 指標 指針
址位器(和址參器 reference 形成對映,滿好)
poll 輪詢 輪詢
polymorphism 多型 多態
pop up 冒起式、彈出式 彈出式
port 埠 端口
postfix 後置式、後序式 後置式
precedence 優先序(通常用於運算子的優先執行次序)
prefix 前置式、前序式 前置式
preprocessor 前處理器 預處理器
prime 質數 素數
primitive type 基本型別 (不同於 base class,基礎類別)
print 列印 打印
printer 印表機 打印機
priority 優先權 (通常用於執行緒獲得 CPU 時間的優先次序)
procedure 程序 過程
procedural 程序性的、程序式的 過程式的、過程化的
process 行程 進程
profile 評測 評測
profiler 效能(效率)評測器 效能(性能)評測器
programmer 程式員 程序員
programming 編程、程式設計、程式化 編程
progress bar 進度指示器/進度條 進度指示器
project 專案 項目、工程
property ??? 屬性
protocol 協定 協議
pseudo code 假碼、虛擬碼、偽碼 偽碼
qualified 經過資格修飾(例如加上 scope 運算子) 限定 ?
qualifier 資格修飾詞、飾詞 限定修飾詞 ?
quality 品質 質量
queue 佇列 隊列
radian 徑度 弧度
radio button 圓鈕 單選按鈕
raise 引發(常用來表示發出一個 exception) 引起、引發
random number 隨機數、亂數 隨機數
range 範圍、區間(用於 STL 時) 範圍、區間
rank 等級、分等(ref. C++Primer 3/e 9,15章) 等級
raw 生鮮的、未經處理的 未經處理的
record 記錄 記錄
recordset 記錄集 記錄集
recursive 遞迴 遞歸
re-direction 重導向 重定向
refactoring 重構、重整 重構
refer 取用 參考
refer to 指向、指涉、指代
reference (C++ 中類似指標的東西,相當於 "化身") 引用、參考
址參器, see pointer
register 暫存器 寄存器
reflection 反射 反射、映像
relational database 關聯式資料庫 關係數據庫
represent 表述,表現 表述,表現
resolve 決議(為算式中的符號名稱尋找 解析
對應之宣告式的過程)
resolution 決議程序、決議過程 解析過程
resolution 解析度 分辨率
restriction 侷限
return 傳回、回返 返回
return type 回返型別 返回類型
return value 回返值 返回值
robust 強固、穩健 健壯
robustness 強固性、穩健性 健壯性
routine 常式 例程
runtime 執行期 運行期、運行時
common language runtime (CLR) 譯為「通用語言執行層」
rvalue 右值 右值
save 儲存 存儲
schedule 排程 調度
scheduler 排程器 調度程序
scheme 結構綱目、組織綱目
scroll bar 捲軸 滾動條
scope 生存空間、生存範圍、範疇、作用域 生存空間
scope operator 生存空間(範圍決議)運算子 :: 生存空間操作符
scope resolution operator
生存空間決議運算子 生存空間解析操作符
(與scope operator同)
screen 螢幕 屏幕
search 搜尋 查找
semantics 語意 語義
sequential container 序列式容器 順序式容器
(對應於 associative container)
server 伺服器、伺服端 服務器、服務端
serial 串行
serialization 次第讀寫,序列化 序列化
(serialize)
setter (相對於 getter) 設值函式
signal 信號
signature 標記式、簽名式、署名式 簽名
slider 滾軸 滑塊
slot 條孔、槽 槽
smart pointer 靈巧指標、精靈指標 智能指針
snapshot 螢幕快照(圖) 屏幕截圖
specialization 特殊化、特殊化定義、特殊化宣告 特化
specification 規格 規格、規範
splitter 分裂視窗 切分窗口
software 軟體 軟件
solution 解法,解決方案 方案
source 原始碼 源碼、源代碼
stack 堆疊 棧
stack unwinding 堆疊輾轉開解(此詞用於 exception 主題) 棧輾轉開解 *
standard library 標準程式庫
standard template library 標準模板程式庫
statement 述句 語句、聲明
status bar 狀態列、狀態欄、狀態條 狀態條
STL 見 standard template library
stream 資料流、串流 流
string 字串 字符串
subroutine 次常式/副程式
subscript operator 下標運算子 [ ] 下標操作符
subtype 子型別 子類型
support 支援 支持
suspend 虛懸 掛起
symbol 符號 記號
syntax 語法 語法
tag 頁籤 標記
target 標的(例 target pointer:標的指標) 目標
task switch 工作切換 任務切換
template 模板、範本 模板
template argument deduction
模板引數推導 模板參數推導
template explicit specialization
模板顯式特化(版本) 模板顯式特化 ?
template parameter 模板參數 模板參數
temporary object 暫時物件 臨時對象
text 文字 文本
text file 程式本文檔(放置程式原始碼的檔案) 文本文件
thread 執行緒/緒程 線程
thread safe 多緒安全 多線程安全
throw 丟擲(常指發出一個 exception) 丟擲、引發
token 語彙單元 符號、標記
transaction 交易 事務
transparent(ly) 透通的(地)
traverse 巡訪(來回走動) 遍歷
trigger 觸發 觸發
type 型別 類型
UML unified modeling language 統一建模語言
unary function 一元函式 單參函數
unary operator 一元運算子 一元操作符
underflow 下限溢位(相對於 overflow) 下溢
unchecked exception 不可控異常(Java)
unqualified 未經資格修飾(而直接取用) ?
unwinding ref. stack unwinding ?
user 使用者、用戶 用戶
user interface 使用者介面、用戶介面、人機介面 用戶界面
variable 變數(相對於常數 const) 變量
vector 向量(一種容器,有點類似 array) 向量、矢量(?)
viable 可實行的、可行的 可行的
viable function 可行函式 可行函數
(從 candidate functions 中挑出者)
video 視訊 視頻
view (1) 視圖
(document/view) 文檔/視圖
view (2) 映件
virtual function 虛擬函式 虛函數
virtual machine 虛擬機器 虛擬機
virtual memory 虛擬記憶體 虛內存, 虛存
volatile 易揮發的、易變的 ?
vowel 母音 元音字母
window 視窗 窗口
window function 視窗函式 窗口函數
window procedure 視窗函式 窗口過程
word 字 單詞
word processor 文書處理器 字處理器
wrapper 外覆、外包 包裝
WWW 萬維網
xxx based 以 xxx 為基礎的、植基於 xxx 的 基於 xxx 的
xxx box xxx 盒、xxx 方塊、框 xxx 框
例如 dialog box 對話盒、對話方塊、對話框 對話框
xxx oriented xxx 導向 面向 xxx
寬頻 寬帶
透過,經由,藉由 通過
感冒 不感興趣,不欣賞,有意見
感興趣 感冒
很紅 很火
頗為 比較
符號 符
大括弧 { } 花括弧
中括弧 [ ] 方括弧
小括弧 ( ) 圓括弧
角括弧 <> 尖括弧
-self 本身 自身
呈現 體現
cover 涵蓋 覆蓋
合作 協作
這麼做 這樣做
for example 例如 比如
食譜 菜譜
replace, instead 取代 替換
亦即 即
逐一 逐個
話題 談資
level 階 級
low level 低階 低級
indicate 顯示 表明
level 層次,層級 級別
事實上 實際上
薪資,薪水 工資
加總 加合
一般 普通
advanced? 進階 高端
不少書籍把「成本」和「開銷」混為一談(並把cost譯為開銷)
我想它們的意義並不相同。
no best, just better 沒有 "最" 好,只有 "比較" 好 沒有 "最" 好,只有 "更" 好
●Microsoft Word 英中繁簡用語對照
英文版用語 繁體版用語 簡體版用語
---------------------------------------------------------------------------------------
以下是各個 "menu item"
File 檔案 文件
New 開新檔案 新建
Open 開啟舊檔 打開
Close 關閉 關閉
Save 儲存檔案 保存
Save As 另存新檔 另存為
Save As Web page 另存成Web畫面 另存為Web頁
Search
Versions 版本 版本
Web Page Preview Web畫面預覽 Web頁預覽
Page Setup 版面設定 頁面設置
Print Preview 列印預覽 打印預覽
Print 列印 打印
Send To 傳送到 發送
Properties 屬性
Exit 結束 退出
Edit 編輯 編輯
Undo Typing 復原鍵入 撤消鍵入
Repeat Typing 重複鍵入 重複鍵入
Cut 剪下 剪切
Copy 複製 複製
Office Clipboard
Paste 貼上 黏貼
Paste Special 選擇性貼上 選擇性黏貼
Paste as??? 貼上超連結 黏貼為超級鏈接
Clear 清除 清除
Select All 全選 全選
Find 尋找 查找
Replace 取代 替換
Go To 到 定位
Update IME Dictionary 重新組字 漢字重組
Reconvert
Links 連結 鏈接
Object... 物件 對象
View 檢視 視圖
Normal 標準模式 普通
Web Layout Web版面配置 Web版式
Print Layout 整頁模式 頁面
Outline 大綱模式 大綱
Task Pane
ToolBars 工具列 工具欄
Ruler 尺規 標尺
Show Paragraph Marks 顯示段落標記 顯示段落標記
Gridlines 格線 網格線
Document Map 文件引導模式 文檔結構圖
Header and Footer 頁首/頁尾 頁眉和頁腳
Footnotes 註腳 腳注
Markup 註解 批注
Full Screem 全螢幕 全屏顯示
Zoom 顯示比例 顯示比例
Insert 插入 插入
Break 分隔設定 分隔符
Page Numbers 頁碼 頁碼
Date and Time 日期及時間 日期和時間
AutoText 自動圖文集 自動圖文集
Field 功能變數 域
Symbol 符號 符號
特殊符號 特殊符號
Comment 註解 批注
Number 數字 數字
Reference
Footnote 註腳 腳注
Endnote 章節附註 尾注
Caption 標號 題注
Cross reference 交互參照 交互引用
Index and Table 索引及目錄 索引及目錄
Web Component
Picture 圖片 圖片
Diagram
Text Box 文字方塊 文本框
File 檔案 文件
Object 物件 對象
Bookmark 書籤 書籤
Hyperlink 超連結 超級鏈接
Format 格式 格式
Font 字型 字體
Paragraph 段落 段落
Bullets and Numbering 項目符號及編號 項目符號和編號
Borders and Shading 框線及網底 邊框和底紋
Columns 欄 分欄
Tabs 定位點 制表位
Drop Cap 首字放大 首字下沉
Text Direction 直書/橫書 文字方向
Change Case 大小寫轉換 更改大小寫
... 最適文字大小 調整寬度
Align Layout 亞洲方式配置 中文版式
Background 背景 背景
Theme 主題 主題
Frames 框架 框架
AutoFormat 自動格式設定 自動套用格式
Styles and Formatting 樣式 樣式
Reveal Formatting 快取圖案/圖片格式
Object 物件 對象
Tool 工具 工具
Spelling and Grammar 拼字及文法檢查 拼寫和語法
Language 語言 語言
Fix Broken Text
Word Count 字數統計 字數統計
AutoSummarize 自動摘要 自動編寫摘要
自動校正 自動更正
Speech
Track Changes 追蹤修訂 修訂
Compare and Merge Documents 合併文件 合併文檔
Protect Document 保護文件 保護文檔
Online Collaboration 線上共同作業 聯機協作
合併列印 郵件合併
Letters and Mailings 信封及標籤 信封和標籤
信件精靈 中文信封嚮導
英文信函嚮導
Tools on the Web
Macro 巨集 宏
Templates and Add-Ins 範本與增益集 模板和加載項
AutoCorrect Options
Customize 自訂 自定義
Options 選項 選項
Table 表格 表格
Draw Table 手繪表格 繪製表格
Insert 插入表格 插入
Delete 刪除儲存格 刪除
Select 選取 選定
Merge Cells 合併儲存格 合併單元格
Split Cells 分割儲存格 拆分單元格
Split Table 分割表格
Table AutoFormat 表格自動設定 表格自動套用格式
AutoFit 最適列高 自動調整
Heading Rows Repeat 跨頁標題重複 標題行重複
插入多對角線儲存格 繪製斜線表頭
Convert 文字轉換為表格 轉換 轉換
-->文字轉表格, 表格轉文字 -->文字轉換成表格, 表格轉換成文字
Sort 排序 排序
Formula 公式 公式
Hide Gridlines 隱藏格線 隱藏虛框
Table Properties 表格內容 表格屬性
Window 視窗 窗口
New Window 開新視窗 新建窗口
Arrange All 並排顯示 全部重排
Split 移除分割 拆分
Help 說明 幫助
Microsoft Word Help Microsoft Word說明 Microsoft Word幫助
Show the Office Assistant 顯示/隱藏Office小幫手 顯示/隱藏Office助手
What's this 這是什麼 這是什麼
Office on the Web Office on the Web 網上Office
Activate Product
WordPerfect Help
Detect and Repair 偵測及修護功能 檢測與修復
About Microsoft Word 關於Microsoft Word 關於Microsoft Word
zz麻省理工教授箴言:怎样做研究生!
麻省理工学院
人工智能实验室
AI Working Paper 316 1988年10月
来自MIT人工智能实验室:如何做研究?
作者:人工智能实验室全体研究生
编辑:David Chapman
版本:1.3
时间:1988年9月
译者:柳泉波 北京师范大学信息学院2000级博士生
摘要 本文的主旨是解释如何做研究。我们提供的这些建议,对做研究本身(阅读、写作和
程序设计),理解研究过程以及开始热爱研究(方法论、选题、选导师和情感因素),都是极
具价值的。
Copyright 1987, 1988 作者版权所有
备注:人工智能实验室的Working Papers用于内部交流,包含的信息由于过于初步或者过于详细而无法发
表。不像正式论文那样,会列出所有的参考文献。
1. 简介
这是什么?
并没有什么神丹妙药可以保证在研究中取得成功,本文只是列举了一些可能会有所帮助的非正式意
见。
目标读者是谁?
本文档主要是为MIT人工智能实验室新入学的研究生而写,但对于其他机构的人工智能研究者也很有
价值。即使不是人工智能领域的研究者,也可以从中发现对自己有价值的部分。
如何使用?
要精读完本文,太长了一些,最好是采用浏览的方式。很多人觉得下面的方法很有效:先快速通读一
遍,然后选取其中与自己当前研究项目有关的部分仔细研究。
本文档被粗略地分为两部分。第一部分涉及研究者所需具备的各种技能:阅读,写作和程序设计,等
等。第二部分讨论研究过程本身:研究究竟是怎么回事,如何做研究,如何选题和选导师,如何考虑研究
中的情感因素。很多读者反映,从长远看,第二部分比第一部分更有价值,也更让人感兴趣。
.. 小节2 如何通过阅读打好AI研究的基础。列举了重要的AI期刊,并给出了一些阅读的诀窍。
.. 小节3 如何成为AI研究领域的一员:与相关人员保持联系,他们可以使你保持对研究前沿的
跟踪,知道应该读什么材料。
.. 小节4 学习AI相关领域的知识。对几个领域都有基本的理解,对于一个或者两个领域要精通。
.. 小节5 如何做研究笔记。
.. 小节6 如何写期刊论文和毕业论文。如何为草稿写评审意见,如何利用别人的评审意见。如何
发表论文。
.. 小节7 如何做研究报告。
.. 小节8 是有关程序设计的。AI程序设计与平常大家习惯的程序设计有所不同。
.. 小节9 有关研究生涯最重要的问题,如何选导师。不同的导师具有不同的风格,本节的意见有
助于你找到合适的导师。导师是你必须了解如何利用的资源。
.. 小节10 关于毕业论文。毕业论文将占据研究生生涯的大部分时间,本部分涉及如何选题,以
及如何避免浪费时间。
.. 小节11 有关研究方法论,尚未完成。
.. 小节12 或许是最重要的一节:涉及研究过程中的情感因素,包括如何面对失败,如何设定目
标,如何避免不安全感,保持自信,享受快乐。
2. 阅读
很多研究人员花一半的时间阅读文献。从别人的工作中可以很快地学到很多东西。本节讨论的是AI
中的阅读,在第四小节将论述其他主题相关的阅读。
阅读文献,始于今日。一旦你开始写作论文,就没有多少时间了,那时的阅读主要集中于论文主题相
关的文献。在研究生的头两年,大部分的时间要用于做课程作业和打基础。此时,阅读课本和出版的期刊
文章就可以了。(以后,你将主要阅读文章的草稿,参看小节三)。
在本领域打下坚实的基础所需要的阅读量,是令人望而却步的。但既然AI只是一个很小的研究领域,
因此你仍然可以花几年的时间阅读本领域已出版的数量众多论文中最本质的那部分。一个有用的小技巧是
首先找出那些最本质的论文。此时可以参考一些有用的书目:例如研究生课程表,其他学校(主要是斯坦
福大学)研究生录取程序的建议阅读列表,这些可以让你有一些初步的印象。如果你对AI的某个子领域感
兴趣,向该领域的高年级研究生请教本领域最重要的十篇论文是什么,如果可以,借过来复印。最近,出
现了很多精心编辑的有关某个子领域的论文集,尤其是Morgan-Kauffman出版的。
AI实验室有三种内部出版物系列:Working Papers,Memos和Technical Reports,正式的程度依次增
加,在八层的架子上可以找到。回顾最近几年的出版物,将那些非常感兴趣的复制下来。这不仅是由于其
中很多都是意义重大的论文,对于了解实验室成员的工作进展也是很重要的。
有关AI的期刊有很多,幸运的是,只有一部分是值得看的。最核心的期刊是Artificial Intelligence,
也有写作"the Journal of Artificial Intelligence"或者"AIJ"的。AI领域真正具备价值的论文最终都会投往AIJ,
因此值得浏览每一年每一期的AIJ;但是该期刊也有很多论文让人心烦。Computational Intelligence是另外
一本值得一看的期刊。Cognitive Science也出版很多意义重大的AI论文。Machine Learning是机器学习领域
最重要的资源。IEEE PAMI(Pattern Analysis and Machine Intelligence)是最好的有关视觉的期刊,每期都有
两三篇有价值的论文。International Journal of Computer Vision(IJCV)是最新创办的,到目前为止还是有
价值的。Robotics Research的文章主要是关于动力学的,有时候也有划时代的智能机器人论文。IEEE Robotics
and Automation偶尔有好文章。
每年都应该去所在学校的计算机科学图书馆(在MIT的Tech Square的一层),翻阅其他院校出版的
AI技术报告,并选出自己感兴趣的仔细加以阅读。
阅读论文是需要练习的技能。不可能完整地阅读所有的论文。阅读论文可分为三个阶段:第一阶段是
看论文中是否有感兴趣的东西。AI论文含有摘要,其中可能有内容的介绍,但是也有可能没有或者总结得
不好,因此需要你跳读,这看一点那看一点,了解作者究竟做了些什么。内容目录(the table of contents)、
结论部分(conclusion)和简介(introduction)是三个重点。如果这些方法都不行,就只好顺序快速浏览了。
一旦搞清楚了论文的大概和创新点,就可以决定是否需要进行第二阶段了。在第二阶段,要找出论文真正
具有内容的部分。很多15页的论文可以重写为一页左右的篇幅;因此需要你寻找那些真正激动人心的地方,
这经常隐藏于某个地方。论文作者从其工作中所发现的感兴趣的地方,未必是你感兴趣的,反之亦然。最
后,如果觉得该论文确实有价值,返回去通篇精读。
读论文时要牢记一个问题,“我应该如何利用该论文?”“真的像作者宣称的那样么?”“如果..会
发生什么?”。理解论文得到了什么结论并不等同于理解了该论文。理解论文,就要了解论文的目的,作者
所作的选择(很多都是隐含的),假设和形式化是否可行,论文指出了怎样的方向,论文所涉及领域都有哪
些问题,作者的研究中持续出现的难点模式是什么,论文所表达的策略观点是什么,诸如此类。
将阅读与程序设计联系在一起是很有帮助的。如果你对某个领域感兴趣,在阅读了一些论文后,试试
实现论文中所描述的程序的“玩具”版本。这无疑会加深理解。
可悲的是,很多AI实验室天生就是孤僻的,里面的成员主要阅读和引用自己学校实验室的工作。要
知道,其他的机构具有不同的思考问题的方式,值得去阅读,严肃对待,并引用它们的工作,即使你认为
自己明晓他们的错误所在。
经常会有人递给你一本书或者一篇论文并告诉你应该读读,因为其中有很闪光的地方且/或可以应用到
你的研究工作中。但等你阅读完了,你发现没什么特别闪光的地方,仅仅是勉强可用而已。于是,困惑就
来了,“我哪不对啊?我漏掉什么了吗?”。实际上,这是因为你的朋友在阅读书或论文时,在头脑中早已
形成的一些想法的催化下,看出了其中对你的研究课题有价值的地方。
3. 建立关系
一两年后,对自己准备从事的子领域已经有了一些想法。此时——或者再早一点——加入Secret Paper
Passing Network是很重要的。这个非正式的组织是人工智能真正在做什么的反映。引导潮流的工作最终会
变成正式发表的论文,但是至少在牛人完全明白一年之后,也就是说,牛人对新思想的工作至少领先一年。
牛人如何发现新思路的?可能是听自于某次会议,但是最可能来自于Secret Paper Passing Network。下
面是该网络工作的大致情况。Jo Cool有了一个好想法。她将尚不完整的实现与其他一些工作融合在一起,
写了一份草稿论文。她想知道这个想法究竟怎么样,因此她将论文的拷贝发送给十位朋友并请他们进行评
论。朋友们觉得这个想法很棒,同时也指出了其中的错误之处,然后这些朋友又把论文拷贝给他们各自的
一些朋友,如此继续。几个月后,Jo对之进行了大量修订,并送交给AAAI。六个月后,该论文以五页的
篇幅正式发表(这是AAAI会议录允许的篇幅)。最后Jo开始整理相关的程序,并写了一个更长的论文(基
于在AAAI发表论文得到的反馈)。然后送交给AI期刊。AI期刊要花大约两年的时间,对论文评审,包括
作者对论文修改所花费的时间,以及相应的出版延迟。因此,理想情况下,Jo的思想最终发表在期刊上需
要大约三年时间。所以牛人很少能从本领域出版的期刊文章中学到什么东西,来得太迟了。
你,也可以成为一个牛人。下面是建立学术关系网的一些诀窍:
.. 有很多讨论某个AI子领域(如连接主义或者视觉)的邮件列表,选择自己感兴趣的列表加入。
.. 当与很熟悉本领域的人讨论自己的思想时,他们很可能不直接评价你的想法,而是说:“你读过某某
吗?”这并不是一个设问,而是建议你去阅读某份文献,它很可能与你的想法有关系。如果你还没有
读过该文献,从跟你交谈的高手那里得到该文献的详细信息,或者直接从他那里借一份拷贝下来。
.. 当你读到某份让你感到很兴奋的论文,复印五份送交给对之感兴趣的其他五个人。他们可能会反馈回
来很好的建议。
.. 本实验室有很多针对不同子领域的非正式(持续发展的)论文讨论组,他们每星期或每两星期聚会一
次,对大家阅读完的论文进行讨论。
.. 有些人并不介意别人去翻看他们的书桌,也就是说,去翻阅他们堆在书桌上的不久要阅读或者经常翻
阅的论文。你可以去翻翻看,有没有自己感兴趣的。当然了,首先要得到主人的许可,要知道有些人
确实反感别人翻自己的东西。去试试那些平易近人的人。
.. 同样,有些人也并不介意你翻看他们的文件柜。实验室中可是有很多学问精深的人,他们的文件柜里
也是有好多宝贝。与利用学校图书馆相比,这通常是更快更可靠的寻找论文的方式。
.. 只要自己写下了些东西,将草稿的拷贝分发给那些可能感兴趣的人。(这也有一个潜在的问题:虽然
AI领域的剽窃很少,但也确实有。你可以在第一页写上“请不要影印或者引用”的字样以做部分防范。)
大部分人并不会阅读自己收到的大部分论文,因此如果只有少数人返回评论给你,也不用太在意。你
可以如此反复几次——这是期刊论文所必需的。注意,除了自己的导师,一般很少将两次以上的草稿
送给同一个人。
.. 当你写完一篇论文后,将论文的拷贝送给那些可能感兴趣的人。别以为人家自然而然地就会去阅读发
表论文的期刊或者会议录。如果是内部的出版物(备忘录和技术报告)就更不容易读到了。
.. 你保持联系的人越是各式各样,效果就越好。尝试与不同研究组,AI实验室,不同学术领域的人交换
论文。使自己成为没有联系的两个科研组交流的桥梁,这样,很快的,你的桌子上就会冒出一大摞相
关的论文。
.. 如果某篇论文引用了自己感兴趣的某些东西,做好笔记。维护一份自己感兴趣参考文献的日志。到图
书馆去看看能不能找到这些论文。如果要了解某个主题的发展轨迹,可以有意地去做一张引用的“参
考文献”图。所谓的参考文献图,是指引用组成的网:论文A引用B和C,B引用C和D,C引用D,
等等。注意那些被经常引用的论文,这通常是值得阅读的。参考文献图有奇妙的性质。一个是经常有
研究同一主题的研究组相互不了解。你搜索该图,突然发现了进入另一部分的方式,这通常出现于不
同学校或者不同方法存在的地方。尽可能了解多种方法是很有价值的,这总比非常深入的了解某一种
方法更好。
.. 暂时搁置。跟别人交谈。告诉他们你在做什么,并询问人家在做什么。(如果你对与别的学生讨论自
己的想法感到害羞,也要坚持交谈,即使自己没有什么想法,与他们讨论自己认为确实优秀的论文。
这将很自然地引导到下一步做什么的讨论。)每天中午在活动楼七层有一个非正式的午餐讨论会。在
我们实验室,人们都习惯于晚上工作,所以午餐的时候可以跟别人组成松散的小组进行讨论。
.. 如果你与外界的交流很多——做演示或者参加会议——去印张事务名片,主要要使自己的名字容易记
住。
.. 从某个时间开始,你将会开始参加学术会议。如果你确实参加了,你会发现一个事实,几乎所有的会
议论文都令人生厌或者愚蠢透顶。(这其中的理由很有意思,但与本文无关,不做讨论)。那还去参加
会议干吗?主要是为了结识实验室之外的人。外面的人会传播有关你的工作的新闻,邀请你作报告,
告知你某地的学术风气和研究者的特点,把你介绍给其他人,帮助你找到一份暑期工作,诸如此类。
如何与别人结识呢?如果觉得某人的论文有价值,跑上去,说:“我非常欣赏您的论文”,并提问一个
问题。
.. 获得到别的实验室进行暑期工作的机会。这样你会结识另外一群人,或许还会学到另外一种看待事物
的方式。可以去问高年级同学如何获取这样的机会,他们或许已经在你想去的地方工作过了,能帮你
联系。
4. 学习其他领域
通常的情况,你只能做AI领域的事情,对AI领域之外的事情一无所知,好像有些人现在也仍然这么
认为。但是,现在要求好的研究者对几个相关的领域都了解颇深。计算的可行性本身并没有对什么是智能
提供足够的约束,其他的领域给出了其他形式的约束,例如心理学获得的经验数据。更重要的是,其他的
研究领域给了你思考的新工具,看待智能的新方法。学习其他领域的另外一个原因是AI本身并没有评价研
究价值的标准,全是借自于其他领域。数学将定理作为进展;工程会问某个对象是否工作可靠;心理学要
求可重复的试验;哲学有严格的思辨;等等。所有这些标准有时都在AI中起作用,熟悉这些标准有助于你
评价他人的工作,深入自己的工作以及保护自己的工作。
经过六年左右的课程方可获得MIT的PhD,你可以在一到两个非AI领域里打下坚实的基础,在更多
的领域内具有阅读水平,并且必须对大部分内容具有一定程度的理解。下面是如何学习自己所知甚少领域
的一些方法:
.. 选修一门研究生课程,这很牢靠,但通常不是最有效的方法。
.. 阅读课本。这方法还算不错,不过课本的知识经常是过时的,一般还有很高比例的与内容无关的修辞。
.. 找出该领域最棒的期刊是什么,向该领域的高人请教。然后找出最近几年值得阅读的文章,并跟踪相
关参考文献。这是最快的感受该领域的方法,但有时候你也许会有错误的理解。
.. 找出该领域最著名的学者,阅读他们所著的书籍。
.. 跟该领域的研究生泡在一起。
.. 参看外校研究该领域的系的课程表。拜访那里的研究院办公室,挑选有用的的文献。
下面是一些需要了解的与AI有关的科目:
.. 计算机科学是我们所使用的技术。你需要选修的初级研究生课程肯定不能让你对计算机科学有足够的
了解,因此你必须通过阅读学习更多的知识。计算机科学所有的领域——理论体系结构,系统,语言
等等——都是必须学习的。
.. 数学可能是接下来需要了解的最重要的学科。对于工作在视觉或者机器人学的人来说更关键。对于以
系统为中心的工作,表面上看,并不相关,但数学会教你有用的思维方式。你需要能阅读定理,如果
具有证明定理的能力将会给本领域的大多数人留下深刻的印象。很少有人能自学数学,光做个听众是
不够的,还得做习题集。尽可能早地选修尽可能多的数学课,其他领域的课程以后选也很容易。
计算机科学是以离散数学为基础的:代数,图论,等等。如果你要从事推理方面的工作,逻辑是很重
要的。逻辑在MIT用得不多,但是在斯坦福以及其他地方,这是认识思维的主流方法。所以你必须具
备足够的逻辑知识,这样你才能保护自己的观点。在MIT数学系选修一两门课程就足够了。要是研究
兴趣在感知和机器人,那么不仅需要离散数学,还需要连续数学。在分析,微分几何和拓扑学具有扎
实的基础将会给你提供最常使用的技巧。统计和概率只是一般有用。
.. 认知心理学与AI共享几乎完全相同的观点,但是实践者确实具有不同的目标,他们主要是做实验而
不是写程序。每一个人都需要知道认知心理学的某些知识。在MIT,Molly Potter开了一门很好的有
关认知心理学的初级研究生课程。
.. 如果你想做有关学习的工作,那么发展心理学是很重要的。发展心理学从一般意义上讲也是很有用的,
它能告诉你对于人类智能来说,哪些事情难哪些容易。它还给出了有关认知体系结构的认知模型。例
如,有关儿童语言习得的工作就对语言处理理论施加了坚实的约束。在MIT,Susan Carey开了一门
很好的有关发展心理学的初级研究生课程。
.. 心理学中更“软”的部分,例如心理分析和社会心理学,对AI的影响看似很小,但具有潜在的重大
意义。它们会给你非常不同的理解人是什么的方式。象社会学和人类学这样的社会科学可以起相似的
作用。具有多种观点是很有用的。上述学科你需要自学。不幸的是,很难区分出这些领域哪些是优秀
的成果哪些是垃圾。到哈佛去学习:对于MIT的学生来说,很容易交叉注册哈佛的课程。
.. 神经科学告诉我们有关人体可计算硬件的知识。随着最近可计算神经科学和联结主义的兴起,对AI
具有非常大的影响。MIT的脑和行为科学系提供了非常好的课程,视觉(Hildreth, Poggio, Richards,
Ullman),移动控制(Hollerbach, Bizzi)和普通神经科学(9.015,由专家组讲授)。
.. 如果你想研究自然语言处理,语言学是很重要的。不仅如此,它还包含了很多有关人类认知的约束。
在MIT,语言学主要由Chomsky学院负责。你可以去看看是不是符合自己的兴趣。George Lakoff最
近出版的书《Women, Fire, and Dangerous Things》可作为另外一种研究程序的例子。
.. 工程,特别是电机工程,已经被很多AI研究机构作为一个研究领域。我们实验室在培养程序中加入
了很多需要确实做一些东西的要求,例如分析电路。了解EE也有助于建造定制的芯片或者调试自己
的Lisp机器上的电源。
.. 物理学对于那些对感知和机器人感兴趣的人具有强大的影响。
.. 哲学是所有AI领域看不见的框架。很多AI工作都有蕴含着哲学的影响。学习哲学也能帮助你运用或
者读懂很多AI论文中用到的观点。哲学可沿着至少两个正交的轴分解。哲学通常是某种东西的哲学;
有关思维和语言的哲学与AI更相关。然后存在着多种哲学学派,从比较大的范围来分,哲学可分为
分析哲学和大陆哲学。分析哲学有关思维的观点与AI领域大多数研究者一致。大陆哲学则对我们习
以为常的很多东西有非常不同的看待方式。它曾经被Dreyfus用于证明AI是不可能的。就在不久前,
有几位研究者认为大陆哲学与AI是相容的,提供了另外一种解决问题的方法。MIT的哲学属于分析
哲学,哲学学院深深地受到Chomsky在语言学方面工作的影响。
看起来要学习太多的东西,是不是?确实如此。要小心一个陷阱:认为对于所有的X,“只有我对X
了解的更多,这个问题才会变得容易”。要知道,与之相关需要进一步了解的东西是永远没完的,但最终你
还是要坐下来,解决问题的。
5. 笔记
很多科学家都有做科研笔记的习惯,你也应该这样。可能你曾被告知从五年级开始,对于每一门科学
课都应该记笔记,确实如此。不同的记笔记方式适用于不同的人,可以做在线笔记,记在笔记本或者便笺
簿上。可能需要在实验室有一个,家里还有一个。
在笔记本上记录下自己的想法。只有你自己才会去读它,因此可以记得比较随意。记录下自己的思索,
当前工作中遇到的问题,可能的解决方案。对将来可能用到的参考文献作小结。
定期翻阅你自己的笔记本。有些人会做月度总结,方便将来的引用。
笔记中记录中的东西经常可以作为一篇论文的骨干。这会使生活变得轻松些。相反,你会发现写粗略
的论文——标题,摘要,分标题,以及正文的片段——是一种记录自己当前工作的有效方式,即使你并不
准备把它变成一篇真正的论文。(过一段时间你或许会改变想法)。
你或许会发现Vera Johnson-Steiner的书《Notebooks of the Mind》很有用,该书并不是描写如何做笔记
的文献,它描述了随着思想片断的积累,创新思想是如何出现的。
6. 写作
写作的理由有很多。
.. 在整个读研的过程中,你需要写一到两篇(这取决于你所在系的规定)毕业论文,以获得PhD或者
MS。
.. 勤于写作不仅仅给你练习的机会。
.. 学术的规则就是要么发表,要么腐烂。在很多领域和学校,这通常开始于你成为一名教授时,但是我
们实验室的很多研究生毕业之前就已经开始发表论文了。鼓励发表和分发论文是很好的政策。
.. 写下自己的想法是很好的调整思路的方式。你会经常地发现自以为很完美的想法一旦写下来就显得语
无伦次。
.. 如果你工作的目的是不仅为自己还要为他人服务,就必须把它发表。这也是研究的基本责任。如果你
写得精彩,会有更多的人来了解你的工作。
.. AI但凭单打独斗是很难做的,你需要经常地从他人那里获得反馈。对你的论文作评论就是最重要的一
种形式。任何事情,要做就要做到最好。
.. 阅读有关如何写作的书籍。Strunk和White的《Elements of Style》对基本的应该如何不应该如何做了
介绍。Claire的《The MLA's Line By Line》(Houghton Mifflin)是有关在句子级别如何编辑的书籍。
Jacques Barzun的《Simple and Direct: A Rhetoric for Writers》(Harper and Row, 1985)是有关如何作文
的。
.. 写论文时,读读那些写作高超的书,并思考作者的句法运用。你会发现不知不觉地,你已经吸收了作
者的风格。
.. 要成为写作高手,需要付出颇多,历经数年,期间还要忍受和认真对待他人的批评。除此之外,并无
捷径可走。
.. 写作有时候是很痛苦的,看起来好像是从“实际的”工作中分心了。但如果你已经掌握了写作技巧,
写起来会很快。而且如果你把写作当作一门艺术的话,你能从中得到很多乐趣。
.. 你肯定会遇到思路阻塞的情况,这有很多的可能原因,没有一定可以避免的方法。追求完美可能导致
思路阻塞:无论开始写什么,总觉得不够好。要理解写作是一个调试的过程。先写一个草稿,然后返
回修订。写草稿有助于理顺思路,如果写不出来正文,那就写个大纲。逐步对之细化,直到已经很容
易写出子部分的内容。如果连草稿也写不出来,隐藏掉正在写作的所有窗口,然后随便输入自己脑袋
里想到的东西,即使看起来好像是垃圾。当你已经写出了很多文本后,重新打开窗口,将刚才写的东
西编辑进去。
另外一个错误是以为可以将所有的内容依次写出。通常你应该将论文的核心内容写出来,最后才是介
绍部分。引起作者思路阻塞的另一个原因是不切实际的以为写作是很容易的事情。写作是耗时耗力的,
如果发现自己每天只能写一页,也不要放弃。
.. 完美主义可能会导致对本来已经足够好的论文还在不停地打磨。这是浪费时间。(这也是一种有意无
意之间逃避做研究的表现)。将论文看作你与本领域其他人交谈时的一句话。在交谈中,并不是每一
句话都是完美的。很少有人会期待自己的某次谈话就是全部的故事,是与对方的最后一次交流。
.. 写信是一种很好的练习。很多技术论文,如果其风格更类似于给朋友的信,那么会有很大的提高。坚
持记日记也是练习写作的方法(也会使你试验更多的文体,不仅仅是技术论文)。这两种方法还有其
它的实质作用。
.. 一个常见的陷阱是花很多时间去追求修辞而不是内容。要避免这样。LaTeX并非完美,但是它有很多
你所需的修饰语。如果这还不够,还可从其他从事这一研究的人那里借用一些词语用法。很多站点(例
如MIT)维护了一个写作修辞的库。
.. 清楚自己要表达什么。这是清楚的写作中最难最重要的因素。如果你写了拙劣的东西,且不知道如何
修改,这很有可能是因为你不知道自己要说什么。一旦搞清楚了自己要说什么,说就行了。
.. 论文的写作要有利于读者查找到你所做的工作。无论是段落的组织还是通篇的组织,都要将最核心的
部分放在前面。要精心写作摘要。确保摘要已经反映出你的好思路是什么。确保自己明白自己的创新
点是什么,然后用几句话表达出来。太多的论文摘要只是一般性地介绍论文,说是有一个好思路,却
不说是什么。
.. 不要用大话来贩卖你的工作。你的读者都是很优秀的人,正直且自尊。与之相反,也不要为自己的工
作道歉或者进行消减。
.. 有时候你意识到某个子句、句子或者段落不够好,却不知道如何修改。这是因为你钻到死胡同里出不
来了。你需要返回重写这一部分。现实中这种情况很少发生。
.. 确保自己的论文中有中心思想。如果你的程序在10毫秒内解决了问题X,告诉读者你是如何办到的。
不要只是解释呢的系统是如何构建的,是做什么的,还要解释其工作原理和价值所在。
.. 写作是给人看的,而不是机器。因此光观点正确是不行的,还要易懂。不要靠读者自己去推理,除非
是最明显的推论。如果你在第七页的脚注上解释了某个小玩意的工作原理,接着在第二十三页没有进
一步解释就引用了它,此时如果读者感到困惑一点都不值得奇怪。正式的论文要写清楚是很难的。不
要模仿数学领域的文献,它们的标准是尽可能少的解释,使读者感到越困难越好。这并不适用于AI。
.. 写完一篇论文后,删掉第一段或者头几句话。你会发现那是与内容无关的一般性话语,更好的介绍语
句在第一段最后或者第二段的开头。
如果你等做完所有的工作后才开始写作,会失去很多。一旦开始了某个科研项目,要养成这样的习惯:
写作解释当前工作进展或者每几个月学习所得的非正式论文。从你的研究笔记中的记载开始。花两天的时
间写下来——如果你花的时间更长,说明你是一个完美主义者。将论文与你的朋友分享。写的是草稿——
不是为了被引用的那种。将论文复制数十份,送给那些感兴趣的人(包括你的导师)。与写正式论文相比,
这样做具有很多相同的好处(评论,理清思路,写作练习等等),而且从某种意义上讲,付出无需那么多。
经常地,如果你做得不错,这些非正式论文以后可以作为正式论文的骨干内容,也就是从AI实验室的
Working Paper成为一篇期刊文章。
一旦你成为Secret Paper Passing Network的成员,会有很多人给你寄论文拷贝要求评论。获得他人对
自己的论文的评论是很有价值的。因此你评论的论文越多,你获得支持就越多,也会收到更多人对你论文
的评论。不仅如此,学习评价别人的论文也有助你的选择。
为论文写有用的评论是一门艺术。
.. 要写出有用的评论,需要读两遍论文。第一遍了解其思想,第二遍开始作评论。
.. 如果某人在论文中屡次犯同一错误,不要每次都标记出来。而是要弄清楚模式是什么,他为什么这样
做,对此还可以做什么,然后在第一页清晰地指出或者私下交流。
.. 论文的作者在合并你的评论时,将会遵循最小修改的原则。如果可以,就只修改一个词,不行再修改
一个词组,再不行才修改整个句子。如果他的论文中某些拙劣之处使得他必须修改整个段落,整个小
节甚至整篇论文的组织,要用大字体的字母指出来,这样他才不会忽视。
.. 不要在论文写毁灭性的批评如“垃圾”。这对于作者毫无帮助。花时间提出建设性的建议。要设身处
地地为作者着想。
评论有很多种。有对表达的评论,有对内容的评论。对表达的评论也可以很不同,可以是校对打字稿,
标点,拼写错误,字词丢失等。应该学一些标准的编辑符号。还可以是校正语法,修辞,以及混乱不清楚
的段落。通常人们会持续地犯同一语法错误,因此需要花时间明确地指出。接下来是对组织结构的评论:
不同程度(子句,句子,段落,小节乃至一章)的次序混乱,冗余,无关的内容,以及丢失论点。
很难描述对内容进行评论的特征。你可能建议作者扩展自己的想法,考虑某个问题,错误,潜在的问
题,表达赞美等。“因为Y,你应该读X”是一种总是有用的评论。
当被要求对论文作评论时,你首先想弄清楚哪种评论更有用。对于早期的论文草稿,需要你主要对内
容和论文的组织结构作评论;对于最终的草稿,需要你主要评论表达的细节。注意,作为一种礼貌,在要
求别人评论之前,应首先用拼写检查器对自己的论文进行检查。
你无须接受所有的意见,但是必须都认真对待。将论文的部分内容裁掉是挺令人痛心的,但往往也提
高了论文的水平。你经常会发现某个意见确实指出了问题,但是解决方法你觉得不可接受,那么就去寻找
第三条道路。
要多发表论文,这其实比想象中的容易。基本上,AI出版物评审者评审论文的标准是: 有新意;
在某些方面,符合标准。看看IJCAI的会议录,你会发现论文录取的标准相当低。这种情况由于评审过程
本身固有的随机性而变得更糟糕了。所以一个发表论文的诀窍是不停地试。
.. 确保论文可读性比较好。论文被拒绝的原因,除了没有意义之外,就是无法理解或者组织糟糕。
.. 论文在投往期刊之前,应该交流一段时间,并根据反馈的评论进行适当的修订。要抵制那种急匆匆地
把结果投往期刊的做法。在AI领域,没有竞赛,而且不管怎么说,出版周期的延迟要大大超过对草
稿进行评论的时间。
.. 读一读你想投稿的期刊或者会议的过刊,确保自己论文的风格和内容是适合的。
.. 很多出版物都有一页左右的“作者投稿须知”,仔细看看。
.. 主要的会议都会在被接收的论文中评出内容和表达俱佳的获奖论文,仔细研究研究。
.. 通常是向会议投交一篇篇幅比较短的有关部分工作内容的早期报告,然后再往期刊投交一份篇幅长的
最终的正式论文。
.. 论文被决绝了——千万不要沮丧灰心。
.. 期刊和会议的论文评审过程存在很大的不同。为了节省时间,会议论文的评审必须迅速,没有时间细
究或者交流。如果你被拒绝了,你就失败了。但期刊论文则不同,你可以经常地与编辑争辩,通过编
辑与评审人争辩。
.. 评审人一般都会对你有帮助的。如果你收到了令人生厌的评审报告,应该向大会的程序主席或者编辑
投诉。不能期望可以从会议论文评审人的报告那里得到多少反馈。但对于期刊论文,往往可以得到非
常棒的建议。你不必完全按照评审报告的建议去做,但是,如果你不按照报告去做,那么就必须解释
原因,并且要意识到这可能会导致进一步的负面评价。不管怎么样,无论是哪种的评审,作为评审者
都要有礼貌。因为在余下的职业生涯中,你将会与被评审者在一个学术圈子里。
.. MIT AI Lab Memos大体上是或者接近发表的水平。实际上,Technical Reports基本上都是这些Memos
的修订版本。Working Papers则更不正式,这是很好的将自己的论文分发给同事们的方法。要出版这
些内部文件,只需到Publications Office(在活动楼八层)领一份表格,并有两位教员签字即可。
就像其它的科研活动一样,论文写作所花的时间总是比期望的要高。论文的发表在耗费时间这个问题
上则更严重。当你完成了一篇论文,投出去,等待发表。数月后,论文以及评论被返回来。你不得不对论
文进行修改。然后又是几个月,才返回对你的修改的确认。如果你同时发表了该论文的不同形式,如有一
篇短的投会议,一篇长的投期刊,这样的过程将反复数个回合。结果有可能是当你已经厌倦了,研究主题
也已经令人生厌后数年,你仍然在修改那篇论文。这启示我们:不要去做那些需要热情投入但是很难发表
论文的研究——苦不堪言。
7. 讲演
与同行交流的另外一种方式就是讲演,上面提到的有关论文写作的问题,同样适用于讲演。站在听众
面前从容讲演而不会使听众恹恹欲睡的能力,对于你成功地获得别人的承认、尊敬乃至最终的求职都是很
关键的。讲演的能力不是天生的,下面是一些学习和练习讲演的方法:
.. Patrick Winston有一篇很好的有关如何作讲演的小论文。每年的一月,他都会就此作讲演,演示和描
述它的演讲技巧。
.. 如果你觉得自己是一个糟糕的演讲者,或者想成为一名优秀的演讲者,选一门公共演讲课。初级的表
演课也很有用。
.. 如果你的导师有定期的研究讨论会,自愿去作演讲。
.. MIT AI实验室有一系列的半正式座谈会,叫做Revolving Seminar。如果你觉自己的某些观点值得写进
AI Memo或者会议论文中,自告奋勇去作一场报告。
.. 深入了解实验室的不同机器人项目,当你外地的亲朋好友来的时候,你可以领着他们逛一圈,并就机
器人做60分钟的报告。
.. 由于修改演讲远比修改论文容易,有些人会觉得这是很好的寻找如何表达思想的方式。(Nike Brady
有一次曾说,他所有最好的论文都来自于演讲)。
.. 在一间空屋子里练习,最好就是你马上要做的报告。这有助于调整报告的技巧:每一张幻灯讲些什么;
转换的延迟以及保持平滑;保持解释和幻灯的同步;估计报告的时间长度。你花在调整设备上的时间
越少,留下来的与人交流的时间就越长。
.. 用镜子,录音机或者录像机练习是另外一种方法。实验室有这三种设备。这也有助于调整自己的发音
和肢体语言。
.. 对于比较正式的报告——特别是你的答辩——应该在几个朋友面前练习一遍,请他们批评指正。
.. 观察别人是如何做报告的。有很多访问MIT的人会做报告。参加这样的报告会能够感受自己不熟悉的
领域,并且如果报告令人提不起兴趣,你可以暗中分析报告者错在哪里。
.. 找一位朋友,将你最近的想法说给他听。这既可以提高的交际技巧,又能调试自己的思路。
8. 程序设计
并不是所有的AI论文都包含代码,而且本领域的很多重量级人物从来没有写过一个重要的程序。但
是为了初步的近似AI工作原理,你必须会程序设计。不仅仅是很多AI研究工作需要编写代码,而且学会
程序设计能给你什么是可计算的什么是不可计算的直觉,这是AI对认知科学贡献的主要来源。
在MIT,本质上所有的AI程序设计都使用Common Lisp。如果还不知道,赶快学吧。当然,学习一
门语言并不能等同于学习程序设计;AI程序设计包含的一些技术与那些在系统程序设计或者应用程序设计
中用到的大不相同。开始学的时候,可以先看看Abelson和Sussman的《Structure and Interpretation of
Computer Programs》,并做一些练习。这本书与AI程序设计本质上并不相干,但是包含了一些相同的技术。
然后读Winston和Horn写的Lisp书第三版,书里有很多优雅的AI程序。最后,进行实际的程序设计,而
不是阅读,才是最好的学习程序的方法。
学习Lisp程序设计有很多传统。有些人习惯一起写代码,这取决于个性。还有的人寻找机会直接向有
经验的程序员学习,或者请他对你的代码进行评价。阅读别人的代码也是很有效的方法。如果可以向高年
级同学要他们的源代码。他们可能会有些抱怨,说自己的编程风格差极了,程序实际上并不能工作云云。
不管怎么样,最后你获得了源代码。然后你要仔细地通篇阅读,这很费时间。通常阅读并完全理解别人代
码所花的时间与你自己编程完成的时间是一样多的,因此要计划好在你的头一个或者头两个学期用数周的
时间去阅读别人的代码。你将从中学到很多以前不曾想到在课本中也没有的技巧。如果你读到了大段大段
不可理解没有注释的程序,你就会明白不应该如何写代码了。
在软件工程课里学习到的那些知识在AI程序设计中依然有用。要给代码加注释。使用正确的数据抽
象。将图和你的代码隔离开,由于你使用的语言基本上是Common Lisp,因此可移植性很好。诸如此类。
经过头几年的学习后,应该写一些自己的标准AI模块,如:
.. 真值维护系统
.. 规划器
.. 规则系统
.. 不同风格的解释器
.. 具有流程分析的优化编译器
.. 具有继承特性的框架系统
.. 几种搜索方法
.. 基于解释的学习器
任何你感兴趣的东西都可以尝试用程序实现。你可以抓住问题的实质,在几天之内完成一个功能版本。
修改已有的程序是另外一种有效的方法,前提是你已经写过这样的东西,并且确实了解其工作原理,优缺
点以及效率等问题。
不象其他通常的程序员,AI程序员之间很少相互借阅代码。(演示代码例外)。这部分由于AI程序很
少有真正起作用的。(很多著名的AI程序只在作者论文所提到的那三个例子上起作用,虽然最近这种情况
已经有所改善)。另外一个原因是AI程序通常是匆忙凑成,并没有考虑一般化的问题。使用Foobar的“标
准”规则解释器,开始时很有效,不久就会发现缺少一些你需要的功能,或者不够有效率。虽然可以对代
码进行修改满足自己的需要,但记住理解别人的代码是很耗时的,有时候还不如自己写一个。有时候构建
一个标准包的工作本身就可以成为一篇论文。
像论文一样,程序也有可能过于追求完美了。不停重写代码以求完美,最大化的抽象所有的东西,编
写宏和库,与操作系统内核打交道,这都使得很多人偏离了自己的论文,偏离了自己的领域。(从另外一方
面,或许这正是你需要将来谋生的手段)。
9. 导师
在MIT,有两种类型的导师,教学导师和论文导师。
教学导师的工作比较简单。每一位研究生都被分配了系里的一位老师作为教学导师。教学导师的作用
是作为系方代表,告诉你对你的正式要求是什么,如果你的进度慢了敦促你,批准你的课程计划等。如果
一切顺利的话,你每年只需要见教学导师两次,在注册日那天。从另一方面讲,如果你遇到了困难,教学
导师替你向系里反映或者提供指导。
论文导师是监督你研究的人。选择论文导师是你读研期间最重要的选择,比选题都重要得多。从更广
的意义上讲,AI是通过师傅带徒弟的方式学习的。有很多领域的技术方面或者研究过程方面的非正式知识,
只能从导师那里学到,在任何教科书上都找不到。
很多AI教员都是行为古怪的人,毕业生也如此。导师与研究生的关系是非常个性化的,你的个人特
点必须与导师的配合得很好,这样你们才能合作成功。
不同的导师具有不同的风格。下面是一些需要值得考虑的因素:
.. 你需要多大程度的指导?有些导师会给你一个定义良好的适合做论文的问题,对解决方法进行解释,
并告诉你如何开展工作。如果你陷在某个地方了,他们会告诉你如何开展下去。其他的导师属于甩手
型,他们可能对你的选题毫无帮助,但是一旦你选好题目,他们对于引导你的思路具有非常大的作用。
你需要考虑清楚自己适合独立工作还是需要指导。
.. 你需要多大程度的联系?有的导师要求每周与你见面,听取你工作进展的汇报。他们会告诉你应该读
的论文,并给你实际的练习和项目做。其他的导师每学期与你的谈话不会超过两次。
.. 你能承受的压力有多大?有些导师施加的压力是很大的。
.. 需要多少情感支持?
.. 听取导师意见的认真程度如何?大多数导师会相当正式的建议你的论文题目。有些导师是值得信赖
的,他们给出的建议,如果按照执行,几乎肯定会做出一篇可接受程度的论文,如果不是令人兴奋的
论文的话。其他的则一下子抛出很多思路,大部分是不切实际的,但是有一些,或许会导致重大突破。
如果选了这样的一位导师,你首先得把自己当作一个过滤器。
.. 导师提供了什么类型的研究组?有些教授会创造环境,把所有的学生聚集在一起,即使他们做的不是
同一个项目。很多教授每周或者每两周与自己的学生们会面。这对你有用么?你能与教授的学生和睦
相处么?有些学生发现他们更能与其他教研组的学生建立良好的工作关系。
.. 你想参与大的项目么?有些教授将大系统分解,每个学生负责一部分。这给了你与一组人讨论问题的
机会。
.. 你想被共同监督么?有些论文项目包含了多个AI领域,需要你与两个以上的教授建立密切的工作关
系。虽然你正式的论文导师只有一位,但是有时候这并不反映实际情况。
.. 导师愿意指导其研究领域之外的论文题目么?你是否能与导师一起工作,比你做什么本身更重要。
MIT的机器人系就曾指导过量子物理学和认知建模方面的论文;推理方面的教员指导过视觉方面的论
文。但是有些教员只愿意指导自己研究兴趣领域内的论文。这对于那些欲获得终身职位的年轻教员来
说尤其如此。
.. 导师会为了你跟体制作斗争吗?有些导师会为了你跟系里或者某些有敌意的实体作斗争。有时候体制
对某些类型的学生不利(特别是对于女学生和怪癖的学生),因此这一点很重要。
.. 导师愿意并且能够在会议上推荐你的工作吗?这是导师工作的一部分,对你将来工作意义重大。
上述这些因素,不同学校的情况很不相同。与大部分学校相比,MIT提供了多得多的自由。
找论文导师是你研究生一年级最主要的任务。研一结束时,或者研二学年开始阶段,你必须有一个论
文导师。下面是一些诀窍:
.. 查阅实验室的研究总结。其中有一页左右的篇幅描述了每个教师以及很多研究生目前在做什么。
.. 如果你对某些教师的研究工作感兴趣,查阅其最近的论文。
.. 在第一学期,与尽可能多的教师交谈。去感受他们喜欢做什么,他们的研究和指导风格是什么。
.. 与预期导师的研究生交谈。要保证与导师的多个学生交流,因为每位导师在与不同的学生交流时有不
同的工作方式和交流效果。不能被一个学生的看法所左右。
.. 很多教师所在研究组的会议对新同学都是公开的。这是非常好的了解导师工作方式的途径。
作为一门学科,AI不同寻常的一点是很多有用的工作是由研究生完成的,而不是博士——他们忙着做
管理去了。这有几个后果。一是某个教师的声望,是否会获得终身聘用,在很大程度上取决于学生的工作。
这意味着教授有很强烈的动机吸引最好的学生为自己工作,并给与有效的指导和足够的支持。另外一个后
果是,由于大部分学生的论文方向是由导师形成的,因此整个领域的方向和发展很大程度上取决于导师选
择什么样的研究生。
当选定了导师,决定了自己对导师的要求后,要确保导师知道。不要由于交流不好,浪费时间于自己
并不想做的项目上。
不要完全依赖你的导师,要建立自己的网络。找一些能定期评审你的工作的人是很重要的,因为研究
时很容易走火入魔。网络中的人可以包括自己实验室或者外单位的研究生和老师。
在与其他学生、老师甚至自己的导师的关系中,很可能会碰到种族主义者,性别歧视,同性恋或者其
他令人尴尬的事情。如果你不幸碰到了,去寻求帮助。MIT的ODSA出版了一本叫做“STOP Harrassment”
的小册子,里面有很多建议。《Computer Science Women's Report》,可在LCS文档室找到,也与之相关。
实验室中有些同学只是名义上由导师指导。这对于那些独立性很强的人来说很好。但是如果你已经完
成了某项导师指导的工作,除非你确保没有导师也行且自己有牢靠的支持网络,否则就不要这么干。
10. 论文
做毕业论文将占据研究生生活的大部分时间,主要是去做研究,包括选题,这比实际的写作耗时更多。
硕士论文的目的是为做博士论文练兵。博士水平的研究如果没有准备好的话,是很难进行的。硕士论
文最本质的要求是展示自己的掌握程度:你已经完全理解了本领域最新进展,并具备相应的操作水平。并
不需要你对本领域的最新知识有所拓展,也不要求发表你的论文。然而我们实验室的论文总是比较大气的,
因此很多硕士论文实际上都对本领域的发展作出了显著的贡献,大约有一半都出版了。这并不一定是好事
情。很多人精力都集中于硕士的工作,所以MIT有这样的名声:硕士论文的质量往往比博士论文高。这有
悖于硕士工作本来是为博士研究作准备的原有目的。另外一个因素是所做研究要对领域有所贡献,至少需
要两年,这使得研究生学习时间之长令人难以忍受。现在或许你感受不到匆忙,但当你已经在实验室呆了
七年后,你肯定迫不及待地想逃出去。硕士从入学到毕业平均时间是两年半,但是,计算机系强烈鼓励学
生提前毕业。如果某个硕士生的题目过于庞大,可将之分解,一部分来做硕士论文,另一部分给博士生作
博士论文。
想要了解硕士论文研究是什么样的,读几本最新的硕士论文。记住比较好的论文是那些出版的或者成
为技术报告的,因为这标志着该论文被认为是扩展了领域的最新知识——换句话说,他们的论文远远超出
了硕士论文的水平。还要读一些通过的但是没有出版的论文,所有通过的论文都可以在MIT图书馆中找到。
博士论文必须对最新知识有所拓展,博士论文的研究必须具备可出版的质量。MIT的泱泱气质又表现出来
了,很多博士论文在几年内都是某个子领域的权威工作。对于MIT的博士论文来说,开创一个新领域,或
者提出并解决一个新问题,并不是什么了不起的事情。虽然,这并不是必需的。
一般来说,需要两到三年的时间来做博士论文。很多人花一到两年的时间跟硕士生活说再见,以及选
题。这段时间可以去尝试一些别的事情,例如做助教或者在某个非AI领域打下坚实的基础或者组织个乐队。
博士论文的实际写作时间大约是一年。
选题是论文工作中最重要最困难的部分:
.. 好的论文题目不仅能够表达个人观点,而且可与同行交流。
.. 选择题目必须是自己愿意倾注热情的。个人远景观点是你作为一个科学家的理由,是你最为关切的意
象,原则,思路或者目标。有多种形式。或许你想造一台可与之交谈的计算机,或许你想把人类从计
算机的愚蠢使用中拯救出来,或许你想展示万物都是统一的,或许你想在太空发现新生命。远景观点
总是比较大的,你的论文并不能实现你的远景,但是可以朝着那个方向努力。
.. 做论文时,最困难的就是如何将问题消减至可解决的水平,同时规模又足以做一篇论文。“解决AI的
宽度优先”是常见毛病的一个例子,题目太大太虚了。你会发现需要不断的缩小题目的范围。选题是
一个渐进的过程,不是一个离散的事件,会持续到你宣布论文已经完成那一刻为止。实际上,解决问
题通常比精确地描述问题要容易得多。如果你的目标是一个五十年的工程,那么合理的十年工程是什
么,一年的呢?如果目标的结构庞大,那么最核心的部件是什么,如何最大程度的了解核心部件?
.. 一个重要的因素是你可以忍受多大程度的风险。在最终的成功和风险之间需要权衡。这也并不总是对
的,AI中有很多研究者尚未涉及的想法。
.. 好的论文选题有一个中心部分,你确信肯定可以完成,并且你和你的导师都同意这已经满足毕业要求
了。除此之外,论文中还有多种扩展,有失败的可能,但如果成功了,会增加论文的精彩程度。虽然
不是每一个论文选题都符合这个模式,但值得一试。
.. 有些人觉得同时在多个项目中工作可以在选题的时候选择可以完成的那个。这确实降低了风险。另外
一些人则愿意在做任何工作之前,选一个单独的题目。
.. 可能你只对某个领域感兴趣,这样你的选题范围就狭窄得多。有时候,你会发现系里的老师没有一个
人能够指导你选择的领域。可能还会发现好像那个领域没什么很自然的选题,反而对别的领域有好想
法。
.. 硕士选题比博士选题更难,因为硕士论文必须在你所知不多没有足够自信时就完成。
.. 博士选题需要考虑的一个因素是是否继续硕士阶段所研究的领域,可能拓展或者作为基础,或者干脆
转到另外一个领域。待在同一个领域事情就简单了,可能只需要一到两年就毕业了,特别是如果在硕
士阶段的工作中已经发现了适合做博士论文的题目。不足之处在于容易定型,改换领域则能增加知识
的宽度。
.. 有的论文题目很新奇,有的则很普通。前者开创了新领域,探索了以前未曾研究过的现象,或者为很
难描述的问题提供了有效的解决方法;后者则完美地解决了定义良好的问题。两种论文都是有价值的。
选择哪一种论文,取决于个人风格。
.. 论文的“将来的工作”部分,是很好的论文题目来源。
.. 无论选什么样的题目,必须是前人未曾做过的。即使是同时有人做的工作,也不好。有很多东西可作,
根本无需竞争。还有一种常见的情况,读了别人的论文后感觉很惊慌,好像它已经把你的问题解决了。
这通常发生在确定论文题目过程中。实际上往往只是表面类似,因此将论文送给某个了解你的工作的
高人看看,看他怎么说。
.. MIT AI实验室的论文并非全是有关人工智能的;有些是有关硬件或者程序设计语言的,也行。
选好题后,即使有点虚,你必须能够回答下列问题:论文的论点是什么?你想说明什么?你必须有一
句,一段,五分钟的答案。如果你不知道自己在干什么,别人也不会严肃对待你的选题,更糟糕的是,你
会陷在选题——再选题的圈子里而不能自拔。
开始作论文研究后,一定要能够用简单的语言解释每一部分的理论和实现是如何为目标服务的。
记住,一旦选好了题目,你必须与导师就论文完成的标准达成清晰的一致。如果你和他对论文具有不
同的期望,最后你肯定死得很惨。必须定义好“完成测试”的标准,像一系列的能够证明你的理论和程序
的例子。这是必须做的,即是你的导师并不这么要求。如果环境发生了根本的变化,测试也要随之改变。
首先尝试论文问题的简化版本。用实例检验。在形成理论抽象之前,要完整的探究具有代表性的例子。
做论文的过程中,有很多浪费时间的方式。要避免下列活动(除非确实跟论文相关):语言表达的设
计;用户接口或者图形接口上过分讲究;发明新的形式化方法;过分优化代码;创建工具;官僚作风。任
何与你的论文不是很相关的工作要尽量减少。
一种众所周知的现象“论文逃避”,就是你突然发现改正某个操作系统的BUG是非常吸引人也很重要
的工作。此时你总是自觉不自觉的偏离了论文的工作。要记住自己应该做些什么。(本文对于部分作者来说
就属于论文逃避现象)。
11. 研究方法论
[本部分内容比较少,请添加]
研究方法学定义了什么是科研活动,如何开展研究,如何衡量研究的进展,以及什么叫做成功。AI
的研究方法学是个大杂烩。不同的方法论定义了不同的研究学派。
方法是工具。使用即可,不要让他们来使用你。不要把自己陷于口号之中:“AI研究需要牢靠的基础”,
“哲学家只会高谈阔论,人工智能则需要拼搏”,“在问为什么之前,先搞清楚计算的是什么”。实际上,要
在人工智能领域取得成功,你必须擅长各种技术方法,还必须具备怀疑的态度。例如,你必须能够证明定
理,同时你还必须思考该定理是否说明了什么。
很多优秀的AI篇章都是巧妙地在几种方法论中取得平衡。例如,你必须选择一条在太多理论(可能
与任何实际问题都无关)和繁琐的实现(把实际的解决方法表达得语无伦次)之间的最佳路线。你经常会
面临区分“干净”和“肮脏”的研究决策。你应该花时间将问题在某种程度上形式化吗?还是保持问题的
原始状态,此时虽然结构不良但更接近实际?采用前一种方法(如果可行的话)会得到清晰确定的结果,
但这一过程往往是繁琐的,或者至少不会直接解决问题。后者则有陷入各种处理的漩涡之中的危险。任何
工作,任何人,必须作出明智的平衡。
有些工作象科学。你观察人们是怎样学习算术的,大脑是如何工作的,袋鼠是如何跳的,然后搞清楚
原理,形成可检验的理论。有些工作象工程:努力创建一个更好的问题解决器或者算法。有些工作象数学:
跟形式化打交道,要理解属性,给出证明。有些工作是实例驱动的,目标是解释特定的现象。最好的工作
是以上几种的结合。
方法具有社会性,看看别人是如何攻克类似难题的,向别人请教他们是如何处理某种特殊情况的。
12. 情感因素
研究是艰苦的工作,很容易对之失去兴趣。一个令人尴尬的事实是在本实验室读博的学生只有很少比
例最后获得学位。有些人离开是因为可以在产业界赚到更多的钱,或者由于个人的原因;最主要的原因则
是由于论文。本节的目标是解释这种情况发生的原因,并给出一些有益的建议。
所有的研究都包含风险。如果你的项目不可能失败,那是开发,不是研究。面对项目失败时是多么艰
难啊,很容易将你负责的项目失败解释为你自己的失败。虽然,这实际上也证明了你有勇气向困难挑战。
在人工智能领域很少有人总是一直成功,一年年地出论文。实际上,失败是经常的。你会发现他们经
常是同时做几个项目,只有一些是成功的。最终成功的项目也许反复失败过多次。经历过很多由于方法错
误的失败之后,才取得最终的成功。
在你以后的工作生涯中,会经历很多失败。但是每一个失败的项目都代表了你的工作,很多思想,思
考方式,甚至编写的代码,在若干年后你发现可用于另外一个完全不同的项目。这种效果只有在你积累了
相当程度的失败之后才会显现出来。因此要有最初的失败以后将会起作用的信念。
研究所花费的实际时间往往比计划的要多得多。一个小技巧是给每个子任务分配三倍于预期的时间
(有些人加了一句:“..,即使考虑了这条原则”)。
成功的关键在于使得研究成为你日常生活的一部分。很多突破和灵感都发生在你散步时。如果无时无
刻地都潜意识的思考研究,就会发现思如泉涌。成功的AI研究者,坚持的作用一般大于天资。“尝试”也
是很重要的,也就是区分浅薄的和重要的思路的能力。
你会发现自己成功的比例是很随机的。有时候,一个星期就做完了以前需要三个月才能完成的工作。
这是令人欣喜的,使得你更愿意在本领域工作下去。其他一些时候,你完全陷在那里,感觉什么也做不了。
这种情况很难处理。你会觉得自己永远不会做出任何有价值的东西了,或者觉得自己不再具备研究者的素
质了。这些感觉几乎肯定是错误的。如果你是MIT录取的学生,你就是绝对合格的。你需要的是暂停一下,
对糟糕的结果保持高度的容忍。
通过定期设置中短期的目标,例如每周的或者每月的,你有很多工作要做。增加达到这些目标的可能
性有两种方法,你可以把目标记在笔记本中,并告诉另外一个人。你可以与某个朋友商定交换每周的目标
并看谁最终实现了自己的目标。或者告诉你的导师。
有时你会完全陷在那里,类似于写作过程的思路阻塞,这有很多可能的原因,却并无一定的解决方法。
.. 范围过于宽泛了,可尝试去解决流程中的子问题。
.. 有时候对你研究能力的怀疑会消磨掉你所有的热情而使得你一事无成。要牢记研究能力是学习而得的
技能,而不是天生的。
.. 如果发现自己陷入严重的困境,一个多星期都毫无进展,尝试每天只工作一小时。几天后,你可能就
会发现一切又回到了正轨。
.. 害怕失败会使得研究工作更加困难。如果发现自己无法完成工作,问问自己是否是由于在逃避用实验
检验自己的思路。发现自己最近几个月的工作完全是白费的这种可能,会阻止你进一步开展工作。没
有办法避免这种情况,只要认识到失败和浪费也是研究过程的一部分。
.. 看看Alan Lakien的书《How to Get Control of Your Time and Your Life》,其中包含很多能使你进入充满
创造力的状态的无价方法。
很多人发现自己的个人生活和做研究的能力是相互影响的。对于有些人来说,当生活中一切都不如意
时,工作是避难所。其他的人如果生活陷入混乱时就无法工作了。如果你觉得自己确实悲痛得难以自拔,
去看看心理医生。一份非正式的调查表明,我们实验室大约有一半的学生在读研期间看过一次心理医生。
使得人工智能那么难的一个原因是没有被普遍接受的成功标准。在数学中,如果你证明了某个定理,
你就确实做了某些事情;如果该定理别人都证不出来,那么你的工作是令人兴奋的。人工智能从相关的学
科中借来了一些标准,还有自己的一些标准。不同的实践者,子领域和学校会强调不同的标准。MIT比其
他的学校更强调实现的质量,但是实验室内部也存在很大的不同。这样的一个后果就是你不可能令所有的
人都满意。另外一个后果就是你无法确定自己是否取得了进展,这会让你觉得很不安全。对你工作的评价
从“我所见过最伟大的”到“空虚,多余,不明所以”不一而足,这都是很正常的,根据别人的反馈修订
自己的工作。
有几种方法有助于克服研究过程中的不安全感。被承认的感觉:包括毕业论文的接受,发表论文等。
更重要的是,与尽可能多的人交流你的思路,并听取反馈。首先,他们能贡献有用的思路;其次,肯定有
一些人会喜欢你的工作,这会使得你感觉不错。由于评价进展的标准是如此不确定,如果不与其他的研究
者充分的交流,很容易盲目。特别当你感觉不太好时,应该就你的工作进行交流。此时,获得反馈和支持
是非常重要的。
很容易看不到自己的贡献,总是想:“如果我能做,肯定是微不足道的。我的所有思想都太明显了”。
实际上,当你回头看时,这些虽然对你是很明显的,对别人并不一定是明显的。将你的工作解释给很多门
外汉听,你会发现现在对你来说是平淡无奇的东西原来那么难!写下来。
一项对诺贝尔获奖者实施的有关怀疑自己问题(在你研究的过程中,你一直觉得自己是在做震惊世界
的工作吗?)的调查表明:获奖者们一致回答他们经常怀疑自己工作的价值和正确性,都经历过觉得自己
的工作是无关的,太明显了或者是错误的时期。任何科学过程的常见和重要的部分就是经常严格的评价,
很多时候不能确定工作的价值也是科学过程不可避免的一部分。
有些研究者发现与别人协作比单打独斗工作效果更好。虽然人工智能研究经常是相当个人主义的,但
是也有一部分人一起工作,创建系统,联合发表论文。我们实验室至少已经有一个联合做毕业论文的先例。
缺点是很难与协作者区分对论文的贡献。与实验室之外的人合作,例如暑期工作时,问题就会少一些。
很多来到MIT AI实验室的学生都是以前所在学校最厉害的人。来到这里之后,会发现很多更聪明的
人。这对于很多一年级左右学生的自尊形成了打击。但周围都是聪明人也有一个好处:在你把自己不怎么
样的(但自己又没有觉察到)想法发表之前就被其他人给打倒在地了。更现实的讲,现实世界中可没有这
么多聪明人。因此到外面找一份顾问的工作有利于保持心理平衡。首先,有人会为你的才能付费,这说明
你确实有些东西。其次,你发现他们确实太需要你的帮助了,工作良好带来了满足感。
反之,实验室的每一个学生都是从四百多个申请者挑选出来的,因此我们很多学生都很自大。很容易
认为只有我才能解决这个问题。这并没什么错,而且有助于推进领域的发展。潜在的问题是你会发现所有
的问题都比你想象的要复杂得多,研究花的时间比原先计划的多得多,完全依靠自己还做不了。这些都使
得我们中的很多人陷入了严重的自信危机。你必须面对一个事实:你所做的只能对某个子领域的一小部分
有所贡献,你的论文也不可能解决一个重大的问题。这需要激烈的自我重新评价,充满了痛苦,有时候需
要一年左右的时间才能完成。但这一切都是值得的,不自视过高有助于以一种游戏的精神去作研究。
人们能够忍受研究的痛苦至少有两个情感原因。一个是驱动,对问题的热情。你做该研究是因为离开
它就没法活了,很多伟大的工作都是这样做出来的。虽然这样也有油尽灯枯的可能。另外一个原因是好的
研究是充满乐趣的。在大部分时间里,研究是令人痛苦的,但是如果问题恰好适合你,你可以玩一样的解
决它,享受整个过程。二者并非不可兼容的,但需要有一个权衡。
要想了解研究是怎么样的,遭到怀疑的时候应该如何安慰自己,读一些当代人的自传会有些作用。
Gregory Bateson's Advice to a Young Scientist, Freeman Dyson's Disturbing the Universe, Richard
Feynmann's Surely You Are Joking, Mr. Feynmann!, George Hardy's A Mathematician's Apology,
和Jim Watson's The Double Helix.
当你完成了一个项目——例如论文——一两个月后,你可能会觉得这一切是那么不值。这种后冲效果
是由于长时间被压抑在该问题上,而且觉得本可以做得更好。总是这样的,别太认真。等再过了一两年,
回头看看,你会觉得:嘿,真棒!多棒的工作!