2006年11月3日

[收藏]清华女生读博士之消极篇

每隔几天,就会有关于女孩子是不是该读博士的问题讨论。发文问这个问题的,大多都是面临选择的女孩子们。会有人站出来说,该读,因为有N个理由.也有人会说,
不要读了,因为M个理由。我是个过来人,快要从清华毕业了,也曾经有人发信问过我,我写写我的体会吧,反正褒贬皆有之,自己决定吧。

我大学毕业的时候,是班里的第3名,年级第11名。按照我的成绩,我有很多种选择。本科毕业、读硕士、直博或者出国。我的选择空间很大。我不想出国,原因很简单,我没考GRE和TOEFL。

选择继续读书而不参加工作是因为大家都这样选择,我们班只有两个人本科毕业,其他人都继续读书,我当然是一个自我感觉良好的人,自认为自己即使在清华这样一个人才济济的地方也同样可以出类拔萃,而且我本科的时候几乎是做到了这一点。

我曾经也怀着远大的抱负,希望自己的人生能够轰轰烈烈,甚至希望自己的名字能够载入史册。我是个不服输的女人。高考的时候,我是学校里保送生排名第一位,但我放弃了所有的保送机会,其中包括天大、西安交大、西工大的任意专业,只因为那里面没有清华。

高考考入清华让我如愿以偿,我除了学习以外还参加了很多协会,认识了很多朋友。在清华里,我不是个学痴派,但第三个学期我竟然还排了班里第一,有一阵子我对自己都有些崇拜。自信心膨胀,我以为巾帼的确可以不让须眉。

读博士的选择很简单,因为我当时觉得自己有搞研究的天赋,我要读博士,要好好学些知识,在这个领域作出些杰出的贡献,于是,我选择了读博士。

然而,渐渐的,我却发现自己失去了对未来的宏伟规划,我发现读博士跟我想的不一样。

工程项目像雪片一样飞来,而鲜有时间供你自己去读书。我开始逃避这样的生活,我宁愿在宿舍什么也不做,也不希望卷入一个又一个的工程项目中。“混”这个词的出现,让我更加觉得我的选择是如此的草率。我开始满足于做一个小女人,我渐渐失去了我的追求。

曾经有一段时间,我很彷徨,我想退学,甚至有时候失去了自我的那种难受感觉让我想到自杀。

导师很忙,没有时间管我。而且,他的学生也太多,他管不过来。只有每年临近毕业的学生,他才偶尔过问一下。我觉得自己失去了曾经令我骄傲的才华,我真的成了一种第三类人。清华女生的那种情怀我已经找不到了,随之而来的是无尽的感叹,感叹青春不再,感叹菱角尽失。

我有时候在想,如果我本科毕业就工作,拿着手里厚厚一沓的荣誉证书,在2000年大学生还没有泛滥的时候,找到一个适合的工作,也许我会比现在感觉好的多。我不知道,人生的路不能重来一次。现在找工作的尴尬,是我完全没有想到的。现在这个年代,性别歧视原来是如此的严重。(关于这个话题,我会再写一篇详细说说我的经历。)

大多数时候,我觉得有些后悔。但我不是一个总是生活在过去的人,我愿意看到将来。虽然有些后悔,我还是认真的做了两年研究,完成了我的博士论文。说实话,我没有退学的魄力,我只好调整心态读完全程。

我把十年最美好的青春留在了清华,女孩子十年最美好的时光用来读书我现在认为是不值得的。从我找工作的经历来看,这个社会不需要女博士,即使急需人才的地方也会告诉你,他们希望要男性。说实话,读了这么多年,突然有一种感觉,原来我已经被这个社会抛弃了。

[收藏]读博士有什么用?

如果说读书无用或者不重视学历是一种极端,那么唯学历论也同样是一种极端。博士是中国学位中最高的一个等级,如果走向唯学历论,读博士也就会变得千奇百怪。也就会提出读博士有什么用的问题。

  现在高校似乎都在追随一个目标——申博、申硕,好像高等院校的等级差异就是由硕士或者博士点多少决定的,这些博士点设置是不是够条件,整个评审的结果有时也耐人寻味。别的就不说了,我见过这样的博士,他先报考的硕士,硕士没录取,后来又去考博士,结果博士到录取了。看起来很奇怪,其实不奇怪,因为这个博士点是一个冷门,没有人报考,因此录取了。所以说博士点的设置和录取的标准也就耐人寻味了。

  如果说高考是一座独木桥,现在这个独木桥延伸了,延伸到硕士,甚至到博士。如果是社会就业竞争造成的,如果读博士就是为了就业,我以为这太狭隘了。

  许多学子学士毕业,读硕士,硕士毕业读博士,然后再进流动站,流动站出来应当是在所学的领域非常有建树了,这些学子也是而立之年了。可是国内一些学科在国际上落后了许多,但确实又培养了不少博士,可是这些学科总是上不去,不能不说我们在博士的培养上是有一些问题。

  许多大学在职的教师申请读博士,我以为很正常,因为自己学校这个专业的条件较差,走出去进修是必要的。可是许多人读博士的目的就是为了评职称,博士论文就是晋级教授的门票,等到教授职称一拿到手,就不再做啥学问了。有一些教授申请了不少课题,经费花了不少,课题做得很一般,有的还是造假,并且不愿意为本科生上课,你说中国高等教育如何进步?

  更奇怪的是我见过一个大学的教授已经是系主任、硕士生导师,其本人和所从事的专业在国内也小有名气,年纪已过半百竟然也去读博士。他读博士的动机至少有三个版本:嫌自己学校试验水平太差,借读博士的名义到条件更好的学校从事专业研究;嫌自己学校的水平太差,读了博士后以便往后好跳槽;现在虽是系主任,要往校长的位置上爬,必须是要有博士学位,动机究竟是啥?只有他自己说得清楚。

  现在读博士为了当官是一个普遍的现象,政府官员中高学历的人数在增多,有许多人都是博士,有的还是博士生的导师,博士当官能不提高执政能力也需要讨论。有些人读完博士就升官,原来读的专业由此就放弃了,人们不禁要问那你读这个专业干啥?朱永新先生这样的官员是研究教育的,那么去当主管教育的官员也无可厚非。一些博士乃至博士生导师放弃原来的专业去当官,也成了一种气候,如果是当官比做学问要容易多了,我看执政能力也难提高。政府官员把学历提高了,执政官员如果不懂具体的法律和政策,都是博士也不一定解决执政中的水平问题。另一方面这些博士就要放弃原来的专业,这个损失谁买单?

  中国的博士的心理问题也值得研究,有许多博士压力大啊,有的都自杀了,大部分原因是做不出成果,这些人不挤进这个行列就没有这个压力了。有的博士去乞讨,我想也是心理问题,除了成果可能还有待遇问题。

  有一个学者和我聊天,他说一个人一生也许有许多选择,例如读本科的时候学习的是这个专业,然后又跨越到另一个专业读了硕士,在读博士的时候又换了一个专业。这位学者以为这种转换是很正常的,有的人在这种转换中寻找到自己关注研究的方向,于是也容易出成绩,既然有了喜爱的研究方向,或者已经找到发展的方向就应当把这个方向研究到底。那种随便申请一个学位,毕业后就是为了当官,这种读博士的意义实在不大。世界上所有学有成就的人都是具有执著专一的特征,是不是读过博士并不是关键。博士学位的设置从根本上是为了促进这些专业人才在专业导师指导下进一步学习和研究,如果对此专业根本没有兴趣,而是为了一种功利,必然弊大于利,而且学术腐败也就随之而生。

  为了当官读博士,也不是少数,不仅是资源的浪费,也让博士学位庸俗化。可以断定这种人当官也当不好,其中有些人还心术不轨。

  博士专业的设置在于精,而不能泛;在于深,而不在于滥;在于实,而不在于名;在于用,而不在于利。让人们看到如果读博士有了强烈的功利色彩,那么博士学位的价值就随之陡降。科教兴国需要大量高级知识分子,并非读书无用。如果把读书变成功利色彩很重,一些博士的心理压力也就会非常沉重,应该说做学问是一件愉快的事情,不论它多么辛苦,如果真是在做学问,心理一定会很坦然,有压力不会在心理出现;当研究有了成果也就有了最大的满足。我们要看到今天的博士生以及毕业的博士出现这样和那样的问题首先应当反省读博士的动机,反省一下做学问目的。笔者以为如果动机有了问题,那么更严重的问题就是如此博士的培养还会危及社会的发展。

数据挖掘技术特写



2006-11-02 13:37:46



张承东
导语:
“我们把世界看成数学,并且把你也看成数学”--用这句话来说明数据挖掘技术的复合性和应用的广泛性似乎再好不过。如今,虽然一些行业在应用这一技术上仍然缺乏足够的主动,但一个不能阻挡的趋势是:已
经有越来越多的人在快乐而有效地使用这一技术并且不由自主地成为它的“挖掘”对象。



引子:
禽流感该如何更好地监控?今天你写Blog了吗?
你是否觉得这两个问题连在一起问很无厘头?
事实上,美国一家公司正在试图让这两个事件之间的关系日渐明了。
这家公司目前正在通过从全球的Blog网页中作挖掘出和禽流感相关的信息,从而建立一个预警机制。这一项目考虑到Blog已经成为新闻传播的重要途径,先从网上抓取有关禽流感的网页,存入到公司的数据仓库,再指定“国家”为关键目标词,然后利用关联分析技术,即可得到和禽流感关联最大的国家,由此可以判定该国的禽流感传染可能比较严重。
就在此前,已经有很多人在抱怨,网上多如牛毛的Blog除去浪费了人们数以十万年的阅读时间之外,还有多少用处?如今,商业智能领域中的数据挖掘技术正在力图从这些爆炸式增长的Blog中“挖”出更有价值的东西,同时它也正在更多领域中展示其非凡的力量。



