计算机编程新人入行指导

从2003年加入现在的公司,已经有了快6个年头,自己也从一个计算机软件开发方面的新兵变成了老人。在公司里也做过几个不同的项目,有一些新的同事加入项目组,会有这样那样的疑惑和问题。在这里想简单说说,一个新人如何能快速的融入一个新的开发组,让其他同事能够接受自己。

首先是读文档。计算机方面有个著名的黑话叫做RTFM,什么意思呢?按字面翻译就去“去读他妈的文档”,这是在新闻组或者论坛里可能常见的回复,一些人娇滴滴的说“我是妹妹,能指导一下这个问题么”或者贱兮兮的”跪求某某问题答案”。当然,同事之间不可能搞这些,不过也经常碰到有人问一些感觉非常简单问题,这些问题实际上都在项目文档或者软件规范里就明白写着。

一个新人加入某个项目,或者转换到一个新项目,都会感觉到手足无措,就像老虎吃刺猬不知如何下嘴。领导不会让这样的新人去完成一些复杂模块的开发或者修改一些相对困难的bug,基本上都是先分一些界面上的小改动,或者是让他开发耦合程度低一些、相对独立一些的功能作为练手,这个时候作为一个新人就要尽快的掌握整个项目的大概,然后泛读一下项目的重要文档。如果要开发某个业内标准的实现软件,那这个标准的相关文档至少要通读一遍,不需要投入很长时间,可以快速掌握一下大概,做做简单的笔记,不懂的地方先记下来以后有空再说。读文档不要作为一个整体任务完成,可以用一些零碎时间来读,以免很长时间没有什么进展,领导看了还以为在磨洋工呢。

**注意事项一,尽管有这样那样的软件支持,一支笔一个本子仍然是最方便最快速最实用的学习工具,我几乎每年都要写掉八九个大笔记本,里面写着项目开发的心得、文档书籍的感受、领导指示的一些开发问题等等,不需要有什么文章格式,先写下来就可以了。

如果是第一次进入公司,项目组长会分一个任务作为对新人水平的考察,就好比网游中的新手任务。我们公司大多数的新手任务都是半个月一个月左右的时间,注意要尽量赶在期限结束前完成所有的编码和单元测试,而且最好完成代码清理和代码注释工作,注意命名规则,这样看起来比较专业一些。

**注意事项二,接到一个项目第一个要问的就是这个项目结束期限(dead line)是什么,这样心里比较容易对进度有个估计,免得最后无法完成任务。领导可能会反过来咨询老程序员对分到的项目难度估计。一般来说,估计一个大概的编码时间,然后把估计时间乘二,留出一定余量比较好。

接手一个新任务,必须要做的就是理解需求。一个开发人员如何不理解他想做什么,基本上这个任务一定会失败。我们高考时候都会写一篇大作文,对题目的理解非常重要,偏题跑题就没法拿到高分,开发也是如此。对需求的理解需要反复的进行,定期和项目组领导或者客户进行沟通,以免自己做了无用功。但是沟通之前一定要注意,自己先掌握一定的背景知识,比如前面提到的规范文档,或者是读一读已经有的代码,跑一跑成型的产品,免得问的都是不必要的问题。

搜索一下可以找到一篇题为”提问的智慧“的文章,里面介绍如何在网上问问题。其实项目组内沟通也是如此,要注意问有意义的问题。打个比方说,有时候自己会有一种感觉,跑到别人面前,把问题说了一遍,还没等人回答,突然拍着脑袋说”啊我明白了“,也许是反应挺快,可是还是耽误了别人的功夫,像这样的问题,自己组织组织语言或者写出来,答案就很容易发现。另外也有的人,总是这是怎么回事那是怎么回事,其实到搜索引擎一搜或者是把动手做做就知道结果,但是非要张嘴问,这样的人说得难听点就是问题不经过大脑,其实一思考就能得到答案了。问问题之前也可以试着理清一下思路,看看前因后果,简化一下问题模型,也许经过这些方式,自己就能找到答案。有同组的同事问问题,很多时间我反问几句,把思路理清,他自己就知道答案是什么了。忘记在哪有看到一个轶事,在某个著名软件公司里,开发组的桌上会放着一只小熊,大家互相问问题之前,先对着小熊把问题说一遍,看能不能把问题描述的清晰,基本上说的比较有条理以后,答案也就随之而来了,大家可以试试这个办法。

