推荐计算机科学类的经典书籍

推荐计算机科学类的经典书籍(一)

1.The Art of Computer Programming

Author: Donald.E.Knuth
Web site:
http://www-cs-faculty.stanford.edu/~knuth/taocp.html
Book Info:
这部书被誉为20世纪最重要的20部著作之一,Einstein < <相对论>>并列,是计算机科学领域的权威著作.全书共分7,目前已经出版了3,被誉为"计算机程序设计理论的荷马史诗","可与 牛顿的< <自然科学的数学原理>>媲美的巨著".作者数学方面的功底造就了本书严谨的风格,虽然本书不是用当今流行的程序设计语言描述的,但这 丝毫不损伤它"程序设计史诗"的地位.道理很简单,它内涵的设计思想是永远不会过时的.The Art of Computer Programming 原计划要出七册,但目前只完成了三册.该书有日文,俄文,西班牙文等许多国的版本.其中,中文版由国防大学出版社发行.
Book Reviews:
无数的读者都在谈论Knuth的书所带来的深远影响.科学家惊叹于分析逻辑之透彻严谨,而普通的编程人员也已成功地将书中所列方案运用到他们的日常问题中.所有的人都非常赞赏Knuth在这套书中所表现的精确与风趣,并为其明确性与涉及面之广而感到欣喜.
我无法向你表达这套书在学习和创造性方面所带给我的兴奋与激动,我已经将它们带入了我的生活,就像我的汽车,饭馆,工作,家庭……无所不在.
----Charles Long
无论你的背景怎样,如果你正在进行复杂的计算机编程,你就应该阅读本套书中的每本书,来补充你的专业知识.
当一个问题难以解决,而必须使用Knuth的这套书来解决时,总是一件令人愉快的事情.我发现在计算机方面使用它们会有惊人的效果.
----Jonathan Laventhol
如果你认为你是一名真正优秀的程序员……Knuth < <计算机程序设计艺术>>,如果你能读懂整套书的话,请给我发一份你的简历.
----Bill Gates
The Art of Computer Programming, Volume 1: Fundamental Algorithms (3rd Edition)
Author: Donald.E.Knuth
Publisher: Prentice Hall
Amazon Reviews: Amazon.com
Book Info:
1为基础运算法则,该书以基本的编程概念和技术为开始,然后讲述信息结构--计算机内信息的表示法,数据元素间的结构关系以及处理它们的有效方法.主要 应用于模拟,数字方法,符号计算,软件和系统设计.许多简单和重要的运算法则和技术已添加到前一版本中,精确的初步计算部分已经修改,以适应当前趋势.
The Art of Computer Programming, Volume 2: Seminumerical Algorithms (3rd Edition)
Author: Donald.E.Knuth
Publisher: Prentice Hall
Amazon Reviews: Amazon.com
Book Info:
2卷对半数值算法领域做了全面介绍,"随机数""算术"两章.本卷总结了主要算法范例及这些算法的基本理论,广泛剖析了计算机程序设计与数值分析间的相互联系.3版中特别值得注意的是Knuth对随机数生成程序的重新处理和对形式幂级数计算的讨论.
The Art of Computer Programming, Volume 3: Sorting and Searching (2nd Edition)
Author: Donald E.Knuth
Publisher: Prentice Hall
Amazon Reviews: Amazon.com
Book Info:
3为分拣和搜索,这是本书的第1个修订版,它是对计算机分拣和搜索的一流技术的最全面的研究,它扩展了卷1中数据结构的处理方法,将大小数据库以及内存 和外部存储都包含在内.本书包括对计算机方法仔细检查的选择方案,和其效率的大量分析.本书该版的独特之处在于优化了的分拣,以及对通用散列法和排列法的 新的理论论述.
作者简介:
Donald.E.Knuth(
唐纳德.E.克努特,中文名高德纳)是算法和程序设计技术的先驱者,是计算机排版系统TeXMETAFONT的发明 者,他因这些成就和大量创造性的影响深远的著作(19部书和160篇论文)而誉满全球,在计算机科学领域享有崇高的威望,是计算机科学界公认的大宗师.作 为斯坦福大学计算机程序设计艺术的荣誉退休教授,他当前正全神贯注于完成其关于计算机科学的史诗性的七卷集.这一伟大工程在1962年他还是加利福尼亚理 工学院的研究生时就开始了.Knuth教授获得了许多奖项和荣誉,包括美国计算机协会图灵奖(ACM Turing Award),美国前总统卡特授予的科学金奖(Medal of Science),美国数学学会斯蒂尔奖(AMS Steele Prize),以及199611月由于发明先进技术荣获的极受尊重的京都奖(KyotoPrize).现与其妻Jill生活于斯坦福校园内.
Donald.E.Knuth
人生最辉煌的时刻在斯坦福大学计算机系渡过,获得了美国计算机协会图灵奖,成为本领域内当之无愧的泰斗.

英文原版下载
http://www.shubulo.com/redirect.php?tid=34754

----------------------------------------------------------------
2.Introduction to Algorithms
Author:Thomas H.Cormen ,Charles E.Leiserson ,Ronald L.Rivest ,Clifford Stein
Amazon Reviews: Amazon.com
Book Info:
简称为CLRS < <算法导论>>,被称作"计算机算法的圣经".
本书的主要作者来自麻省理工大学计算机,作者之一Ronald L.Rivest 由于其在公开秘钥密码算法RSA上的贡献获得了图灵奖,目前是算法的标准教材,美国许多名校的计算机系都使用它,国内有些院校也将本书作为算法课程的教 材.另外许多专业人员也经常引用它.由于TAOCP只出版了3,CLRS比较起前者来则显得内容更为全面,基本包含了所有的经典算法.本书程序全部由伪 代码实现,这更增添了本书的通用性,使得利用各种程序设计语言的程序员都可以作为参考.语言方面通俗,很适合作为算法教材和自学算法之用.国内的很多作品 名为数据结构,从本书中断章取义,把数据结构与算法混为一谈,搞得作者自己都迷迷糊糊.这也是我不十分愿意向大家推荐国内作品的原因.你会发现现在基本上 所有的数据结构与算法书籍都会将本书作为参考文献之一,更可以说明一个问题,本书是作为读者进行算法学习的最佳选择.作为本书的补充内容,我愿意向大家推 荐下面的学习资料:你可以通过这个地址找到本书的所有练习答案:
http://www.itu.dk/people/beetle/ .为了更好的学习本书中的内容,最好的指导当然是来自作者本身讲述本书的课程,读者们可以通过http://18.89.1.101/sma/5503fall2001/index5503fall2001.html获得课程的录像.

中文版
http://www.shubulo.com/thread-31351-1-1.html
习题及答案
http://www.shubulo.com/thread-33989-1-1.html

----------------------------------------------------------------
3.Data Structure & Algorithm Analysis in C (Second Edition)
Author:Mark Allen Weiss
Published:September 1996
Web site:
http://www.cs.fiu.edu/~weiss/
Amazon Reviews: Amazon.com
Book Info:
本书曾被评为20世纪顶尖的30部计算机著作之一,作者Mark Allen Weiss在数据结构和算法分析方面卓有建树.他的数据结构和算法分析的著作尤其畅销,并受到广泛好评.已被世界500余所大学用作教材.


4.Concrete Mathematics A Foundation for Computer Science(Second Edition)
中文版
http://www.shubulo.com/thread-33994-1-1.html
Author:Donald.E.Knuth&Ronald L.Graham
Web site:
http://www-cs-faculty.stanford.edu/~knuth/gkp.html
Amazon Reviews: Amazon.com
Book Info:
很令人兴奋的就是这本书的主要作者正是泰斗Donald.E.Knuth以及他的同事Ronald L.Graham.书稿是他们在1970年的时候在计算机系教授研究生本门课程的基础上整理出来的教材.内容上是Knuth的巨著TAOCP第一部的扩 展,有些比TAOCP中谈及地又深入了许多.重点放在高级计算机程序设计话题以及算法分析上,涉及了计算机科学领域内几乎所有可能遇到的数学知识.具体数 学是离散数学和连续数学的综合,书中这点做得极为出色,介绍的内容涉及到书中许多经典问题的解答比目前广泛流传的解法更易懂.对于提高大家的计算数学修养 有很大帮助.之所以TAOCP有的时候读者们读不懂就是因为计算数学基础不是十分扎实,但以我个人经验,若能对本书中内容有一个比较好的理解,会给你阅读 如TAOCP这样的旷世巨著带来很大的方便.



5.Discrete Mathematics and Its Applications,Fourth Edition
习题
http://www.shubulo.com/viewthread.php?tid=33130
Author:Kenneth H.Rosen
Amazon Reviews: Amazon.com
Book Info:
本书的价值已经被全世界几百所大学所证实,作为离散数学领域的经典教材,全世界几乎所有知名的院校都曾经使用本书作为教材.以我个人观点看来,这本书可以 称之为离散数学百科.书中不但介绍了离散数学的理论和方法,还有丰富的历史资料和相关学习网站资源.更为令人激动的便是这本书少有的将离散数学理论与应用 结合得如此的好.你可以看到离散数学理论在逻辑电路,程序设计,商业和互联网等诸多领域的应用实例.本书的英文版(第五版)当中更增添了相当多的数学和计 算机科学家的传记,是计算机科学历史不可多得的参考资料.作为教材这本书配有相当数量的练习.每一章后面还有一组课题,把学生已经学到的计算和离散数学的 内容结合在一起进行训练.这本书也是我个人在学习离散数学时读的唯一的英文教材,实为一本值得推荐的好书.

----------------------------------------------------------------
6.The C Programming Language 2nd Edition
英文版
http://www.shubulo.com/viewthread.php?tid=17067
习题及答案http://www.shubulo.com/viewthread.php?tid=30825
Author:Brian W.Kernighan and Dennis M.Ritchie
Publisher: Prentice Hall
Published: 1988.
Amazon Reviews: Amazon.com
Book Info: Brian W.Kernighan
Dennis M.Ritchie的传世之作.千千万万程序员和编程爱好者的圣经,每一页都是价值连城的秘诀.不管你从哪一页信手翻起,最终你都会发现自己已经深陷其中而不能自拔.