工具篇:前方是岔路口



数据挖掘其实并非单纯的IT技术,而是数学家和计算机科学家之间的合作产物。在过去十年中,高等数学和计算机建模的联姻改变了科学和工程技术,以至于有人认为这一合作已经开创了一个全新的商业领域。
有关数据挖掘技术的定义有很多版本,综其要点,主要在于应用一系列统计与人工智能技术来发现以前并不了解的数据规律,并解决实际业务问题。如今,数据挖掘技术已经从最开始的一个简单的算法包,发展出通用挖掘平台和专业挖掘工具两大种类。其中,像IBM、NCR、SAS、微软、SPSS、StatSoft等厂商的数据挖掘产品(模块)基本都是通用型工具平台;而像美国的 Unica 公司、费尔艾萨克公司(Fair Isaac Corporation)则主要专注于诸如营销自动化、信用卡积分等细分领域,属于后一种工具。
具体来看,目前在数据挖掘领域声势颇大的大多是通用型工具平台,像IBM、NCR、SAS、微软、Oracle 、SPSS、StatSoft等都是如此。



“现在IBM更侧重的是平台优势。”在采访中,IBM软件部中国区DB2信息管理技术经理刘晶炜明确表示。目前,IBM的DB2中包含Intelligent Miner for Data和Intelligent Miner for Text两个数据挖掘模块,将数据挖掘和数据仓库整合到一个平台之上。其中,前者主要针对结构化信息,主要分为建模、浏览、Scoring Service三个部分;后者则是针对文本的挖掘模块,其主要功能是特征抽取、文档聚集、文档分类和检索。



NCR Teradata的数据挖掘工具同样也是与其数据仓库整合在一起。具体来说,其数据挖掘工具可以按照挖掘的步骤主要分成Profiler、ADS Generator、Warehouse Miner和模型管理器四块。目前Teradata最新版的数据挖掘方案是Teradata Warehouse Miner 4.1。



SAS 公司和SPSS公司作为两家从传统的统计分析技术发展而来的数据挖掘厂商,二者在业内的影响力可谓有目共睹。其中,SAS 公司提供了SAS Enterprise Miner 、SAS ETS(时间序列预测)、SAS OR(运筹学)、SAS STAT(统计分析)、SAS QC(质量控制)等一系列工具;SPSS公司也提供了Clementine和AnswerTree两项产品。



微软在SQL Server 2005中在数据挖掘方面的突破与创新曾被人看作最令人惊艳的地方。Microsoft SQL Server 2005 Data Mining 平台的确引入了大量的数据挖掘功能,其本身就是一个开发智能应用程序的平台,而非一个独立应用程序。而且,这一平台与所有 SQL Server 产品实现了集成,包括 SQL Server、SQL Server Integration Services 和 Analysis Services。据称,SQL Server 2005 中最重要的数据挖掘功能就是其处理大型数据集的能力,它允许模型对整个数据集运行,从而消除了采样方面的挑战。



总起来看,像IBM、NCR、Oracle、微软这些平台工具厂商基本上都是以提供“整车”为己任。一句话,只要用户不是很挑剔,基本上都可以在某一家那里即可买全包括数据挖掘工具在内的全套商业智能产品。而像SAS、SPSS、StatSoft等公司虽然也宣称提供工具平台,但提供“整车”的实力有限,主要在统计分析和数据挖掘领域延伸提供尽可能多的工具组件。



相对于这些挖掘工具平台,专业挖掘工具可能在市场的声势并不大,但是像Fair Isaac 公司、Unica 公司的发展却也相当不错。比如像Fair Isaac 公司就已经占据了全球信用卡积分市场70%-80%的份额,几乎达到垄断。该公司的创始人发明了一个信用评分卡(即费寇分数,FICO score),由此可以预测人的未来偿付行为,为消费者信用行业提供一个有效的预测工具。同样,美国 Unica 公司的 Affinium Model 则是一款专注于市场营销自动化的数据挖掘工具软件。



那么,面对这两种工具,用户该如何选择?换句话讲,哪种工具才是未来的发展方向呢?
中国传媒大学调查统计研究所副所长、数据挖掘研究室主任沈浩认为,平台化肯定是将来的一个发展方向,而且,中国的市场足够广阔,也可以容得下一批这样的平台厂商。IBM软件部中国区DB2信息管理技术经理刘晶炜也表示,正与SAS进行更多的合作,以便进一步统一数据挖掘领域的技术标准。而Teradata数据仓库专家盛秋戬博士则认为,目前的平台工具虽多,但从根本上讲,都是在用横向的数据挖掘工具解决纵向的行业业务问题。他表示,如果从用户出发,用户应该更欢迎那些专业挖掘工具。



北京瑞斯泰得数据技术开发公司苏立民总经理从事数据挖掘行业已有六年之久,他在采访中表示,现在数据挖掘领域的确存在平台化趋势,但专业工具也占领了一些市场。比如Unica 公司就是只选出并优化某些算法,再加上行业经验,就可以使建模过程更加优化。另据SYBASE商务智能总监廖钢城介绍,其实在日本,就有公司专门销售一种类似“黑匣子”的专业工具,银行积累的数据在里面跑一遍,就直接出来结果。这种工具用得也很好。而在另一方面,他也认为,提供平台的厂商会越来越少。



如此看来,业界对于工具的发展方向似乎并无太大异议,即平台工具会保持在一个适当的数量,而专业工具显然更得用户的宠爱。而现在,数据挖掘技术的发展刚好到了一个岔路口,一边指向通用型,一边指向专业型,就看企业要往哪个方向走了。



技术篇:算法与模型



一, 机关可曾“算”尽?



之所以说数据挖掘是高等数学和计算机科学联姻的产物,其中一大原因就在于,对各种算法的支持程度是衡量数据挖掘工具的一大标准。在前期采访中,笔者曾设想通过对比各种数据挖掘工具对算法的支持程度来分出高低。但在采访之后,笔者发现这一对比实无必要,因为目前的算法技术已经相当成熟,而主流工具也基本上都提供了对主流算法的支持。



从算法上看,业界公认主要有决策树、分类、聚类、回归、关联分析等几大主流算法。对于这些算法,IBM、NCR、Oracle等主流工具基本上都已经支持,而像微软的Microsoft SQL Server 2005 Data Mining ,它作为一个开发智能应用程序的平台,可以允许第三方添加自定义算法以支持特定的挖掘需求。
在支持的算法种类和数量上,SAS、SPSS等传统的统计分析厂商要比IBM、NCR、微软、Oracle 等厂商更多一些。比如SAS Enterprise Miner就提供了决策树、神经网络、自动神经网络、基于记忆的推理(MBR)、线性和对数回归、聚类、关联分析等很多算法。



Spss公司在其AnswerTree工具中就提供了CHAID、Exhaustive CHAID、Classification & Regression Tree、Quest等四种计算法则。在采访中,无论厂商还是业内专家大都认为,目前的算法技术已臻成熟。北京瑞斯泰得数据技术开发公司苏立民总经理就表示,近年来统计学领域新出现的新算法很有限,大多是对旧算法的完善。而对于现存的算法而言,除了一些独有的算法之外,主流算法都可以互相拷贝,并不存在太高的技术壁垒。



或许正是因为作为数据挖掘技术基石的算法技术已经比较成熟,这也造成厂商开始纷纷在其他领域开拓新的技术亮点。比如NCR Teradata就认为,除了算法指标,体系架构也非常重要。相对于算法上的难分伯仲, NCR更强调通过其“库内挖掘”的优势,来解决数据量、效率和质量的难题。此外,苏立民总经理认为,在算法成熟之后,更重要的工作就是在数据准备阶段。而商智通公司咨询总监匡宏波则认为,虽然算法的速度业已越来越快,但更关键的是怎么用。无疑,这些都是需要业界跳出单纯的算法技术并及早关注的重点。



二, 从模型看未来
美国《商业周刊》在今年的一篇文章中指出,人类将数学建模应用于现实生活与工作肯定将是21世纪最伟大的事件之一。事实上,建构模型也正是数据挖掘技术的重要内容,正是通过建模,数据挖掘工具才可以准确地告诉用户那些隐藏在数据库深处的重要信息,同时又对未来做出预测的。
那么,何为建模?简单来讲,就是综合运用数学思想方法和IT技术建立一个适合当前问题的模型,用以解释之前发生的事情并预测未来发生的事情。
“算法是刀,建模是刀法,而模型就是用刀切出来的东西。”北京瑞斯泰得数据技术开发公司苏立民总经理如此形容算法、建模和模型三者之间的关系。简单来讲,如果算法是“y=a+bx”,那么模型就是“y=5+3x”。区别就在于已经带入了常变量。目前,业界探讨较多的技术内容主要有自动建模和模型转换两点。
其一,自动建模。
自动建模是考查数据挖掘工具是否能够自我优化,从而方便一般用户使用的重要功能指标。在这项功能的帮助下,用户无需深刻了解算法的优缺点,即可利用其灵活的参数设置及其帮助从而增强建模的效率。
目前,诸多主流工具都在自动建模方面有着较好表现。比如NCR就尤其强调其模型的并行性。据Teradata数据仓库专家盛秋戬博士介绍, NCR的并行处理优势就在于:比如用两台服务器(集群)来作挖掘,可能需要1分钟的反应时间;而如果再加两台服务器,则只需要半分钟的反应时间。这一优势当然是基于NCR自身的硬件设备。
SAS Enterprise Miner(EM)的自动建模主要体现在自导向(SEMMA)数据挖掘进程上。SEMMA为执行数据挖掘的核心任务提供了一个灵活的框架,这些任务包括五个主要的步骤,亦即采样(S),探索(E),修改(M),建模(M)和评估(A)。此外,专业工具厂商美国 Unica 公司的 Affinium Model 的最大优点也是体现在最大限度地将数学建模过程自动化 ,使得那些数学基础不好的业务人员可以方便地使用这个工具。
需要注意的是,虽然自动建模被人们寄予厚望,但是还远未达到让用户手到擒来的地步。之所以这样说,一方面是因为工具本身的技术实现不够,苏立民就认为,在这方面,专业型工具做得要比通用型工具相对较好;另一方面,自动化本身并不能取代一切。中国传媒大学调查统计研究所副所长、数据挖掘研究室主任沈浩也解释说,做好自动建模,同样需要对业务有深刻的了解,才能选择更好的变量。比如在知道一批女孩的身高、体重数据之后,要分析出女孩的漂亮程度,那么,选定“身高除以体重”来分析无疑还是要靠脑子想出来的。



