具体描述
《冒号课堂》以课堂对话的形式,借六位师生之口讲述编程要义。上篇对编程范式作了入门性的介绍,并对一些流行的编程语言进行了简评;下篇侧重阐发软件设计思想,其中在范式上以OOP为主,在语言上以C++、Java和C#为主。全书寓庄于谐,深入浅出,既可开阔眼界,又能引发思考,值得编程爱好者品读。
作者简介
郑晖,男,年方不惑。1986年入武汉大学数学系学习,1993年毕业后到高校教书三年。1996年赴美攻读数学博士学位,1998年开始选修计算机课程。2000年获计算机硕士学位,随后到华尔街一家IT公司就职。2004年底回国,先在广州一所IT外企工作,后出任一家软件公司的技术总监。从2008年4月起,在网上发表连载博文《冒号课堂》(原名《冒号和他的学生们》)。个人博客:http://blog.zhenghui.org。
目录信息
第1课 开班导言
1.1 开班发言——程序员的4层境界
1.2 首轮提问——什么语言好?
1.3 语言选择——合适的就是好的
1.4 初识范式——程序王国中的世界观与方法论
1.5 开发技术——实用还是时髦?
第2课 重要范式
2.1 命令范式——一切行动听指挥
2.2 声明范式——目标决定行动
2.3 对象范式——民主制社会的编程法则
2.4 并发范式——合作与竞争
第3课 常用范式
3.1 泛型范式——抽象你的算法
3.2 超级范式——提升语言的级别
3.3 切面范式——多角度看问题
3.4 事件驱动——有事我叫你,没事别烦我
第4课 重温范式
4.1 函数范式——精巧的数学思维
4.2 逻辑范式——当算法失去了控制
4.3 汇总范式——一张五味俱全的大烙饼
4.4 情景范式——餐馆里的编程范式
第5课 语言小谈
5.1 教学计划——接下来的故事
5.2 数据类型——规则与变通
5.3 动态语言——披着彩衣飞舞的脚本语言
5.4 语言误区——语言的宗教情结
第6课 语言简评
6.1 系统语言——权力的双刃剑
6.2 平台语言——先搭台后唱戏
6.3 前台语言——视觉与交互的艺术
6.4 后台脚本——敏捷开发的利器
下篇:抽象机制与对象范式
第7课 抽象封装
7.1 抽象思维——减法和除法的学问
7.2 数据抽象——“做什么”重于“怎么做”
7.3 封装隐藏——包装的讲究
第8课 抽象接口
8.1 软件应变——随需而变,适者生存
8.2 访问控制——代码的多级管理
8.3 接口服务——讲诚信与守规矩
第9课 继承机制
9.1 继承关系——继承财富,更要继承责任
9.2 慎用继承——以谨慎之心对待权力
第10课 多态机制
10.1 多态类型——静中之动
10.2 抽象类型——实中之虚
第11课 值与引用
11.1 语法类型——体用之分
11.2 语义类型——阴阳之道
第12课 设计原则
12.1 间接原则——柔胜于刚,曲胜于直
12.2 依赖原则——有求皆苦,无欲则刚
12.3 肉聚原则——不是一家人,不进一家门
12.4 保变原则——与魔鬼打交道的艺术
第13课 设计模式
13.1 创建模式——不要问我从哪里来
13.2 结构模式——建筑的技巧
13.3 行为模式——君子之交淡如水
13.4 闭班小结——软件无形,编程有道
索引
设计手记
编辑手记
· · · · · · (收起)
读后感
在找工作期间看的这本书,里面一些辩证的观点和独立思考的精神是很启发人的,有些知识点比如多态实现(第10课)等现学现卖,还确实帮了不少忙,有点相见很晚的感觉。 作者不愧数学出身,书的逻辑结构很清晰,读起来很有层次感。副标题说本书分为两部分,第一部分:编程范式,...
和这本书一样,我把这本书也分成两个部分,其实我是冲着编程范式这一部分买的这本。 在本书第一部分,对编程范式都有了一个大体的介绍,虽然说限于篇幅不会深入,但是至少让我们都有了一个大致的了解,而且以对话+幽默+哲学的形式来反映编程范式我个人认为是非常合适的做法。 ...
和这本书一样,我把这本书也分成两个部分,其实我是冲着编程范式这一部分买的这本。 在本书第一部分,对编程范式都有了一个大体的介绍,虽然说限于篇幅不会深入,但是至少让我们都有了一个大致的了解,而且以对话+幽默+哲学的形式来反映编程范式我个人认为是非常合适的做法。 ...
对作者无比敬仰,可惜怎么只出了一本书,而且还都不再版了。 是不是国人都热衷XXX从入门到精通,30天学会XXX之类的书了。 这是一本帮助程序员构造编程世界价值观的书,作者寓庄于谐,字字珠玑。 其实我对这种课堂形式的书籍没好感,大多写的废话连篇,自娱自乐。 唯独作者对这...
用户评价
这本书,我是在一个偶然的机会下接触到的。当时我正在寻找一些能够拓展思维、激发灵感的读物,无意中翻到了它。我被它的封面设计吸引了,那种简洁而又不失深度的风格,让我觉得这本书一定蕴含着不寻常的内容。翻开第一页,我被作者的文字功底深深折服。她/他(我不太确定作者的性别,因为书中并没有过多提及)的语言就像一股清泉,缓缓流淌,却能触及人心最柔软的地方。 这本书并没有像很多畅销书那样,一开始就抛出惊世骇俗的观点,或者给你一套立竿见影的解决方案。相反,它更像是一位循循善诱的长者,用一种极其温和的方式,引导你审视自己,审视周遭的世界。书中探讨的许多问题,都是我们日常生活中常常会遇到,但又常常被忽略的。比如,我们是如何形成固有的思维模式的?我们又是如何被社会环境所塑造的?这些看似宏大而抽象的问题,在作者的笔下,却变得具体而 relatable。 我特别喜欢书中对于“惯性思维”的剖析。它并没有简单地将惯性思维定义为“坏”,而是深入浅出地分析了它形成的原因,以及它在某些情境下所起到的积极作用。然后,再巧妙地引出打破惯性思维的重要性,以及一些切实可行的方法。这些方法并没有什么“奇技淫巧”,更多的是一种内在的觉察和反思。读完这部分,我仿佛被打通了任督二脉,对很多曾经困扰我的问题,都有了新的认识。 让我感到惊喜的是,这本书的叙事方式也相当有特色。作者并没有采用流水账式的叙述,而是将理论知识巧妙地融入到一些生动的故事和案例中。这些故事,有的是作者亲身经历的,有的是她/他从生活中观察到的,还有的则是从历史和文化中挖掘出来的。这些故事,或幽默,或感人,或引人深思,它们就像一颗颗珍珠,串联起了书中所有的知识点,让原本可能枯燥的理论变得鲜活起来。 总的来说,这本书给我的感觉就是“润物细无声”。它没有强迫你接受任何观点,而是提供了一个思考的框架,让你自己去探索,去发现。读完这本书,我感觉自己的内心更加宁静,对世界的看法也更加开阔。我开始更愿意去倾听不同的声音,去理解不同的观点。它让我明白,成长并非一蹴而就,而是一个持续不断地自我探索和完善的过程。我墙裂推荐给所有希望在精神层面有所成长,寻求内在平静的朋友们。
在电子书泛滥的时代,我依然喜欢纸质书带来的那种质感,以及翻页时沙沙作响的声音。当这本书静静地躺在我手中时,我能感受到一种踏实和亲切。我通常会在睡前阅读,用它来结束一天,并为第二天做好思想上的准备。这本书的文字风格,我只能用“清澈”来形容。没有华丽的辞藻,也没有生涩的术语,就像一位真诚的朋友,娓娓道来。 我特别喜欢书中关于“认知偏差”的探讨。很多时候,我们自以为看到了真相,但实际上,我们看到的可能只是经过我们大脑过滤和加工后的“二手真相”。作者用了很多日常生活中非常 relatable 的例子,比如我们为什么会更容易相信自己愿意相信的事情,或者我们为什么会对一些不熟悉的事物产生偏见。这些例子,让我恍然大悟,原来我曾经犯过那么多“无意识”的错误。 让我感到惊奇的是,这本书在探讨“思维方式”的时候,竟然能引申出很多关于“人际关系”的见解。作者认为,很多我们与他人的冲突,其实都源于我们思维方式的差异。当我们能够理解对方的思维模式,能够站在对方的角度去思考问题时,很多矛盾自然就消解了。这让我意识到,提高自己的思维能力,不仅仅是为了更好地认识自己,更是为了更好地与他人相处,建立更和谐的人际关系。 这本书的结构安排也十分巧妙。它并非孤立地呈现某个理论,而是将不同的概念有机地联系起来,形成一个完整的知识体系。读起来有一种层层递进的感觉,每读完一个章节,都会对前一个章节的内容有更深的理解。作者的逻辑非常清晰,过渡自然,不会让人产生“跳跃感”。即使是对逻辑思维不太敏感的读者,也能轻松跟上她的思路。 对我而言,这本书就像一个“思维的工具箱”。它里面装满了各种各样的工具,让我能够更有效地去分析问题,解决问题。它并没有给我一个现成的答案,而是教会了我如何自己去寻找答案。读完之后,我发现自己开始更审慎地对待信息,更愿意去质疑,也更能够接受不同的意见。这是一种非常宝贵的成长。我非常感谢作者,能写出这样一本有深度、有温度的书。
拿到这本书的时候,我其实带着一种有点忐忑的心情。毕竟,市面上关于“思维模式”的书籍实在是太多了,很多都大同小异,看完之后感觉收获寥寥。但是,这本书的标题,就让我觉得有点与众不同。它没有用那些华而不实的词汇,而是直接点出了核心。阅读过程中,我发现作者的切入点非常独特。她/他并没有从“你应该怎么想”的角度出发,而是先让我们看到了“我们为什么会这么想”。 书中有一段关于“思维定势”的描述,我印象特别深刻。作者用了一个非常贴切的比喻,把我们的思维比作一个已经建好的房子,里面摆满了各种家具,而我们习惯了在这个房子里生活,不愿意去改变里面的陈设,更别说去拆掉重建。这个比喻一下子就点醒了我。我一直以为自己很“开明”,很愿意接受新事物,但仔细想想,我内心深处,确实存在着很多根深蒂固的“家具”,阻碍了我看到更广阔的世界。 作者并没有停留于理论的层面,而是提供了许多非常实用的小练习。这些练习,不需要花费太多时间和精力,但却能有效地帮助我们去识别自己思维中的“盲点”。我尝试了其中几个,比如“反向提问法”,一开始觉得有点别扭,但坚持下来,发现真的能让我从不同的角度去看待问题。很多时候,我们之所以会陷入困境,并不是因为问题本身有多么复杂,而是因为我们被自己的思维方式所限制了。 这本书最让我欣赏的一点是,它对“改变”这件事的态度。它并没有贩卖焦虑,也没有鼓吹激进的变革。相反,它强调的是一种循序渐进、自我赋能的改变。作者认为,真正的改变,源于内心的觉醒,而不是外在的压力。这种温和而坚定的力量,让我觉得非常受用。读完之后,我没有立刻觉得自己变成了一个“全新的人”,但我能清晰地感受到,我开始以一种更积极、更开放的态度去面对生活中的挑战。 我觉得,这本书不仅仅是一本关于思维的书,更是一本关于“如何更好地生活”的书。它教会我们如何与自己的思维和解,如何在这个日新月异的世界里,保持内心的清醒和独立。如果你也曾因为思维的局限而感到困扰,或者只是想让自己的生活多一些色彩,我强烈推荐你读读这本书。它或许不会给你带来“醍醐灌顶”的体验,但一定会让你在不经意间,收获一份意想不到的成长。
我是一个对“为什么”总是充满好奇的人。当我在一个陌生的领域遇到一个我无法理解的现象时,我的大脑就会开始疯狂运转,试图找到背后的逻辑和原因。正因如此,我总是被那些能够深入剖析事物本质的书籍所吸引。这本书,恰恰就满足了我这种“求知欲”。它没有给我一个“what”,而是告诉我一个“how”和一个“why”。 书中有一个关于“自我设限”的章节,我看了之后,简直像被雷击中了一样。作者描绘了我们是如何通过内心的声音,给自己设定各种各样的“不可能”,然后又真的将这些“不可能”变成了现实。我回想起自己曾经无数次想要尝试新事物,但最终都因为“我做不到”、“我没那个能力”而放弃。那一刻,我真的觉得,我们最大的敌人,往往不是外在的困难,而是我们自己内心的那个声音。 让我觉得很有趣的是,作者并没有将“改变思维”描述成一件多么困难的事情。相反,她/他用非常轻松幽默的笔触,展现了改变带来的乐趣和可能性。书中提到的一些“小实验”,看似微不足道,但却能带来意想不到的效果。比如,每天刻意去观察一件自己平时不会注意的东西,或者尝试用一种全新的方式去完成一项日常任务。这些小小的改变,就像在我们原本平静的湖面上投入一颗石子,激起了层层涟漪。 这本书给我最大的启发,在于它让我看到了“可能性”的边界是可以拓展的。很多时候,我们认为自己做不到的事情,并非真的能力不足,而是我们的思维方式限制了我们。当我们愿意去挑战那些“不可能”,去尝试那些“未知”时,我们会发现,原来自己比想象中更强大。这种自信心的增长,远比任何具体的知识都要珍贵。 这本书的行文风格,我只能用“治愈”来形容。它没有冰冷的理论,也没有居高临下的说教。它就像一位知心的朋友,在你迷茫的时候,给予你鼓励和指引。它让你看到,改变并非是要让自己变得面目全非,而是在保持自我的前提下,不断地去发现和完善。如果你也曾因为固有的思维模式而感到束缚,那么这本书,一定会给你带来意想不到的惊喜。
说实话,我最近比较迷茫,总觉得自己被困在了一个固定的模式里,做什么事情都提不起劲。在这种状态下,我急切地想找到一些能“点醒”我的东西。我是在一个朋友的推荐下,才接触到这本书的。一开始,我并没有抱太大的期望,但越读越觉得,这本书真的戳到了我。 我尤其喜欢书中关于“观察者”角色的描绘。作者认为,我们很多时候都沉浸在自己的情绪和想法中,忘记了我们也可以作为一个独立的“观察者”,去客观地看待自己,看待这个世界。这种“抽离”出来的视角,让我意识到,原来很多让我痛苦纠结的事情,从一个更宏观的角度来看,并没有那么难以接受。 书中有一个关于“非黑即白”思维的论述,让我受益匪浅。我们总是习惯于将事情简单地分为“好”或“坏”,“对”或“错”。但实际上,很多事情都是灰色地带,充满了各种可能性。当我们可以跳出这种二元对立的思维模式,用更包容、更开放的态度去理解事物时,我们的内心会变得更加平静。 让我印象深刻的是,作者在书中并没有提供现成的“心灵鸡汤”。相反,她/他更多的是提供一种思考的方法,一种探索的工具。她/他不会告诉你“你应该怎么做”,而是会引导你去思考“为什么我会这么想”、“我还可以怎么想”。这种“赋权”式的写作方式,让我觉得自己更有力量,也更有能力去解决自己的问题。 读完这本书,我并没有觉得自己立刻就“脱胎换骨”。但我觉得,我的内心多了一份清明,多了一份力量。我开始更愿意去尝试,去探索,去拥抱那些未知。这本书就像一颗种子,播撒在我的心里,我相信,它会在我未来的生活中,慢慢地生根发芽,开出属于我自己的花朵。我非常感谢这本书,它给了我重新审视自己和世界的机会。
废话太多,只看上部即可。
程序细节只看得懂四分之一,不过俺晓得做事情的好模式总是相似的。
前面部分的编程范式挺不错的,至少让我对这一块有了了解;后面部分是老生常谈的面向对象设计,作者讲的蛮有突破性,但是设计这档子事,是靠经验中体会来的
“学会不如会学,会学不如会用,会用不如被用。 如果知识是水,我们要挖掘最先涌动的泉眼。 如果知识是火,我们要捕捉起初点燃的火花。 如果知识是树,其树大根深,不究立固之本则无以知过去;其枝繁叶茂,不握 支撑之干则无以知当下;其蓬勃旺盛,不察生长之点则无以知将来。 越是喧嚣的世界,越需要宁静的思考,让躁动的心灵得以平息,让蕴藏的灵性 得以释放。知识之上是思想,思想之上是精神。” #后半部分讲OOP把我讲晕了,要撸java
对初学者拓展视野很有帮助,但是还是有点浅显,语言有些啰嗦