Thinking in Java - Bruce Eckel

Overall

The first book I’ve read about Java, one of the first books I’ve read about computer science.

This book provides a very good introduction about object-oriented programming (OOP). The title ‘thinking’ really means to make you follow Java’s class/object model of code organization. As a ‘pure’ and successful OOP language, Java is explained to great depth through various OOP concepts.

Where it shines

The most memorable part is the discussion about inner class. Leading from an issue about multiple inheritance, the author presented the dilemma between clean code organization and convenient reuse. Author then compares the benefits and downsides of multiple inheritance in the C++ way (from a modern view, one can also include mixin/trait). The book presented the Java design decision very well in this topic that continued to be helpful until I meet various other OO concepts and solutions.

A essential book if you’re starting to learn Java, it can also be useful if you are looking for object-oriented programming alone.

Share Comments

Code Complete - Steve McConnell

Overall

‘Code Complete’ is the very first book I’ve read about software engineering topic. This is a huge book of 900 pages!. From the 35 chapters, the most meaningful point I’ve discovered is the analogy between software engineering and construction engineering, where a piece of useful software is generated much of the same way as a physical building is completed.

Plan, Design, Implementation, Monitoring, Testing, Delivery. Although software is most of a creative product, it still needs a good amount of tedious routine work to become a useful product. Much like a modern skyscraper, maintenance is a major part of software cost and must be considered at the very first step of software planning and requirement specification.

Verdict

Although new organization ideas are getting invented all the time, ‘Code complete’ is a must-read classics. It also has huge influence in academia as well, recommended to any software professional.

Share Comments

Operating System Concepts -- Silberschatz, Gagne, Galvin

As a widely used textbook for introductory OS classes (Dragon Book), it tries to explain every crucial OS notion as clearly as possible. Many times very lengthy. Therefore it gets the benefit of being never ambiguous. However in real-world examples, this book is not very helpful. As I’m coming from a non-CS education, often times I find various OS notions hard to grasp, at least not transparent. This book fills my blanks very well.

Process and Memory managements are where this book shines. Various virtual memory models have existed, iterated and implemented in the discussions. It also provides many clear illustration about system layout and inter-process communications (IPC).

Share Comments

Programming Pearls - Jon Bentley

Overall

A guide on entry-level algorithms. Topics covered in this book have a very practical focus. Author delivers important concepts from a problem-solving perspective, and really drives the formulation of process.

In my opinion this is exactly how this book come to life from a series of column articles and remains a classics until now.

Though examples are quite outdated (consider the book is done in the 80s!), program design principles have not changed much. Readers need to be aware the deficiencies described in the book does not align with today’s compilers and hardware stack.

Share Comments

Starting in Silicon Valley

Life is a journey, my current stop is Silicon Valley.

A whole new chapter of my Software endeavors since graduate school. My previous SWOT analysis needs updating; my luggage needs unpacking; and I really miss home.

Hope this is the right decision for the future, love to my darling.

Share Comments

Practical Vim - Drew Neil

Overall

After I’m forced to mostly server-side coding, I decided to switch to vim as my primary editing environment. This book is by far the most rewarding and concentrated vim guide I’ve met.

Instead of trying to get you starting on .vimrc or installing plugins, the author nicely attempts to give you the philosophy behind the design principles of vim. Customizing vim configs is crucial, however not ‘the most crucial’. The far more important thing is to change the mentality of editing text.

Painter’s brush

The analogy of painter to programmer is awesome, that made total sense to me about the vim modes (normal/visual/insert/cmd):

Think of all of the things that painters do besides paint. They study their subject, adjust the lighting, and mix paints into new hues. And when it comes to applying paint to the canvas, who says they have to use brushes? A painter might switch to a palette knife to achieve a different texture or use a cotton swab to touch up the paint that’s already been applied.

Normal state actually is the most natural:

The painter does not rest with a brush on the canvas. And so it is with Vim. Normal mode is the natural resting state. The clue is in the name, really.

Good luck on everyone who took the journey of practicing the vim way. :)

Share Comments

Programming Contest Challenge

Yet another programming contest textbook. I’ve seen a good part of all the techniques. Still worth going through it for various applications to Peking Univ online judge and Google Codejam problems.

