冒号课堂§1.1:开班发言
冒号课堂
第一课 开班导言(1)
课前导读
第一课为整个课堂学习的内容和风格定调,主要围绕三个问题进行展开:要成为一个优秀的程序员,最需要学习什么知识?领会什么思想?具备什么精神?
本课共分五节——
1.开班发言——程序员的四层境界
2.首轮提问——什么语言好?
3.语言选择——合适的就是好的
4.初识范式——程序王国中的世界观与方法论
5.软件技术——实用还是时髦?
1.1开班发言——程序员的四层境界
授人以鱼不如授人以渔 ——古语
关键词:程序员,学习,知识,思想,精神
摘要:对程序员的一些忠告和建议
!预览
· 学会不如会学,会学不如会用,会用不如被用
· 如果知识是水,我们要挖掘最先涌动的泉眼
· 如果知识是火,我们要捕捉起初点燃的火花
· 如果知识是树,其树大根深,不究立固之本则无以知过去;其枝繁叶茂,不握支撑之干则无以知当下;其蓬勃旺盛,不察生长之点则无以知将来
· 越是喧嚣的世界,越需要宁静的思考,让躁动的心灵得以平息,让蕴藏的灵性得以释放
· 知识之上是思想,思想之上是精神
?提问
- 软件开发者的成长需要经历有哪些阶段?
- 要想在IT业中生存与发展,传统的学习方式是否够用?
- 优秀程序员应该具备哪些素质?
:讲解
冒号开了个程序员提高班,今天迎来了首期学员,他们是问号、句号、逗号、引号和叹号,皆为IT业的新兵。望着台下洋溢着青春与渴望的脸庞,冒号开始了他的开班发言——
大家好!先自我介绍一下,本人姓冒名号字解之。诸位不必叫我老师,就叫老冒好了。比在座各位痴长几岁,“老”是担得的,“师”却不敢妄言。在下编程多年,自觉小有所成,不敢专藏,特开此班与众共享。虽系一家之言、一孔之见,若能抛砖引玉,又何惧方家之哂?疏谬之处,还望海涵斧正,不致自误误人。
客套已毕,言归正传。本班主要采取讨论的形式,只要是软件开发中值得讨论的,但凡本人力之所及,均可共同探讨。
本班的宗旨是:学会不如会学,会学不如会用,会用不如被用。对于一个软件开发者来说,这意味着四个阶段:
学会(知其所然)——掌握一些具体编程知识的初级程序员
会学(知所以然)——能快速而深刻地理解技术并举一反三的程序员
会用(人为我用)——能将所学灵活运用到实际编程设计之中的高级程序员
被用(我为人用)——能设计出广为人用的应用程序(application)、库(library)、工具包(toolkit)、框架(framework)等的系统分析师和架构师
至于被用的更高层次,如发明出主流的设计模式、算法、语言乃至理论等,则可称得上计算机专家了。本班的目的,正是为各位向更高阶段的提升助一臂之力。
大家可能都习惯了在小学、中学和大学里的课堂,那里的知识大多是系统而完备且貌似终极的,那里的学习大多是单向而被动的。但习惯并不意味着享受,更多的是因为别无选择。你们曾被引入一座座知识殿堂,被告知它们如何美轮美奂、巧夺天工,尽管很多时候你们或不以为然、或不解其妙,但还是不得不记下每一处被指点的细微结构。很少有人带你们看看当初为建造这些殿堂而打下的地基、搭设的脚手架,哪怕只是上漆前的模样也好,更遑论一瞻数易其稿的设计图纸了。那些与殿堂相比显得有些原始、甚至丑陋的东西,被有意无意地挡在视线之外。可没有那些,你们将来如何为这些宫殿添砖加瓦,又如何另起楼阁呢?
中国学生恐怕是世界上最擅长考试、最习惯考试、也最厌倦考试的群体了。你们告别了学生生涯,踏上了职业之旅。首先我要恭喜你们,脱离苦海了!同时也要悲告你们,掉进火坑了!危言耸听吗?如果你选择了做程序员,你时时都得学习,没有手把手教你的老师,没有指定的教科书和参考书,有的是层出不穷令人眼花缭乱的新概念、新技术、新问题,好不容易学到一些皮毛,有的已成明日黄花。你时时都得考试,每提交一段代码就是上交一份答卷,你不知道什么时候、什么人会批改,直到——开发组同事发现你的代码难以看懂,系统分析员指出你的程序不符合规范,测试工程师检验到你的软件有缺陷,客户抱怨你的产品太慢太难用,最后老板倒可能告诉你一个好消息:明天起放长假!
其实,又有哪行哪业的人不需要学习和考试呢?IT业只是相对更激烈、更富挑战性而已。在这个瞬息万变、适者生存的时代,如果还沿用封闭、被动的学习方式,恐有淘汰之虞。有鉴于此,本班的风格与你们习惯的课堂有所不同:这里的知识不一定是系统或完备的,但一定是生动鲜活的。如果知识是水,我们要挖掘最先涌动的泉眼;如果知识是火,我们要捕捉起初点燃的火花;如果知识是树,其树大根深,不究立固之本则无以知过去;其枝繁叶茂,不握支撑之干则无以知当下;其蓬勃旺盛,不察生长之点则无以知将来。这里的问题不一定是预设的,结论不一定是终极的,甚至不一定是正确的,但一定是有的放矢、发人深思的。由此决定了这里的学习方式将是开放多元、双向互动的。
越是喧嚣的世界,越需要宁静的思考,让躁动的心灵得以平息,让蕴藏的灵性得以释放。学习编程没有速成大法、没有必杀之技、没有锦囊秘笈、没有终南捷径,只有思考、实践、再思考、再实践。中国的IT界乃至整个学术界过于浮躁和急功近利了,既盲从又自大,缺乏务实精神与研究精神、独立精神与合作精神、批判精神与自省精神。如果一个程序员沾染这种风气,哪怕有再好的学习方法和学习能力,他都注定与“优秀”绝缘。这就是本班极力倡导并将贯穿始终的理念——知识之上是思想,思想之上是精神。
我的开场白到此为止,现在把话语权交给你们,大家自由发问吧。
。总结
- 软件开发者的成长阶段:学会->会学->会用->被用。
这是一个从“知其所然”到“知所以然”、从“人为我用”到“我为人用”的历程。
- 传统的学习方式大多有如下特征:
封闭——系统完备的终极式知识
单向——师教生学的单向式传输知识
被动——师命生从的被动式接受知识
静态——只注重知识的现状,忽略知识的起源、历程和未来趋势
继续沿袭这种学习方式,是很难在竞争日趋激烈、技术日新月异的IT业中求生存、谋发展的。开放多元、双向互动的现代课堂乃大势所趋。
- “知识之上是思想,思想之上是精神。”
一个优秀的程序员,除了要迅速掌握知识、善于领悟思想外,还必须具备务实与研究精神、独立与合作精神、批判与自省精神。