----------------------------------------------------------------
7.The C++ Programming Language
Author:Bjarne Stroustrap
Amazon Reviews: Amazon.com
Book Info:
C++之父亲手执笔的 < >是每个程序员心目中不可动摇的指南-----尽管官方标准还是ISO颁布的另一份文档,ISO/IEC JTC1/SC22/WG21出版.TCPL是除了C++标准文献之外最权威的C++参考手册.和大多数人的看法不大一样,我认为Bjarne的文字语言 并不逊色于他所创建的程序语言,至少我喜欢这种学院气息浓厚的作品.本书对C++语言的描述轮廓鲜明,直截了当.它从C++语言创建者的角度来观察 C++,这是任何别的作者和书籍做不到的----没有任何人比Bjarne自己更清楚该怎么来使用C++.
这是一本严肃的著作,以中,高级C++开发人员为目标读者.如果你是一名有经验的C++程序员,需要了解更加本质的C++知识,本书正是为你而写.它 不是那种让你看了会不断窃喜的小书,需要用心体会,反复咀嚼.在阅读过程中,请特别留心Bjarne先生强调了什么,又对什么一语带过.我个人比较喜欢这 本书的第四部分"使用C++做设计",这样的内容在类似的程序设计语言书籍中很难看到----我甚至认为Bjarne应该将这部分独立出来单独写一本书.

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

----------------------------------------------------------------
9.Accelerated C++: Practical Programming by Example
Author: Andrew Koenig, Barbara E.Moo
Publisher: Addison-Wesley Professional
Published: January 15, 2000
Amazon Reviews: Amazon.com
Book Info:
和市面上大多数C++教程不同,本书不是从"C++中的C"开始讲解,而是始于地道的C++特性.从一开始就使用标准库来写程序,随着讲述的逐渐深入,又 一一解释这些标准库组件所依赖的基础概念.另外,和其他C++教材不同的是,这本书以实例拉动语言和标准库的讲解,对后两者的讲解是为了给实例程序提供支 持, 而不是像绝大多数C++教材那样,例子只是用作演示语言特性和标准库用法的辅助工具.
作者在C++领域的编程实践,教育培训以及技术写作方面都是世界一流水准.我喜欢这种大量使用标准库和C++语言原生特性的清新的写作风格.在这本教 材面前,几乎迄今为止的所有C++教材都黯然失色或显得过时.尽管这本教材也许对于国内的高校教育来说有些前卫,不过我仍然极力向我的同行们推荐.顺带一 提,Bjarne和我最近的一封通信里,他这样评价本书:对于有经验的程序员学习C++而言,这本书可能是世界上最好的一本.

----------------------------------------------------------------
10.C++ Gotchas: Avoiding Common Problems in Coding and Design
Author: Stephen C.Dewhurst
Publisher: Addison-Wesley Professional; 1st edition (November 26, 2002)
Amazon Reviews: Amazon.com
Book Info: Stephen
的理论素养和实践经验注定这是一本值得一读的好书.Stephen曾经是贝尔实验室中第一批C++使用者.他已经使用C++成功解决了包括 编译器,证券交易,电子商务以及嵌入式系统等领域中的问题.本书汇集了作者来自开发一线的99条编程真知灼见,洞悉它们,你可以避免几乎所有常见的C++ 设计和编程问题.
我甚至认为,对于C++编程菜鸟而言,阅读这本书会比阅读ScottHerb的书更能轻松而立竿见影地获得更大的提高.我个人很喜欢这本书的写作风 格----Stephen的许多观点看似极端却无可辩驳.当然了,这种自信(以及冷幽默)来自于作者深厚的技术素养,而非自大的偏执.

----------------------------------------------------------------------------------
11.C++ Primer 3rd
Author: Stanley B.Lippman
Amazon Reviews: Amazon.com
Book Info:
这本书的名字多少有点让人误解.尽管作者声称这本书是为C++新手而写,但无论是它的厚度还是讲解的深度都暴露了似乎并非如此.也许说它是一本"从入门到 精通"C++教程会更合适一些.我个人认为它并不适合完全不懂C++的初学者----在阅读这本书之前,你至少应该先有那么一点CC++的背景知识, 或者至少要具有一些其他语言的编程经验.
尽管这本书省略了一些高级C++特性的讨论,但仍然可以称得上是迄今为止最全面的C++学习教程.事实上,如果一名C++初学者能够扎扎实实地读完本 书并对照 < >完成全部习题的话,他的水平肯定可以进入职业C++程序员的行列.我个人认为,即使你已经拥有了TCPL,这本书依然有拥有的价 值,因为在许多方面它比TCPL来得更详细,更易懂.

----------------------------------------------------------------
12.Essential C++
Author: Stanley B.Lippman
Amazon Reviews: Amazon.com
Book Info:
可以不太严格地认为这本书是 < >的精简版.本书一一讲述了C++中最具代表性的主题,包括过程式编程,泛型编程,基于对象编程,面向对象编程,模板编程以及 异常处理等.Stanley将门槛调低到"具有其他语言程序设计经验"C++新手所能接受的最基本的层次,使他们能够迅速开始使用C++编程而又免于阅 读 < >那样的大部头.它以实例引导学习,力图使读者在最短的时间内把握C++的精粹.
也许换一个人来概述C++编程范型(paradigm)的方方面面需要好几百页才能说清楚,但这本小书不可思议地做到了这一点.我个人非常喜欢这种满 是技术,简明扼要并且"有话好好说"的书.这本书同样具有一个明显的风格:所有程序例子全部采用标准库组件,让人耳目一新.

----------------------------------------------------------------
13.Effective C++: 50 Specific Ways to Improve Your Programs and Design (2nd Edition)
More Effective C++: 35 New Ways to Improve Your Programs and Designs
Author: Scott Meyers
Publisher:Prentice Hall
Amazon Reviews: Amazon.com
Amazon.com
Book Info:
先养成良好的C++设计习惯,这是Scott Meyers < > < >带给我们的无穷好处,这两本书是真正的经典,作者对C++的纯熟,使得语言的风格读起来简直是如饴甘甜,就像他站在你对面讲课.如 果你已经深刻地理解了 < > < >,那你可以发现,你在众人中已经是鸡群之鹤.
如果说 < >主要讨论C++中一些相对基础的概念和技巧的话,那么 < >则着重探讨了包括异常处理在内的一系列高级技术.与前者相比,后者具有两大主要区别:其一,它包含很多时新的标准C++的内容;第 二,它讨论的主题倾向于"战略化"而非"战术化",并且讨论得更深入,更彻底.尤其是对虚析构函数,智能指针,引用计数以及代理类(proxy classe)等技术和模式论述的深入程度,让人很难想象是出现于这样的一本小书之中.

----------------------------------------------------------------
14.Exceptional C++: 47 Engineering Puzzles, Programming Problems, and Solutions
More Exceptional C++: 40 New Engineering Puzzles, Programming Problems, and Solutions
Author: Herb Sutter
Book Info:
你自认为是一名C++语言专家吗?读一读ISO C++标准委员会秘书长的这两本书再回答.在这两本书中,Herb采用了"问答"的方式指导你学习C++语言特性.对于每一个专题,Herb首先合理地设 想出你的疑问和困惑,接着又猜测出你十有八九是错误的解答,然后给你以指点并提出最佳解决方案,最后还归纳出解决类似问题的普适性原则.
这两本书是典型的深究C++语言细节的著作,很薄,但内容密集,远远超过Scott的那两本书,读起来很费脑筋----我个人认为它们要比Scott 的书难懂得多.若要研习这薄薄的两本书所包含的知识,至少需要花费数月的时间!(Scott的荐序中,他坦陈不止一次陷入GotW问题的陷阱,你应该知 道这意味着什么)对于语言细节的深究有什么好处呢?尽管在大多数情况下,我们不必关心C++代码幕后的动作,然而当我们不得不关心时,这两本书可以为我们 提供很好的线索,因为它们揭示了C++语言中微妙而又至关重要的东西.

----------------------------------------------------------------
15.Modern C++ Design: Generic Programming and Design Patterns Applied
Author: Andrei Alexandrescu
Publisher: Prentice Hall
Amazon Reviews: Amazon.com
Book Info:
你自认为是C++模板编程高手吗?请看过这本书再回答.这是一本出自天才之手令人敬畏的杰作.泛型模式,无限延伸你的视野,足以挑战任何一名C++程序员的思维极限.
这本书共分为两大部分,第一部分讨论了Loki程序库采用的基础技术以及一些高级语言特性,包括基于策略的类设计,模板局部特化,编译期断 言,Typelist以及小型对象分配技术等.第二部分则着重介绍了Loki中的重要组件和泛型模式技术,包括泛化仿函数(Generalization Functor),单件(Singleton),智能指针,对象工厂(Object Factory),抽象工厂(Abstract Factory),访问者(Visitor)以及多方法(Multimethods).每一种技术都让人大开眼界,叹为观止.

----------------------------------------------------------------------------------
16.C++ Templates: The Complete Guide
Author: David Vandevoorde, Nicolai M.Josuttis
Amazon Reviews: Amazon.com
Book Info:
有一种老套的赞美一本书的手法,大致是"没有看过这本书,你就怎么怎么地",这里面往往夸张的成分居多.不过,倘若说"没有看过 < >,你就不可能精通C++模板编程",那么这个论断对于世界上绝大多数C++程序员来说是成立的.这本书填补了C++模板书籍领 域由来已久的空白.此前,上有 < >这样的专注于模板高级编程技术和泛型模式的著作,下有 < >这样的针对特定模板框架和组件的使用指南.然而,假如对模板机制缺乏深入的理解,你就很难"上下"自如.鉴于此,我向每一 位渴望透彻理解C++模板技术的朋友推荐这本书.