其二,模型转换。



数据挖掘工具的多样性造成模型种类也很多,这种情况下,不同工具生成的模型是否能够共享或转换就成为一大难题。目前,业界正通过对预测模型标记语言(Predictive Model Markup Language ,PMML)的应用来解决这一问题。这一语言在1997年7月由DMG(the Data Mining Group)发布,它利用XML描述和存储数据挖掘模型,已是一种已经被W3C组织接受的标准。现在来看,IBM、SAS和SPSS等厂商已经在使用PMML标准导入数据挖掘模型,但也有些厂商仍未采用此种标准,而从标准本身看,对数据仍然具有一定的依赖性,还未真正实现模型与数据的分离。







热点篇:文本挖掘与网络挖掘

算法和建模作为数据挖掘工具的核心技术从它诞生之日起就在得到不断完善,而在最近两年,也有一些新的技术和应用热点开始引起人们的关注,比如文本挖掘、网络挖掘和可视化挖掘就是其中比较重要的三种。
“文本挖掘是个太恐怖的事情。”中国传媒大学调查统计研究所副所长、数据挖掘研究室主任沈浩如此形容文本挖掘的威力。文本挖掘(Text mining),顾名思义,就是从非结构化的文本中发现潜在的概念以及概念间的相互关系。在这项技术中,最关键的是分词技术,建立词典。只有让计算机依据词典完成正确断词之后,才可以实现将非结构化信息转化为结构化信息,然后就可以进一步研究文本之间的关系。比如本文开头提到的通过分析Blog网页来建立禽流感预警机制的例子,其实既利用了文本挖掘技术,也是一个网络挖掘案例。
到目前为止,像IBM、微软等主流挖掘工具以及google和SNS网站都已经在使用文本挖掘技术。但遗憾的是,目前这些工具大多只支持英文,还不支持中文挖掘。
如果说文本挖掘是一项技术热点的话,那么网络挖掘可以称得上是数据挖掘领域中的一大应用热点了。具体来讲,网络挖掘还可以细分为三种挖掘,一是前文提到的文本挖掘,二是结构挖掘(Structure mining),主要解决网页与网页之间的链接关系,三是点击挖掘(Hit mining),是针对点击率的挖掘分析。总体而言,要实现网络挖掘,从技术上讲并没有难度,大部分的问题都可以用成熟方法来解决。
在采访中,无论厂商、集成商还是学界都肯定了网络挖掘的美好发展前景。“我个人比较看好Web下的网络挖掘。”盛秋戬博士这样说。他认为,网络挖掘是施展数据挖掘技术的很好的舞台,同时也会给挖掘工具厂商带来不少商机。沈浩同样也认为,当电子商务发展起来之后,网络挖掘肯定大有可为。
但是业内人士也指出,网络挖掘目前尚存在一些瓶颈。
首先,一个关键问题是电子商务的评估指标(e-Metrics)还没有形成一个完整的体系。所谓指标体系就要设定几个维度来衡量电子商务网站生意的好坏。目前,有些电子商务网站已经开始定义像潜在顾客率(reach)、招揽时间(Acquisition)、潜在顾客转化率(Conversion)等一些评估指标,美国的一些技术会议也已经开始做一些整合工作,但是要形成体系还需要一段时间。
其次,缺钱。在采访中,商智通公司咨询总监匡宏波表示,曾经有一家医药类电子商务网站主动找上门,提出要求想知道平台的某类药品(比如盘尼西林)主要销往哪里。但盛秋戬博士也指出,就电子商务领域的总体而言,除了像亚马逊、eBay等一些国外大型电子商务网站开始自己买工具进行挖掘之外,国内少数注意到数据挖掘技术的网站大多是自己开发做此类工作,舍得掏钱的人还不多。
在文本挖掘和网络挖掘之外,可视化挖掘(Visual Data Mining)因为和工具的易用性联系在一起,因而也颇为重要。简单来讲,可视化包括了数据预处理和结果呈现两个方面。比如StatSoft一直强调的完整的图表工具库以及高质量的图表呈现效果就是其优势所在。但是总体情况来看,可视化的内含和标准近几年一直没有更新的内容,而且,即便工具厂商自认为做得再“可视化”,对于用户来说,仍有难以理解和掌握的地方。苏立民介绍说,虽然现在挖掘结果呈现已经相当易用,但是他接触到的一些用户依然会抱怨说,每回总是打印出案例那么多表格到底有什么用?其中的问题就在于:工具的易用性是一回事,有没有既懂业务又懂技术的人来用却是另一回事。







应用篇:瓜熟蒂不落?
在采访中,笔者发现,无论厂商、集成商还是学术界,基本上都认同一个观点,即:数据挖掘在技术已经趋于成熟,现在更重要的就是如何拓展行业应用。 IBM软件部中国区DB2信息管理技术经理刘晶炜表示说,数据挖掘技术已经到了一个普及化的阶段,现在关键是要让数据挖掘从神坛上走下来。商智通公司咨询总监匡宏波也表示,现在数据挖掘领域的问题都不是技术问题,也不是工具问题,而是应用问题。那么,现在,数据挖掘工具在国内的实际应用处于什么阶段呢?
从行业应用来看,目前大多数的用户来自都来自电信、银行、保险、税务等领域,比如南京地税、四川移动两个案例就做得相当成功;应用主题则主要包含:消费者行为分析、信用评分与风险管理、欺诈行为侦测、购物篮分析等方面。综合国内外的发展趋势,可以看到的是,大型连锁商店和高科技制造产业也将成为应用数据挖掘技术的重要领域。前者的记账质量之好为业内公认,一旦开始数据挖掘方面的应用则前景不可限量;而在后一个领域,国外已经开始陆续导入数据挖掘技术,类似做法相信会很快为国内制造业大厂所借鉴。
从应用层次上看,大体可以分为三个层次,第一层次是把挖掘工具当作单独的工具来用,偶尔用一下出具一个报告,不用建设系统;第二层次则是把数据挖掘模块嵌入到系统中,称为部门级应用;第三层次是企业级应用,相当于把挖掘系统作为整个企业运营的CPU。目前,国内的数据挖掘的应用是本来数量就比较少,即便是做了的,也有很多只是处于第一层次,偶尔某些用户能够做到第二层次。
如此一来,问题出现了:既然数据挖掘技术已经趋于成熟,为什么在应用上却迟迟跟不上呢?笔者在采访了几家主流厂商和集成商以及业内专家后发现,问题主要集中在以下几个方面。
其一,工具易用性强则是否用户就会运用呢?答案是否定的。
现在很多厂家都在强调工具的易用性,但是却忽视了一个问题,即工具易用性强和用户会运用完全是两码事。SYBASE商务智能总监廖钢城表示,这两者的关系,就像用word写文章一样,即便输入法、界面等再友好,但是和使用者能否写出流畅的文章关系并无关系。换句话讲,工具再易用,前提也得是用户脑袋要清楚。即便面对同一个工具,统计学家和普通人使用后得到的结果也不一样。因为选用的数据不一样,选择的变量也不一样,结果的准确性自然也不一样。
“用户总是想像使用傻瓜相机一样使用挖掘工具,事实上这是不可能的。”盛秋戬博士表示说。据他介绍,目前很多号称已经做完的项目,其实大部分工作仍然还都是由厂商代替客户操作使用。
其二,复合型人才一将难求。
要成功完成一次数据挖掘过程,用户首先要业务熟悉,其次还要对算法和模型熟悉。两者不可偏废,才能知道拿来的数据代表什么,算出来的结果又代表了什么。然而,从目前电信、金融行业的人才结构来看,如今主导建设数据挖掘系统的大都是工科出身,不但业务不熟悉,即便是对于数学领域中的统计学也都过于生疏。客观的讲,这种复合型人才的缺乏也在很大程度上造成了目前数据挖掘市场还不够成熟。
那么,如何解决这个问题?答案似乎很简单,没有那就只有培养了。比如现在一些电信用户就在日常培训之外,还高薪聘请一些乙方(数据仓库解决方案供应商)的咨询师和顾问,专职负责自己的数据仓库和挖掘项目,试图由此培养一批既懂业务又懂技术的专业人才。当然,一开始说的是培养,最后实在忙不过来,用户挖厂商墙角的事也不是没有。
问题是,同样是培养人才,那到底是让业务人员学技术好呢,还是让技术人员学业务好呢?苏立民和廖钢城都表示,更赞成是业务人员去学习技术。因为业务人员是为了应用而学习,可以实现很好的结合。目前,像中国人民大学已经开始招收有计算机专业背景的统计博士,而中国传媒大学的数据研发中心也是文理兼收,可以想见,未来三四年内,人才缺乏的问题将逐步得到缓解。
其三,转变意识,端正心态。从意识上,主要是用户要转变;而心态上,则厂商和用户都需要端正。
首先,从意识上看,与国外长期的精细化管理相比,国内用户有些时候还不太习惯迅速走向精细化。沈浩就表示,国内零售企业的记账是最好的,也是被认为最值得作数据挖掘的行业,但至今为止还没有哪家开始做,原因就在于没有这方面的意识。
其次,从心态上看,用户和厂商的心态显得都过于着急。从用户来讲,总想找个可以替代决策的工具。不做长线,只想作短线,总以为项目上线就行了。像国内某电信公司,从一开始其实就没想清楚需求是什么,结果火急火燎的把工具买来,现在根本就用不起来。从厂商来讲,问题在于不太想培育市场,只想赚快钱。苏立民认为,数据挖掘是一个需要慢慢雕琢的东西,需要精耕细作才能做成功,但是目前一些厂商却更愿意采取狩猎型,作一个单纯的产品销售型公司,这种做法本身似乎就不太适合这一行业。廖钢城也表示,Sybase正是看到这种情况,所以就更愿意和和瑞斯泰得这样的集成商合作实施,而不只是销售产品。




