从计算机系学生到强大的游戏程序员必备书单


1 从计算机系学生到强大的游戏程序员必备书单
终于可以登陆blog了,从昨天周六到今天白天,一直系统繁忙,不知道新浪怎么搞的.
起个乍眼点的名字,给我新开的blog吸引点人气.之所以从计算机系学生入手,是因为不想列举一些跟编程关系不大,但做为程序员应该看的书.如操作系统,编译原理,数据库,基本数据结构.强大的游戏程序员这个词造有点夸张,实话实说,吸引眼球用的。

我在面试程序员的时候有一个问题无论对方经验、学历如何,都一定要问。就是让其列举几本自己喜欢的技术书籍,在我看来,如果连几本好书都没看过,水准也高不到哪儿去。通过其对列举书的描述和一些简单的交流,除了考察技术水平,也可以比较容易看出应聘者是否好学上进。

我本人是喜欢看书的,市面上的技术书籍,但凡认为稍有阅读价值的,都会收入柜中。这其中不乏稍加翻看后束之高阁的,也确实发现了一批好书。新进公司的程序员,特别是应届生,我都会给他们推荐下面这份书单。还有些书是要求人手一份的。来找工作的计算机应届生,在我看来最大的问题不是经验的不足,而是视野狭窄,除了课堂内容外所知寥寥。大部分人对C++的认识竟然还停留在C+class的程度.有课外阅读书籍的也以一些手把手系列为主.

这份书单跟论坛上常见的应该有所不同,涉及游戏开发的各方面。书的数量也比较多,但每一本都尽量做适当说明.书目内容之后随着我购书进程也会更新.书目里的大部分书我书柜里都有,手头没有或为电子版的尽量说说明.想买这些书的话可以去https://www.360docs.net/doc/c110204006.html,和https://www.360docs.net/doc/c110204006.html,找.电子书的下载地址不要问我.
书单里从入门到高阶的书籍都有,在校生,应届生,各等级程序员,应该都能找到适合自己的内容.
PS:看书之余不要停止思考和动手写代码练习.
8月9日版本在书评里新增阅读难度,从1到10,皆为整数,大家可以根据自己水平作为购书参考。难度低的书不见得对高手没用,如C++编程规范等。初学者建议循序渐进的阅读。很多书可能难度跨越较大,如C++必知必会后十条跟前十条的差距,这样的书会给一个折衷数字。


第一类 通用编程技术及C++书籍

新人在进入游戏行业之前通常会做些准备,又通常都以d3d,openGL,DDraw,Shader,J2me等实用性技能内容为主.其实一般游戏公司招应届生最注重的反而是基本的编程素养(不排除有垃圾公司指望应届生进来解决技术困难).基本编程素养并不是生下来就定型了的,这里面包括程序设计的思维能力,编码风格,和对所使用的语言的掌握程度等.这些东西通过阅读书籍和勤

加练习都能得到很大程度的提高.而对于刚进入这个行业的程序员而言,提高自己的编程素养是你提高自己在项目中的地位,升职加薪的最重要一环.

重点推荐书籍:
1 Effective C++ 中文第三版 阅读难度:3
关于这本书已经有太多的褒奖之词,我不多说了.如果你想靠C++吃饭而没读过这本书的话,可以反省一下自己的闭塞了.想进入C++领域而不读此书,无疑要走无数弯路.

2 设计模式 阅读难度:6
又是一本无需废话的书.想告别蛮荒时代,进入现代编程殿堂,先得学会程序们的黑话(这叫什么逻辑?!)这本书介绍了二十多个使用最广泛的设计模式,并统一了命名.这不是本讲C++的书,但这本书的重要性无庸质疑.和Effective C++一样,是想吃好这碗饭就要买来读的书.

3 C++ Primer 中文第四版 阅读难度:2
这本书的优秀之处不仅在于面面具到,而且浅显易懂.推荐这本书是因为这是一本讲现代C++的入门书,而不像大部分入门书为了显得容易些,介绍过时的编程风格和绕开难懂内容.这本书的编排上把vector放在了数组前面,把string放在了char[]前面,把STL放在了class前面.传统的C++入门书把这些东西当成高级内容.其实这些在现代编程中正在逐渐变成基础.

4 C++编程规范 阅读难度:4
这本书是我要求进来的程序员必买的书.来找工作的大部分应届生(其实很多有经验的应聘者也一样),对编程规范毫无概念.很多公司会让应聘者寄代码片段,一般就是为了考察编程风格,新人进到公司,往往第一件事就是要进行对编程规范的培训.这本书的100条稍显冗长,并非条条精彩.不过多数条目确实是实际项目中应该切实遵守并成效明显的.这本书价格很便宜,我认为在职程序员,应该人手一本.