The techniques mentioned here are very much tailored to the needs of programming contests. Some of which require quite a bit of background and may not sounds useful for most developers. The true value of these are actually expand the horizon of Computer Science knowledge. It’s not necessary to implement all of those, however very helpful to understand the process of problem solving.

This book is very suitable for medium level programmers. More, authors use C++ as default language which helps one to get familiar with a lot of the language quirks.

Share Comments

Advanced Programming in the UNIX Environment

Overall

A very good introduction to UNIX system fundamentals, a classic system engineer textbook. Providing a lot of background with easy hands-on code examples.

Best part, the book is extremely practical, while also explaining many variations among unix, linux and macos.

Recommended in here: http://coolshell.cn/articles/4990.html

2015-5-15
Finished the book with various chapters in the second half skipped. They are mostly about highly specific system level features which I don’t think urgent to learn.

Share Comments

朱清时:是什么造就一个人的成功

每个人一生中都会遇到许多机遇,但是机遇往往是突然地和不知不觉地出现的。能力强、综合素质高的人善于抓住机遇并且充分利用它们, 具有高度智慧的人更善于创造机遇。

一所大学是否一流大学,最关键的指标是要看学校培养的毕业生今后在社会上有多大比例取得成功,取得多大的成功。所以,如何培养学生取得成功的能力是学校教育至关重要的一部分。在当今和今后的世界上,中国要在激烈的高科技竞争中取胜,最关键的就是我们的青年一代是否在今后各行各业的工作中能取得成功。国家非常希望你们取得成功,你们的家庭和本人也都希望你们取得成功。
今天,我就通过回顾我们这一代人成长的过程,根据我自己在国内外从事科研工作的阅历,谈谈一个人怎么做才能取得成功。

在这里,我将放弃确定性的语言,而改用几率描述,从机遇的角度来研究造就一个人成功的原因。这样可以把这个问题讲得更深入、更全面,正如量子论用几率描述微观世界那样,也许这样更接近事物的本原状态。 我的回答是:机遇是造就一个人成功的首要因素。

机遇是成功的首要因素

市面流行的一些书中也说了这个问题,但都没把它说得很透很清楚。其实,不管是从事哪个行业,我们每个人到了五六十岁以后,阅历多了,回首往事,都会发现很多机遇造就一个人成功的例子。

我来讲自己的亲身经历。我是中国科大1963年4系6342班毕业的,班上有25个同学。1968年毕业时还在文革之中。班上有10来个三代都是工人或贫下中农出身的同学,学习成绩好,本人表现也好,就分到了国防科委和二机部,大家很羡慕他们。我是属于条件居中偏下的,分到了青海。青海在古人眼中是常覆三军、马革裹尸的战场,在近代人心目中是劳改犯人去的地方,而且我是去当与所学专业毫无关系的工人,所以在大家的心目中,我是分得最差的人之一。

但30年后老同学重逢,聚在一起经常感叹命运和机遇的难测。像我分到青海,其实是我一生中最大的机遇。如果不到青海,我就不可能比一般人提前五年真正从事科研,更不可能一从事科研就成为项目的负责人,可能要被资格老的同事压住很长时间。就是因为青海在文革期间闹得并不厉害,还能正常运转,所以能够承担重大项目,并且承担重大项目又需要人。我在1974年底左右开始从事科研,半年以后就成为项目负责人。这是我一生中最大的转折点。1991年评院士的时候,在同时代人中间,像我这样75、76年在学术界就有成绩的不多。改革开放以后,我又成为最早到美国一流学府学习和工作的人。这样,有点成绩在同代人中就显得突出,于是得到了老前辈们的爱护,我也当选为当时最年轻的院士之一。

那些在毕业分配时令大家羡慕的分到了国防科委和二机部的同学呢?因为在那些工厂里人才济济,光留苏回来的就一大批,资格老的很多,我们这几届毕业分去的只能长时间当基层工人。而且那些地方产品的型号是定了的,不允许你随便搞技术革新,任何一点小的革新都要经过层层审批。不仅他们没有太多的机会发挥才能,而且那些地方往往在偏僻的山沟,子女上学很困难,就业也困难。他们就提前退休,让子女顶替。其中有一位当时班上的干部,各方面都很好的,现在不得不开了一个小商店以补生计。我想,当青年朋友们到了我这个年龄时,肯定也会有类似的感受。在座的同学们都是公认的佼佼者,但大家的成绩只是在学业知识方面比其他同学掌握得更好,很多其它方面的素质还未曾经历过考验。所以,经过二三十年,也许一部分同学会不如那些没考上大学的人。这个差别就是因为成功的因素很多,特别是各人的机遇不同和抓住机遇并创造机遇的能力不同。

