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

2023-11-09

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

    此书成于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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

读《游戏之旅--我的编程感悟》有感 的相关文章

  • STM32CUBEMX F103 HAL库开发 两路定时器的Encoder编码器模式

    机器人开发过程中 对于直流电机来说 编码器至关重要 它不仅可以使我们对电极进行精确的速度闭环 位置闭环 还可以通过时间积分 根据运动学关系 获得速度 位置等信息 STM32的定时器有编码器模式 大大的方便我们的开发 使用STM32cubeM
  • 刨根问底:C++中浮点型变量(float, double)的比较问题。

    首先 让我们先来看一段代码 include
  • CVE-2022-25845 反序列化漏洞分析

    测试环境 jdk1 8 fastjson 1 2 80 win10 实验POC public class Poc extends Exception public void setName String str try Runtime ge
  • python __next__()方法_Python迭代器的用法,next()方法的调用

    迭代器的用法 首先说两个概念 一个是可迭代的对象 一个是迭代器对象 两个不同 可迭代的 Iterable 就是可以for循环取数据的 比如字典 列表 元组 字符串等 不可使用next 方法 迭代器 Iterator 也是可以依次迭代取出数据
  • msrcr图像增强算法 matlab,图像处理之Retinex增强算法(SSR、MSR、MSRCR)

    视网膜 大脑皮层 Retinex 理论认为世界是无色的 人眼看到的世界是光与物质相互作用的结果 也就是说 映射到人眼中的图像和光的长波 R 中波 G 短波 B 以及物体的反射性质有关 其中I是人眼中看到的图像 R是物体的反射分量 L是环境光
  • BugkuCTF-MISC题粗心的佳佳

    下载得到3个文件 预期解法应该是根据图片写出脚本 把混淆过的二维码恢复 我发现照着password png也能看出原本的二维码大概长啥样 手动修复得到一张二维码 扫码得到IXE1VDYmMjk base64解码得到压缩包密码 q5T6 29
  • GUI Guider设计UI界面移植到STM32

    GUI Guider设计UI界面移植到STM32 一 什么是GUI Guider 什么是 GUI Guider GUI Guider 是恩智浦为 LVGL 开发了一个上位机GUI 设计工具 可以通过拖放控件的方式设计 LVGL GUI 页面
  • java热部署

    Class forName和ClassLoader loadClass 简书 Eclipse安装热部署热加载插件JRebel 免费版 idea也可用 that summer CSDN博客 Eclipse中使用JRebel实现项目热部署 Ma
  • 【自定义表单】自定义表单设计

    1 后端设计1 diy field pool 字段池 我们定义好的字段类型 diy form 表单表 记录用户自定义的表单 diy form field 表单字段表 记录某张表单中有哪些字段 diy form entity 表单实例表 记录
  • XP下VMware模拟Ubuntu不能使用共享文件夹问题解决vmhgfs

    目前XP下使用VMware workstation 6 0 2虚拟ubuntu后 即使安装了VMware Tools并设置了共享文件夹后 虽然可以看到 mnt hgfs 但仍旧不能访问共享目录的解决方案 问题 主要问题是在安装vmware
  • 向较长的字符串中的指定位置添加指定元素

    今天抓取数据的时候获取到多个url中的翻页数据 但是单个url又需要进行翻页的操作 因此就需要在url中指定的位置添加新的参数用于数据的翻页 如何在指定位置添加指定的参数呢 下面通过一个例子来说明 url https list tmall
  • Qt线程之间通过signal和slot传递数据

    Qt线程之间通过signal和slot传递数据 这种方法主要是为了设置自己定义的数据类型 在不同的线程之间进行通信 如果自己定义的数据类型未经处理之间传递会报如下错误 QObject connect Cannot queue argumen
  • OpenSea进阶之路:成立4年估值超百亿美元

    来源 Odaily星球日报 作者 Jeff Kauflin 2022 新年伊始 加密行业迎来的第一个好消息就是 Opensea 这个 NFT市场的王者在 1 月 5 日宣布完成了一笔高达 3 亿美元的 C 轮融资 估值更是飙升到 130 亿
  • python网页爬虫xpath应用

    一 认识xpath和xml数据 lxml是Python基于xpath做数据解析的工具 from lxml import etree 1 xpath数据解析 通过提供标签路径来获取标签 xpath指的就是标签的路径 1 xpath基本感念 树
  • gin 四.响应数据

    响应数据 一 响应数据 二 c Writer Header Set处理响应头 一 响应数据 在gin中请求接口响应时 实际可以响应会html text plain json和xml等 比如前面gin基础示例中 接口响应时可以使用 gin C
  • 关键字 package、import的使用

    一 package 关键字的使用 为了更好的实现项目中类型的管理 提供了包的概念 使用package声明类或接口所属的包 声明在源文件的首行 包 术语标识符 遵循标识符的命名规则 规范 xxxyyyzzz 见名知意 每 一次 就代表一层文件
  • 安卓页面去掉顶部标题

    我的个人博客 逐步前行STEP 将AndroidManifest xml文件中的
  • 【Visual Studio 2015】安全开发生命周期(SDL)检查

    有的时候写的代码明明没有什么问题就是编译不过 我就觉得奇怪了 我是编译通过的代码 怎么就有问题呢 在VS2015运行 还真是有问题 看错误提示 是VS将这个函数的使用当做错误对待了 在以前的VS版本中 检测并不严格 对于很多警告 我们程序员
  • 微信小程序 view内英文数字不换行

    view标签英文不换行 最近遇到一个bug 在一个text标签内 如果纯粹的中文字符那是可以换行的 如果text标签内出现了英文或者数字的组合 这个标签换行bug了 溢出了 OMG 我的天啊 赶紧去翻翻html5中遇到这样的问题怎么解决 果
  • cobaltstrike流量特征

    cobaltstrike流量特征 cobaltstrike是红队攻防中常用的工具 用以连接目标和cobaltstrike服务器 方便红队进一步对目标渗透 在双方通信过程中cobaltstrike流量具有很明显的特征 1 http 请求 ht

随机推荐