问题1:关于当初

  拜读了博客B[1],作者说他在高中时期是:“绝对是在盲目自负中浓墨重彩地走过的,因为自己的勤奋和对数理化的热爱,班级第一名的头衔时刻挂在自己身上,结果除了清华北大之外,对任何学校都不怎么关心,再加上学校对于学生除了考出好成绩之外什么都不关心的教学方式,使得自己对于大学、专业、前途等一切的一切都处于超级茫然状态,仿佛自己的一生只是为了去清华北大读书,仅此而已。”

  我觉得自己比这位作者更不幸,也更幸运。不幸的是我的成绩远远不如他那么优异,班级第一是从来没有考到过的,清华北大也从来都不是自己的目标。高考成绩高不成低不就,差的学校不愿意去,好的学校选择不多,能让我选专业的余地也不多。幸运的是我对自己的未来比博客B[1]的作者有更明确的规划。我非常坚定的希望自己未来能成为一名游戏开发者,所以在选专业的时候我毫不犹豫的全部填写了计算机,数字媒体相关的专业。虽然因为成绩不够,最终被调剂到了一个与计算机毫不相关的专业,但最终也克服重重困难转专业到了软件相关专业,算是给了自己一个还不错的科班背景。

  因为立志进入游戏行业,我在课程外的自主学习内容也全部与此相关。大学已经过了三年,读过的书不少,从计算机基础方面的CSAPP,SICP等等,到语言相关的《C++ primer》,《python核心编程》,《Javascript DOM编程艺术 》等,到图形学相关的《Physically Based Rendering: From Theory to Implementation》,到游戏开发相关的《游戏设计模式》,《游戏设计艺术》,《快乐之道》等都有所涉猎,不敢说都读精了,至少都读了大半,其中PBRT还是啃的英文版,大大提高了自己的英文阅读能力。学过的语言也不少,C,C++,Python,C#是用的比较多,掌握的还算不错的,其他java,js等也有所涉猎,但所知不多。

  项目经历有不少,但还是杂而不精。课内完成的课程设计项目略去不谈,自己在课外完成的大概有如下几个项目:基于c++的正则文法引擎,基于c++的raycasting引擎,基于python的联机对战卡牌游戏,基于unity的联机小游戏。最复杂的项目的话应该要算c++ raycasting引擎,当时写这个项目的时候c++还是学的一知半解,但因为个人更喜欢项目驱动的学习方式,当时想的是边做边学,遇到不懂的再去翻书查资料,结果刚从python转到c++的经验着实害苦了我,明明内存管理一窍不通,还要到处乱指指针,写到后面debug的时候全是玄学段错误,十分让人崩溃,也一度让我放弃了这个项目。最终实在系统的学了C++之后将整个项目重构了才完成的。

  代码量倒是没有仔细算过,粗略估计应该在一两万行吧,我觉得还是荒废了太多时间,写的不够多。目前的代码量还是不足以支撑我写出拥有良好架构的代码,还需再继续努力。

问题2:关于未来

  博客K[2]中的这段话我非常喜欢:“人生短暂,属于自己黄金的时间不多,如果把太多的时间浪费在寻找道路和方向上,很有可能会导致一事无成,要及早确定自己的规划,然后照着这个规划坚定不移的去执行。做规划时最重要的是两个方面:一是清楚地认识自己的能力、优势和性格;二是确定自己的专业和想从事的行业。只有在确定这两方面后,才能做出自己的职业规划。 ”对于我的未来规划,我也确实是按照这样的方式去做的。

  我未来十年的人生目标是:进入游戏行业积累一定的工作经验与人脉关系,然后创业做自己的独立游戏。为了达成这一目标,我给处于大三下学期的自己做了如下规划:

  1.在这一学期好好学技术,好好做自己的独立游戏demo,积攒作品集。同时也要广投简历,争取在暑假找一份不错的实习经历。因为我计划在本科毕业之后去美国读游戏设计的研究生,而我本人的加权成绩并不突出,所以只能通过实习和作品集来强化自己的申请背景。

  2.在暑假的时候认真实习,同时继续做自己的游戏demo,积累作品集

  3.大四开始选校,进行出国申请,但也不能拉下技术方面的学习,做两手准备,如果申请不到自己满意的学校,也可以先找一份工作,积攒两年工作经验再申请留学。