大家都知道比尔·盖茨和李嘉诚,他们抓住了商机,取得了成功。比尔·盖茨大学读了一年就退学了,现在已成为世界首富。李嘉诚只有小学文化,也在商业上取得了很大成功。那么,学术界的情况怎样呢?在一次学术会议上,加州理工学院有个曾毕业于台湾大学、与一位华人诺贝尔奖得主是同学的教授,在一次晚宴上讲了自己的经历。他大学毕业后到哈佛化学系就读研究生,当时分子光谱学很看好,他就选了这个领域。以后的研究和学问都做得很好,但却无缘诺贝尔奖。相反,因为服兵役比他晚三年去哈佛的另外一位同学,正遇上分子束实验。他在导师指导下做得很成功,获得了诺贝尔奖。这位老教授风趣地慨叹自己“总是在错误的时间、出现在错误的地点、干错误的事情”。

当然,我并不是说未获得诺贝尔奖的科学家就不算成功,反之,科学史上有许多事后确认的重大成就并未获得诺贝尔奖。我国物理学家、中科大核物理系的奠基人和老主任赵忠尧教授早在1929年就在加州理工学院观测到直接由反物质(正电子)湮灭产生的现象。后来由于别人错误质疑这样一个偶然的原因没有获奖。但他的成就在科学史上的地位已经确立,有无诺贝尔物理奖已不重要。赵忠尧的成功,究其原因,是“在正确的时间(1929年),出现在正确的地方(加州理工),做了正确的事(观察硬g辐射在铅中引起的一种特殊辐射)”。他碰到了机遇,抓住了机遇。

就科学而言,一个学科领域中大的机遇几百年一遇,中等机遇可能十几年、几十年一遇。对于这点要有清醒的认识。大的机遇是历史和社会造成的,科学史上的重大突破,都与这类大机遇有关。如果牛顿早生200年,他不可能得出万有引力定律,因为伽利略和第谷等人的观察数据还没有出来。他晚生100年,别人可能已经把这个发现做出来了。爱因斯坦能够发现相对论也是如此。时间和空间的问题已困扰人们很多年,他生逢其时,非欧几何已经建立,发现光速不变的迈克尔孙- 莫雷实验刚完成,这些使发明相对论成为可能。不过那个时代的物理学家也很多,他执着地考虑这个问题,有超人的天才,成功地抓住了这个重大机遇。如杨振宁先生所言,现在做理论物理,可能只有“铜矿”,也许在应用科学和交叉科学领域可能出“金矿”。要想在科研上有大作为,一定要善于省时度势,看清科技发展的大趋势,有良好的洞察力去感知哪里有“金矿”。

我觉得我们这一代人很幸运,为什么呢?就是在我30岁左右、精力最充沛的时候,正逢改革开放。这是时代、社会的大背景造成的。你们这代人的机遇比我们更好了。现在国家对科技教育非常重视,对人才的渴求比我们那个年代不知要好多少倍。我们那个时候,大学生下放到工厂和农村当工人和农民去了。而你们只要有真才实学,国家是非常重视、非常需要的。所以你们逢上了大机遇,是个好时候。但有机遇,不一定能成功,关键在于要能够抓住机遇。

如何抓住机遇

机遇往往是突然地、或不知不觉地出现,有时甚至永远不为人所知,或只是在回首往事时才认识到过去的那件事是个机遇,庆幸抓住了它或者后悔失去了它。因此,善于抓住机遇的人应该具有以下基本素质。

第一, 要随时做好准备。

从年轻时就要开始尽可能地获取各种各样的广博的知识,按照你的知识结构给自己创造机遇;机遇突然出现时,你要抓住它。而且从学生时代开始就要尽可能锻炼出很强的创新能力,也就是机遇来到的时候你要有创造性。