**注意事项三,提问之前,自己先试图看看能不能找到答案,我建议的寻找顺序是文档、google,最后才是张嘴问,问之前最好已经积累了一些材料,比如关于这个问题自己做了什么研究,搜索了什么关键字等等,这样问的有诚意,回答才能有诚意。

另外,对于一个新人,需要多跟老同事沟通,了解项目的关键点是什么,比如开发一个通讯程序,用了什么协议,哪个网站比较有用,哪个文档需要精读,都是非常有意义的问题,这些问题可以少走一些弯路。早上到了公司,第一件事是接收业务邮件,然后记下一些需要回复或者要做的工作。邮件阅读以后,可以跟项目组长做个简单的沟通,了解一下哪个任务或者功能需要快一点完成,交流一下自己的想法,时间花费不多但是可以把一天的任务明确下来。

如果比较努力而且有一定的开发能力,两三个月以后应该开始接触到项目比较核心的东西了,这个时候需要做的工作就是读代码。一个项目最重要的东西就是代码,至于文档、注释、测试,其实都是保证代码质量以及代码可维护型的一种辅助手段,作为一个开发人员,不熟悉代码就是致命的错误。

读代码我这里有一些简单的体会。

读代码要注意的第一条是从界面开始,深入到功能。打个比方说,一个桌面软件,其中有个格式转换功能,可以从菜单选择”格式转换“进行操作(注意,所谓格式转换就是一个例子,没有实际意义),那么就可以搜索菜单里的”格式转换“,找到相对应的界面函数,这就是一个相对独立的功能入口点了。然后从这个入口点顺藤摸瓜,就可以搞清楚格式转换这个功能需要的一系列界面函数以及逻辑实现函数。

读代码的时候注意要随时做笔记,可以用word或者是powerpoint这样的软件做记录,搭配一个抓屏软件抓取界面变化、程序运行栈或者是一些关键数据就更好了。

一个相对独立的功能基本上是由几个数据类或者数据结构,加上几个比较重要的逻辑函数实现的,抓住了这些关键就抓住了这个功能的核心。比如说一个通讯软件,重要的就是通讯数据格式和通讯协议实现。经过我的体验,这个小窍门还是很有用的。一般经常出现问题的也就是这些相对来说复杂一些的函数。

阅读代码的同时还要经常问自己一些问题,比如这个地方为何这样实现,有没有其他的方案,哪个方案更好一些等等。这些问题可以让自己更好的理解当时开发人员的一些想法思路,另外也是将来代码进行重构的一个铺垫。

**注意事项四,作为一个开发人员,多思考是非常必要的一个特质。

一个新人,经过这些阶段,基本上可以成为项目组的中坚力量了,希望每个入行的新人都能成功晋级成为老手。

快快乐乐的年三十

今儿是大年三十,跟帅哥贴了春联后早早就赶去沟里了,一家五口欢欢喜喜迎接牛年的到来,萌萌宝贝当然是最开心的一个,老人常说过年就是过孩子,看来是一点儿不假啊。

到沟里后我俩在楼下打电话看是否还需要买点什么东西,小丫头立刻抢着叨叨她自己心里装着的那点小事儿,我们一再解释说马上要见面她才肯罢休,进门一边帮我们摆拖鞋一边追问是否给她带图书来,当得到肯定的回答后立刻欢呼雀跃。

萌萌从很小就爱看书了,而且看书的热情高到令人无法想象,用奶奶的话讲就是扒开眼睛就得要找书……今天这本贴纸书简直成了她的至宝,恨不得上卫生间都带着,我们担心她累眼睛劝其休息人家是死活不肯,临睡前还一脸严肃地嘱咐我们千万不能动她的书!萌萌午觉才睡了一个多小时,奶奶说就是因为惦记着那本书啊。小丫头看书不光是看图画看热闹,还能大声朗诵。今天她格外高兴书也看得特别耐心,大段大段的文字她都逐一阅读,有些不认识的就由我帮着补充,我们都惊叹于她居然能认识那么多汉字,这都是爷爷奶奶的功劳啊,当然,奶奶功劳更大一些!可惜小丫头对于数字不是很敏感,呵呵,也许这方面还没开窍呢。