----------------------------------------------------------------
17.The C++ Standard Library: A Tutorial and Reference
Author: Nicolai M. Josuttis
Publisher: Addison-Wesley Professional; 1st edition (August 12, 1999)
Amazon Reviews:
http://www.amazon.com/exec/obidos/tg/detail/-/0201379260/002-5778374-2660009?v=glance]
Book Info:
这是一本百科全书式的C++标准库著作,是一本需要一再查阅的参考大全.它在完备性,细致性以及精确性方面都是无与伦比的.本书详细介绍了每一标准库组件 的规格和用法,内容涵盖包括流和本地化在内的整个标准库而不仅仅是STL.正如本书副标题所示,它首先适合作为教程阅读,尔后又可用作参考手册.
浅显易懂的写作风格使得这本书非常易读.如果你希望学习标准库的用法并尽可能地发挥其潜能,那你必须拥有这本书.正如网络上所言,这本书不仅仅应该摆在你的书橱中,更应该放到你的电脑桌上.我向每一位职业C++程序员强烈推荐.

----------------------------------------------------------------
18.Effective C++: 50 Specific Ways to Improve Your Programs and Design (2nd Edition)
Author: Scott Meyers
Publisher: Addison-Wesley Professional; 2 edition (September 2, 1997)
Amazon Reviews: Amazon.com
Book Info:
Effective STL: 50 Specific Ways to Improve Your Use of the Standard Template Library
Author: Scott Meyers
Publisher: Addison-Wesley Professional; 1st edition (June 6, 2001)
Amazon Reviews: Amazon.com
Book Info:
读完Scott < > < >的中译本之后,我一直期待这本书的中文版.我从潘爱民先生的个人主页上了解到,他和他的合作伙伴似乎早已完成了这本书的翻译工作, 可惜至今市面上仍不得见.幸运的是,我们可以看到它的原版. 本书是使用STL的程序员必读之作.在这本书中,Scott向我们讲述STL容器和算法的工作机制以及如何以最佳方式使用它们.Scott的其他作品一 样,这本书的写作风格清晰,精确,具有极佳的可读性.看过这本书以后,我想你也许会和我以及其他C++程序员一样产生这样的想法:Scott什么时候会写 出一本"More Effective STL"

推荐计算机科学类的经典书籍(二)

20091001日 星期四 23:08

19.Thinking in C++, Volume 1: Introduction to Standard C++ (2nd Edition)
Author: Bruce Eckel
Publisher: Prentice Hall; 2nd edition (April 15, 2000)
Amazon Reviews: Amazon.com
Book Info: < >
的第1版于1996年荣获"软件研发"杂志评选的图书震撼大奖.最新推出的第2版对内容进行了大幅改写和调整,以反映C++标准化 带来的影响以及近几年面向对象领域最新研究和实践成果."输入输入流","多重继承","异常处理""运行时类型识别"等高级主题连同C++标准化以后 增加的一些内容则被放入第二卷中.Bruce是一名经验丰富的C++讲师和顾问,其培训和写作经验都是世界一流水准,他的作品比那些"玩票"的技术人员写 的东西更能吸引读者.事实上,在同类图书中,对于大多数读者而言,这本书的可读性要超过TCPL < >.
Thinking in C++, Volume 2: Practical Programming (Second Edition)
Author: Bruce Eckel
Publisher: Prentice Hall; 2nd edition (November 1, 2003)
Amazon Reviews: Amazon.com
Book Info:

----------------------------------------------------------------
20. Ruminations on C++: A Decade of Programming Insight and Experience
Author: Andrew Koenig, Barbara E. Moo, Barbara E. (Editor) Moo
Publisher: Addison-Wesley Professional; 1st edition (August 7, 1996)
Amazon Reviews: Amazon.com
Book Info: Andrew
是世界上屈指可数的C++专家.这是一本关于C++编程思想和程序设计技术而非语言细节的著作.如果你已经具有一定的基础,这本书将教你在进 行C++编程时应该怎样思考,应该如何表达解决方案.整本书技术表达透彻,文字通俗易懂.Bjarne这样评价这本书:本书遍布"C++是什么,C++能 够做什么"的真知灼见.

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

----------------------------------------------------------------
22.Efficient C++: Performance Programming Techniques
Author: Dov Bulka, David Mayhew
Publisher: Prentice Hall
Amazon Reviews: Amazon.com
Book Info:
这本超薄小书聚焦于高性能C++应用程序开发.两位作者都是IBM软件专家,都工作于对性能要求极高的系统构建领域,本书是他们的经验之谈.也有人不喜欢 这本书,因为它花了不少的篇幅讲述和C++无关的东西,我却恰恰因为这一点而对这本书产生好感,正是这些东西让我开阔了眼界.

----------------------------------------------------------------------------------
23.Inside the C++ Object Model
Author: Stanley B.Lippman
Publisher: Addison-Wesley Pub Co
Published: May 3, 1996
Amazon Reviews: Amazon.com
Book Info:
从编译器的角度观察C++可以使你知其然并知其所以然.本书探讨了大量的C++面向对象程序设计的底层运作机制,包括构造函数,函数,临时对象,继承,虚 拟,模板的实例化,异常处理,运行期类型识别等,另外还介绍了一些在实现C++对象模型过程中做出的权衡折衷.喜欢刨根问底的C++程序员可以从中了解了 无数的编译器解释源代码的细节,以及记忆体分配的细节..

----------------------------------------------------------------------------------
24.The Art of Assembly Language
Author: Randall Hyde
Amazon Reviews: Amazon.com
Book Info:
本书以X86系列微机为背景,从简单的Hello程序开始,系统而详细地阐述了X86微机汇编语言编程的各种基础知识和编程技巧,内容涉及到数据表示,存 储器管理,各种数据类型,过程,与汇编语言相关的体系结构,控制结构,文件,宏指令,位处理指令,字符串指令,MMX指令,类和对象,以及混合语言编程 等,尤其是在高级汇编语言(HLA)方面,该书给予了细致深入的讲解.对于有意学习X86汇编语言编程的程序员来说,这是一本难得的好书.
本书的作者Randall Hyde在大学中教授汇编语言十多年,并且开发了好几个商用软件,具有丰富的汇编语言开发经验.该书的英文电子版受到了成千上万的网站和高级程序员的高度 评价,已经成为了高级汇编语言编程方面的一本经典之作.虽然该书的出版时间不长,但在Amazon上为该书作出评价的人很多,而且几乎所有的人都给予5星 的评价,可见其内容之好.可以相信,随着时间的推移,它在程序员中的影响会越来越大.

----------------------------------------------------------------
25.The Design and Implementation of the 4.4BSD Operating System
Auther:
Marshall Kirk McKusick, Consultant
Keith Bostic, Berkeley Software Design, Inc.
Michael J.Karels, Berkeley Software Design, Inc.
John S.Quarterman, Texas Internet Consulting
Publisher: Addison-Wesley Publishing Company
Published: 04/30/1996
Book Info:
是第一本完整描述伯克利最新版本4.4BSD设计和实现的权威性著作.书中介绍了4.4BSD的内部结构和实现4.4BSD的系统功能中所用的概念,数据 结构和算法.书中着重对4.4BSD AT&T System V UNIX版本的不同处作了较详细的描述,并对其设计思想及背景作了清晰的阐述.该书对研究,开发和使用 UNIX 系统,特别是4.4BSD UNIX 实现中的一些新技术,新特点.有很大的参考价值.

----------------------------------------------------------------
26.John Lions:Lions’Commentary on UNIX 6th Edition with Source Code
Author: John Lions
Amazon Reviews: Amazon.com
Book Info:
20世纪70年代和80年代这一时期,莱昂的几册 < <源代码分析>>,曾是人们争相传看的UNIX系统的"地下出版物".我们今天来审视这一著作,尽管其中的代码已属过时,但其注释者所 作的大部分注释,依然完美如初.要想学习操作系统原理,就必须阅读和理解源代码.莱昂的工作,使我们中间的大多数人都能达到这一步.
Book Reviews:
本书中的材料确定是有点过时了,其内容不包括图形,网络以及1975年后出现的新事物.即使在1979年的编译中也不再使用的线性搜索,基本数据结构 和C代码还保留在本书的源代码中,而该代码面向的计算机非常简单,只比存储器稍稍多一些.从中你会发现有很多粗糙之处.但是在代码中你也可以观察到其基本 结构,该结构沿用了很长时间,而且能够包容在计算环境中发生的巨大变化.在莱昂的分析中,你可以觉察到新鲜的,经常提出问题的立场,其中的很多词语和思想 都很适宜于教育和学习.莱昂非常清楚地赞赏他阅读的UNIX源代码,但又立即指出其不足之处.他帮助他的学生理解蕴含在源代码中的很多思想和主题,也坦率 地说明他对该代码某些部分感到的困惑之处.此处重印的文献已经教育了一代人,它是计算机界中复印数量最多的一本书稿.将此公开记录在案是件大好事.
----
丹尼斯.M .里奇
最后我还想提及的是:现在,得到最广泛传播的一份地下计算机科学文献已经可以自由地使用了.我对1977年中的那一天仍然是记忆犹新,那时我接到邮寄 来的此书的第一份草稿,开始时我对此书并无很多期望,但是最后却是逐字逐句进行了仔细阅读.20年之后,此书依旧是对一个实际操作系统工作的最好分析说 明.
----
?汤姆森
(
汤姆森和里奇因为开发和实现UNIX操作系统而共同获得1983ACM美国计算机协会图灵奖).

----------------------------------------------------------------
27.Operating Systems: Design and Implementation (Second Edition)
Author: Andrew S.Tanenbaum, Albert S.Woodhull
Publisher: Prentice Hall; 2nd edition (January 15, 1997)
Amazon Reviews: Amazon.com
Book Info:
本书是一本理论结合实践的杰出教材.作者不仅介绍了所有基本原理,:进程,进程间通信, 输入/输出,虚拟存储,文件系统及系统安全,也介绍了线程概念,同时又详尽地讨论了MINIX系统(一种UNIX兼容系统),使学生不仅能学到原理,还能 通过使用MINIX来了解如何将这些原理应用到真实的操作系统中.作者更新了所有原理性材料以反映该领域的新进展.基于POSIXMINIX系统经修订 后可运行在基于奔腾(Pentium)的计算机上.MINIX代码可用于EthernetTCP/IP联网环境.每本书均附光盘,内含MINIX全部源 码和可运行各种计算机上的两个模拟程序.每章后均附思考题.