我一生经历的两个机遇令我终身难忘。一个例子是在1978年,到浙江大学去学外语准备出国进修。当时我们那一代“老五届”的大学生大都在基层工作,很多人的英语早忘了。为什么呢?他们在当工人、农民的时候,不知道这东西有什么用,何必辛辛苦苦地去学它?还不如一有时间就去打扑克、钻桌子、喝酒,然后就开始发牢骚,这是当时最流行的事情。事前谁都没有想到,1978年中国会突然来一次全国英语统考,考及格的人事后全都公派出国了。机遇出现就是这样突然,只有准备好的人才有可能抓住机遇。

第二个例子,是我1974年在青海西宁当工人,突然听说科学院要搞一些重大项目,有一个是“激光分离同位素”,被青海盐湖所承担了,然后到处找人才。我是学核物理的,激光分离同位素虽然不是本专业,但却与它相通。而且我在工厂这五年,晚上没有事,从来不去打扑克或下棋。当初调到盐湖所搞激光分离同位素的有一二十个大学生,都是名牌大学毕业,但是干了半年后,就发现我业务没有丢,而且很快就适应了科研。文献看得很快,综述也写得快,方案也提得很清楚,所里就采纳了我提的方案,于是我就成了这个项目的负责人。这个事情说明了什么呢?那次机遇出现时,实际上是很多人都遇到了,但是只有准备得好的,平时坚持学习的人能够抓住机遇。

举这两个例子可以说明:因为机遇出现往往是突然的、不知不觉的,只有随时做好准备,从青年时代开始就尽可能地学习广博的知识、锻炼自己创新能力的人才可能抓住机遇。当然,这里要特别强调的是创新能力,而不是光有读书能力。我一生中间遇到好多同事,非常刻苦,一天到晚都在学习,但是他遇到新问题总是一筹莫展。这就是过去教育的弊病——只重视传授知识,没有重视培养学生的创新能力。

几个月前,杨振宁先生在中科大做报告时讲到人才培养,主张要快乐地学习。这很像米卢提出的“快乐足球”。米卢觉得中国的足球过去都是要完成任务,压力太大,那样的足球是打不好的。他们的看法不谋而合。杨振宁先生认为,如果你学习一个东西不快乐,必须硬着头皮,“头悬梁,锥刺股”,那就说明这个学习内容不适应你。所以要选择那种真正感兴趣的、学习起来有趣的东西。这样的学习,你不觉得是负担,不知不觉的你就把你全部精力投入进去。如果你发现你读什么东西都不快乐,你就要好好地衡量一下你所选择的内容是否适合你。

第二, 要从小事做起,认真地做好每一件事。

道理很简单,机遇总是突然地、不知不觉地出现,有时你甚至一辈子也不知道哪个是机遇。这里我要从读过的书中举几个例子,但不一定记得很准确了。

我在很早以前看过鲍威尔的传记。他是一个牙买加黑人,在美国其实是受歧视的。他第一个工作是进一个大公司当清洁工。他做每一件事都很认真,很快找到一种拖地板的姿势,拖得又快又好,又不容易累。老板观察很长时间后断定这人是个人才,然后很快就破例把他提升上去了。这就是他人生经历的第一个经验:要认真做好每一件事。

据说,希尔顿饭店集团老板原先是一家旅店的服务员,站前台的。有一天,一对老夫妇来住店,刚巧没有房间了,但时间已很晚。怎么办呢?他那天正好值夜班,就把自己的房间腾出来,赶快换床单、换枕头,收拾好后让老夫妇去睡,自己却趴在柜台上睡了一夜。第二天,老夫妇很感动,认为这个青年人很善良。他绝对没有想到这对老夫妇就是希尔顿饭店的老板,而且没有子女,于是他就做了希尔顿家族的接班人。这件事说明,做事、做人要从小事做起,争取把每件小事做好。因为从小事做起,才不会失去悄悄来临的机遇,有些事先你不知道的机遇,也会被你抓住。

我也讲讲我自己的体会。因为我从小就喜欢从事科研,也很崇拜科学家。有5年时间当工人,损失了五年的科研时间,所以一直有一种很强的紧迫感。这种紧迫感从我在盐湖所做第一次报告开始,一直保持到现在。每次做学术报告,我私下都要认真准备很长时间,脑子里想很久。我之所以在国内能比较快地被学术界接受,其中一个秘诀就是:我每次把学术报告都准备得很好,给人留下比较深刻的印象,没有浪费每一次机会。要认真做好每一件事情,包括:考好每一场试,学好每一门课,做好每一次报告,跟每个人相处都要认真。

