读《游戏之旅--我的编程感悟》有感

我不是学计算机的,但此书给我的感触颇深。

    此书成于2005年,我真希望自己能早6年读到这本书呀。(2007年大学的时候就读到)

    作者叫云风(个人主页:www.codingnow.com),是个技术高手,网易游戏开发部门的重要人物。他书中有这样一段话:“身处当今热门行业中,可谓衣食无忧,而在国内的游戏制作圈子里混迹多年,业内也小有名气。而这些并非我去追求的,它们自然而生。”

    作者算得上是个天才,狂爱技术,业务精湛;但又谦虚好学,极为刻苦,且爱护新进青年,不含高人一等之态。在百忙中写下此书,花费了他不少精力和时光,只为中国并不成熟的游戏产业的发展做一丝丝促进。

    他的成长精力可以看出,十足的爱好,不拘泥于课本,能够充分利用自身环境,刻苦努力,是其成才的因素。并非为了钱财,只是为了一点小的理想,写出更好的代码,做出好玩的游戏,疯狂的求知欲,踏实的作风,都为其成才的动力。

    我并不想泛泛而谈这些感悟,下面主要总结几个书中所谈的例子。

    作者写这本书,自称为“智者不擒二兔”,感到实在很不应该。因为作者当时在忙于的项目就不止一个,又接下了写书的任务,实在很不明智。当然,他为了能够为中国游戏开发者给出一些经验,还是竭力写完了此书(花了一年多)。结果是身体被严重的拖累了。我在学习中是否也有这样的事情呢?这是明摆着的。

    作者的计算机技术基本不是在学校学习的,他7岁接触电脑,在父亲的引领下手下接触BASIC和汇编,而后去另一个大学生家里用pc机搞东西,在大学期间则开发出了“风魂”,显然这些都不是学习的功劳。或许计算机科学有其特殊性,所需要的硬件单元普通且便宜,故不需学校的指导也能入门。但是我在其中更看出作者云风肯实践,却不拘泥于课本的精神。

    虽然他所学并非来自学校,但是我认为这一点并不能说明学校是无用之所。事实上,他也在书中说道许多老程序员拘泥于老方法,无法更上时代步伐,不借鉴最新的技术。而他则紧跟着学术界的潮流,经常性的看学术界的新知识,以补充自己,方能不断进步。可见,学校的用处很大,不过现今中国大学问题颇多,导致许多情况下学生难以从中汲取知识罢了。

    他有一句话:做什么事情除非完全弄懂了,否则不去做(略有小的偏差)。例子就是他用c语言,而很长时间不用c++,直到2000年以后才改用c++,就是因为他对c++还没有彻底了解(了解的含义显然非普通程序员所想)。

    但不能就此认为云风是一个保守的人,他是一个极具创新精神的人。他在书中各种场合反复强调,一个程序员要开阔眼界,不要以为C++就万能了。应该看看其他程序语言,每种程序语言都有其开发的原因,比如C就根植于机器本身,而其他语言也有其发展的原因,开阔眼界,从各种语言中借鉴,都是很重要的。他的创新精神在一个例子中表现出来(汗颜,对这本技术书,我只是看看想法,对具体的细节没有来得及看),他将数据结构中的链表和数组组合起来,构成新的数据结构,用他的话说,只要是可以在工程中有用,就不必拘泥于“数据结构”中的固定表述,他不是科学家,而是工程师,创造的东西即使只在某些场合可以使用那就可以了。

    从他的书中,我还看到真正健全的人格,不会为环境所压倒,而是能够利用周围的环境,他毕业于中南工业大学,应该不是一个好大学,但是他显然从初中开始就很好的利用了周围的一切好环境,用来丰富自己。这一点难做到吗?我一直以为很难,但实际上中国国情如此,你的人生背景如此,怎能游离于环境之外,怪罪于环境之上呢?

    在他的书中还看到了一些新理念。云风不是一个电脑呆子,只是呆在办公室里看代码(当然他比一般的电脑呆子更强),他热爱历史国学,酷爱攀岩,最近知道他已从网易辞职,去追求自己热爱的攀岩了。他利用一切假期阅读,从中汲取新的只是。比如他谈到自己从前曾经做过,但是并没有总结的东西:配对编程(也叫极限编程,xp编程)。他说从前有过这个经验,知道看了一本书,才知道国外这种方法已经应用起来。两个水平差不多的人,一个人坐在电脑前码代码,另一个在后面说代码,动手的人无须思考,动脑的人无须打字(最少1分钟交流一次)。因为脑子反应比打字速度快,故而开发速度大大加快。好处不止一点,两人工作一段时间后交换次序,重复不断。这样一来,两个人都可以比较快的了解此工程的内容,更可以使办公人际关系大大提高。此外,若让10多人轮流进行此工作,更能够使整个团队了解此工作的内容,对于后期维护也大大方便,且即使有人跳槽,剩下的人也能够继续完成此事。且二人配合,防止了私人聊天的事情发生(到底有些私事不可以北其他人知道),工作效率大大提高。这样工作8小时超过加班,何乐而不为呢?可见,作者很爱跟踪新思想。

    作者反复强调,中国的游戏产业尚不成熟,他所写书,所培养新进同事只是希望能为这个产业出一丝力气。我感觉,岂止是游戏产业?微波、射频产业、芯片产业,哪一项不是深深落后于发达国家,正因为落后,我等学生也难以跟上时代的步伐,常有无力之感。正因为落后,所以资源不足,大学的教育才跟不上社会的需求(当然,教育改革跟不上也是重要原因,而中国人的官本位,不求实践、只求实惠更加剧大学生不凭真才实学吃饭,我即是一例,幸好有所觉醒,时刻警惕警惕!)。一个有理想的中国人就应该投身于自己的行业,努力提高技术,不仅为了自己,也为了小辈有更好的环境。

    记住!实践、工程经验,不断从他人身上学习,不闭门造车,是成为一个优秀程序员的关键。很喜欢Cleve Moler的一句话:我从来是个程序员,不是个科学家

    从书中可以看到云风身上的一种工程师精神,这种工程师精神正是我一直欠缺的,可惜了6年光阴。莫等闲,白了少年头,空悲切。

    下面结合自己所学讲讲规划。我所写是微波,所需掌握技术无非基础知识(电磁场、微波技术),具体知识(微带线、功分器、天线),高深知识(导波场论、电磁学数值方法),仿真软件(HFSS、ADS)等。而计算机技术则包含有数据结构、编程语言、工程经验,等等(还有好多好多,各种思想方法,平台特点,算法等等)。我认为,如果搞计算机,则是外行人,且有闭门造车之嫌。搞微波,则虽是半路出家,却还有行业邻居,实验仪器,项目依靠。所以今后10年、20年就应该投身微波技术这个行业,多吃苦,多努力。如果喜欢编程,计算电磁学也是有用武之地的,切记“智者不擒二兔”。

    忍不住摘抄作者学习C++的过程,不理解C就不要用C++,我感觉是作者的肺腑之言。

    “学习C++首先应学会C,至少是C++中类似C的那个部分。”

    “再入门书籍《C++编程思想》第一卷:标准C++导引刘宗田等译”

    “再《C++ Primer》和《The C++ Programing language》”

    “还有语法问题,应该看C++标准的电子文档(英语的),而不是看书”

    “更深一层《C++的发展与深化》、《深度探索C++物件模型》,中译本很好,读起来是一种享受”

    “更深一层《Effective C++》、《More effective C++》、《C++深思录》,这几本等有了几年编程经验再看”

    “泛型技术方面,《STL源码剖析》,侯捷写,国内书中为数不多的精品,更深入的template《C++设计新思维--泛型编程与设计模式之应用》”

    “对C++标准库,《C++标准程序库》”

    “而学习计算机的人,都应该读的是《计算机编程艺术》,学术界史诗般的巨著”

    “可以先看看《C语言编程设计400例》,从范例中看,比纯粹看教科书,更能速成。”

    此书确是诚心之作,于李笑来的书有的一比。

    此次阅读之后,我发现即使不能“一日三省吾身”,也应该每周抽出一天去书店、图书馆读书,并做个总结,反思自己的错误,完善自己的人格。在今天以前,浮躁之气已在身上显现,而现在在心平气和,很有盼头了。所以以后(无论在学习否),每周日或留待书店或图书馆。心应该沉下来。


http://blog.sina.com.cn/s/blog_68c6dfc30101p1b3.html

你可能感兴趣的:(读《游戏之旅--我的编程感悟》有感)