编看编想:
从一锤子的买卖到沿途下蛋



生意人都知道,一锤子的买卖做不得。但笔者却发现,在数据挖掘领域里,敲一锤子换个地方的现象却似乎并不鲜见。为什么非要这样做呢?答案是,全因心里太着急。很多厂商总认为,自己怀里揣着的是好产品,面前的中国又是一个大市场。如此一想,就感觉不赶快搂下几个大单简直没天理了。
于是,搞售前的着急让用户签单,拿到钱后又着急从用户那里撤退。结果如何呢?还真像那句俏皮话说的:有困难要上,没有困难创造困难也要上。活活把一些简单问题复杂化。有些买完工具的用户其实需求都没想明白,何谈成功运用;而那些能在忽悠中挺过来的用户索性就不再理这茬。
问题出在哪里?其实厂商看得清楚,不外乎市场需要培育、人才也需要培养而已,而他们只是懒得下手去做,甚至不愿去说。
厂商着急,其实用户也着急。厂商着急卖产品,而用户却在着急花大价钱买来的产品早日上线出效益。这种想法虽然也有问题,但是可以理解。你想,谁不担心几十万打了水漂儿,谁又不想让领导说这几十万花得值、花得好呢?!
那么,如何才能做到既能保证项目按周期实施、又不让用户心急火燎得难受呢?上海证券交易所信息网络有限公司董事长赵小平提出了“沿途下蛋”的理论。简单讲,就是不要到最后才给用户下一个大金蛋,很可能这个大金蛋还没下来,用户就已经下了逐客令。正确的办法就是不断出成果,这样用户才会安心等待并且积极配合。
无疑,从“一锤子的买卖”到“沿途下蛋”这条路上还需要厂商和用户慢慢琢磨。(ccw-cnw)



2006年11月2日

[收藏]至少应该阅读的九本C++著作

至少应该阅读的九本C++著作

C++语言吸引如此之多的智力投入,以至于这个领域的优秀作品,包括重量级的软件产品、程序库以及书籍著作等,数不胜数。对于读者来说,倘若限于经济等客观因素而必须做出折衷取舍,我推荐至少阅读以下几本书:

1. The C++ Programming Language (Special 3rd Edition) by Bjarne Stroustrup

2. The Design and Evolution of C++ by Bjarne Stroustrup

如果你只打算购买一本书,那就选择1,如果还想要第二本 — 那就是这两本了。它们的作者是 C++语言的创建者。Stroustrup的文字语言丝毫不逊色于他所创建的程序语言。它们可以使你免于误入歧途。

3. Effective C++: 50 Specific Ways to Improve Your Programs and Designs by Scott Meyers

4. More Effective C++: 35 New Ways to Improve Your Programs and Designs by Scott Meyers

5. Effective STL: 50 Specific Ways to Improve Your Use of the Standard Template Library by Scott Meyers

我强烈推荐Meyers这个系列。它们是菜鸟进阶必读之作。游刃有余的技术,高超的写作技巧。Meyers可能是世界上最优秀的C++技术作家。

6. The C++ Standard Library : A Tutorial and Reference by Nicolai M. Josuttis

C++标准库字典式著作。内容全面,结构清晰。

7. C++ Templates: The Complete Guide by David Vandevoorde, Nicolai M. Josuttis

Alexandrescu的Modern C++ Design阅读门槛很高,这本书可以充当你的垫脚石。单单阅读The C++ Standard Library或许并不足以使你具备定制、扩充标准库组件的能力,这本书可以助你一臂之力。对于任何希望进入模板编程领域的C++程序员来说,这是一本必读之作。

8. Modern C++ Design: Generic Programming and Design Patterns Applied by Andrei Alexandrescu

一本天才的著作!泛型模式,无限延伸你的视野,足以挑战任何一名C++程序员的思维极限。这本书几乎可以满足你对C++模板的所有幻想。

9. Design Patterns by Erich Gamma , Richard Helm, Ralph Johnson, John Vlissides

设计可复用的面向对象的软件,你需要掌握设计模式。这并不是一本专门针对C++程序员的著作,但它采用了C++(和Smalltalk)作为主要示例语言,C++程序员尤其易于从中受益。学习设计模式,这本书需要一而再、再而三的咀嚼。

这是公正客观的推荐吗?可能不是。实际上,没有任何人能够做到绝对客观 — 至少The Design and Evolution of C++是否应该进入这个推荐列表就能惹起喋喋不休的争吵。

还有许多优秀的著作值得推荐,但为了将推荐数目控制到个位数,它们没能入选。换一个人也可能会给出另外的“九本书”列表,但至少大半会和这个列表重叠。

巧合的是,这几本书均出自Addison-Wesley。它们绝大多数在市面上能找到相应的中文版,几乎每一中文版都有很好的质量。祝各位阅读快乐。

荣耀
2003年9月
南京师范大学


[收藏]C++程序设计之四书五经

C++是一门广泛用于工业软件研发的大型语言。它自身的复杂性和解决现实问题的能力,使其极具学术研究价值和工业价值。和C语言一样,C++已经在许多重要的领域大获成功。

然而,一个不可否认的现实是,在低阶程序设计领域,C++挤压着C同时也在承受着C的强烈反弹,而在高阶程序设计领域,Java和C#正在不断蚕食着C++的地盘。也许C++与C合为一体永远都是一个梦想,也许Java和C#的狂潮终将迫使C++回归本位 — 回到它有着根本性优势的开发领域:低级系统程序设计、高级大规模高性能应用设计、嵌入式程序设计以及数值科学计算等。果真如此,我认为这未尝不是一件好事。

C++吸引如此之多的智力投入,以至于这个领域的优秀作品,包括重量级的软件产品、程序库以及书籍等,数不胜数。文题“C++程序设计之四书五经”一个不太严格的含义是:C++程序设计之四书 ⅹ 五经。是的,在本文(及其下篇)中,我将分门别类推荐20多本C++好书,你可以根据自己的需要选读。

TCPL和D&E

TCPL和D&E分别是《The C++ Programming Language》和《The Design and Evolution of C++》的简称,均出自Bjarne Stroustrup之手。我将它们单列出来,首先是因为Bjarne是C++语言的创建者,然后是因为比“首先”那个原因更重要的原因:这两本书是C++领域毋庸置疑的杰作。说它们是C++语言圣经,并不为过。

Bjarne Stroustrup, The C++ Programming Language (Special 3rd Edition)
《C++程序设计语言(特别版)》,机械工业出版社
《C++程序设计语言(特别版)(英文影印版)》,高等教育出版社

迄今为止,TCPL是除了C++标准文献之外最权威的C++参考手册。和大多数人的看法不大一样,我认为Bjarne的文字语言并不逊色于他所创建的程序语言,至少我喜欢这种学院气息浓厚的作品。本书对C++语言的描述轮廓鲜明、直截了当。它从C++语言创建者的角度来观察C++,这是任何别的作者和书籍做不到的 — 没有任何人比Bjarne自己更清楚该怎么来使用C++。

这是一本严肃的著作,以中、高级C++开发人员为目标读者。如果你是一名有经验的C++程序员,需要了解更加本质的C++知识,本书正是为你而写。它不是那种让你看了会不断窃喜的小书,需要用心体会,反复咀嚼。在阅读过程中,请特别留心Bjarne先生强调了什么,又对什么一语带过。我个人比较喜欢这本书的第四部分“使用C++做设计”,这样的内容在类似的程序设计语言书籍中很难看到 — 我甚至认为Bjarne应该将这部分独立出来单独写一本书。

Bjarne Stroustrup, The Design and Evolution of C++
《C++语言的设计和演化》,机械工业出版社
《C++语言的设计和演化(英文版)》,机械工业出版社

D&E是一本关于C++语言设计原理、设计决策和设计哲学的专著。它清晰地回答了C++为什么会成为今天这个样子而没有变成另外一种语言。作为C++语言的创建者,Bjarne淋漓尽致地展示了他独到而深刻的见解。除了广受赞誉的语言特性外,Bjarne没有回避那些引起争议的甚至被拒绝的C++特性,他一一给出了逻辑严密、令人信服的解释。内容涵盖C++的史前时代、带类的C、C++的设计规则、标准化、库、内存管理、多重继承、模板等,对包括异常机制、运行时类型信息和名字空间在内的重要的新特性都分别进行了深入探讨。每一名C++程序员都应该可以从Bjarne的阐释中加深对手中这门语言的认识。

需要再次提醒的是,这两本书知识浓缩,信息量极大,请不要错过Bjarne每一句看似漫不经意的话。

入门教程