第三, 一旦出现机遇的时候,要全力以赴,兢兢业业地抓住它。

我国第一个乒乓球世界冠军容国团说过一句格言:“人生能有几回搏!”他是拼了,所以得到了世界冠军。实际上,我们学术界也一样——人生能够有几回搏?

C60足球状分子的发现者和诺贝尔奖得主Curl教授曾经在做报告时很详细地重述了他们的发现过程。实际上在此之前,已有其它实验室也发现了这个奇怪的质谱线,意识到这是个碳原子数为60的聚合物或团簇,但不知道是什么样的结构。他们那天在实验上观察到这个奇怪的质谱线后,晚上没有睡好觉——他们意识到这是科学发现的重大机遇。正在他那儿做访问学者的英国克洛特教授,突然想起60个原子要形成一个稳定体,很可能跟一种由六边型或五边形组成的什么球体有关。他想起他家里有一个球,马上就要打电话叫他太太赶紧去数这个球的顶点有多少个,是不是60个。但这时正是英国早上两点,Curl教授提醒他说:“你太太不会感谢你在早晨两点打电话的,你要好好考虑。”他只好放下电话。然后他就坐立不安,一直走来走去。另外一位合作者斯默利教授,回到住处后就连夜在纸上画图,琢磨如何把六边形、五边形组合起来形成一个封闭体。第二天早上,他们找来了一个数学系的教授,问他有没有这样一个几何图形,由五边形、六边形组成,顶点正好60个。那个教授想了一下说:“哎呀,这就是足球呀!哈,这个问题在数学上早解决了。”他们马上就写出了那篇获诺贝尔奖的文章。这个故事说明,在科学发现的关键时候,科学家往往一分钟都不能等待,就像足球场上射门一样。

我个人也有一次经验。在我一生中,迄今最满意的结果就是硅烷分子的局域模振动。那是在大连做的。全世界有很多人都想得出这种光谱,都没有得到。因为这种光谱极弱,实验要调得恰到好处,每一个环节都要最佳才能做出来。就像交响乐队,要奏出最好的交响乐,每一个人,每一乐器,每一个音都要准,都要在最佳状态演奏。那个局域模振动光谱正是这样。那天,突然调好了,发现做得很漂亮,那时就不能停,停了之后一切都又要从头来。于是我赶快找来一床席子和一床被子,就在实验室里守着那个机器。万一有点什么事情,马上就要把数据存起来。我连着在实验室睡了三个晚上。我觉得那三个晚上最幸福,因为心里明白我正在做激动人心的事!这三天就得到了硅烷的局域模振动光谱。这个光谱发表出去在国际上影响很好。

总之,“人生能有几回搏”,当你意识到出现机遇的时候,一定要抓住它,不要掉以轻心,有好多事情往往就相差一点点就失去这个机遇了。

第四,要锻炼出敏锐的洞察力,善于在复杂的情况下发现机遇。

过去二十多年中我认识许多研究生,他们念书时都很好,但后来的成就相差悬殊。关键在于面对新出现的复杂局面时,他们是否能发现机遇。

爱因斯坦曾现身说法地解释过:“(学生时代)我在一定程度上忽视了数学,其原因不仅在于我对自然科学的兴趣超过对数学的兴趣,而且还在于下述奇特的经验。我看到数学分成许多专门领域,每一个领域都能费去我们所能有的短暂的一生。因此,我觉得自己的处境象布里丹的驴子一样,不能决定自己究竟该吃哪一捆干草。这显然是由于我在数学领域里的自觉能力不够强,以致不能把带有根本性的最重要的东西同其它那些多少是可有可无的广博知识可靠地区分开来。诚然,物理学也分成了各个领域,可是,在这个领域里,我不久就学会了识别出那些能导致深邃知识的东西,而把其它许多东西撇开不管,把许多充塞脑袋、并使它偏离主要目标的东西撇开不管。 “这里爱因斯坦强调了直觉或洞察力对于寻找科学研究上的机遇的重要作用。爱因斯坦能够取得如此大的成功,原因之一就是他在很年轻时就懂得直觉的重要,又选择了他具有最好直觉的领域——物理学。因此他能找到一个具有重大意义、取得突破的条件又已成熟、可以做大突破的机遇。

