冒号和他的学生们
——程序员提高班纪事
- 开班发言
授人以鱼不如授人以渔 ——古语
冒号开了个程序员提高班,今天迎来了首期学员,他们是问号、句号、逗号、引号和叹号,皆为IT业的新兵。望着台下洋溢着青春与渴望的脸庞,冒号开始了他的开班发言——
大家好!先自我介绍一下,本人姓冒名号字解之。诸位不必叫我老师,就叫老冒好了。比在座各位痴长几岁,“老”是担得的,“师”却不敢妄言。在下编程多年,自觉小有所成,不敢专藏,特开此班与众共享。虽系一家之言、一孔之见,若能抛砖引玉,又何惧方家之哂?疏谬之处,还望海涵斧正,不致自误误人。
客套已毕,言归正传。本班主要采取讨论的形式,只要是软件开发中值得讨论的,但凡本人力之所及,均可共同探讨。
本班的宗旨是:学会不如会学,会学不如会用,会用不如被用。对于一个软件开发者来说,这意味着四个阶段:
学会——掌握一些具体编程知识的初级程序员
会学——能快速而深刻地理解技术并举一反三的程序员
会用——能将所学灵活运用到实际编程设计之中的高级程序员
被用——能设计出广为人用的应用程序(application)、库(library)、工具包(toolkit)、框架(framework)等的系统分析员和架构师
至于被用的更高层次,如发明出主流的设计模式、算法、语言乃至理论等,则可称得上计算机专家了。本班的目的,正是为各位向更高阶段的提升助一臂之力。
大家可能都习惯了在小学、中学和大学里的课堂,那里的知识大多是系统而完备且貌似终极的,那里的学习大多是单向而被动的。但习惯并不意味着享受,更多的是因为别无选择。你们曾被引入一座座知识殿堂,被告知它们如何美轮美奂、巧夺天工,尽管很多时候你们或不以为然、或不解其妙,但还是不得不记下每一处被指点的细微结构。很少有人带你们看看当初为建造这些殿堂而打下的地基、搭设的脚手架,哪怕只是上漆前的模样也好,更遑论一瞻数易其稿的设计图纸了。那些与殿堂相比显得有些原始、甚至丑陋的东西,被有意无意地挡在视线之外。可没有那些,你们将来如何为这些宫殿添砖加瓦,又如何另起楼阁呢?
中国学生恐怕是世界上最擅长考试、最习惯考试、也最厌倦考试的群体了。你们告别了学生生涯,踏上了职业之旅。首先我要恭喜你们,脱离苦海了!同时也要悲告你们,掉进火坑了!危言耸听吗?如果你选择了做程序员,你时时都得学习,没有手把手教你的老师,没有指定的教科书和参考书,有的是层出不穷令人眼花缭乱的新概念、新技术、新问题,好不容易学到一些皮毛,有的已成明日黄花。你时时都得考试,每提交一段代码就是上交一份答卷,你不知道什么时候、什么人会批改,直到——开发组同事发现你的代码难以看懂,系统分析员指出你的程序不符合规范,测试工程师检验到你的软件有bug,客户抱怨你的产品太慢太难用,最后老板倒是告诉你一个好消息:明天起放长假!
其实,又有哪行哪业的人不需要学习和考试呢?IT业只是相对更激烈更富挑战性而已。在这个瞬息万变、适者生存的时代,如果还沿用封闭、被动的学习方式,恐有淘汰之虞。有鉴于此,本班的风格与你们习惯的课堂有所不同:这里的知识不一定是系统或完备的,但一定是生动鲜活的。如果知识是水,我们要挖掘最先涌动的那颗泉眼;如果知识是火,我们要捕捉起初点燃的那颗火花。这里的问题不一定是预设的,结论不一定是终极的,甚至不一定是正确的,但一定是有的放矢、发人深思的。由此决定了这里的学习方式将是开放多元、双向互动的。
广告完毕,现在把话语权交给你们,大家自由发问吧。