中午吃饭,做爸爸的允许萌萌宝贝喝一点点啤酒,小丫头高兴得手舞足蹈,边举杯边说祝酒词:“祝大家新年快乐!”,声音嘹亮得很。不知是真的高兴还是酒精的作用,她兴奋不已地分别跟我们干杯,连平时有些惧服的爸爸也不错过,爷爷奶奶一个劲儿夸萌萌会处事儿。小丫头立刻许诺晚上还要陪爷爷喝一杯!

因为实在太开心,萌萌宝贝分别在上午下午和半夜打了三次电话给姥姥姥爷和二姨拜年,当二姨说等她去串门的时候人家一点儿没犹豫,说我去我去,只住五天话茬再也没提起,哈哈。最让人吃惊的是下午那通,她突然说要跟二姨通话,因为不是今天第一次打过去,我教她无论谁接都要说:“我是萌萌,想跟二姨说话。”电话一通他听见的是姥爷的声音,不等我反应过来,人家立刻说:“姥爷新年快乐!”……这孩子都成小人精了。

下午大家醒来后开始包饺子,奶奶把材料准备停当,我提议让爷爷奶奶休息或者做其他事情,咱仨人儿来包,爸爸负责擀皮,妈妈包,萌萌也跟我学包饺子。三口人干得有声有色,萌萌最终包的八个都很不错,当然需要妈妈帮忙放馅儿,爸爸负责检查,妈妈再最后处理一下就完美了,嘿嘿,总之包饺子是很成功的啦。

春晚前的一个小时由爸爸提议,作为全家表演节目时间,所有人都表演了歌唱节目还有舞蹈,舞蹈主要是爸爸和萌萌在跳,尤以冬天里的一把火最火啦,没想到帅哥的舞姿那么有特点,实在佩服啊佩服。今天的春晚节目还不错,我们看得也很安心。主要是萌萌宝贝没看到李咏吧(其实现在她看到李咏不再哇哇大哭了,哈哈)小丫头实在太高兴了,保持了十几个小时高度兴奋的状态,看晚会时她一度把脚丫子放在帅哥脖子上,奶奶让她再来一次,她立刻狡猾地说再来一次爸爸就烦我了。之后她递给爸爸一个巨大的苹果,帅哥故意很吃惊地说是苹果妖精啊,哈哈,爷俩终于不再像往日般一个严肃一个敬畏了,好兆头哦。不过希望宝宝今晚别睡毛愣才好!

半夜十二点全家大拜年,奶奶给每人一个红包,里面全是崭新的票子,心意我们算是领了,不过还是不好再要老人的钱啦,拜年后领着萌萌到楼下放烟花,小丫头开心极了,真是长大啦,不怕鞭炮声不算,自己还能放小小的烟花呢。等我们俩在炮火中返回家已经下半夜一点。

现在已经是下半夜三点了,帅哥看电影弄得我精神起来,萌萌宝贝之前嘱咐我把她的趣事都记下来,做妈妈的我不能辜负女儿的心意啊,好了,就到这里,大年初一帅哥大舅一家还要到沟里,我得睡了,真是快快乐乐的年三十啊。最后祝愿全家牛年大吉大利,所有亲朋万事如意!

我的上网经历

晚上秀楠妈上网打滚子,我在边上跟她闲扯,突然聊起来第一次上网的经历,时间应该是九七九八年的样子,机器就是奔腾133的,modem牌子应该是贺氏(一个美国公司,已经破产了吧),第一次上的网好像还不是互联网,而是类似于169还是168的内部网站,就好比现在的教育网,一个大型局域网罢了,尽管如此,还是让我大开眼界。互联网给我一个完全不同的体验,这是个人计算机无法比拟的。

也许现在的朋友不太能体会这种感觉,不过可以试验一下这样的场景,没有bp机,没有手机,没有短信,机器上只能玩单机游戏,所有的软件游戏,只能通过盗版商购买得来,这样生活个半年一年,然后再让你上网,是不是会有一种重见天日的感觉呢?这时候再加上一段澎湃的伴奏,完全就是《甲方乙方》里面那个把村子里的鸡都吃光了的大款形象了。