----------------------------------------------------------------
28.Modern Operating Systems (2nd Edition)
Author: Andrew Tanenbaum
Publisher: Prentice Hall
Amazon Reviews: Amazon.com
Book Info:
对于软件开发专家以及计算机专业的学生来说, < <现代操作系统>>给出了操作系统设计一个概念上的全面见解,包括Unix/LinuxWindows 2000的详细个案研究.本书共分两部分,第一部分详尽讲述了传统操作系统知识,包括进程,存储器管理,文件系统,I/O设备管理,死锁等内容;第二部分 主要介绍了分布式操作系统,包括层次协议,远程过程调用,互斥操作,分布式文件系统等专题.为加深概念的理解,本书还详细介绍了四个操作系统,包括两个传 统的系统UNIXMS-DOS;两个分布式系统AmoebaMach.此外还简要介绍了NFS,AFS,ISIS等其他几个系统.本书体系完整,内容 丰富,叙述清晰,是大学计算机及相关专业学生不可多得的教科书,对于从事计算机管理,开发,系统分析等职业的专业人员也是优秀的参考书.

----------------------------------------------------------------
29.Operating System Concepts
Author: Abraham Silberschatz, Greg Gagne, Peter Baer Galvin
Amazon Reviews: Amazon.com
Book Info:
本书是计算机类专业操作系统课程的一本经典教材,自第一版问世以来,经历了近20年的锤炼,被认为是该课程教材的一本"圣经".它对操作系统的概念和基本 原理给出了清晰的阐述.本书所涉及的基本概念和算法均基于当前商用操作系统,并在非特定操作系统的通用环境中展开讲解.书中介绍了大量与流行操作系统相关 的实现技术,包括Solaris2,Linux,Windows NT,Windows 2000,OS/2Apple Macintosh操作系统.此版包括了线程,Windows 2000的新章节,并新增了客户/服务器模型和网络文件系统,嵌入式操作系统,实时操作系统,分布式操作系统等.

----------------------------------------------------------------
30.Running MS-DOS
Author: Van Wolverton
Published: 18 November 1993
Book Info: MS-DOS
上的清晰工作!
经过10年无数次竞争, < >仍是被其它 MS-DOS 奉为标准的书.Van Wolverton 的实际的写作风格,上百张屏幕演示,使得 < >成为任何时候的DOS指南畅销书.再没有哪个计算机书从读者和评论家那里获得过这么多的赞扬.
这本新的,10 周年纪念版本,包括关于 MS-DOS 6.2 最新版本的重要的信息.如果您仅仅只是买了一台PC ,或者只是升级到了一个新版本, < >应当成为您的第一个信息源. < > 实际上是由3本书合成的,包括:
MS-DOS
介绍,以及如何同您的计算机硬件相协调
一个关于了解和使用 MS-DOS 的完整制导
一个命令手册,里面有定义,例子和表格,帮您快速寻找信息!

----------------------------------------------------------------
31.Advanced Programming in the UNIX? Environment
Author: Richard W.Stevens, Stephen A.Rago
Publisher: Addison-Wesley Professional
Amazon Reviews: Amazon.com
Book Info:
与大多数其他操作系统类似,Unix对运行其上的程序提供了大量服务,此外,本书与其他Unix编程书籍不同的是,本书除了讲述Unix系统的编程接口 ----即系统调用接口和由标准C函数库提供的大量函数之外,还通过许多例子和基本原理对Unix编程环境做了更深入的解释和剖析,如怎样创建数据库,页 面描述语言的打印机驱动程序,现代拨号程序以及代理进程,处理机间通信,伪终端程序等.本书作者是Unix研究领域的 专家,而本书更被誉为是该领域的圣经宝典,相信每一位读者都会在学习本书的过程中体会到它的价值所在.

----------------------------------------------------------------
32.Unix Network Programming

Unix Network Programming, Volume.1: The Sockets Networking API, Third Edition
Author: W.Richard Stevens, Bill Fenner, Andrew M.Rudoff, Richard W.Stevens
Publisher: Addison-Wesley Professional
Amazon Reviews: Amazon.com
Book Info:
这是一本利用应用编程接口(API)编写法对计算机网络进行通信的网络编程的教程.所用的API有两类: 基于BerkeleyUNIX操作系统的"Berkeley"套接字和基于AT&T开发的X Open传输接口XTI.本书分四大部分:Ⅰ.引论和TCP/IP;Ⅱ.基本套接字(Sockets);Ⅲ.高级套接字;Ⅳ.XTI X/Open传输接口.四个附录:A.IPv4,IPv6,ICMPv4ICMPv6;B.虚拟网络;C.调试技术;D.一些关键源代码.全书内容全 面,实用性强,是一本极好的参考书.
UNIX Network Programming, Volume 2: Interprocess Communications (2nd Edition)
Author: W.Richard Stevens
Publisher: Addison-Wesley Professional
Amazon Reviews: Amazon.com
Book Info:
一种良好的进程间通信(IPC)形式是复杂精致的UNIX程序性能之关键.本书全面深入地介绍了各种进程间通信形式,包括消息传递,同步,共享内存及远程 调用(RPC).作者从介绍IPC的基础及其所要解决的问题开始,逐步引导读者学习如何使System V IPC和新的Posix标准两者都达到极至.书中Pthread的内容有较大的扩充,所附的许多例子反映多个线程而不是多个进程.读者通过本书将能掌握各 种现行的IPC技术,其中有:管道和FIFO;PosixSystem V消息队列;互斥锁和条件变量;读写锁;记录上锁;PosixSystem V信号灯;PosixSystem V共享内存;Solaris门和Sun RPC;IPC技术的性能测量.本书内容详尽且具有权威性,几乎每章都有精选的习题,是计算机和网络专业高年级本科生和研究生的首选教材,本书也可作为网 络研究和开发人员的自学教材和参考书.

----------------------------------------------------------------
33.TCP/IP Illustrated

Web site:
http://www.kohala.com/start/
TCP/IP Illustrated,Volume 1:The Protocols
Author: W.Richard Stevens
Publisher: Addison-Wesley
Amazon Reviews: Amazon.com
Book Info: < 详解,1:协议>>是一本完整而详细的TCP/IP协议指南.描述了属于每一层的各个协议以及它们如何在不同操作系统 中运行.作者用Lawrence Berkeley实验室的tcpdump程序来捕获不同操作系统和TCP/IP实现之间传输的不同分组.tcpdump输出的研究可以帮助理解不同协议 如何工作.本书适合作为计算机专业学生学习网络的教材和教师参考书.也适用于研究网络的技术人员.
TCP/IP Illustrated,Volume 2:The Implementation
Author: Gary R.Wright, W.Richard Stevens
Publisher: Addison-Wesley
Amazon Reviews: Amazon.com
Book Info:
本书完整而详细地介绍了TCP/IP协议是如何实现的.书中给出了约500个图例,15,000行实际操作的C代码,采用举例教学的方法帮助你掌握TCP /IP实现.本书不仅说明了插口API和协议族的关系以及主机实现与路由器实现的差别.还介绍了4.4BSD-Lite版的新的特点,如多播,长肥管道支 持,窗口缩放,时间戳选项以及其他主题等等.读者阅读本书时,应当具备卷1中阐述的关于TCP/IP的基本知识.本书适用于希望理解TCP/TP协议如何 实现的人,包括编写网络应用程序的程序员以及利用TCP/IP维护计算机网络的系统管理员.
TCP/IP Illstrated,Volume 3:TCP for Transactions,HTTP,NNTP,and the UNIX Domain Protocols
Author: W.Richard Stevens
Publisher: Addison-Wesley
Amazon Reviews: Amazon.com
Book Info:
本书是 < 详解系列>>的延续.主要内容包括:TCP事务协议,T/TCP,这是对TCP的扩展,使客户-服务器事务更快,更高 效和更可靠;TCP/IP应用,主要是HTTPNNTP;UNIX域协议,这些协议提供了进程之间通信的一种手段.当客户与服务器进程在同一台主机上 时,UNIX域协议通常要比TCP/IP快一倍.本书同样采用了大量的实例和实现细节,并参考引用了卷2中的大量源程序.本书适用于希望理解TCP/IP 如何工作的人,包括编写网络应用程序的程序员以及利用TCP/IP维护计算机网络的系统管理员.
作者简介:
Gary R.Wright
研究TCP/IP多年.他是Connix公司的董事长,这个公司的基地在康涅狄格州,它提供Internet接入和咨询服务.W.Richard Stevens(1951-1999)是一位非常受人尊敬的专家,除了 < 详解>>三卷本外,他还有其他两部最为畅销的作品; < 环境高级编程>> < 网络编程>>(两卷本).

34.Routing TCP/IP

CCIE Professional Development:Routing TCP/IP Volume 1
Author: Jeff Doyle
Publisher: Cisco Press; 1st edition (July 1, 1998)
Amazon Reviews: Amazon.com
Book Info:
本书是第一本详细而又完整地介绍互联网络内部网关路由选择协议(IGRP)的专业书籍,堪称有关IGRP方面不可多得的经典之作.本书共分三个部分.第一 部分主要介绍了网络和路由选择的基本知识,TCP/IP和静态,动态路由选择技术作了一个整体的回顾.第二部分是本书的精华,这一部分详细深入地讲述了 各种常用的内部网关路由选择协议,如静态路由,RIP,RIPv2,IGRP,EIGRP,OSPF,ISIS,每一章除了对该协议的实现机制和参数详 尽阐述,使读者对协议的实现原理有一个清晰的理解外,还通过在实际网络环境中的实例,详细地论述了该协议在Cisco路由器上的配置和故障处理方法,使读 者获取大量解决实际问题的专业技能.第三部分介绍了如缺省路由,路由过滤等多种有效的路由控制工具,用来创建和管理多个IP路由选择协议的协调工作.本书 不仅适合那些需要准备通过CCIE考试的考生,而且也适合任何需要完整理解TCP/IP内部路由选择协议的网络设计和工程人员阅读.本书中对协议细节的讲 解和对网络实例的探讨相信会让读者获益匪浅.
CCIE Professional Development Routing TCP/IP Volume 2
Author: Jeff Doyle, Jennifer DeHaven Carroll
Publisher: Cisco Press; 1st edition (April 11, 2001)
Amazon Reviews: Amazon.com
Book Info:
本书深入系统地阐述了TCP/IP路由技术,内容包括几种重要的网络协议,如外部网关协议(EGP),边界网关协议(BGP4),以及相应的高级IP路由 技术与应用――网络地址转换,IP组播路由技术,IPv6技术,路由器管理等.本书共分9个章节,首先介绍并讨论了主题内容的基本原理,接着是设计用来展 示真实网络环境中相关概念的一系列配置范例,最后提供给读者经实践验证过的故障排除方法以解决网络可能会出现的问题.重点介绍了自治系统之间的路由选择策 略以及诸如组播和IPv6等更具挑战性的路由选择和实施技术.