培养学生对科学技术的直觉和洞察力是创新人才教育中最重要的问题。这些素质难以从课堂和书本上得到,需要通过环境和实践经验来培养。目前世界一流的大学都是研究型大学,都努力营造浓厚的研究气氛,不仅让学生可以与大师交流、潜移默化地受熏陶,而且使学生可以自己参与研究,体会创新的过程。在这样的环境中,学生就容易悟出直觉和洞察力。

如何创造机遇

光想抓住机遇还是被动的,真正聪明的人是会创造机遇。

大家如果把《孙子兵法》拿来读一遍,你就会理解怎么才能创造机遇。《孙子兵法》中有很多办法教我们在战争中如何创造机遇。过去红军和解放军的运动战,就是军事上创造机遇的好例子。

下棋与足球就更明显了。真正好的棋手,棋逢对手的时候,都是先走稳自己的步子,不冒险起招,看谁先犯错误。一旦对方犯错误了,就给你创造了机遇,你就赶快进攻。足球打得好的人更是这样。大家知道“边路传中”的打法,就是为中路跟进的队友创造机遇。制造越位和制造角球,都是制造机会。在双方实力差不多时,作为优秀的球队,绝不是压着你打就“我肯定赢”。其实是在场上制造机遇,看谁制造的机遇多,机遇抓住得多,谁就赢。会看足球的人,就是看双方是如何制造机遇的,怎么抓住机遇的。从这个角度来看,足球真是魅力无穷。

创造机遇第二点就是,要找到那种适合自己、机遇多的岗位和地方去。 我到现在才意识到,当年的青海是一个机遇多、适合我的地方。现在有很多地方如北京、上海、深圳,不一定就好,因为那个地方机遇虽然多,但人才也多,竞争也激烈,不一定都适合你。到机遇多、适合你的地方去,这也是在创造机遇。

几年前,我曾经访问了美国十所一流大学。他们的校长介绍说,美国人很喜欢换工作岗位,平均一生中要换四次工作岗位。中国人恰好相反,我们的惯性最大,最不愿意换工作岗位,干一件事就想一辈子呆在这儿。换工作岗位有什么好处呢?你不是一锤定终身,你可以多次换,找准最适合自己的地方和位置,一种机会最大的地方和位置。

宋庆龄的父亲宋耀如是中国近代史上一个重要人物,他一生的最重要机遇是他自己创造的。他生于海南岛,9岁就随叔叔到波士顿在一个小商店当学徒。13岁那年,他偷偷上了一艘开往南方的船,想逃离商店学徒生活,去寻找自己也不知道的读书机会。船长很善良,为他的学习热情所感动,就把他介绍给一些热心的教会人士,其中一位将军资助他进了一所教会学校读书。完成学业后,他回到中国,帮助孙中山完成了辛亥革命。

第三点,人要创造机遇,要得到原本不属于自己的机遇,或者把握住那些属于自己的机遇而不要失去,一个很重要的问题,就是做人要诚实守信。
微软公司研究院的第一任院长李开复,曾从电子邮件里给我发来一封信。那封信里面就讲了他在中国工作几年感到不得不说的、关于中国学生和青年人最需要重视的诚信问题。摘录如下:
“我在苹果公司工作时,曾有一位刚被我提拔的经理,由于受到下属的批评,非常沮丧地要我再找一个人来接替他。我问他:‘你认为你的长处是什么?’他说: ‘我自信自己是一个非常正直的人。’我告诉他:‘当初我提拔你做经理,就是因为你是一个公正无私的人。管理经验和沟通能力是可以在日后工作中学习的,但一颗正直的心是无价的。’我支持他继续干下去,并在管理和沟通技巧方面给予他很多指点和帮助。最终,他不负众望,成为一个出色的管理人才。”