问题3:关于当下

  阅读了博客M[3],其实作为知乎重度用户,我早在大一的时候就关注了这位大神,并读过他的博客,他的经历也是激励我坚持自己的选择转专业到软件学院的精神动力之一。对于这篇博客我不想引用什么单独的句子或段落,我只能说这篇博客让我看到了差距,看到了自己在能力上的不足,看到了优秀的人是怎样学习的,也激励我不断努力学习专业知识。

  对于我的专业,我无疑是喜欢的,否则我也不会花那么多时间在课外进行专业知识的补充学习,我的专业也将成为未来我安身立命的吃饭本领,所以不喜欢也不行啊哈哈。

  就专业技术和能力而言,你属于哪种人?这个问题不太好用给出的例子回答,因为我不是星球大战的粉丝,我选择用另一本书中的两位主角,也是真实世界中存在的两位大神,来做回答。《DOOM启示录》是一本我读了不下五遍的传记,主要写了ID SOFTWARE的两位创始人卡马克和罗梅洛的创业故事。卡马克是一为将技术做到极致的程序员,3D游戏之父。而罗梅洛则是一位天才的游戏设计师,在卡马克的引擎上进行天马行空的运用发挥。我认为就专业技术和能力而言,我更像罗梅洛而不是卡马克。我不是一位技术至上主义者,将程序优化到极致精妙并不是我的热情所在。我更关注技术的运用,如何用已有的技术来创造具有创造力的内容,对游戏gameplay的设计让我夜不能寐。对我来讲,学习技术是为了更好的表达自己,不被技术能力不足而束缚住手脚,因为我是计划在有了一定经验之后做独立游戏创业的。这也解释了为什么我的短期职业目标是游戏程序员而不是游戏设计师。我认为任何有志于做独立游戏的人都应该掌握独立的原型开发能力,而不是只会夸夸其谈画几张图填几张表然后就交给程序员去做。

  你已经具备的专业知识、技能、能力有哪些?学校课程略去不表,在课程之外我比较系统的学习了C++,C#,Unity。目前具有一定的游戏原型开发能力。

  离成为一个合格的当前专业本科毕业生,你在专业知识、技能、能力上还存在哪些方面的差距?这个问题不是很好,我觉得仅仅是成为一个合格的毕业生的话,从学校课程角度来看,对学生的要求其实并不是很高,大概是对大部分课程内容都有一个全面的了解,不错的掌握,就能成为一个毕业生了。但如果从我对自己的要求来看的话,我还存在以下不足:

  1.代码架构能力不足,项目规模大了之后相当混乱。

  2.设计模式运用能力不足,项目规模大了之后设计模式的高下非常影响开发效率。

  3.数学能力较差,目前在学Unity shader开发,几个矩阵就把我算晕了。

  4.项目把控能力不足,不会做进度管理,可能还是有点懒散的原因吧。

  5.希望能学一点点美术技能,网上到处扒素材也是很难受的。

问题4:关于课程

  这一方面阅读了博客E[4] ,里面有一段经历可以说是我的切身体会了:“再下来是学习事件和委托,难度一下子加高了,我不了解C语言的指针,我就无法理解委托这种奇怪的东西,我才刚刚搞明白方法是一段可以重复使用的代码块,然后委托怎么样闹不明白”。这里讲的是作者在速成培训班学.net开发的事。于我则是我在大一还没怎么学专业课的时候自学Unity,因为unity用的也是.net,这一段关于学习委托,事件的经历我深有感触,也让我意识到了学习科班知识的重要性。

  我在大学里印象最深刻的课程应该是数据结构与算法,授课老师是沈刚老师和邱德红老师。数据结构与算法这门课我是在学校开课之前就已经自学了不少了的,自以为上课应该能很轻松,但事实却不是这样,老师往往会从书本基础的东西出发,往深处引导,提出一些我之前自学的时候完全没去思考的问题,上完课之后我感觉自己对这门课的理解深入了不少。

  科班出身与速成的培训班有什么区别?这个问题我也只能从阅读参考博客,自己在网络上看到的经历来回答。我认为科班出身的人有更好的计算机基础知识,就算你大学四年学得不怎么样,知识都忘的差不多了,但至少构建出来的知识网还在,只是网上的内容遗忘了,到了你工作的时候遇到这一块知识你可以很快的捡起来。而培训班出身的程序员则大多不具备这方面的知识结构,可能在刚入职的时候看不出多大劣势,但随着工作的深入总会遇到网络上的框架,库解决不了的问题,总会遇到需要自己深入底层去解决的问题,这时候对于非科班程序员来说可能就要在短时间内快速学习一门从没接触过的知识了,而不像科班程序员,虽然记得不多了,但至少知识框架还在,学起来快一些。其实我个人觉得两者区别不会特别大,主要影响程序员之路走的顺不顺的还是看自己的学习能力和独立思考能力,还有就是有没有终身学习这一思想,如果一个科班程序员毕业入职了就觉得自己万事大吉不用学习了,那他肯定会被一个速成培训班出身但一直在坚持学习新知识的程序员远远甩在身后。

问题5:关于师生

  邹欣老师在博客N[5]中说:“说了这么多不好的例子,  我心目中理想的师生关系是什么?  是  Coach / Trainee (健身教练 / 健身学员) 的关系。” 我认为这种师生关系非常好。

  教练/学员 关系说白了就是学生是主动花钱去找教练学习健身的,所以他一定是主动的一方。这在我们大学学习中也是非常适用的。如果老师是主动方,只是把各种知识灌输给学生,学生在下面听的云里雾里,那么学习效果应该不会很好。所以良好的师生关系我觉得一定是学生主动,学生必须要明确自己的目的,要和老师积极互动,勇于提出自己的不懂点,想深入了解的点。

  其实这种关系是很难达成的,因为现在的教育模式就是如此,你很难让每个学生都发自内心的想来学习,想主动从老师那里获取知识。如何达成这种关系,我只能提一点自己的建议,一是拉近师生距离,如果老师不在高高在上,而是和同学维持一种朋友关系,把自己的切身经历分享给学生,争取站在学生的角度来谈问题,引起学生共鸣;二是多设计实践内容,让学生在做中学。项目驱动的学习是方式也是我比较喜欢的,学起来不枯燥,有动力,还能在完成项目之后获得不小的成就感。但这里的难度在于如何选一个好的项目给学生。一个好的项目应该是凭借学生当前的能力无法完成,但是只要稍微努力一番,学习一定量的知识之后就可以完成的。这样的项目不会让学生觉得无聊,也不会让学生觉得无处下手。

 

[1]:https://book.douban.com/subject/4006425/discussion/22803961/

[2]:http://blog.csdn.net/haoel/article/details/1688104

[3]:https://www.cnblogs.com/geniusvczh/archive/2011/12/16/2290808.html

[4]:https://www.cnblogs.com/geniusalex/p/4928713.html

[5]:http://www.cnblogs.com/xinz/archive/2011/05/16/2048044.html