----------------------------------------------------------------
35.Data and Computer Communications,Seventh Edition
Author: William Stallings
Amazon Reviews: Amazon.com
Book Info:
本书是著名计算机专业作家 William Stallings 的经典著作之一,内容涉及最基本的数据通信原理,各种类型的计算机网络及多种网络协议和应用.这一版对原有内容做了彻底的修订和重组,使新版对通信各专题 的阐述更全面,更清晰.同时,新版加强了无线通信和组网,吉比特以太网,区分服务,MPLS
TCP/IP
实现细节等内容.此外,本书还包括词汇表,参考文献,缩写词对照表.每章都附有习题和建议,以便读者进一步阅读.

----------------------------------------------------------------
36.Programming Pearls, 2nd Edition
Author: Jon Bentley
Publisher: Addison-Wesley Professional; 2 edition (September 27, 1999)
Amazon Reviews: Amazon.com
Book Info:
如果让程序员们列出他们最喜欢的书籍,Jon Bentley < <编程珠玑>>通常可以位于经典之列.如同珍珠来自于曾经折磨牡蛎的沙粒,程序设计的珍珠也来自曾经折磨程序员的实际问 题.Bentley的珍珠建立在坚实的工程学基础上,在洞察力和创造力的王国中为那些恼人的问题提供了独特而巧妙的解决方案.通过一些精心设计的有趣而且 颇具指导意义的程序,本书对众多实用程序设计技巧及基本设计原则作了清晰而机智的描述.因此, < <编程珠玑>>得到各个层次程序员的青睐并不让人感觉意外.
为了反映当今的程序设计方法和环境,Bentley在本书中彻底更新了第一版里的大多数素材.此外,他还新增加了以下三个方面的内容:1.测试,调试和计时 2.集合表示 3.字符中问题  对原来的所有程序都重新进行了改写,并生成了等量的新代码.您可以从本书网站
www.programmingpearls.com)获取所有程序的CC++实现.
Book Reviews:
< <
编程珠玑>>第一版是我职业生涯早期阅读过的最有影响力的书籍之一,第一次从该书中学到的许多观点很久以后仍然使我受益匪浅.Jon在第二版中对素材进行了大量更新,这些新例子的新鲜程度给我留下了深刻的印象.
----Steve McConnell < >
等多部畅销书作者

----------------------------------------------------------------
37.The Mythical Man-Month: Essays on Software Engineering, 20th Anniversary Edition
Author: Frederick P, Brooks,Jr.
Publisher: Addison-Wesley Professional; 1st edition (August 2, 1995)
Amazon Reviews: Amazon.com
Book Info: IBM
大型电脑之父 Fred Brooks 二十余年开发经验的汇集,远谋深虑,字字珠玑.技术之巧与人文之美的完美结合.本书自第一版以来,畅销二十余年不衰,是软件领域绝无仅有的必读经典.
作者简介:
Frederick P
曾荣获美国计算机领域最具声望的图灵奖(A.M.Turing Award)桂冠.美国计算机协会(ACM) 称赞他"对计算机体系结构,操作系统和软件工程做出了里程碑式的贡献."
Brooks
博士是北卡罗莱纳大学 Kenan-Flagler 商学院的计算机科学教授.他被认为是"IBM 360系统之父",曾担任了360系统的项目经理,以及360操作系统项目设计阶段的经理.凭借在上述项目中的杰出贡献,Brooks博士以及Bob EvansErich Bloch1985年荣获了美国国家技术奖(National Medal of Technology).Brooks博士早期曾担任IBM 公司StretchHarvest计算机的体系结构设计师.
Brooks
博士创立了北卡罗莱纳大学的计算机科学系,并在19641984年期间担任系主任.他还曾任职于美国国家科技局和国防科学技术委员会.他目前的教学和研究方向是计算机体系结构,分子模型绘图和虚拟环境设计.

----------------------------------------------------------------
38.The Pragmatic Programmer
Author: Andrew Hunt,David Thomas
Publisher: Addison Wesley
Published: November 24, 1999
Amazon Reviews: Amazon.com
Book Info:
本书直击编程阵地,穿过了日益增长的现代软件开发的规范和学术,对核心过程进行了审视----该过程采取了供需结合的工作方式和令人欣喜的可维护代码.本书包含的内容从个人责任和职业发展到保持代码的灵活性,使之易于改编和重用.
本书由各个相对独立的章节组成,其间不乏好玩的轶事,详细的实例和有趣的对话,描述了软件开发各个方面的最好实践和主要缺陷.无论你是一个新入门的编 码者,一个有经验的程序员,还是负责软件项目的经理, 通过每日学习这些课程,都会在个人生产力,准确率和工作满意度上有快速的增长.你所学到的技巧和开发习惯和态度将为你在职业生涯中取得长期成功奠定基础. 你将成为又一Pragmatic Programmer.

----------------------------------------------------------------
39.The Art of UNIX programming
Author: Eric S. Raymond
Publisher: Addison Wesley
Published: October 2, 2003
Amazon Reviews: Amazon.com
Book Info:
荣获美国Software Development Productivity Award大奖作品!
本书是作者封笔30年后历时5年创作而成,是一部难得的软件工程方面的佳作.作者首次将哲学,设计模式,工具,文化和传统结合在一起,使得UNIX成 为世界上最好且最具创新意义的软件,并展示了如何将其拓展到Linux和当今的开源(open-source)运动中:通过取自最主要的开源项目中的示 例,作者向UNIXLinux编程人员展示了如何更巧妙地创建软件,使其更雅致,更灵巧,更具可重用性且具有更长的生命期
本书主要介绍了Unix系统领域中的设计和开发哲学,思想文化体系,原则与经验,由公认的Unix编程大师,开源运动领袖人物之一Eric S.Raymond倾力多年写作而成.包括Unix设计者在内的多位领域专家也为本书贡献了宝贵的内容.本书内容涉及社群文化,软件开发设计与实现,覆盖 面广,内容深邃,完全展现了作者极其深厚的经验积累和领域智慧.

----------------------------------------------------------------
40.Peopleware:Productive Projects and Teams
Author: Tom DeMarco, Timothy Lister
Publisher: Dorset House Publishing Co
Published: February 28, 1999
Amazon Reviews: Amazon.com
Book Info: Tom Demarco
Tim Lister "Peopleware:Productive Projects and Teams"第一版于1987 年出版,专门讨论了软件开发和维护的团队管理问题,向传统的管理方法提出了挑战,推崇人本管理思想,给予软件工人自由和信任. < <人月神话>>一样,该书现在已经成为软件团队管理的经典之作.1995 ,Larry Constantine 出版了一部题为"Constantine 论人件"的论文集,扩大了"人件"概念,把那些使用软件的人也包括进来.1999 2 , < <人件>>第二版出版,增补了8 章新内容.这些增补的内容视角更加宽广,对比较大型的组织中的团队如何运作进行了探索.

----------------------------------------------------------------
41.Computer graphics C Version 2nd ed
Author: Donald Heam, M.Pauline Baker
Publisher: Pearson US Imports & PHIPEs
Published: May 24, 1996
Amazon Reviews: Amazon.com
Book Info:
这是计算机图形学领域的一部经典之作,作者Foley,van Dam等是国际图形学界的著名学者,学术带头人,而且本书英文版自出版以来,一直是各国大学计算机图形学课程的主要教科书.本书是高等院校计算机专业本科 生,研究生计算机图形学课程的理想教材,是相关领域专业人员开展研究工作的优秀参考书.

----------------------------------------------------------------
42.Tricks of the 3D Game Programming Gurus-Advanced 3D Graphics and Rasterization
Author: Andre LaMothe
Amazon Reviews: Amazon.com
Book Info:
本书是著名游戏程序设计类书籍作者Andre LaMothe的畅销书.在书中随处可见许多有趣但又有一定难度的源程序.作者循循善诱地从程序设计的角度介绍了在Windows环境下进行游戏开发所需 的全部知识,包括Win32编程以及DirectX中所有主要组件(包括DirectDraw,DirectSound,DirectInput
DirectMusic).
书中还用单独的章节详细讲授了2D图形学和光栅化技术,游戏算法,多线程编程,文本游戏和解析,人工智能(包括模糊逻辑,神经网络和遗传算法),物理建模(完全碰撞反应,动量传递和正反向运动学)及实时模拟等游戏程序开发中的关键技术.

----------------------------------------------------------------
43.Compilers Principles, Techniques, and Tools
Author: Alfred V. Aho, Ravi Seth, Jeffrey D. Ullman
Publisher: Addison Wesley (January 1, 1986)
Amazon Reviews: Amazon.com
Book Info:
本书另外一个响亮的名字就是龙书.原因是这本书的封面上有条红色的龙.里面讲解的核心编译原理至今都没有变过,所以一直到今天,它的价值都非凡.这本书最 大的特点就是一开始就通过一个实际的小例子,把编译原理的大致内容罗列出来,让很多编译原理的初学者很快心里有了个底,也知道为什么会有这些理论,怎么运 用这些理论.而这一点是我感觉国内的教材缺乏的东西,所以国内的教材都不是写给愿意自学的读者,总之让人看了半天,却不知道里面的东西有什么用.

