距离元旦也就十几天了,2010就要过去了。从第一行Hello World到现在,已经有10年了,所幸从未中断,因此从某种意义上来讲,我已经写了10年的程序了。每个人回顾以往走过的路的时候,往往会发现今天的结果来源于之前的一些“关键步骤”。显然我也是一样的,所以这次的总结跟以往不同,就不列出之前做过的种种程序,而是聊一聊这些关键步骤和影响我的人给我带来的影响。当然算得上关键步骤的,只能是那些能够左右人生轨迹的事情。
老爸、外婆和爷爷
这倒不是说老爸老妈把我生下来了怎么样怎么样。老爸在我幼小的时候教我一些简单的数学,给了我很多书,还有外婆教我识字,结果就是我从大概二年级开始就能够阅读老爸留给我的一些科普读物了。这些科普读物是他小的时候看的,上面还有语录,每一篇的几位都是伟大的思想指引我们前进云云。当然这并不妨碍书本的内容的质量。老爸的书也都一直保存得很好,后来我爷爷也给我弄了一套科普的启蒙读物,现在还保留着,只不过很多翻烂了。这套书是翻译的,小日本写的,不过内容却十分丰富。里面包含了数学、物理、生物、手工和一些其他的很多东西,甚至连汽车和飞机的结构都有。加上外婆也十分赞成并且指引我看这些书,其结果就是从小就对一些科学的事情感兴趣——当然也包括数学。从三年级开始到中学,老爸就给我买一些数学奥林匹克的书。当然这并不是让我去参加竞赛用的,只是他觉得既然他小时候也喜欢搞数学那我也应该继承这个优点,从而就让我去弄那些东西了。在五年级的时候,那次全市的数学竞赛老爸也帮了我很多,我也拿了很好的成绩。维持了那么多年从不间断的强大的自信心和信念就是从这个时候开始的。人喜欢搞一些事情很大程度上都是因为那些事情曾经被搞得很好,因此我也就喜欢上数学了,后来有机会体验到了数学的定理和公式的美妙之处,让我一发不可收拾。
汕头市华侨中学的领导们
这是个好学校。我整个读书的生涯,唯一一次体验到什么是素质教育就是在这里。可是后来由于各种微妙的问题导致这所学校的竞争力下降,这从某种程度上来说算是悲哀吧。我第一次接触到编程就是在这里。初中二年级的时候,学校开Basic的课,但是并没有试图让我们参加竞赛——其实连提都没提,只是就这么当成正常的课来上。把编程学得好,满足下面两个条件的话基本上可以说就是在走捷径,第一个是会从心底里对公式和定理产生美的感觉,第二个就是要持续不断地在编程上体会到成就感。这也是我为什么在一篇写给师弟师妹的文章里面提到刚开始的时候学习制作软件界面也是十分重要的,因为这会让你产生源源不断的动力,好让你给以后学习算法打下精神基础。QBasic教完自然就教Visual Basic了,当然都是很浅的内容。不过我由于受到吸引,从那以后就一直往书店里面跑,去扫荡各种跟Visual Basic有关的书,后来学到了不少。我初二在新华书店很偶然的发现了那本《Visual Basic高级图形程序设计教程》,不过坦白说我其实是被插图吸引的。那个时候发现Visual Basic竟然可以仅凭代码绘制出那么漂亮的图形,从而兴趣提高了不少。不过学习这个也是很辛苦的,这导致我不得不在初三的时候就去寻找并学习立体解析几何,高中的时候提前学习数学分析,都是为了看懂这本书啊。这本书我从初二一直看到上了大学,还带去宿舍看,看了好多年才把它每一页都琢磨透。这从某种程度上来说也算是缘分吧。
英语补习老师李培涛
初中的英语被我一不小心搞的一塌糊涂,甚至到了快不及格的地步了,所幸当时我妈(特别感谢)非得让我找一个英语的补习老师,所以就遇到了李老师了。虽然说补习课是要交钱的,不过李老师人倒是很好,不是为了收钱而收钱,还是花了很大精力实践了因材施教的。我的英语就被他给搞好了。我们知道英语对于编程来说是不可或缺的一个重要条件,因为中文的资料从数量或者质量上来说,都远远比不上英文的资料。如果英语不好,这除了阻止知识到达你的大脑里面以外,没有好处。
汕头市第一中学的张朝阳老师
高一的时候是张老师给我们上的计算机课,这个时候他告诉我们有NOI这种东西,不过我着实对算法没什么兴趣,因为那个时候我对图形更感兴趣,而且绝大多数图形的算法都不是搜索算法,而是跟数学知识有着更直接的联系。因此我就没有花多少时间在算法上面了。不过其实什么时候学习算法并不重要,只要你在工作之前学了就好了。原本那个时候也想靠NOI看看能不能混个保送什么的,由于我其实也不太认真做这个,因此只好亲自高考了。但是在这里我并不是说张老师教给了我什么知识,其实那段时间我都是靠自学。只不过因为我在非NOI的编程竞赛里面的成绩很好,所以他给我大开方便之门,让我可以利用学校的各种资源。我们都知道万恶的学校经常会不知不觉做出一些扼制青少年素质全面发展的事情,因此张老师给我的方便是十分重要的,包括我可以拥有机房的钥匙以便我在任何时候可以进去使用计算机写程序。课还是要上的,但是由于我每一年都参加NOI,所以自习课我就可以跑去机房了,写代码的时间也就大大增加了,这着实是十分有好处。
CSTC的同僚们
CSTC我现在也搞不清楚究竟他们的使命是干啥,不过印象里面就是北京工业大学的几个写代码比较厉害的人搞起来的。我有幸在上高中的时候接触到了他们,其中曾毅和唐良两个人对我的帮助很大。曾毅告诉我为了将来的前途也好,为了自己编程能力的发展也好,搞一个好学校总是必须的。唐良是在我上了大学之后告诉我这个世界上还有《算法导论》这本书,让我的数据结构和算法知识有了十分稳固的基础。当然其实不会数据结构和算法并不是说你就写不了什么复杂的程序,而只是导致你写出来的复杂的程序质量很差性能比较低而已。在高中的时候我已经做出了一个pascal的无指针版本的解释程序了,不过在这个时候我说实话除了链表以外,什么都不知道,编译原理也不知道,所有的东西都是硬凑出来的。当然程序还是能运行的,就是写好之后就无法再修改了,实在改不下去。
华南理工大学的陈健老师
高三的时候写出来的pascal解释器实在是让我十分兴奋,所以在刚入学不久听说我们的班主任陈建老师教编译原理的,我就跟她说我对这方面有兴趣了,而且当时还为我的下一个解释器写了一个很长的设计文档。这份文档一开始只是写给我自己的,后来顺便就给她看了。陈老师倒是没说什么,过了许久,给了我一本《编译原理》。当然这不是龙书,说实话那本课本也非常糟糕,只是这让我知道这个世界上还有这种东西,也就足够了。大一的时候迅速看完了这本书,觉得很不爽,就把龙书搞到手,然后看了一部分。大一结束的时候就做出一个面向对象带模板和垃圾收集的静态类型脚本语言了,陈老师实在是功不可没。作为老师,能教你什么是不重要的,告诉你你还有什么不会才是最重要而且最有用的。
华南理工大学的陈天老师
这位老师给我们上了大一的C++课,不仅功底扎实,而且可以课也讲得很好,无奈在我大三的时候说是实在不行了,跑去做程序员了。我就不对这件事情作评论了。陈天老师不仅告诉了我《设计模式》是十分重要的,而且也经常鼓励我进行更加深入的学习,对我帮助很大。
g9yuayon
这是个人才啊,而且编程水平也十分地令人叹为观止。不过他对我帮助最大的莫过于告诉我这个世界上还存在着《Parsing Techniques》了。这是世界上最好的描述语法分析的书,连龙书的前几个章节都不如这本书讲得好。当然龙书还是包含了后端的,而《Parsing Techniques》是只有前端的。不仅如此,他还给了我不少论文看。其实如果看得下去的话,论文带来的帮助远比算法要大得多。因为数据结构和算法真正普遍实用的也就那么几种,其实知识量是十分少的,还比不上数学分析。既然数学分析一年就可以上完,那实用数据结构和算法其实是不需要花那么久的。不过那些更加深刻的数据结构和算法当然不在此列了——还是很多的。但是论文,是方向性十分强,而且解决的问题其实范围更狭窄的东西。只不过如果认真研读论文的话,可以学到很多知识以外的东西,譬如说作者是如何整理他们的结果的。遇到好心的作者的话你连他们怎么发现这个事情都可以知道。由于从小就喜欢数学,所以看论文的时候看得十分入迷,也就看得更加认真仔细了。g9yuayon介绍给我的论文的确都是十分漂亮的,在我掌握了知识的同时,又让我的基础变得更扎实,并且对编程也更加喜爱了。
龚敏敏一伙
这倒是一个共同作用的结果,也是我第一个联系比较紧密的圈子。群里面的人都分布在各大公司,而且水平都不错,并且都是在研究图形学的。至于说为什么会跟他们接触,当然是因为高中的时候对图形学特别热衷的关系了。虽然后来转去做编译器了,不过学习图形学并不是一个浪费,因为这个漫长的过程让我的数学知识变的扎实,而且也产生了很多题目让我练习编写一些至少有点小规模的程序。实践是检验真理的唯一标准,这话是不错的。
我还要提一下LYT同学。LYT并没有在编程上帮助我,其实是我在教LYT写代码,只是LYT肯让我教那么久着实也不容易。为了教LYT学会写简单的编译器,让我不得不将我学过的知识从头到尾整理了一遍,而且还让我思考如何使得一个人在学会编程的同时可以保持乐趣、自信心和良好的习惯。这个过程十分有意义,不仅让我有一个机会可以从头整理我学会的知识,思考一些更加深刻的东西,让自己对知识的掌握更加深刻和牢固,而且其实对被教也是有帮助的。利己利人,何乐不为。LYT经过了我三年的精心指导,从对编程什么都不知道开始,最终顺利拿到了网易的offer,而且工资也没比我低多少,实在是让我感到十分高兴。
在我2009年7月份毕业之后就去了Microsoft而且尚未跳槽。从毕业后开始到现在这段时间现任女朋友2A同学给了我很大的支持,并没有觉得整天宅在电脑前写代码看动画片很没前途,而且还帮忙寻找各种书带我去书店鼓励我等等,对此十分感谢。
当然这并不是说其他人就对我没有帮助,而只是没有满足文章一开始提出来的“左右人生轨迹”的条件而已。因为对我有帮助的人其实非常多,志同道合的朋友也不少,在这里我就不一一列举了。
祝各位读者们也能够对编程感兴趣而且在这个道路上不断坚持越走越远。
<><><><><><><><><><>
后记。突然想起来我忘记写上,其实小日本的动画片都是一些非常具有教育意义的东西,这让我学会了很多黑暗的社会没有任何机会让我知道的人生的道理。大家一定要看啊。
<><><><><><><><><><>
后记2。今天空明流产说他是搞图形那一群人里面为数不多的还做做shader前端的,所以我再提一下,啊哈哈哈。
posted on 2010-12-18 09:17
陈梓瀚(vczh) 阅读(10588)
评论(33) 编辑 收藏 引用 所属分类:
启示