学习任何一门语言都需要一个从入门到精通、从新手到高手循序渐进的过程。不过,对于一个所谓的新手而言,究竟是一个完完全全的新手,还是一个熟悉某种别的语言的“新手”,甚至是在某种语言程序设计领域已经颇有建树的高手,很难一概而论?不同的C++新手需要不同的入门书籍。

Andrew Koenig, Barbara E. Moo, Accelerated C++: Practical Programming by Example
《Accelerated C++中文版》,中国电力出版社

和市面上大多数C++教程不同,本书不是从“C++中的C”开始讲解,而是始于地道的C++特性。从一开始就使用标准库来写程序,随着讲述的逐渐深入,又一一解释这些标准库组件所依赖的基础概念。另外,和其他C++教材不同的是,这本书以实例拉动语言和标准库的讲解,对后两者的讲解是为了给实例程序提供支持,而不是像绝大多数C++教材那样,例子只是用作演示语言特性和标准库用法的辅助工具。

作者在C++领域的编程实践、教育培训以及技术写作方面都是世界一流水准。我喜欢这种大量使用标准库和C++语言原生特性的清新的写作风格。在这本教材面前,几乎迄今为止的所有C++教材都黯然失色或显得过时。尽管这本教材也许对于国内的高校教育来说有些前卫,不过我仍然极力向我的同行们推荐。顺带一提,在Bjarne和我最近的一封通信里,他这样评价本书:对于有经验的程序员学习C++而言,这本书可能是世界上最好的一本。

Stanley B.Lippman, Josee Lajoie, C++ Primer (3rd Edition)
《C++ Primer (3RD)中文版》,中国电力出版社

这本书的名字多少有点让人误解。尽管作者声称这本书是为C++新手而写,但无论是它的厚度还是讲解的深度都暴露了似乎并非如此。也许说它是一本“从入门到精通”的C++教程会更合适一些。我个人认为它并不适合完全不懂C++的初学者 — 在阅读这本书之前,你至少应该先有那么一点C或C++的背景知识,或者至少要具有一些其他语言的编程经验。

尽管这本书省略了一些高级C++特性的讨论,但仍然可以称得上是迄今为止最全面的C++学习教程。事实上,如果一名C++初学者能够扎扎实实地读完本书并对照《C++ Primer Answer Book》完成全部习题的话,他的水平肯定可以进入职业C++程序员的行列。我个人认为,即使你已经拥有了TCPL,这本书依然有拥有的价值,因为在许多方面它比TCPL来得更详细、更易懂。

Stanley B. Lippman, Essential C++
《Essential C++中文版》,华中科技大学出版社
《Essential C++(影印版)》,中国电力出版社

可以不太严格地认为这本书是《C++ Primer》的精简版。本书一一讲述了C++中最具代表性的主题,包括过程式编程、泛型编程、基于对象编程、面向对象编程、模板编程以及异常处理等。Stanley将门槛调低到“具有其他语言程序设计经验”的C++新手所能接受的最基本的层次,使他们能够迅速开始使用C++编程而又免于阅读《C++ Primer》那样的大部头。它以实例引导学习,力图使读者在最短的时间内把握C++的精粹。

也许换一个人来概述C++编程范型(paradigm)的方方面面需要好几百页才能说清楚,但这本小书不可思议地做到了这一点。我个人非常喜欢这种满是技术、简明扼要并且“有话好好说”的书。这本书同样具有一个明显的风格:所有程序例子全部采用标准库组件,让人耳目一新。

以上三本书都不是为了完完全全的编程新手而写。完全的C++编程新手可以阅读Francis Glassborow的新书(尚未出版):《A Beginners Introduction to Computer Programming : You Can Do It!》。这也是Bjarne的推荐。Francis Glassborow是ACCU主席,多年来他对几乎每一本C++经典名著评头论足,他自己的这一本自然会引起C++社群的极大兴趣。

高效、健壮编程

两年前我在负责一个省级电力调度系统项目时编写了一个网关程序,它从SCADA系统获取电力实时信息。通讯接口采用了不常用的数据库直连方式(这个网关程序一端连接SQL Server 6.5,另一端连接Oralce 8.1.6)。由于实时测点近万,每次将全部取样更新或插入一遍显然是低效的。我在网关程序里建了一个内存库,获取到的数据首先在其中进行比较,然后决定是否更新物理数据库(同时还做了别的更复杂的事情……),从而在效率和资源占用两方面达到了预期效果。

这个程序一直运行得很好,但在离开现场之后的某一天,系统管理员打来电话,说大概因为网络故障等原因,有时这个网关程序会崩溃掉 — 它自己崩掉也就罢了,问题是它还会把Windows 2000 Advanced Server搞成“蓝屏”!坦白地说,我还从来没看过哪个非蓄意的程序有这个“能耐”。由于当时正忙于另外一个大项目,无法去现场调试,最后只有凭经验对内存库代码小心翼翼地封装以异常处理代码(同时也做了一些别的修改……)。这样,虽然没有彻底解决问题,但程序终究不再死得那么难看了。

在这儿讲这么一段花絮有什么意思呢(当初为那个可怕的bug朝思暮想时我可不认为这是一个“花絮”)?我想说的是,对于任何软件而言,离开强健,效率也就无从谈起。而对于C++程序员来说,也许编写一个高效的程序并不难,但要编写一个需要7 ⅹ 24小时持续运行的服务端软件就不是那么容易了,需要考虑许多因素,有时这些因素甚至远远超出C++语言和开发工具的本身。作为一名开发实际项目软件的程序员,并非非得自己碰钉子才能积累经验,只要我们足够虚心,别人的经验往往都是我们很好的借鉴。鉴于此,我推荐以下几本书供你选读,它们可以让你从强健和效率两方面受益(当然了,它们涵盖的内容远不限于异常处理J)。

Scott Meyers, Effective C++: 50 Specific Ways to Improve Your Programs and Design (2nd Edition)
Scott Meyers, More Effective C++: 35 New Ways to Improve Your Programs and Designs
《Effective C++中文版》,华中科技大学出版社
《More Effective C++中文版》,中国电力出版社
《Effective C++(影印版)》,中国电力出版社

如果说《Effective C++》主要讨论C++中一些相对基础的概念和技巧的话,那么《More Effective C++》则着重探讨了包括异常处理在内的一系列高级技术。与前者相比,后者具有两大主要区别:其一,它包含很多时新的标准C++的内容;第二,它讨论的主题倾向于“战略化”而非“战术化”,并且讨论得更深入、更彻底。尤其是对虚析构函数、智能指针、引用计数以及代理类(proxy classe)等技术和模式论述的深入程度,让人很难想象是出现于这样的一本小书之中。

游刃有余的技术,高超的写作技巧,Scott无疑是世界上最优秀的C++技术作家之一。在简洁、清晰、易读等方面,这两本书都卓尔不群。总之,Scott提供的这85个可以改善编程技术和设计思维的方法,都是中、高级C++程序员必备的技能。我强烈推荐这两本书(实际上还有一本,稍后就会看到)。

Herb Sutter, Exceptional C++: 47 Engineering Puzzles, Programming Problems, and Solutions
Herb Sutter, More Exceptional C++: 40 New Engineering Puzzles, Programming Problems, and Solutions
《Exceptional C++中文版》,中国电力出版社
《More Exceptional C++中文版》,华中科技大学出版社

你自认为是一名C++语言专家吗?读一读ISO C++标准委员会秘书长的这两本书再回答。在这两本书中,Herb采用了“问答”的方式指导你学习C++语言特性。对于每一个专题,Herb首先合理地设想出你的疑问和困惑,接着又猜测出你十有八九是错误的解答,然后给你以指点并提出最佳解决方案,最后还归纳出解决类似问题的普适性原则。

这两本书是典型的深究C++语言细节的著作,很薄,但内容密集,远远超过Scott的那两本书,读起来很费脑筋 — 我个人认为它们要比Scott的书难懂得多。若要研习这薄薄的两本书所包含的知识,至少需要花费数月的时间!(在Scott的荐序中,他坦陈不止一次陷入GotW问题的陷阱,你应该知道这意味着什么)对于语言细节的深究有什么好处呢?尽管在大多数情况下,我们不必关心C++代码幕后的动作,然而当我们不得不关心时,这两本书可以为我们提供很好的线索,因为它们揭示了C++语言中微妙而又至关重要的东西。

Stephen C. Dewhurst, C++ Gotchas: Avoiding Common Problems in Coding and Design
《C++程序设计陷阱》,中国青年出版社

Stephen的理论素养和实践经验注定这是一本值得一读的好书。Stephen曾经是贝尔实验室中第一批C++使用者。他已经使用C++成功解决了包括编译器、证券交易、电子商务以及嵌入式系统等领域中的问题。本书汇集了作者来自开发一线的99条编程真知灼见,洞悉它们,你可以避免几乎所有常见的C++设计和编程问题。

我甚至认为,对于C++编程菜鸟而言,阅读这本书会比阅读Scott和Herb的书更能轻松而立竿见影地获得更大的提高。我个人很喜欢这本书的写作风格 — Stephen的许多观点看似极端却无可辩驳。当然了,这种自信(以及冷幽默)来自于作者深厚的技术素养,而非自大的偏执。

除了上面推荐的书籍外,Dov Bulka和 David Mayhew合著的《Efficient C++: Performance Programming Techniques》(《提高C++性能的编程技术》,清华大学出版社)也值得一看。这本超薄小书聚焦于高性能C++应用程序开发。两位作者都是IBM软件专家,都工作于对性能要求极高的系统构建领域,本书是他们的经验之谈。也有人不喜欢这本书,因为它花了不少的篇幅讲述和C++无关的东西,我却恰恰因为这一点而对这本书产生好感,正是这些东西让我开阔了眼界。

模板和泛型编程