----------------------------------------------------------------
44.Computer Systems A Programmer's Perspective
Author: Randal E. Bryant, David R. O'Hallaron
Publisher: Prentice Hall; 1st edition (August 13, 2002)
Amazon Reviews: Amazon.com
Book Info: AMAZON
五星图书,最伟大计算机科学教材之一
卡耐基梅隆大学计算机学院院长,IEEEACM双院士倾力推出
超过80所美国和世界一流大学计算机专业选用本书为教材
本书英文版久负盛名,被众多专业人士称为"最伟大的计算机教材"之一,著名的美国卡内基梅隆大学计算机科学系一直将本书作为教材使用,程序员眼中的透 彻讲述计算机系统的扛鼎之作.作者Randal E. Bryant是卡耐基梅隆大学的计算机科学系主任,ACMIEEE双院士(Fellow),其研究成果多次获得ACMIEEE颁发的大奖.本书共分十 三章,分别介绍了信息的表示和处理,程序的机器级表示,处理器体系结构,存储器层次结构,静态和动态链接,虚拟存储器,系统级I/O,网络编程和并发编程 等精彩内容.其目的是解释计算机系统的所有本质概念,并向读者展示这些概念是如何实际地影响应用程序的正确性,性能和实用性.与其他主要针对系统构造人员 的系统类书籍不同,这本书是写给程序员的,是从程序员的角度来描述的.本书为软件和硬件之间搭起了一个桥梁,它给出了一种帮助读者分别从硬件和软件的角度 去理解一个程序及其行为的途径,这也填补了国内计算机系统教学中的一个空白.本书的最大优点是帮助读者理解概念,让读者很清楚地在脑海中构造一个层次型的 计算机系统,从最低层数据在内存中的表示(如我们一直陌生的浮点数表示),到流水线指令的构成,到虚拟存储器,到编译系统,到动态加载库,到最后的用户应 用.本书提供了大量的例子和练习及部分答案.尤其值得一提的是,对于每一个基本概念都有相应的笔头或程序试验,加深读者的理解.
Book Reviews:
我坚信从程序员的角度来看计算机系统对教会学生计算机的内部结构非常有帮助.
----Kostas Daniilidis,
宾夕法尼亚大学
这本书讲述事物的方法与众不同,但是和我想要的课程进行方式类似.
----John Greiner,Rice
大学
这是一项出色的工作,是这一领域教学方法的一次革命.
----Michael Scott,
罗切斯特大学

我的大学六年-郭天祥

2009-10-01 22:42

作者:郭天祥    

致阅读本书的大学生朋友

在哈尔滨工程大学六年,我在学校电子创新实验室呆了四年,这四年里创新实验室给我提供了良好的学习环境和完善的实验设备;在与众多电子爱好者的交流中,使我学到了更多的专业知识;在学校老师们的教导下,让我学会了如何做一名合格的大学生。因此,在这里我要感谢哈尔滨工程大学的历任领导,我今天成绩的取得得益于他们不断完善的教育体制;衷心地感谢曾经教导过我的刁鸣教授、付永庆教授、王松武教授,没有他们对我的培养,也就没有我的今天。同时我也希望能有更多的电子爱好者加入创新实验室,在完善自我的同时,在电子行业做出更突出的业绩。

2007年,我以全新的教学方式推出了一套讲述51单片机的教学视频课程——“十天学会单片机,该视频自从网上发布后,得到了电子爱好者的一致好评,诸多的单片机初学者通过这套视频走上了单片机开发之路。有很多学员来信或打电话希望我能够将视频中的内容著书出版,让更多的人受益。为此,从20079月至20087月,我用了近十个月的时间将本书写完。本书的写作风格与我在教学视频中的讲课风格相似,它与传统讲授单片机的书籍完全不同,我以学单片机过来人的思路,抱着如何才能更容易掌握单片机的态度,理论与实践完全结合的方式清晰地讲解了单片机部分。其余大部分内容为我多年做项目的经验积累,也有部分内容来自于网络电子高手们的精华总结,应当说,在本书中有太多的知识是大家平时在书本上学不到的。在这里,先将我在大学期间的学习和生活经历与大家分享,借此鼓舞大家珍惜大学时光,多学习文化知识,开创更加美好的明天。

我的大学

写这篇文章的时候,我正处于硕士研究生毕业论文的准备阶段,眼睁睁看着我的大学生活即将画上句号,再看看身边有很多低年级的学生们一天天把时间白白荒费掉,我在心里替他们惋惜,在即将结束我的大学生活之际,我将我的大学几年的有意义的生活与大家分享,看过这篇文章后也许能让那些有梦想的同学为了实现自己的人生目标少走些弯路,大家要相信,大学校园——将为你提供一生最好的学习环境。

我高中毕业于新疆伊宁市三中,2002年考入哈尔滨工程大学信息与通信工程学院电子信息工程专业,2006年以创新人才免试保送哈尔滨工程大学硕士研究生,现在已经是我在学校的最后一个学期了。记得我刚入校的时候对电子知识一点也不懂,之前我比较喜欢经商,想着好好努力,将来开个公司,做做生意,所以第一志愿报了经济管理学院,结果没被经管学院录取,而被调剂到信通学院,现在想来也算是走对了。在上大学之前,我的梦想是上大学后,一定要当班长,一定要当学生会的干部。所以我从上大一就开始加入学校的学生会,非常积极地竞选班干部,后来也如了我的愿,班长也当了,学生会干部也做了不少。因为刚上大一的时候根本不知道大学里具体要学什么知识,每天就是上课,那时一节课也不敢逃,每天的生活就是去上课、吃饭、打球和踢球,然后回宿舍瞎侃,上床睡觉。周末时,找几个同学逛逛街什么的,每周都重复着同样的生活,日子过得平平谈谈,但那时也不觉得在虚度,可能还带着刚离开高中校园的那种兴奋,认为理想中的大学生活就是如此吧。

大一的一年就这样糊里湖涂过去了,接着就大二了,大二上学期除了在学生会的职位高了点外,其余和大一时也没什么区别,没有特别的事情发生过,偶尔逃逃不点名的公共课,天天照旧打篮球、踢足球。在大二下学期开学不久的某一天,我静静地的思考了很久,我想起了我曾经有过的梦想、我追求的人生、我向往的生活,想想如果再这样过完两年,我的将来会是什么样子?那天我觉悟了。我的专业是电子信息工程,那我必须在这方面学有所成,两年都快过去了,天天抱着课本啃,现在想想我的水平和高中时一样,我学的是电子专业,从初中就开始学电阻了,到现在都六七年了,至今我连电阻长什么样都没见过,这样下去学的算是什么电子专业?我想我不能再这样下去了,于是找了同宿舍的另一位同学赖世雄,我对他说:我们一起参加学校的五四杯电子设计竞赛吧!他欣然同意了,当时我俩真是对电子知识一无所知,根本不知道从哪里开始,于是我们就从电子杂志上随便找了个类似电话控制器的小作品,把杂志上原理图中所有的元件型号抄下来,然后我俩就去电子市场上买元件。第一次买电子元件,一点专业知识也没有,我们讲的好多东西卖元件的人都听不懂,闹了不少笑话,一个电阻被人家要了一毛钱,还说这东西真便宜啊!(实际上一个电阻还不到一分钱),最后买了一堆电阻、电容和三极管,加起来一共六七十元,回来就准备照着别人的原理图焊接,很显然,这种做法从一开始就已经注定结果必然是失败的。无奈之下,我们跑去找当时教我们电路基础课的付永庆教授,我对付老师说我们想学点真正的东西,但根本无从下手,能不能请付老师帮我们想想看做个什么东西?付老师是个很好的人,他当时正在构想从学校低年级学生中选出一部分爱动手、有上进心的学生作为创新型人才来培养,他看我俩有想法,就直接对我俩说:你们俩可以到我的实验室里来,现在我正好带几个大四的学生做毕业设计,你俩先跟着他们学习学习吧!。当时因为是付老师个人的实验室,所以电脑不够用,于是我俩就把自己的电脑搬进了实验室,从那天起,我真正踏上了电子设计这条路。付老师又给我俩介绍了一位正在做毕业设计的大四女同学,她叫黄光亚,她正在做一个两台计算机之间用激光通信的题目,我和赖世雄每天都去实验室看着黄光亚焊电路、写程序,那时看着真是一头雾水,感觉那些东西好神奇,在计算机上写上几句程序,按完回车,看见一道激光穿过眼前,然后在另一台电脑上就能看到整屏滚动的数据。大概跟着黄光亚前后忙了一个月,对黄光亚正在做的作品的硬件部分算是有了基本的了解,但计算机部分具体怎么实现的还是不明白。那时正好赶上2004年学校的五四杯电子设计竞赛,我们借黄光亚的作品申报了参赛资格。在比赛那天,我们就用仅懂些基本原理的一堆元件加两台电脑等待比赛评委的到来,当时评委们问了我们这是什么原理、信号怎么样调制、传输波特率多少等很多很多简单的专业问题。说实话,我们哪里知道啊!我那时连RS232电平是什么概念都不明白,评委们提的专业名词我根本就没听说过,当时也就把我们懂的东西全说了,也不知道对应评委的哪个问题。那时学校五四杯电子竞赛的参赛作品比较少,评委看我们才大二,而且我们的作品又是一个较完整的系统,基本没什么工作上的漏洞,为了鼓励我们,最后还给我们发了个小奖。