当时的网络,因为是拨号限时上网,随之而来的是要控制上网时间,计时计费软件算是一个热门的分类。现在我只发现手机还有类似的软件存在,个人电脑上早就没有这种软件了。那时候上网都要有个目的,要事先想好了要干什么,比如上BBS看一个小说。然后立刻拨号,盯着那个状态栏的小图标,一旦标记联通网络了,立刻开动浏览器,然后进到想去的网站,开网页。几个网页都显示出来以后,立刻断开网络,这样,一个完整的上网活动不过需要几分钟而已,省钱而且完成了想做的事情。

记得那时候买过几个光盘,里面都是些txt文本的小说或者散文之类,名字叫做cfido大全或者cfido软件什么的,在《大众软件》也经常推荐一些bluewave蓝波软件。

什么叫做fidonet,或者中文叫做惠多网的这个东西呢?现在的人基本上都不知道,我也没有经历过,但是还算赶了个尾巴,有一些了解。当时玩这个东西的都有谁呢?如果你搜索一下“丁磊 求伯君 马化腾 bbs”,应该能搜到一些文字,比如这篇“http://www.techweb.com.cn/people/2008-12-03/378875.shtml”,摘选一下:

这时的马化腾从未想过自己会改变几亿人的沟通方式,甚至,没有想过自己的未来。他只是狂热地 爱好着自己的爱好。虽然年纪不大,马化腾的网龄却非一般人能比。很少有人知道在真正的Internet普及之前,有许多网民已在惠多网(FidoNet, 它诞生在1984年的美国,非我们现在意义上的互联网)上早早体会到网络的乐趣,马化腾就是其中之一。

1995年2月,在惠多网上挂了半年之后,马化腾义无反顾地投入了5万元,在家里连了4条电 话线和8台电脑,承担起了惠多网深圳站站长的角色,在接下来的很长一段时间内,深圳“马站”在惠多网上有着极高的人气。当时在BBS上混迹的还有丁磊和求 伯君,这时的丁磊早已经跳槽,来到了广州。“当年一起喝啤酒的时候,我们只是打工仔而已,都还不知道未来。丁磊后来的成功为我带来了启发,只要去做,没有 什么事情是不可能的。”

这里面也没有解释为何不叫真正的互联网(internet),为何投入四万元,连电话线,买电脑,办网站还需要用电话线么?有网线就行了吧?

惠多网,其实不是现在的互联网,所谓互联网,通俗的说就是基于tcp/ip网络,使用网线或者无线宽带上网(也有拨号到96163的,但应该已经很少了吧),用户需要开着浏览器连接网站的网络服务器(比如新浪搜狐腾讯)。而惠多网,是基于拨号网络的,拨号网络最基本的用法,是一台电脑激活了拨号服务(modem连上电话线,打开一些软件),而另外一台电脑,也是使用拨号服务,连接到主电脑上。简单的说就好比我知道马化腾搞了个fido的bbs,他的服务电话是10086,我就配置一个拨号到10086的拨号服务,就相当于我打个长途电话给马化腾差不多,只不过两个说话的人变成了两台计算机,而且需要运行一些特定软件罢了。

惠多网的主计算机(也就是马化腾开站用的机器)需要运行一个bbs程序,(好像应该是firebird bbs,后来发展成为大部分校园网具有的telnent bbs(其实telnet就是fido的根本),比如大工的碧海青天bbs,清华的水木清华,别看现在都是web浏览,当时可都是dos界面下的程序,都是用键盘操作的。说远了)这台机器一直开着,然后各地的fido站友就用电脑一直给马化腾拨号,如果某个人比较幸运,可能一会就拨上去了,然后就要开动bluewave蓝波这个发信收信软件进行打包上传下载,大概几分钟以后,上传下载任务完成,自动断开。这时候占线的机器会有一点空闲,下一个拨号的站友就有机会继续进行跟刚才一样的操作。

这里面有一些东西可能大家不太理解,比如为何不是直接浏览、在线写文章,而要用软件上传?因为电话线本身有着一个致命的缺点,就是同一个时刻服务的数目是有限的(我不确定,也许就是一对一的),简单比喻,就是某个人给你打电话,而你正在和另外一个人通话的时候,给你打电话的这个人只能听到嘟嘟的占线声音,一直到通话的两个人其中一方放下电话、通话结束了,才能拨到你的电话上。fido网整个通信过程跟两个人打电话是一样的,基于网络礼节或者为了更好地为更多人服务,两个人通话的时间一定要足够短,写文章、读文章这些不需要在线的操作(没有人必须连上网才能写字的怪癖吧?),就要放在通信过程之外完成,而且为了保证充分利用带宽,文字都要压缩打包。这样两个之间真正需要连接沟通的时间就很短了,一条电话线也可以尽可能的服务更多人。