作者:bastim 2006-11-18 13:02 回复此发言

--------------------------------------------------------------------------------

2 从计算机系学生到强大的游戏程序员必备书单

5 重构 阅读难度:4
又是一本java书,对于这本书最重要的不是它的内容,而是它所宣扬的重构对于程序设计的重要性.重构绝对不止改变已有代码,更重要的是每次精心的重构都会给你带来编程素养的飞升.当然,这本书的内容也非常棒.如果你所在的团队还拒绝重构,能改变就改变,不能改变尽快离开...

6 C++必知必会 阅读难度:3
另一本我要求新来程序员人手购买的书.这是一本汇集了很多时髦的初中级编程技术的小册子.里面的大部分内容已经成为现代C++编程的基本技能需求.你可以

看看书的目录,如果有三分之一以上内容你不知所云,请立刻购入吧.(实际上除了前几条外几乎所有内容应届生和一年左右经验的程序员都不知道).稍有遗憾是翻译质量不太满意,可以考虑购英文版.

7 Exceptional C++系列 阅读难度:8
这个系列一共出了三本,Exceptional C++, More Exceptional C++, Exceptional C++ Style.这套书不太适合初学者阅读,但如果当对C++的基础内容如多态,模版,stl,异常,内存管理都有一定认识,并有十来万行编码经验后,阅读这个系列的书会让你感到愉悦.这是一个问答系列,里面的问答都很精彩.翻译得不错(翻译算不上精彩,只是不错).所讲内容实用性都非常强,讲解也比较易懂.

8 高质量C++编程指南 阅读难度:1
重点推荐里第一本国产书(不知道什么时候会再有国产书加进来)。这本书除了对编码风格的一些讨论,也列举了C++使用中的一些常见问题。内容非常浅显易懂,不过这些问题确实经常困扰C++初学者。

推荐书籍:(介绍待添加)

------------------------------------------------------8月9日更新内容

C++程序设计语言 阅读难度:1
这本书无论在C++程序史上,还是在今天的众多C++书籍里,都是无法替代的.如果说在自己所在历史时期的价值,这本书绝对是排名第一的.之所以没被列入重点推荐,一是我并没有这本书.二是这本书并没有如C++ Primer一样与时俱进,在内容和编排上我都认为不如Primer适合作为C++入门教材.

C++程序标准库 阅读难度:4
这是本参考手册,但又超越了一般的参考手册.这本书的用途是工作时放在手边随时翻阅.对于STL的大部分细节,都有详细的讲解和例子.同时这本书也具有不错的可读性,平常阅读也不失乐趣(不过有点太厚了)

Think in C++ 卷一,卷二 阅读难度:2
这本书总觉得有点名不符实,觉得这书的定位应该在入门指导比较合适,内容易懂,讲解翔实.不过书中对C++的思考似乎有点少.仍不失为C++领域的入门经典.

More Effective C++ 阅读难度:5
仍旧精彩,但照Effictive C++有所下降,主要是实用性的差距,Effictive的条款感觉是万试万灵,过目不忘。而这本书更多关注了一些语言的细节,还有很多篇幅用在了一些不大常用的语法角落。版本的更新也不如Effective及时.

Effective STL 阅读难度:4
Scott Meyers针对STL写的50个改进效率的条款,这本书来的恰到好处,是不可多得的STL实用教程.适合在某本入门教程里初步了解了STL的用法,想进一步提升STL使用能力的

人阅读.市面上深入研究STL的书不少,入门书更多,但能如此迅速有效的提升STL使用技巧的书目前只此一本.喜欢STL的朋友不可错过.

STL源码剖析 阅读难度:7
侯捷老师的力作.国产书的骄傲.书的思路清晰,编排合理.虽然代码的篇幅较多,但讲解部分也很到位.除了介绍STL的实现,也图文并茂的介绍了STL中用到的一些算法和数据结构.想深入探究STL和学习范行编程的程序员不可不读的一本书,源码面前了无秘密.这本书的缺点在于想一口气读完实在需要过人的耐力,有些章节让人感觉沉闷.



作者:bastim 2006-11-18 13:02 回复此发言

--------------------------------------------------------------------------------

3 从计算机系学生到强大的游戏程序员必备书单

深入探索C++面向对象模型 阅读难度:6
这给真正有兴趣探究C++底层实现的人阅读的一本书.书的阅读门槛其实不太高,只是阅读过程让人觉得郁闷.这本书买来后几乎还没开始读,但相信如果能了解这本书里介绍的知识,对于C++水平会有有效的提升.