“与之相反,我曾面试过一位求职者。他在技术、管理方面都相当出色。但是在谈话之余,他表示,如果我录取他,他可以把在原来公司工作时的一项发明带过来。随后他似乎觉察到这样说有些不妥,特作声明:那些工作是他在下班之后做的,老板并不知道。这一番谈话之后,对于我而言,不论他的能力和工作水平怎样,我都肯定不会录用他。原因是他缺乏最基本的处世准则和最起码的职业道德——‘诚实’和‘讲信用’。如果雇用这样的人,谁能保证他不会在这里工作一段时间后,把在这里的成果也当作所谓‘业余之作’而变成向其它公司讨好的‘贡品’呢?”

“在美国,中国学生的勤奋和优秀是出了名的,曾经一度是美国各名校最欢迎的留学生群体,而最近却有一些变化。原因很简单,某些中国学生拿着读博士的奖学金到了美国,可一旦找到工作机会,他们就会马上申请离开学校,将自己曾经承诺要完成的学位和研究抛在一边。这种言行不一的做法已经使得美国一部分教授对中国学生的诚信产生了怀疑。应该指出,有这种行为的中国学生是少数,然而就是这样的‘少数’,已经让中国学生的名誉受到了极大的损害。另外,目前美国有些教授不愿理会部分中国学生手中的推荐信,因为他们知道这些推荐信根本就出自学生自己之手,已无参考性可言。这也是诚信受到损害以后的必然结果。”

“我在微软研究院也曾碰到过类似的问题。一位来这里实习的学生,有一次出乎意料地报告了一个非常好的研究结果。但是,他做的研究结果别人却无法重复。后来,他的老板发现,这个学生对实验数据进行了挑选,只留下了那些合乎最佳结果的数据,而舍弃了那些‘不太好’的数据。我认为,这个学生永远不可能实现真正意义的学术突破,也不可能成为一名真正合格的研究人员。”

“最后想提的是一些喜欢贪小便宜的人。他们用学校或公司的电话打私人长途、多报销出租车票。也许有人认为,学生以成绩、事业为重,其它细节只是一些小事。然而,就是那些身边的所谓‘小事’,往往成为一个人塑造人格和积累诚信的关键。一些贪小便宜、耍小聪明的行为只会把自己定性为一个贪图小利、没有出息的人的形象,最终因小失大。中国有‘勿以恶小而为之’的古训,很值得记取。”

现在看来,中国社会正在走向现代化,特别是市场经济中最重要的素质就是诚信。一个不诚信的人,或一个诚信记录不好的人,社会是不接受的。在国外,只有一个记录清白、很诚实的人,银行才愿意发信用卡给你。而且公司录取一个人,也要看你诚实信用的记录,看这个人是不是靠得住;如果靠不住,没有哪个公司敢用你。大学里也是如此。

第四条就是要学会善于与人相处和交流。
我们学生中许多是独生子女,在家里被家长捧着,长大到现在,最不会的就是与人相处,与人交流。英国作家萧伯纳说过一句话:两个人交流思想和两个人交换苹果完全不一样;交换苹果,每个人手上只有一个苹果,而交流思想,每个人同时有两个思想。你们要学会与人相处和交流,这样博采众家之长,是你得到机遇、找到机遇所需的一个非常好的素质。

最后,就是要有良好的心理素质,这对创造机遇非常重要。
最近流行一本书叫《谁动了我的奶酪》,是说一个人由于感情因素把原本很简单的事情复杂化。现实中,有些人没有提上职称,就不满这个、愤怒那个,甚至跟本单位领导吵到底,和同事翻脸。这样的话,就毁了你自己的前途和事业,你成功机会就更少了。所以,一旦工作出现问题,要很快调整自己去做最好的事情,容易取得成功的事情。
最后关于如何创造和抓住机遇,我送给大家三句话,这也是成功的人要具备的三个素质:

有肚量去容忍那些不能改变的事;
有勇气去改变那些可能改变的事;
有智慧去区别上述两类事。

Share Comments

Refactoring: Improving the Design of Existing Code - Martin Fowler

Overall

A fairly old book, it was using Java 1.2! This makes it somewhat outdated as many code samples are awkward with the latest Java features. Despite the age, authors managed to convey some solid experience of refactoring to the readers, if not theories.

Where it shines

The book did a good job justifying the reason for refactoring and its relationship with testing. Book highlights refactoring as the first step before introducing any additional feature to production software, argued that this will only make the new feature done faster.

One more opinion is that refactoring should not be mixed up with adding new features.

Share Comments