于是乎,当时的人上惠多网就是这样的流程,先看信(类似于现在论坛的一个帖子的概念),有必要的才进行回复,灌水或者废话是会被人鄙视的,然后写好文章内容,蓝波软件就是一个集中了看信、信件打包、上传下载过程的软件。另外需要检查是不是有错别字,一切稳妥后,拨号连接服务器,估计幸运的过十来分钟连上去了,蓝波会把写好的文章、以及关注的版块里面的新文章和最新回复都打包下载,因为资源的紧张,大家都不会写什么废话,打包下载也不需要很长时间,然后断开电话连接,就可以悠闲的看文章看回复了。

惠多网本身是基于电话网和telnet协议建立的这么一个网络,在没有互联网之前,它是各地的网络爱好者互相交流的唯一方式,前面提到的一些奇怪的方式方法,都是因为电话网本身的限制造成的。但是应该承认,虽然有种种限制,当时fido网上的文章却是质量很高,精品很多,而且里面高手也是非常多,比如文章里提到的那三位,后来都成立了自己的公司,在网络上创出了一片广阔的天地。现在有了更方便自由的上网方式,但是却不见得对此有什么珍惜,未免有些可惜,特写此文留作纪念。

最后转载一下维基上的介绍“

中国惠多网

维基百科,自由的百科全书

中国惠多网络(CFido)是通过电话线路连结的BBS网络,网络之间互相通过点对点的方式转送信件。中国惠多网是中国计算机网络通讯爱好者自行创立并维持运作的业余网络系统。盛行于1993年1998年间,高峰时期全国有上百个站点,使用者达上万人。有名的BBS北京的轻松快车、长城、西点军校、天堂、舒克,广州的新月、深圳的Data Express、珠海的西点。CFido的网友算是中国最早的网民,后来多个CFido网友成为中国互联网名人,比如腾讯马化腾当时就是深圳的Data Express的站长,而金山软件公司求伯君是珠海西点的站长。发表“金州不相信眼泪!”而成名,后来担任8848网站董事长的网友老榕(王峻涛)是福州站的站长。

1992年,北京的罗依建设的“长城”站和汕头黄耀浩建立的“手拉手”(后来改名PCUG)站成为国内按照FidoNet体系建立的最早bbs交换系统。由此形成cfido。金山的北京西点和珠海西点也曾担负南北网络转信服务。

FidoNet R65C 罗依是cfido的第一个总协调人,求伯君是最后一个。

CFido的价值观是:爱国、高尚、勇敢、忠实、进步、友爱、守分, 业余精神万岁! 后期在网络上的电子出版物叫《龙音》。CFido曾召开过全中国第一次、第二次的站长大会。

技术背景

CFido使用Telix拨号器,基于ZModem协议。信件组织类似新闻组服务,使用蓝波快信(BlueWave)系统,对所选信件进行分类,筛选,压缩打包传输以节省传输时间,亦可进行离线编辑阅读以节省电话费。 多数的站点基于最高28.8/33.6kbps的拨号系统,因为56Kbps是非对称协议需要与电信局合作才可架设服务器。

因为整个系统运行在DOS下,需要使用DOS外挂中文系统。而Fido系统大量使用ASCII字符图形,与国标码中文有冲突,对外挂中文的要求比较高,促进了UCDOS等中文系统的发展。

c/c++程序员必读的十本书(上)

这个题目大的有些离谱,实话说,只是想推荐一下自己觉得很好、值得收藏的一些技术方面的图书。如果不是程序员,或者关心的方向是网页开发、数据库开发,或者只是想了解一下开发流程,这些书不都是适合你,但也很值得收藏了。

这篇文字的针对目标是,微软平台下的c/c++程序员,学过计算机基础学科,有一定的英语阅读能力。建议购买的顺序也是从上至下。