C++程序设计新思维 阅读难度:9
这本书应该是市面上阅读门槛最高的一本C++书了,一年前我买回这本书的时候感觉像天书.现在偶尔翻看隐约能感到这本书的伟大之处,但里面所讲的很多内容仍然不能充分理解.这本书主要讨论几个常用模式用充分利用范性特性的实现,并提出几个新的基于范性的模式(或者叫做工具).及这些东西在Loki库中的实现.

C++网络编程利用模式和ACE消除复杂性 卷1,卷2 阅读难度:8
相比于网络编程,这套书更关注于副标题的内容.对于想学习ACE的朋友这本书是很有价值的.(国内好几家游戏公司都在用ACE了)

Imperfect C++ 阅读难度:6
C++的复杂性和可操控性也造就了无数的陷阱,C++兼容了C语言的同时注定了C++有很多落后的设计.这本书的构思很新颖,从内容上来说也确实是市面上无可替代的一本书.书中讨论了大量的易造成错误和混淆的语言细节.同时大部分问题都提出了有效的克服C++不足的解决方法.对于想深入了解C++的程序员不可错过.缺点也是内容太多,有些语言细节实在太偏僻了.

C++Template 阅读难度:5
一本传说中的书,现在已经买不到了.关于这本书我听过无数的赞誉,然而并没仔细读过.大学的时候从图书馆借过,当时还读不太懂.之所以也拿来推荐,是因为觉得市面上确实缺少一本模板的实用性晋级教程.大家如果看到

这本书不妨收下.

C++STL 阅读难度:6
这本书和STL源码剖析有相进之处,不同在于这本书一边讲解用法,一边探究实现.这本书也已经断货了,我有幸买到一本,确实值得一读.和源码剖析可以互补.

C++游戏编程 阅读难度:3
书的思路不错,针对游戏编程可能会遇到的一些问题进行讲解.内容写得也不错,每个主题从入门的讲解到高级话题都有.书里并没有任何游戏专用技术的内容,而是介绍游戏相关的C++内容.缺点是中文版的译法比较另类,很多词汇翻译得都跟常见书籍不太一样.而且书中有一些过时和错误的观点.不过总体来说这本书对初入行的程序员来说非常合适,见到不妨翻翻.里面的内容你会喜欢的.

Unix程序设计艺术 阅读难度:4
看这本书并非关注技术本身,更多的是希望了解Unix的一些文化和技术内涵.

代码大全第二版 阅读难度:1
这本书才叫对得起面面具到这个词.这本书很多C++程序员不屑阅读,我倒觉得读一读这种书对扩展自己的思路很有益处.也可以让自己多了解一些编码以外的软件开发知识.

道法自然 阅读难度:2
又一本优秀的国产书,这本书关注的是面向对象的设计方法.通过真实的案例和不同的解决方案的对比,来探讨如何达成优秀的设计.

------------------------------------------------------8月19日更新内容

第二类 游戏编程技术
这里的游戏编程技术,基本指的是游戏开发用到的一些非通用技术,比如图形学,D3D, OpenGL, Shader, DDraw,人工智能,物理模拟.游戏编程的专门书籍其实也就是这几年才丰富起来,总体来说推荐书目的品质和C++书或项目管理书没法比。国内市场上出版的游戏书籍不算多,还有很多是粗制滥造的抄袭作品。我的推荐单除了力争将市面上能买到的一些优秀书籍作推荐外,也会推荐一些国内没出版的英文版本书籍。对于英文版书,有钱上https://www.360docs.net/doc/c110204006.html,都能买到,没钱自己搜电子书,还是那句话,我不会给电子书地址,写书不易,多去书店买几本书,我们以后才能有更多的好书看。还有,我本人不是专门研究图形学或3D引擎或物理模型的纯技术人员(我一直觉得这些人才叫纯技术人员,我这样的程序员对游戏本身内容接触的比较多,不那么纯粹),所以对于这些专门书籍的介绍还停留在我手头有的一些书上。对于国内买不到也看不到电子书的一些最新的技术书,如GpuGem2,是没法介绍了。一些太纯粹的技术书也不会推荐,比如

分形,小波,视频动作捕捉,这些留着你进入了相关领域去和你的同事讨论吧。



作者:bastim 2006-11-18 13:02 回复此发言

--------------------------------------------------------------------------------

4 从计算机系学生到强大的游戏程序员必备书单