模板和基于模板的泛型编程无疑是当今发展最活跃的C++程序设计技术。模板的第一个革命性的应用是STL,它将模板技术在泛型容器和算法领域的运用展现得淋漓尽致,而Boost、Loki等现代程序库则将模板技术的潜能不断发挥到极致。在模板和泛型编程领域,我推荐以下两本重量级著作:

David Vandevoorde, Nicolai M. Josuttis, C++ Templates: The Complete Guide
《C++ Templates全览(繁体版)》,台湾碁峰资讯股份有限公司
《C++ Templates全览(简体版)》,人民邮电出版社

有一种老套的赞美一本书的手法,大致是“没有看过这本书,你就怎么怎么地”,这里面往往夸张的成分居多。不过,倘若说“没有看过《C++ Templates: The Complete Guide》,你就不可能精通C++模板编程”,那么这个论断对于世界上绝大多数C++程序员来说是成立的。

这本书填补了C++模板书籍领域由来已久的空白。此前,上有《Modern C++ Design》这样的专注于模板高级编程技术和泛型模式的著作,下有《The C++ Standard Library》这样的针对特定模板框架和组件的使用指南。然而,假如对模板机制缺乏深入的理解,你就很难“上下”自如。鉴于此,我向每一位渴望透彻理解C++模板技术的朋友推荐这本书。

这本书在内地、台湾各有一个译本,但出自不同的译者之手。当你看到这篇文章时,两个译本应该都已经上市,对于读者来说当然也就多了一种选择。侯捷先生个人网站上开放了繁体译本大部分章节,不妨先睹为快。

Andrei Alexandrescu, Modern C++ Design: Generic Programming and Design Patterns Applied
《C++设计新思维:泛型编程与设计模式之应用》,华中科技大学出版社
《C++设计新思维(影印版)》,中国电力出版社

你自认为是C++模板编程高手吗?请看过这本书再回答J 这是一本出自天才之手令人敬畏的杰作。泛型模式,无限延伸你的视野,足以挑战任何一名C++程序员的思维极限。

这本书共分为两大部分,第一部分讨论了 Loki程序库采用的基础技术以及一些高级语言特性,包括基于策略的类设计、模板局部特化、编译期断言、Typelist以及小型对象分配技术等。第二部分则着重介绍了Loki中的重要组件和泛型模式技术,包括泛化仿函数(Generalization Functor)、单件(Singleton)、智能指针、对象工厂(Object Factory)、抽象工厂(Abstract Factory)、访问者(Visitor)以及多方法(Multimethods)等。每一种技术都让人大开眼界,叹为观止。

在C++的学习方面,过犹不及往往成了不求甚解的借口。然而,面向对象并非C++的全部,模板和泛型编程亦占半壁江山。对于“严肃”的C++程序员而言,及时跟进这项早经例证的成功技术,不失为明智之举。

结语

这些著作是如此大名鼎鼎,也许根本不缺我一个推荐。然而,纵然C++程序员队伍的发展壮大速度不像其他更时髦的语言那样迅速,新人进总是多于旧人出。除了热忱地欢迎新人,我个人认为到了对C++书籍进行“盘点”的时候了,并且希望这样的“盘点”有益于感兴趣的读者。请保持耐心和宽厚。在下篇中,我将继续介绍标准库、网络编程以及其他方面的C++好书。有好书相伴,这个冬天不会冷。

荣耀
2004年1月
南京师范大学




下篇

我在上篇中“盘点”了TCPL和D&E以及入门教程、高效和健壮编程、模板和泛型编程等方面共十几本C++好书。冬去春来,让我们继续C++书籍精彩之旅J

标准库

当我还在研究院工作时,与同院另外两家研究所合作开发过一个大型水利枢纽调度集成项目。我们三家软件系统之间都要相互通信。在调试通讯模块时,细心的客户(一名好学的系统管理员)发现对于同一通信规约的解释代码,我的不超过30行,而对方的则超过了150行且很难看懂。这位系统管理员很纳闷,我说大家编程风格和习惯不一样,我使用了标准库,而他使用了传统C编程风格以及他所习惯的另外一些技术。

别误会!我绝无贬低这位合作伙伴的意思。事实上,我对那些真正有着深厚的C编程功力的程序员常常怀有钦佩之心。毕竟,C++能有今天的成功在很大程度上缘于它深深地植根于C。作为一名C++程序员,倘若不熟悉C++中的C,我往往会认为他的基本功是不扎实的,他的技术底气是不足的。

不过话又说回来,C++是一种多范型(paradigm)编程语言,具体采用哪种编程风格,专业程序员应该知道视具体情况而定。作为一名经常需要在现场做即兴开发的项目负责人,为了短平快地解决当务之急,我习惯尽量采用现有的库(和组件)。效率(以及强健性)久经验证的C++标准库已经摆在那儿了,何乐而不用呢?

Nicolai M. Josuttis, The C++ Standard Library: A Tutorial and Reference
《C++标准程序库:自修教程与参考手册》,华中科技大学出版社

这是一本百科全书式的C++标准库著作,是一本需要一再查阅的参考大全。它在完备性、细致性以及精确性方面都是无与伦比的。本书详细介绍了每一标准库组件的规格和用法,内容涵盖包括流和本地化在内的整个标准库而不仅仅是STL。正如本书副标题所示,它首先适合作为教程阅读,尔后又可用作参考手册。

浅显易懂的写作风格使得这本书非常易读。如果你希望学习标准库的用法并尽可能地发挥其潜能,那你必须拥有这本书。正如网络上所言,这本书不仅仅应该摆在你的书橱中,更应该放到你的电脑桌上。我向每一位职业C++程序员强烈推荐。

Angelika Langer, Klaus Kreft, Standard C++ IOStreams and Locales: Advanced Programmer's Guide and Reference
《标准C++输入输出流与本地化》,人民邮电出版社

C++标准库由STL、流和本地化三部分构成。关于STL的书市面上已经有不少,但罕见流和本地化方面的专著。本书是这两个领域中最优秀的一本,迄今为止没有任何一本书比这一本更全面详尽地讨论了流和本地化。如果你不满足于停留在“会用”流库的层面,千万不要错过它。

2001年夏天,我草草翻阅过这本书的中文版,从内容到包装都给我留下了比较深刻的印象 — 不过负面的居多一些。2003年秋天,无意中得知某网络书店正以超低价格甩卖这本书的中译本,情不自禁,一阵唏嘘。

Scott Meyers, Effective STL: 50 Specific Ways to Improve Your Use of the Standard Template Library
《Effective STL(影印版)》,中国电力出版社

读完Scott 的《Effective C++》和《More Effective C++》的中译本之后,我一直期待这本书的中文版。我从潘爱民先生的个人主页上了解到,他和他的合作伙伴似乎早已完成了这本书的翻译工作,可惜至今市面上仍不得见。幸运的是,我们可以看到它的原版。

本书是使用STL的程序员必读之作。在这本书中,Scott向我们讲述STL容器和算法的工作机制以及如何以最佳方式使用它们。和Scott的其他作品一样,这本书的写作风格清晰、精确,具有极佳的可读性。看过这本书以后,我想你也许会和我以及其他C++程序员一样产生这样的想法:Scott什么时候会写出一本“More Effective STL”?

关于STL,我还提醒你留心Matthew H. Austern的《Generic Programming and the STL: Using and Extending the C++ Standard Template Library》(《泛型编程与STL》,中国电力出版社)。这本书散发着浓厚的学院气息。Andrew Koenig和Barbara Moo在《Accelerated C++: Practical Programming by Example》一书末尾郑重推荐另外两本进阶好书(除了他们自己的《Ruminations on C++》外),其中一本是TCPL,另外一本就是本书!

网络编程

在网络编程时代,C++应该扮演着怎样的角色,让ACE(Adaptive Communications Environment)来告诉你。

Douglas C. Schmidt, Stephen D. Huston, C++ Network Programming, Volume 1: Mastering Complexity with ACE and Patterns
Douglas C. Schmidt, Stephen D. Huston, C++ Network Programming, Volume 2: Systematic Reuse with ACE and Frameworks
《C++网络编程,卷1:运用ACE和模式消除复杂性》,华中科技大学出版社
《C++网络编程,卷2:基于 ACE 和框架的系统化复用》,电子工业出版社

采用C++进行企业级网络编程,目前ACE(以及这两本书)是一个值得考虑的选择。ACE是一个面向对象、跨平台、开放源码的网络编程框架,目标在于构建高性能网络应用和中间件。Douglas是ACE的创始人,Stephen则已为ACE提供了数年的技术支持和顾问服务,两位都是ACE社群(是的,ACE的影响和实际应用的程度已经形成了一个社群)的专家。

ACE并不单单被大学和研究所追捧,它已经被成功地应用于世界上成千上万个商业应用中。在电信、宇航、医药和财经领域的网络系统中,ACE已经并继续发挥着重要的作用。如果你准备开发高性能通讯系统,你应该考虑考虑这一汇集世界顶尖专家智慧的成果。

除了使用C++面向对象设计技术和模板等高级语言特性外,ACE还运用了大量的模式。《C++网络编程》卷1和卷2并不仅仅教你关于ACE的方方面面,它还会教给你模式和通用框架设计等高级技术等。所以,作为一名中、高级C++程序员,即使你很少进行正儿八经的C++网络程序设计,阅读这两本书同样可以从中受益。

是的,并非所有网络应用都要使用Web服务器(以及其他应用服务器)和重量级组件模型,换个思路,它们或许也可以从轻量级的ACE组件中获益。

杂项

以下这几本书之所以被列入“杂项”单元,只是因为我没有考虑出更合适的归类方法,它们和上面的书籍一样,值得一读。