建议大家阅读的第一本书是《编码的奥秘》(英文名《code》),豆瓣链接http://www.douban.com/subject/1024570/,这本书中文版应该已经绝版了,但好像有英文影印版。这本书没有讲该如何编程,如何写一个hello world。它深入浅出的介绍了计算机是如何组成的,比如二进制,比如逻辑门电路的实现,都是很浅显的。看了这本书,会对计算机有个知其所以然的了解,也就是机器如何实现的一加一等于二,如何能执行程序。《编码的奥秘》是计算机专业或者是初中高中对计算机感兴趣学生,应该一上学就读的一本书。

第二本也是建议大家看到了立刻买下来,保证物有所值,就是《程序设计实践》(英文名The Practice of Programming),豆瓣链接http://www.douban.com/subject/1173548/。有了这本书,基本上《代码大全》、《程序员修炼之道》这几本后面推荐的书可以不买了,因为精华基本上都浓缩到这本书里面,当然,不同的作者写出来的还是不一样,如果有钱,还是都买了最好。《程序设计实践》的两位作者Brian W.Kernigham / Rob Pike,在计算机领域,就是大师级的人物,高山仰止,写出如此通俗易懂的计算机工程实践书,让我还能说什么仰慕的话啊。你不知道他们是谁?去搜wiki吧。里面每一章节都非常经典,甚至每章后面推荐延伸阅读的书籍,都是经典中的经典。一定要慢慢读反复读,如果这本书看完了以后,基本上就是一个计算机中级编程水平了。

第三本书比较难选择一些,还是推荐这本好了《The C Programming Language 2nd Ed》,豆瓣链接http://www.douban.com/subject/1230004/。也就是传说中的K&R,如果你是一个计算机专业的学生,还没有这本书,那你在学校里学了什么就很值得怀疑。这本书272页,每页都很经典,基本上你碰到的所有c语言问题在这本薄薄的小书里都有涉及,但是限于篇幅,有些会简单带过。里面代码例子不多,但还是包含了一个相当完整的语法分析器程序。不多说了,如果没有这本书,赶快去买吧。

现在大部分企业使用的是c++而不是c(比如google),除非是嵌入式或者操作系统内核级的程序,c++的性能与强大语法基本上可以满足各方面的需求,c++的入门书很多,选择也比较容易,推荐大家买奥莱理O‘Reilly的或者是c和c++经典著作这个系列的。第四本要推荐的不是c++编程方面的,而是一般类似于八卦c++历史的书《c++语言的设计与演化》,豆瓣链接http://www.douban.com/subject/1096216/。编程工作其实就是一个在不同的方案中进行选择权衡的一个过程,是该选择vector还是list,是该使用多线程还是多进程,是该使用xmlrpc还是dcom,是使用数据库还是注册表,有心的人会研究不同选择背后的深层技术问题,有些人基本上就是一套方案打天下。这本书就介绍了c++之父设计c++语言时选择的一些考量,为什么不用GC,为什么没有这个那个特性,为何不内置某某keyword。在我看来,这些考量的过程,对于一个编程人员来说要比如何使用c++更有价值。

第五本书,我选择了《unix编程艺术》,它击败了《代码大全》《c专家编程》等诸多经典占据了这个位置,主要也是占了unix操作系统的光。豆瓣链接http://www.douban.com/subject/1467587/。之所以选择这本书,是因为对于一个windows平台上的程序员来说,尽量开阔眼界是非常必须的事情。我们经常说混血或者说杂交会让基因更加优秀,编程也是如此,windows平台的程序员,如果只懂mfc,只会注册表保存配置,只知道COM或者DotNet,是一件非常悲哀的事情,用成语来说就是井底之蛙坐井观天,只认为天就是这么大一片,编程就应该用这些东西。unix操作系统虽然不像windows占据了桌面平台,但是在其他方面,使用非常广泛,比如苹果的mac osx系统,比如sun的solaris,比如继承了unix精神的linux。尤其在当今桌面系统网络化的潮流下,unix系统天生的网络特性、多用户管理特性、安全特性,更是体现了超越时代的杰出思想。读一读这本书,体验一下不同的设计理念和不同的操作系统哲学,对于日常的编程工作都有非常大的帮助。Windows程序员尤其要学习的是:unix系统上script的使用,使用纯文本作为数据格式,使用管道,最最重要的一点就是,Keep it simple and stupid,一个程序只做一件事,只需要把这件事做到完美。这与windows的大而全思想有着本质上的不同。

有空再给大家写剩下的五本书。