重点推荐书籍:
1 游戏编程大师技巧中文第二版 阅读难度:2
我这一代的游戏程序员,差不多都是看着这本书成长的.经常有人问现在还用不用学2D,我的回答是,DDraw如果确实不用可以不学了,但是2D游戏编程的原理不可不知.大师技巧做为游戏编程的入门经典(注意不要当编程入门书来读),至今市面还没有书能取代它的位置.这本书的缺点也很明显,就是里面的内容实在有点旧,里面很多技术,还有一些代码的写法都很过时了.不过还是要强烈推荐,个人认为这是游戏程序员不可不读的一本书.

2 Introduction To 3D Game Programing With DirectX9.0 阅读难度:3
如果要学D3D,这本书是入门的不二选择.目前国内没有出版,不过网上有人翻译了.这本书对D3D的讲解非常细致,绝不是代码的罗列,基础的数学知识和图形学知识,渲染管线的原理都有介绍,每一章的内容也是图文并茂的从原理到代码,所有内容都附带示例代码.里面的内容也非常全面,所有固定管线和hlsl的基础内容都有介绍.虽然书已经出比较长的时间了,但里面介绍的内容仍算比较新(相对于市面上大量的国产d3d入门书而言).这本书封面是一条红龙,确实非常棒,年初的时候我还想翻译这本书(刚翻完一章多点,因为工作比较忙就放下了,后来网上有人放出全部内容的翻译,质量还不错,我的就放弃了)。向想做3D的人强烈推荐,不想做3D的人也应该看看。

3 游戏编程精粹系列 阅读难度:6
 这个系列国内出版了四本,原版大概已经出到6了.这套书的对于初学者用处不大,不过对于工作中的游戏程序员来说实在是太棒了.里面的内容包罗万象,从通用编程技术到3D技术,音频技术等等.里面都是一些短小精悍的文章,内容都很精彩。平常工作中的问题经常能在这套书里找到解决方案。读一读书中的文章,也能学到很多优秀的解决问题的思路。唯一遗憾的就是几本书翻译水平参差不齐,各文章间翻译质量差异也比较大。这可能跟这套书每本出的时候都是在介绍当时比较新的技术有关。

4 Nehe的OpenGL教程 阅读难度:3
这个不是书...至少据我所知还没出书。只有网上有,google一下不难找。目前比较好的一套OpenGL教程,从基本的入门知识到一

些高级的应用都有介绍。由于是网上教程,给的示例代码比较丰富,而且内容更新也很快。国内应该也有网友在翻译中文版。如果要学OpenGL的话,就看这个吧。市面上能找到的OpenGL书我觉得质量和这套教程比都有很大差距。

5 GpuGem系列 阅读难度:8
原版出到2,国内出了一本。对于从事3D引擎开发和游戏图形学研究的朋友,这书应该是人手一套了。作为Nvidia给开发人员的指定参考书,这套书里总能找到最新的游戏图形技术。这套书的内容也是一篇篇独立的文章,内容都非常不错。2我还没看过,但即使我手头这本原书已经出了有段时间的国内翻译本,所介绍的大部分内容仍未曾在国内游戏中见过。所以,从事相关工作和对游戏图形技术感兴趣的朋友应该购入。

6 游戏编程全接触 阅读难度:3
全面介绍游戏编程的书也不少了,当然其中已游戏学院之类出的教材书为主.我翻阅过的几本中,这书品质是最优秀的.游戏开发的方方面面都涉及了,不光是编程和技术实现,还有很多项目管理的内容.相对于技术内容来说,这本书关于项目管理和非技术的内容可能显得更有价值。对于业内工作者可以学习国外的一些先进管理方法,对于学生也可以对游戏开发有个更全面的认识。游戏项目管理和周期控制讲得比较全面的市面上就这本了。另外,这本书是我以前同事翻译的,还要加上友情推荐分。

7 我的游戏编程感悟
国内最著名的游戏程序员,云风的作品。里面的内容比较杂,更像是随笔集,当然,基本都是技术内容。不过写得还是不错的,对于想了解国内游戏开发行业情况的朋友,这本书一定要读一读。里面讲到了很多技术细节,不过总体看来书的目的性不是很强。作为国产游戏编程书的精品,买来读一下是值得的。什么你不知道云风是谁?大话西游的主程,国内游戏界响当当的程序员。

8 CG教程
CG可不是Computer Graphic, 而是c for Graphic。其实就是Nvidia的shader语言,跟HLSL基本是共通的。想学Shader的话,目前市面上最好的入门书就是这本了。Nvidia官方背景,内容简单翔实,翻译也不错。看完红龙就该读这本了。想干3D编程不可不买这本。

(内容陆续添加中)


第三类 项目管理,开发流程,杂谈


未完待续
转载请写明出处 我的blog https://www.360docs.net/doc/c110204006.html,/u/1246772293


相关文档
最新文档