Bruce Eckel, Thinking in C++, Volume 1: Introduction to Standard C++ (2nd Edition)
Bruce Eckel, Thinking in C++, Volume 2: Practical Programming (Second Edition)
《C++编程思想(第2版)第1卷:标准C++导引》,机械工业出版社
《C++编程思想(英文版 第2版)》,机械工业出版社

《Thinking in C++》的第1版于1996年荣获“软件研发”杂志评选的图书震撼大奖。最新推出的第2版对内容进行了大幅改写和调整,以反映C++标准化带来的影响以及近几年面向对象领域最新研究和实践成果。“输入输入流”、“多重继承”、“异常处理”和“运行时类型识别”等高级主题连同C++标准化以后增加的一些内容则被放入第二卷中。Bruce是一名经验丰富的C++讲师和顾问,其培训和写作经验都是世界一流水准,他的作品比那些“玩票”的技术人员写的东西更能吸引读者。事实上,在同类图书中,对于大多数读者而言,这本书的可读性要超过TCPL和《C++ Primer》。顺带一提,访问作者的站点,你可以先睹第二卷的风采。

Andrew Koenig, Barbara E. Moo, Ruminations on C++: A Decade of Programming Insight and Experience
《C++沉思录》,人民邮电出版社

Andrew是世界上屈指可数的C++专家。这是一本关于C++编程思想和程序设计技术而非语言细节的著作。如果你已经具有一定的基础,这本书将教你在进行C++编程时应该怎样思考,应该如何表达解决方案。整本书技术表达透彻,文字通俗易懂。Bjarne这样评价这本书:本书遍布“C++是什么、C++能够做什么”的真知灼见。

Stanley B. Lippman, Inside The C++ Object Model
《深度探索C++对象模型》,华中科技大学出版社
《深度探索C++对象模型(影印版)》,中国电力出版社

从编译器的角度观察C++可以使你知其然并知其所以然。本书探讨了大量的C++面向对象程序设计的底层运作机制,包括构造函数、函数、临时对象、继承、虚拟、模板的实例化、异常处理、运行期类型识别等,另外还介绍了一些在实现C++对象模型过程中做出的权衡折衷。喜欢刨根问底的C++程序员不要错过这本书。

Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides, Design Patterns: Elements of Reusable Object-Oriented software
《设计模式:可复用面向对象软件的基础》,机械工业出版社
《设计模式:可复用面向对象软件的基础(英文版)》,机械工业出版社

设计可复用的面向对象的软件,你需要掌握设计模式。本书并非专为C++程序员而写,但它采用了C++(以及Smalltalk)作为主要示例语言,C++程序员尤其易于从中受益。四位作者都是国际公认的面向对象软件领域专家,他们将面向对象软件的设计经验作为设计模式详细记录下来。这本书影响是如此深远,以至于四位作者以及本书都被昵称为GoF(Gang of Four)。本书学院气息浓厚,行文风格严谨简洁,虽然它不如某些讲解模式的书籍易读,但真正要精准地理解设计模式,本书是终极权威。学习设计模式,这本书需要一而再、再而三的咀嚼。顺带一句:请将设计模式化作开拓思维的钥匙,切莫成为封闭思维的枷锁。

还有一些C++好书值得一读,恕此处无法一一列出。例如John Lakos的著作《Large-Scale C++ Software Design》(《大规模C++程序设计》,中国电力出版社)和侯捷先生的《STL 源码剖析》(华中科技大学出版社)等。

《STL 源码剖析》是一本很有特色的书,但我认为它还可以更好。我个人期待侯捷先生自第一版发行以来经过对模板技术的沉淀和再思考之后,再写一本剖析得更深入、更透彻并且更全面的“第二版”。遗憾的是,侯捷先生在完成《C++ Templates: The Complete Guide》一书的翻译后似乎决定暂时告别模板、泛型编程和STL领域。

2004年3月31日补充:我目前最常查阅的两本参考书是《C++标准程序库》和《STL源码剖析》。当然了,这与我年内的写作计划有很大的关系。

使用C++成功开发大规模软件系统,不仅需要很好地理解大多数C++书籍中讲述的逻辑设计问题,更需要掌握《大规模C++程序设计》中讲述的物理设计技术。当然,这本书的确有点过时了,不过,如果你的精力和金钱都比较宽绰,买一本看看并无坏处。

至此,我想有必要声明一下,有一些(好)书没有得到推荐,主要原因如下:

* 以上这些书已经足够多、足够好了。
* 我不会推荐通过正常渠道很难购买到的书籍 — 不管是中文版还是英文版。
* 作(译)者名气大小不影响我的推荐。我们是在看书,不是看人。
* 我不会推荐我从来没有看过的书。我至少要看过其中的某个版本(包括电子档)。这个“看”,一般指“认真阅读”,不过有一些也只能算是“浏览”。

结语

作为一名普通技术写译者,我深知技术创作和翻译的艰辛(和快乐),并多多少少了解一些有关技术书籍创作、翻译、制作、出版以及市场推介背后的细节。今天,我不会再对一本看上去差强人意的图书信口开河。罗列同一本书的各种版本的用意只在于为你多提供一些信息,让你多一种选择。

在本文成文的后期,我给Bjarne写了一封信,请教如果他来写这篇文章会怎么写。他给了我简明扼要的建议。在肯定以上列出的绝大部分图书都是世界顶尖水平的C++著作的同时,Bjarne提醒我别忘了向专家级程序员推荐《The C++ Standard : Incorporating Technical Corrigendum No. 1》。这本书是 C++标准规范的“图书版”,Bjarne亲自为之作序。

Bjarne还友好地提醒我,在我的推荐列表中没有哪一本有助于C++程序员进行Windows编程 — 这正是我的本意。在这篇文章中,我只推荐、点评平台中立的C++著作(网络编程除外) — 和操作系统无关,和集成开发环境无关,我甚至幻想它们和编译器也无关。你可以根据业务开发需要,选读自己喜爱的领域相关的C++书籍。

说到“系统无关、平台中立”,我不由得想起了“抽象层”的概念。开发实际应用的C++程序员通常工作于特定操作系统、特定开发环境和特定业务领域之中,而对标准C++和C++标准库扎实而深刻的把握,无疑是你得以在不同的操作系统、不同的开发环境以及不同的业务领域之间纵横驰骋的“抽象”本钱。

荣耀
2004年1月
南京师范大学





[收藏]读博士的一点感受

from TsinghuaBBS

读博士人人都要经历一段很艰难的时候,所以国外把读博士的过程开玩笑为“Survive”。但是,我觉得这个“Survive”虽然是有很大挑战,需要镇定去承受,但是它是向上的、主动的和有希望的。

觉得在读博士期间,选择导师和增强自我学习能力很重要。

选择导师至少要看三点:(1)导师的人格。一般一个好的导师,他很谦虚、活跃、给博士生一个很宽松自由的研究氛围,并且很信任你,知道你一直在努力和刻苦工作;(2)导师研究方向、论文发表情况和项目。因为读博士很多时候会变成自我探索过程,在这个过程的初始,需要导师领进门,因此导师的研究方向中有你一个很感兴趣的题目,并且这个题目的确有很多可以做的地方,这样你才能有发挥的余地。要注意的是,很多导师的研究课题(主要指纵向课题)不可能保证给每个博士生一个,所以先进来的博士可能会起步早些。但是,我感到,其实一个纵向课题可以研究的地方很多,若干个人都可以找到可以独立研究方向,不需要讲,某个课题已经有个博士在做了,我要等个“全新”的课题。导师的论文发表情况之所以重要,是因为这表明他还是有时间在做学问。(3)导师是否有过几个很能干的学生。古人有话,“青出与蓝,而胜于蓝”。如果导师手下曾经出过几个很不错的学生,这至少给你一个信号,你也可以在将来成为很不错的学生。当然,一般而言,这些很不错的学生大多出国了。如果导师手下有在读的不错学生,至少可以有个讨论的环境。

读博士期间的自我学习能力也很重要:(1)有很多事情可以比导师发挥更大的作用。如Internet其实就是一个很好的导师。通过它,我们可以访问最好的国际会议,最好的研究所,你研究领域最好的导师以及PHD学生。如,做人工智能研究的同学,可以到MITAI站点(www.ai.mit.edu)Download一批很有价值的参考文献。跟踪国际高档次会议论文、Workshop论文很重要,它会反映你这个学科研究领域最新进展。你也可以通过www.google.com和www.researchindex.com找你需要的文献。一些大的公司,如Microsoft(www..research.microsoft.com)和IBM(www.research.microsoft.com)站点上,也会有一流研究人员研究成果的文章;(2)事在人为。自我学习能力还要求自己始终是一个主动的人。三年时间很快,自己要多花些时间,多在相关领域做些深入研究;(3)我觉得读博士是一个心情成长的过程,到最后,你的确知道where you are going和what you are doing,是一个自信心成长的过程。

要特别提醒的是,国内研究水平和国外差距很大。所以,你要始终知道,国外在你研究领域,目前主流方向是什么,最著名的会议是什么,最著名大学的研究所是什么,最著名的导师是谁,最活跃的几个博士生是谁。这样,你毕业后,就有进一步学习的动力了。

本科生直接读博士,肯定需要至少一年半时间来进行角色转换。不要着急,慢慢来就可以了。

写下上面这些感受,肯定有很多不对的地方,诚恳接受大家指正。

2006年11月1日