五四杯结束后,赖世雄就从实验室把他的电脑搬回宿舍了,很可惜,他放弃了继续走这条路。我的电脑一直放在付老师的实验室。说到这里还要讲一点儿关于我买电脑的小插曲。大二上学期时,我的很多同学们都买了电脑,于是我也跟着买了,当时不知道买来电脑后具体要学什么东西,我的同学们买来电脑后,大部分时间在玩游戏、QQ聊天,有的同学可以从早上一直聊到晚上,玩游戏的同学可以从早玩到晚,我同学建议我玩传奇游戏,说很有意思,他帮我注册了账号,游戏里一个动画人物拿着一把大刀不停地砍野猪、野鹿什么乱七八糟的所谓怪物,他砍了几刀就把一头野猪砍死了,然后他说:你看长经验了吧,多有意思,你来玩!,我接过鼠标砍了三刀,我想破脑子也想不出他说的有意思是指什么,然后我说:实在是无聊!,那天起开始了我的游戏生涯,三刀后也结束了我的游戏生涯,我觉得网络游戏实在是没有意思。我更不喜欢聊QQ,可是这电脑都买了,不能一点用处都没有吧,当时那个时候,真的不知道电脑能什么和我们专业有关的东西,那些天我每天用电脑做的最多的工作就是把文件从一个分区拷到另一个分区,把一些不用的文件删除,甚至把C盘下能删的文件都删了,最后导致系统无法启动还问为什么?过了几个月我发现除了复制和粘贴功能我用得非常熟练外,其他我好像还是什么也没学会。再后来就去书店买了些制作Flash动画和制作照片的Photoshop之类的书,回来后天天学那些没用的东西。现在想来真的是太可惜了,那时真是浪费了大把大把的时间。电脑真的是可以学很多很多东西的,对于我们专业来讲,学单片机需要学C语言,学KeilWAVEIARICCMPLAB软件的使用,学汇编语言;在用到上位机界面编程时,需要学C++VC++VB语言等;用CPLD/FPGA/SOPC时,需要学VHDLVerlog语言,学这些语言时,可以学MaxplusQuartus软件的使用;当用到仿真时,可以学ProtuesMultisim软件的使用;设计电路板时,可以学ProtellAltium DesignerPower PCB软件的使用等;还可以学DSP用的CCS软件、ARM用的ADSSTD软件等,所有上面我提到的这些,全都依赖于计算机系统。在今天看来,我是全部掌握了,然而这是后来我付出巨大的代价才换来的,如果我能利用好大一大二那些大好时光的话,我相信今天的我又会是另一番模样。

接上面话题,赖世雄搬走后,付老师给了我实验室的钥匙,从那天起,实验室便成了我的另一个家。当时那个实验室只有我一个人学硬件,也只有我一个本科生,其他的硕士、博士研究生主要研究理论,所以很少有做硬件的,那时我分不清电解电容的正负极性,我拿着一个电解电容问了实验室的好几个人,结果他们也不知道,更有人说这是什么东西,我从来没见过。这件事很令我震惊,难道这就是电子专业读了四年本科,又读了几年硕士研究生的高水平大学生吗?现在大学毕业生的工作确实不好找,那不能怪别人,只是因为你确实没有别人需要你的理由。偶尔听前届的学长们说到,作为信通学院的学生,如果学会了单片机、C语言、DSP那你的前途必定是一片光明。于是我开始学习单片机,当时苦于没有硬件实验环境,身边又没有会的人请教,于是我就上网找资料,看见网上有卖单片机学习板的,那时价格都挺贵的,但我还是狠下心买了一块三百多块钱的单片机学习板,寄回来后我就开始做练习,之前也看过几遍书,可发现光看书没有任何效果,看上十遍、二十遍,感觉是学会单片机了,可当要应用到硬件系统中时,发现其实我什么也不会。后来我就边做实验边查书,这样就理解得很透彻了,就是从那时起我每天早上八点之前就到实验室了,除了选上部分课外,其他时间都泡在实验室里,一直到晚上十点多看楼的大爷用脚踹着实验室的门叫我走我才离开实验室。那时每天就摆弄单片机,没有人教我,全是我自己一个人摸索,而且当时学的是非常难懂的汇编语言。记得大一时也学过C语言,可我发现等要用的时候我什么也不会,根本和单片机联系不起来,就和没学一样,我只好选择汇编语言,大概一个月后,也就是快放暑假时,我做出来了自己的第一个单片机作品,一个电子钟。有人说你要是用单片机做出一个电子钟,那你基本上已经掌握单片机的80%了。这句话有道理,电子钟对编程的综合性要求还是相当高的。

那时,我对单片机已经有了初步的掌握,假期的时候我报名参加了2004年黑龙江省大学生电子设计大赛,那天起我搬进了学校的电子创新实验室,我们选的题目是无线数据通信,当时指导老师让我们用FPGA做,其中还要用到VC编程及C++语言,我那时还不懂什么是FPGA,于是我开始拼命地学这些知识,每天吃饭都在实验室。省赛不同国赛,省赛是把题目先发下来,两个月后交作品就行,其实学FPGA/CPLD也和学单片机一样,关键是自己动手写程序实践,不停地写程序,然后看程序运行的效果,这两个月里我把VHDL语言搞得很熟练,但是VC还差了一点。我们队一共三个人,除我之外还有路智超(做模拟电路部分)和魏旭东(上位机VC程序),魏旭东是我校理学院的,VC学得相当好,他的VC编程也全是自已业余学的。魏旭东编程时,我就在旁边看,他耐心地给我解释每一行每一句,等空闲时我自己再练,那段时间我对VC有了初步的了解。比赛结果很好,我们获得了黑龙江省一等奖,这也是我的第二次获奖,这次获奖给了我很大的鼓舞,接下来我发现必须要学单片机C语言编程了,汇编编程非常烦琐,一个全面的人才不能只将知识局限于某一方面。

从大三开始学校里有各种电子设计竞赛,我总是积极报名参加,为自己寻找锻炼的机会,我为此放弃了我最喜欢的篮球、足球运动,再没有逛过一次街,每天早上起床、洗脸、刷牙,然后就拿着书去实验室,白天在实验室写程序、调电路,做各种硬件练习,晚上回来补充理论知识,模电、数电、高频一遍一遍地重复看,每晚差不多两点睡觉,充分地把实践与理论结合在了一起,那时我才发现大学里的理论知识同样是那么重要,而原来根本没有意识到。孤立地学习理论,不把它们与要应用的领域结合在一起,就失去了学习它的意义;如果只为了参加期末考试,等考完试的第二周也许就已经忘得干干净净了,如果这样学习,那只能说我们学错了方向。如果一个人的模拟电路、数字电路和高频电子线路的基础不好,那么他可能设计不出什么好的电路, 我们在做硬件实践的同时再来看书中的理论知识,这样的结合是最好的。这种单调的生活我天天重复着大概过了一年,无数次实验失败时内心涌起的烦燥被我执着追求知识的欲望一次次抑制住;无数次胜利的经验告诉我,唯有坚持不懈、永不放弃才会取得最终的胜利。在这一年期间,我陆续参加了一些国家级及校里的竞赛,同时也获得了不少奖项。

大三下学期,我基本上在学习单片机C语言编程,进一步熟练VCC++语言。等真正学会用C语言给单片机编程时,那时才将单片机用得得心应手。回想过去,学汇编语言花费了我大量的时间,假如当初有人指点我学单片机的C语言编程那该有多好,至少可以少走很多弯路。很多人说,学单片机最好先学汇编语言,以我的经验告诉大家,绝对没有这个必要,初学者一开始就直接用C语言为单片机编程,既省时间,学起来又容易,进步速度会很快。在刚开始学单片机的时候,千万不要为了解单片机内部结构而浪费时间,这样只能打击你的信心,当你学会编程后,自然一步步就掌握其内部结构了。大三暑期时,我为每两年一届的索尼杯全国大学生电子设计竞赛做准备, 大赛时我们选择的题目是集成运放参数测量仪,题目是自己队员商量后选择的,我们代表队有三名成员,说实话,对于这个题目我当时心里还真没底,大家研究了两个小时,感觉不应该选这个题目,可惜题目已定,不能更换,大赛只有四天三夜的时间,第一天的早上八点知道题目,要求第四天的晚上八点交作品,所以每一分钟都是非常宝贵的,既然题目都选了不管有多大的难度都要坚持到底。计算机系的于振南主要负责写软件,他对硬件也很熟悉,完全是凭兴趣自学的,他的工作态度和吃苦精神当时给我留下了很深的印象。那四天三夜里我们没有睡过觉,尤其是于振南,他几乎是一直坐在电脑前写软件,差不多有几十个小时没有睡一分钟,他什么时候吃的饭我都没看见,最后我看他眼睛一直在流眼泪,当然不是哭了,那是看电脑屏幕看的。因为工作量非常大,要做硬件,写软件,绘制整个系统的电路图,还要写几万字的论文,都要在这四天三夜里完成。当时我们队三个人的个人能力都比较强,可能是以前大家没在一起合作过,所以到真正合作设计作品的时候还不是很默契。电路焊了一套又一套,结果都不理想。我们的作品最终在联调时失败了,每个人负责的功能能够独立实现,可联在一起就不能工作了,而评委要看的就是你的整体功能实现,不会看部分的。这次比赛我们以失败告终。以后大家如果有机会组队参加比赛要注意如下三点:选题最关键,一定要选你们比较熟的,队里有一两个比较熟也行,但如果三个人都不会那一定要换题。题目选定后,首先以实现基本功能为主开始做题,如果基本功能你都能做成功了,那你应该能得全国二等奖了,因为在这么短的时间里大部分队根本是什么也做不出来的,如果发挥部分再能做出一部分就可以向全国一等奖进军了,我们队失败的另一个原因就是我们直接开始做发挥部分的题目,而忽略了基本部分。组队的安排,一定要找大家熟悉的人,最好在一起合作过,分工要明确,不要无头绪地各干各的,最后要做什么大家都不明白。

参加完这次比赛后,我承接了一个开发项目,我找了于振南合作,我设计硬件,于振南写软件,我俩很快就把项目做完了,这也算是我们用所学的专业知识淘的第一桶金吧,获得的报酬足够支付我俩两年的学费了。在学习更多电子技术知识的同时,我和于振南共同合作开发了几个项目,一点点积累着经验。