[收藏]女博士写实:为留校而读博


  “学术和我的博士头衔无关”

  “如果硕士就能留在高校当老师,我肯定不会继续读博。”当老师一直是郝严的愿望,留在高校对她来说更是一个理想。

  今年刚开始念心理学博士研究生一年级的她,正一步步把这个理想变成现实。

  在笔者的大量采访中,半数以上的女博士生表示,自己选择读博并没有什么宏大的理想,只是希望“能获得更高的生活质量”,同时,80%的女博士期望毕业之后能够留在高校工作。

  郝严便是其中之一。虽然博士生的课业很辛苦,但她很满意自己目前的生活状态。“觉得会有一个自己喜欢的未来。三年的博士毕业之后,便能够成为高校教师,这对我来说实在是个诱惑。”

  “高校教师”,对郝严和很多女博士生来说,的确是一个很好的职业选择。

  在大部分女博士生眼里,“在高校”意味着一种很受女生欢迎的生活方式:更多的自由时间,更多的学习机会,良好的社会声誉,还有单纯安静的就业环境之类。对她们而言,“博士”是一个漂亮的头衔。

  郝严说,“博士头衔和我要做的研究没有什么联系。学术上的追求在我看来和博士头衔无关,做研究的能力也不需要用这个头衔来证明。可现在我需要它,它能让我过上自己想要的生活。”

  她补充说:“这就好比两个人相亲相爱,不用结婚也一样可以住在一起,过着亲密的生活,不需要去领一张结婚证来证明什么。但是如果想要得到法律保护和社会承认的话,结婚证是必不可少的。”

  “博士头衔之于我未来的工作,就好比结婚证之于恋人间的法定关系。”她笑着说。

  这个有趣的观点得到了大部分女博士的赞同。

  读博的郝严有了更多的自信,她说这是一种“可进可退”的自信。“一方面能够留在高校,跟学生打交道,接触一些新鲜的课题,对心理研究肯定是有益处的。另一方面也可以出去参加一些社会公益活动,做一些课题研究,想回来的时候再回来。”

  针对这一现象,北京大学中外妇女研究中心祖嘉合教授分析说:“在最近开展的一项女性角色的调查中,事业成功型、相夫教子型和两者兼顾型中,70%的女性希望自己成为第三种类型,既能在事业上获得成功,也能照顾好自己的家庭。”

  祖教授分析说,“留在高校工作,在一定程度上能够使她们的这种愿望有得到实现的机会。一方面高校不用坐班,时间上有很大的自由;另一方面,也能兼顾自己的事业。事业和家庭能够很好兼顾,这就不难理解为什么很多女生为留高校而读博士了。”

  两代女博士“大不同”

  2004年,吴笛考上了中科院的博士生,研究生物遗传学,今年上二年级,论文、实验、工作一系列的压力已经扑面而来了。

  吴笛的婆婆是上个世纪70年代的农学博士,退休之前是某农业大学的教授,是一位很有名的农学家,在杂交作物的研究上很有建树。

  “走一步看一步”是吴笛经常挂在嘴边的话,她说工作和论文的压力让她渐渐对未来不抱太高的期望了。“当压力已经到了一个顶点之后,也就麻木了,再多的麻烦也觉得没有什么了。”

  儿媳妇的压力让婆婆很不解,她不明白为什么现在的孩子好像读书越多反而越焦虑了。

  “我们那时候怀着多大的学术热情啊,山坡上田地里的白菜萝卜,就像是自己的孩子一样”,婆婆说,“当时哪里想过那么多啊,什么工作啊待遇啊,国家会给安排的,完全不用为学术以外的东西费心。我们博士毕业的时候,简直就是指点江山,意气风发啊!现在的博士还真是不一样了。”

  “越是不好的专业,博士越多。”吴笛这样埋怨。空闲的时候,吴笛会跟其他女博士生一起谈论一下未来的打算,在生物科技如日中天的时候,她们却觉得自己学的是“很不好”的专业。“平时不觉得,一到找工作的时候就显出来了。越不好找工作就越想往上读,博士越来越多也就不奇怪了。”

  婆婆今年已经快70岁了,但是还经常受邀参加国内外的一些研讨会,日子过得满当当的。每当吴笛因为工作和试验压力不住地叹气时,丈夫就会打趣:“真纳闷,生活在同一个屋檐下的婆媳俩,都是博士,差别咋就那么大哩?”

  吴笛说:“我也热爱自己的研究,否则不会想去大型的实验室锻炼自己,读博期间也学到了很多,但是压力却一直都在,而且从来没有觉得自己是精英。”

  硕士研究生毕业后,吴笛曾试着在一家研究所工作过一段时间。试验室的那份工作惟一吸引吴笛的就是没有固定的作息时间,但是整天和瓶瓶罐罐打交道,一天也看不到几个人的工作让她觉得枯燥极了。

  她很羡慕婆婆那种纯粹的状态,“我们俩一起在书房看书时,一个是呼啦啦地翻,一个是一行行地用手指着看。”

  “她们那一代人有着很强的社会使命感,她的那种感觉让每一个人都觉得她很重要,仿佛没有她们,油菜花就开不好。和她比起来,我这个博士念得糊里糊涂。”

  “我们现在需要考虑更多其他的问题,比如收入、生存,在这个都市中想过什么样的生活等等,所以只要学术上能跟得上别人,自己能过上喜欢的生活就好了。”

  北大中外妇女研究中心的祖嘉合教授说:“上世纪六七十年代的人有着更浓厚的理想色彩。这是和社会整体环境分不开的,当时提倡‘男女都一样’的口号,虽然一定程度上抹杀了男女之间的性别差异,但是总体看来,那是一个充满激情的年代。而现在的市场经济,需要人们更多的考虑理想和现实的结合。”

  在和国外一些研究机构的交流中,祖教授发现,中国以外的其他国家,女博士们也同样面临各种各样的压力。

  “结了婚,经济上的压力小了,接着读博能多一个选择的机会。”去高校也是吴笛的期望,“一方面专业不会丢,还有更多跟学生接触的机会,我是个喜欢热闹的人。”

  “女性似乎还是更适合感性一点的工作,我们的学科越到后来,需要的逻辑能力越强,优秀的女性研究者也有,但是相比男性而言,还是要少很多。”吴笛这样给自己下台阶。

  “读博面前男女平等”

  李晓蓬就要结束在北京语言大学的博士生生活了。语言信息处理的专业需要大量的数学知识和较好的编程能力,这让一直念文科的李晓蓬应付起来有些难度。

  李晓蓬把自己的博士生女同学分为三种人,一种是已经有了很好的工作,一边读博一边工作,读博完全是为了再充电,在既有的岗位上得到更好的发展;一类是工作不如意,很多自己想要的东西没有,或者压力很大,读了博士能找到更好的工作,提高自己的生活质量;还有一种就是她这样的,“不知不觉地一直读了上来”。

  李晓蓬读博前,并没有什么清晰的人生目标,既然一直在学校念书,就不妨按部就班念下去。这种生活,简单纯粹。谈到自己以后的打算,她说自己没有很大的为科学献身的精神。“可能我是一个比较务实的人。没有什么目标,但每一步都会走好,不管这一步有多小。”

  她很喜欢韩剧《浪漫满屋》里面宋慧乔扮演的智恩。智恩虽然刚一开始生活就遇到坎坷,但她能够走好每一步,认真解决遇到的每一个困难。“她稀里糊涂挺可爱的,没有什么大的志向,但也还算是踏实,最后也很幸福,我挺喜欢她的。”

  和李晓蓬比起来,同样来自农村的吴巧平,今年成为北京化工大学的博士生,她的读博目的就要明确很多:“在职场,女性的待遇显然不如男性,就业压力要大得多,而起码在读博面前人人平等。”

  吴巧平的家乡是西部一个国家级贫困县。身为小学教师的父母一边种地一边教书才把她和妹妹供了出来。她们的妈妈说:“在中国,不管什么时候,多念点书都没有错。”

  读博前,吴巧平曾在一家国有企业工作过,这是一段不愉快的工作经历。她说,虽然女性同样认真,但是社会上普遍还是把更多机会无条件地给了男性竞争者。她举例说:“我曾多次表示自己可以出差,但是公司从来没有给过我机会,而男同事在这方面显然占有更多的优势。公司里组织考察学习,向来都是派我的男同事去,我没有参加过自己感兴趣的研讨会,也没有机会直接接触新鲜技术。”

  吴巧平亲身体会到,在职场上女性似乎天然处于劣势,从求职到发展机遇到继续深造,竞争激烈的职场总是青睐男性。

  厦门大学人口研究所副所长叶文振说,大部分用人单位认为女性因生理特点会增加劳动成本,这无疑使得在同等条件下男性会有更多的发展机会。也就导致女性常常想要在其他方面提高自己,从而获得更多可以和男性竞争的优势。

  巧平的妹妹吴巧燕今年要从美国的俄克拉何马大学博士毕业了,学的是机械自动化。“总想要不断提高自己,这一点我们姐妹俩很像。”

  “本科毕业时,相同条件下不如其他男生,但是读了研就不一样了,博士毕业之后,应该更好一些。”

  “由于社会上根深蒂固的男强女弱的观念,很多女性不得不降低自己的标准,女博士和男硕士竞争,女硕士和男本科竞争的现象不可能瞬间消除。在实际工作中,社会对男女的标准是一样的,女性需要不断地提高自己,这是一种对社会激烈竞争的应对,也可以理解为一种妥协。”祖嘉合教授这样说。

  越洋电话里,除了互相叮嘱要经常锻炼保重身体之类,姐妹俩说的最多的就是未来。“我们总是想着毕业之后找份好工作,过更好的生活。我们互相鼓劲,肯定会有一个很好的未来的。”

  “如果毕业之后能去高校当老师当然很好了,不丢专业,生活质量也更好。但是不去高校也行,找一份可以解决户口的工作,多挣点钱,早点把爸妈接到北京来。”

  巧平坚信姐妹俩能够实现这样的愿望。“已经有学校开始想要巧燕来工作了。”