大四了,已经习惯了的生活和大三没有多大的变化,和我第一次参加五四杯的赖世雄同学每天都在忙着复习考研,最终也考上了他理想的学校。我不想再读书了,想着早点毕业出去工作。快十月份时,我们学院电工电子基地的王松武老师告诉我,北京某个电子公司每年在我们学校招两三个学生,要求动手能力较强的,最好参加过一些国家级的竞赛获过奖的同学,那边公司待遇很不错,王老师推荐了我,我谢过王老师准备参加该单位十月三号来学校进行的面试。我正准备面试呢,十月二号学校贴出通告,我被免试保送我校的研究生了,当时很高兴。学校有制度,学生有某方面的特长,多次获级别较高国家奖项的可以推荐免试读研究生,保送读研究生不交学费,不用考试,而且享有硕博连读的优先资格。当时值得庆幸的是,我的综合成绩平均分70多分,也就是刚够分数线,若再低一点点恐怕我也无缘这等好事了。我从内心感谢哈尔滨工程大学的领导、感谢哈尔滨工程大学的教育体制。

大四上学期一学期我基本上都在为2005年的枭龙杯中国空中机器人大赛备赛,这次于振南也参加了,我主要负责飞机的自动驾驶仪,另外协助于振南一起写地面站操作平台。这次比赛涉及的知识领域非常广泛,主要包括同时刻四通道无线通信(遥控器、远程无线数据传输、远程微波图像传输、GPS信号传输)、单片机技术、计算机控制、应用软件、图像捕捉、图像识别、惯性导航、飞行器制造等技术。这次比赛我全身心投入,在调试飞机的近六个月的时间里,差不多天天早出晚归。功夫不负有心人,我校设计的无人机实现了全程无人控制全自主的自动起飞、自动巡航、自动识别静态/动态目标、自动着陆动作,开辟了我国无人机全自主飞行的先河。最终我校代表队战胜清华等多所名校,获得了全国亚军。

大四的寒假,那时我对单片机的掌握已经很熟练了,想着应该用学会的知识来开发些产品了,一来可以解决生活费用上的开销,二来正好也可以圆我经商做生意的梦。想着很多曾经和我一样的单片机初学者可能会购买学习板,于是决定开发单片机学习板,2月份做出第一个样板,3月份做出第2版,4月底建立个人网站天祥电子” http://www.txmcu.com/,在经过3个月共改进了7版后,最终定型TX-1C单片机学习板为最终产品。4月份中央电视台我的太阳摄制组来到我校特别为我拍摄了专题片我的太阳——创新360之郭天祥,该片以我参加2005“枭龙杯中国空中机器人大赛为背景,讲述了我在哈尔滨工程大学几年的创新学习生活,57日在中央电视台教育一台播出,同时我远在新疆的家人在电视里看见了已经离开家乡几年的我,这也是我生平第一次上中央电视台的专题节目。

从大四下学期开始,我一边管理自己的网站,一边学习DSP(数字信号处理器),因为我清楚,在科技日新月异的今天,仅靠会一点单片机而在社会上立足是万万不行的,我必须充分利用在大学校园里的这几年时间,以最快的速度尽可能多地掌握各种电子技术知识,一旦出了校园,恐怕再也不会有太多的学习时间了。由于学校实验室里有DSP实验箱,这样学习起来就方便多了,一台DSP实验箱的价格都在七、八千甚至上万元,以个人能力购买还是很费劲的。学硬件主要就是做实验,写程序、下载程序、观察现象、认真思考、修改程序、再下载程序、再观察现象……如此重复,直到得到满意的现象结果,只要抓住这条思路,任何硬件都会在很短的时间内掌握。大四下学期,我的同学们都在为各自的本科毕业设计而忙碌,而我却在设计自己的DSP实验板,由于DSP实验板上使用的芯片大多为多引脚贴片封装的,所以至少要设计成4层的PCB板,那是我第一次画4PCB板,用了近一个月才绘制完成,值得庆幸的是,板子做出来后完全正常,我又用了一个月将其调试完成。差不多在4个月的时间里,我完成了对DSP从认识到制板再到最后调试实验板通过的全过程。因为之前有单片机的基础,本科毕业设计对我来讲是非常容易的,在大多数同学花半年的时间去研究的时候,我从设计到完成用了不到10天的时间,而且在这10天里还帮了很多同学的忙。

转眼就到了本科毕业聚会了,大部分同学的大学生活就此画上了句号。我亲眼看着他们如何一步步地成就了自己的梦想,也亲眼看着他们如何一次次地重复着自己的生活,同时也亲眼看着他们如何一天天地堕落下去。从那天起,大家又将迎来各自的全新环境,在那里,也许有人庆幸、也许有人后悔,但无论怎样,自己的路自己选择,当然要自己走下去。

知识的海洋永无尽头,在路上的我不能停止,还没等到研究生开学,我已经为这2年半的时间制定了全面的计划。从假期开始,我就开始接触ARM(嵌入式系统)了,在我看来,如果不涉及ARM的操作系统,那么它的学习方法还是和单片机一样,在开始阶段,我就把它当成一块单片机来用,当然它的功能要比单片机强大得多。半年后,我和同学宋宝森还有于振南三人共同承接了一个用三星ARM7做主控制器的工程项目,该项目所涉及的知识也非常之广,内容涵盖单片机系统、嵌入式ARM7GPRS网络、Internet应用、图像采集、图像处理及远程传输、TCP/IP协议、移动通信技术、码分多址技术、网络数据解析、模拟电路、数字电路、高频电路、射频无线数据传输、工业传感器等技术。在这个项目设计中,我发现,上面我提到的这些知识领域,没有几个是我大学专业所学到的,就算是学到了也没有几个是真正能应用到实际当中的,在高科技主导社会进步的今天,单纯掌握某一狭窄领域的知识是远远不够的,我们只有不断地学习,不断地应用,再学习,抱着这种态度才能让知识得到最大的发挥,让科技不断地进步。

2007年初,通过学校的科技创新立项,我申报了远程无线可控潜水器项目,最后以全校唯一特大重点项目获得批准,学校和院里都给予了全额资金的支持,在经过我和团队成员5个月的努力后,我们的作品终于试水成功。该作品获2007年学校五四杯一等奖,同年获得黑龙江省挑战杯大学生电子设计竞赛一等奖。至我离开学校时,该项目还在由团队其他成员进一步改进完善中。

在研一阶段,我利用两个寒暑期在学校举办了为期十天的单片机培训班,我以全新的授课方式,以初学者最容易快速入门的方法为学员讲解了51单片机的用法,我在课堂现场带领学员做实验,每天课后学员们自己再练习写程序,经过十天的强化训练,课程结束时,几乎所有的学员都能够独立编程操作51单片机的各个功能了。在同年的索尼杯全国大学生电子设计大赛中,我担任学校指导教师,在大赛现场我看到了许多曾经在我的课堂上听课的学员的身影,而且他们最终都取得了喜人的成绩,我由衷地感到欣慰。为了让更多的单片机初学者受益,我将授课过程全程录像,然后将其免费发布到网上,自该录像在网上发布后,得到了很多学员的高度赞扬,甚至有许多国外的留学生打来电话向我致谢。

20079月,我以实习生的身份到某能源股份有限公司做硕士课题,当时与我同去的还有很多其他院校的本科毕业生,他们有与我同专业的,也有自动化专业的。我与几个老员工是公司仅有的能够独立开发项目并且真正懂硬件编程的人,我们拿着高薪,而且公司还把我们当成宝贝,其他新来的大学生们在夸奖我们能力的同时也叹息自己大学里到底学了什么,从无奈的语气中我看出了他们的悔恨,然而今天的他们在现实中又有什么办法呢?每周6个工作日、每天8小时、迟到扣工资、早退扣工资、请假扣工资……这就是摆在他们面前不可改变的现实,每月等待那么一天的到来,而薄薄的信封里也仅仅够每个月的基本生活费。年轻的朋友们啊!同是从大学校园里走出的大学生,这就是差距,而且这只是差距的开始。实习期间,在与公司技术人员的交流中,在产品一步步地改进完善中,我的专业知识得到进一步的升华,我深刻地认识到,仅仅死学书本上的理论而不与实际硬件结合进行实践,这样的理论没有用;仅仅在校园里做的简单硬件实践如果不与工业现场应用结合,这样的实践是不成熟的。至20086月我离开公司,我为公司研发了一系列的太阳能充/放电控制器、太阳能路灯控制器和联通移动基站的太阳能电站充/放电控制器,并且得到了批量生产和应用。

大学生活是我们人生中最宝贵的经历,我们付出了四年光阴的代价,我们应该也必须为此有所收获。很多同学在大学校园里迷失了方向,不知道自己来到这里究竟是为了什么,单纯的认为毕业后找个好工作就万事大吉了,可你们是否想过,没有真正的本领如何能找到好工作?如何能为这个社会做出贡献?更现实一些,没有一份好工作如何买房成家,建立起属于你自己的幸福快乐的家呢?真本事不是靠混日子混出来的,我们身边有很多机会可以发挥自己的能力,实现自己的理想,即使这些机会不是很明显地让我们看见,我们也应该努力地去争取。偶尔的娱乐是可以的,可是成宿在网络游戏中挥舞大刀的同学们,那里可以砍出你的未来吗?适当的运动也是应该的,可整天都泡在篮球场上的同学们,你觉得你还有希望成为第二个乔丹吗?哥们义气固然重要,可三天两头为朋友两肋插刀,你的肋骨够用吗?年轻人应该有更高的追求,你要为你的将来做好准备,外面的世界很精彩,外面的世界也很残酷,你活着的每一天都应该好好珍惜!

我的大学生活即将结束,这就是我大学的六年生活,有人认为我可能失去了很多东西,但我得到的却是无价的,这样的人生经历可能有很多人惋惜,然而这样的结果必然有很多人羡慕。为了追求我的梦想,我充分利用每一天每一秒,为了实现我的目标,我在知识的海洋里吸取每一点每一滴,我感觉到的是充实。只要你有技高别人的想法,你有出人头地的愿望,你能下得了做一件事情的决心,你有能坚持下去的毅力,只要你天天都在进步,用不了多久,你会发现一个全新的你将重新站立在大家面前。希望各位学弟学妹们珍惜你们拥有的,在大学里好好努力,四年时间过得飞快,当瞬间过后发现自己和刚入校时并没有太大的变化时,那时后悔恐怕真的晚了!

 

你可能感兴趣的:(0day)