免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: pmerofc

[书评] 盛名之下——《C primer plus (第五版)中文版》 [复制链接]

论坛徽章:
2
程序设计版块每日发帖之星
日期:2015-06-17 22:20:00每日论坛发贴之星
日期:2015-06-17 22:20:00
发表于 2013-01-01 23:34 |显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽

论坛徽章:
4
狮子座
日期:2013-08-20 10:12:24午马
日期:2013-11-23 18:04:102015年辞旧岁徽章
日期:2015-03-03 16:54:152015亚冠之德黑兰石油
日期:2015-06-29 18:11:11
发表于 2013-01-02 00:02 |显示全部楼层


回复 18# pmerofc


    回“基础的概念为什么重要?错误的概念为什么危害这么大”:

我看了201楼的帖子,有些感悟。

先说说所谓的“幻视效应”和“扭曲效应”。

我想了想,不容易说明这个观念,所以我也做一次孔乙己,来个“短话长说”吧。

人从出生到这个世界上,他会看到很多东西,他会很好奇。柏拉图认为,人在出生之前,其意识中就会有一些观念,这些观念被柏拉图认为是所谓的“完美概念”,比如一个小孩子看到一匹马,他会发现这匹马和脑海中的“完美马”很像,所以他知道,哦,这是和那个“完美马”一个类型的东西(当然是不是叫做马就无所谓了,这只是一个名字,注意这样的事实:马是完美马的外延)。那么,当他看到另一匹马的时候,他会经历同样的过程,于是他明白了什么叫做“马类”,因此即使遇到不太一样的马(白马,红马,长着翅膀的马),他都知道虽然不太一样,但是他们其实是“一样的”(精确的说,是同一种“完美概念”的外延)。这就是所谓的“理性主义”,认为人从“上帝”身上获得了对真实世界的完整认识(即理性),所谓的出生,只是对其“重新认识”,从而“回忆起”知识而已。

而亚里士多德不这么认为。他说,人是并不知道马这种东西的。人看到一个长着四条腿,有着白色毛的东西,他会管他叫马,而看到一个同样长着四条腿,有着白色毛的东西,但是有点小,人也会叫他“小号的马”,最后,人们发现其实“马”和“小号的马”不太一样,而“小号的马”叫起来太啰嗦。如果“小号的马”比较常用的话,人类可能会给它起一个不同的名字,比如叫“狗”。这种概念在中国人身上可能会比较行得通,因为中国人对不同的马,的确起了几乎完全不同的名字,比如“白义”或者“渠黄”。这也许也是中文对“构词法”的缺失(相反,而是对构字法的极端复杂的应用)的一种解释吧。另一方面,很多叫不同名字的“马”太过于麻烦,于是人们创造了一个高级的概念,叫“马”。这就是柏拉图所谓的“完美概念”的由来。前者是“分化”,后者是“合并”,人类的知识就在分化和合并中产生了。关于合并,同样可以举一个和分化相同的例子:人们认为水中生活着的,带尾巴带鳍且梭状的生物叫做“鱼”,而认为鲸也是鱼的一种,而事实上鲸并不是鱼。

那么,他们谁对呢?这个分歧(对立)成为了西方一千多年哲学发展的源头。我们也不知道谁对谁错。从认识方法上来说。理性主义类似于数学公式的推导(一个完全正确的公理和完全正确的推导方法所归纳出的一系列理论——哪怕这是违反直觉的),而经验主义对应于对于自然科学基于试验方法的探究(对不同的事物进行观察和归纳,从分化和归并中找到最“合理”的知识)。近代的物理学正是在理性主义和经验主义上达到的一个(完美的?)平衡。由理性主义得到“归纳一切事物的钥匙”,用经验主义的方法去验证它。

很遗憾的,这条导致了人类翻天覆地变化的路,在计算机语言学上,行不通。

本质上,计算机语言学是一门很独特的科学。首先每个计算机学者至少都必须掌握一种计算机语言(哪怕仅仅用来描述算法,而无法执行的语言,比如lambda演算);其次,这门语言的产生和演化,实质上是在以类似“社会科学”的方法进行的。因此计算机语言学是一门独特的三学科混合——在设计上,它是理性主义的;在使用上,它是经验主义的;在演化上,它是“社会性”的。这种混合的复杂性导致了计算机语言学在教学上和发展上的一系列矛盾。也是教材问题的最根本矛盾。

我们来看看真正的语言,在完全割裂的情况下,会发生什么——方言。有人学到了一种语言,带到了另一个地方(比如传入日本的中文),这种语言会经过十分复杂的融合和变化,最终成为一种甚至无法和原语言进行一对一映射关系的方言,这就是语言演化。

谭浩强,作为那个时代的人,无论他是有意的(不学无术却希望证明自己在学术方面的能力)还是无意的(当时的确没有和西方世界的概念印合的条件),他造成的实际现象就是C语言的分裂:用C语言的表象,去“硬套”一个他认为正确的模型。如果这个模型和C语言在设计上的模型不同,那么这种行为可以想见必然会导致C语言的完全分裂。然而,我们之前说了,计算机语言和数学方面的其他学科的一个重要区别在于它是三种不同思想的混合体。是带上了“凡尘”的“仙器”。因此,即使是底层模型的完全不同,C语言依然可以做出可能是完全合理的解释。这种解释对不对呢?无论对不对,这就是谭浩强,乃至于《C Primer Plus》甚至Pmerofc的问题。

每个人心中有一个不同的C语言模型,这个模型的创立是复杂的。但是,从现在的情形来看,如果真有上帝存在,那么C语言也不是上帝的造物。因为每个人心中的“完美C”差异实在是有一点点大。谭浩强可能有模型残缺的问题,但是谁能保证自己心中的模型就是设计者心中的模型呢?就算真的是,那又有什么意义呢?

谭浩强的贡献在于,他以一种相对简单的方式(比较薄的一本书),解释了他心中的C语言模型。至于这个模型对不对,乃至于这个模型的逻辑推理是不是完善,那就是另外一回事了。现在问题是,这个贡献也许在当时是有用的——因为C语言还没有来得及演化。但是,在C语言经过一个世界公认的模型(不管是否精确)进行演化的时候,谭浩强的模型已经老旧到无法使用了。

模型的产生还有另外一种情况,即在试着理解一个概念的时候产生的模型偏差。这么说,两个人心中有完全不同的C语言模型,一个是基于机器的,一个是基于数学的。这两个完全不同的模型都忠于当前他们自己所认知的事实,然而事实是,一个人的“眼界”——即认识事实的数量——大于另一个人,因此一个人断言另一个人的看法是“错误”的,这就是pmerofc所正在做的事情。至于这是不是正确的呢?无论是不是正确的,这就是导致论坛上针对pmerofc的争吵屡禁不止的根本原因。

在这件事情上,肯定有一个人或者几个人有错误——这是必然的,不然不会发生这样不“和谐”的事情。而追究错误的原因没有意义,pmerofc所做的事情,实际上只是将错误指出了而已,实际上只是让某些人没有认识到的事实,与这些人心中的模型进行了碰撞而已。无论结果如何,这种行为都是值得赞扬的。因为它必然导致良好的结果。

现在短话长说之后,我来讨论201楼所说的关于幻视和扭曲的观点,就会显得显而易见了:

不管怎么说,一个C熟练者心中一定有一个完整的C模型,不然的话,他无法完成编程工作。一个C学习者的学习过程,就是构建这个模型的过程。所谓“幻视”,其实就是因为自己的模型和实际大家公认的那个模型(不管是不是模糊)有了偏差时,将一个事实用自己心中的模型进行“解释”所产生的行为;而所谓“扭曲”,就是根据自己心中的模型,得到了一个结论的行为。这个结论是抽象的,因此所谓“自信”,就是源于对自己内心模型的信任,从而坚持自己推断出的结论一定正确的行为。

这种种行为并不能说是错的——毕竟这就是人类学习的过程。这种种行为本身在人身上反应,会产生两种后果,学术上的“短视”和自身情绪上的“傲慢”,这就是所谓“文无第一”的一个根本原因——谁也不相信谁,谁也不接受谁的观点。那么,最可怕的事情,在于一旦一个人意识到,事实实际上是和自己内心的模型导出的结论不同的时候,他并不是直面那种自信破灭的痛苦,去打破自己内心的那个残缺的模型,以适应新的事实,而是将这种痛苦逃避掉,从而否认和歪曲事实本身的存在——有,且只有这种行为,是最要不得的。谭浩强在《C程序设计》第三版之后所做的事情,就是这样,这就是错误之源。

我希望人们能看清这一切:内心有模型,这是好的,自己有自信,这是好的,会用内心的模型做出“舒服”的推理,这是好的。但是,当你认识到自身的局限性后,勇于打破自己内心的模型,勇于找到另一个更好的模型,这才是最珍贵的。我相信这也是pmerofc所做的所有事情的最根本目的的所在。不会学习的人,即使学会了谭浩强的理论,也不会有多少破坏力——因为他的潜力也仅仅是个代码民工而已,他所做的事情,在他的模型内完全可以解释,因此也就不必要纠正这样的“凡人”的概念了。然而,如果一个善于学习的人,却因为模型的错误而逃避对模型的修改,这就麻烦了。我希望论坛的每个人,包括pmerofc(不管你说的学习别人的话是真是假),包括攻击pmerofc的人,包括支持他的人。能包容别人内心的模型。能直接指出和别人内心模型的结论完全相悖的事实,能不去嘲笑别人模型的错误,而是引导他们对模型进行改进。这才是互相学习的真谛。只有这样,才能避免争吵,避免不必要的轻视和敌意。

希望大家能在技术上有学习的动力和索求的勇气,2013新年快乐!





论坛徽章:
11
摩羯座
日期:2013-09-16 11:10:272015亚冠之阿尔萨德
日期:2015-06-12 22:53:29午马
日期:2014-04-15 11:08:53亥猪
日期:2014-03-02 23:46:35申猴
日期:2013-12-06 22:07:00亥猪
日期:2013-11-28 12:03:13双鱼座
日期:2013-11-21 14:43:56亥猪
日期:2013-10-23 10:55:49处女座
日期:2013-10-17 18:15:43午马
日期:2013-09-27 17:40:4215-16赛季CBA联赛之青岛
日期:2016-06-22 00:45:55
发表于 2013-01-02 01:50 |显示全部楼层
cokeboL 发表于 2012-12-27 12:30
回复 5# Ager

阿哥,我昨天看了三傻大闹宝莱坞,我发现楼主好像里面那个成绩优异的学生。真感慨:不管怎样,竟然人能成功便是成功。


可哥,你所讲的“那个成绩优异的学生”,指的是Rancho,还是"Silencer" Chatur 啊?

P.S.: 喜欢Aamir Khan的朋友,可以去看他的新系列电视节目《सत्यमेव जयते(真相访谈)》,绝对的★★★★★推荐!我国所有“焦点访谈”/“实话实说”类的节目加起来,也比不上它,呵呵 :)



论坛徽章:
11
摩羯座
日期:2013-09-16 11:10:272015亚冠之阿尔萨德
日期:2015-06-12 22:53:29午马
日期:2014-04-15 11:08:53亥猪
日期:2014-03-02 23:46:35申猴
日期:2013-12-06 22:07:00亥猪
日期:2013-11-28 12:03:13双鱼座
日期:2013-11-21 14:43:56亥猪
日期:2013-10-23 10:55:49处女座
日期:2013-10-17 18:15:43午马
日期:2013-09-27 17:40:4215-16赛季CBA联赛之青岛
日期:2016-06-22 00:45:55
发表于 2013-01-02 04:47 |显示全部楼层
本帖最后由 Ager 于 2013-01-02 05:03 编辑
starwing83 发表于 2013-01-02 00:02
回复 18# pmerofc

    回“基础的概念为什么重要?错误的概念为什么危害这么大”:

我看了201楼的帖子,有些感悟。

先说说所谓的“幻视效应”和“扭曲效应”。


sw大虾新年强帖呀!强烈支持哦:)

我也厚着脸皮,沿着你的思路,续貂一下。

柏拉图与亚里士多德在“理念论”上的冲突与纠葛,及其所导致的后来的“唯实论”vs“唯名论”对立,是整个哲学(希腊)二元对立的发端。二元对立是整个哲学界内长达两千多年的争执的主轴。直到哲学(希腊)之“顶峰”的黑格尔,仍然没能将人们从争执中释放出来。—— 如同你所说的:“我们也不知道谁对谁错。”

这种情况,直到19世纪中后期,发生了变化。两位思想家 —— 丹麦人S.克尔凯郭尔和德国人F.尼采,他们先驱性的卓绝贡献,实际上撬动了整个哲学二元对立之基石,也为后来的后现代主义开启了门洞。

简单地说,在后来的新的思想看来,二元对立本身就是错的 —— 由此,二元对立范式下的任何关于“本质”、“本原”的追求,本身都是错的。即:分出“什么是现象,什么是本质”的这种二元划分,本身就是错的。“物质决定了意识”vs“意识决定了物质”中关于“物质”与“意识”的二元划分,本身就是错的。甚至,不论是二元本体论(如笛卡儿的“心灵”&“肉体”二元论、中国巫术文化的“阴”&“阳”二元论)还是一元本体论(如唯sth主义),只要是本体论,就都是错的!并且,任何基于本体论的学说,如基督教神学中的“原罪”、三位一体、关于圣餐等圣礼的各种学说,中国传统思想中的“性本善”or“性本恶”,都是错的。

本体论,有时候(尤其是在本体论的认识论当中),也通过基础主义(Foundationalism)表现出来。后者的企图在于:为一切知识体系,寻找一个绝对坚实可靠的基础,这当然就是本体论视角下的那种“本质”性、“本原”性的定西 —— 笛卡儿最先提出了基础主义,并且“实现”了它,即著名的“我思故我在(Cogito ergo sum)”。显然,在上述的新的思想看来,基础主义也是错的。

上述的新的思想,经过后现代主义,当下已经发展到所谓的“后后现代主义”。个中演变过程与思潮支流,异常复杂,我就谈谈其中的一支及其视角下的C语言,即“现象学(Phenomenology)视角下的C语言” (—— 我扯出来的)。

首先,我们必须努力抛弃一切关于“何为‘本质’”的追求。具体地说,比如,我们需要警惕这样的说法:

xx只是一个工具,yy才是本质 / 数组是现象,指针是本质 / 指针是现象,地址是本质 / 数组的本质是…… / 指针的本质是……

所带来的风险与危机。

我们必须保持谨慎。所以,(就上面的例子来说)我们最先只能承认这麽一个事实:

“指针”和“数组”,它们到底*是(be)*什么,只能由使用它们的人(Users)之如何使用(Using/Usage)它们*呈现*出来。

(这个事实最极端的实例是:一个豪无计算机知识的人,比如说一个1000年前的人吧,“指针”和“数组”这些词对他来说,是没有任何C语言标准上的意义的。)

这种Being,有现场性(当时性),有质感性(即Using当时有某种*滋味感*)。

这种现场性与质感性/滋味感,蕴含了User对“指针和数组到底是什么”的认识或意识(这既是“理性”的也是“经验”的)。

而这种认识或意识,通常又具有成见性和偏见性 —— 这是基于这麽一个事实:

一些C语言中的概念,对于初学者来说是陌生的,而由“陌生”转变至后来“熟悉(User himself/herself视角下的Usage)”,必然经历了一个“陌生的概念如何进入他们的视野中”的起初阶段。而这个阶段,往往伴随着“用既往知识结构解释陌生知识”的过程。

这意味着,我们应该关心:

那些陌生的概念,是如何进入初学者的视野中的,是以何种“样式”、“质感”甚至“成见”、“偏见”进入他们的意识中的?

这种成见和偏见,是构成“他/她心中的C语言模型”(sw大虾语)的首要因素。

上述的“解释”过程,也是另一种现象的发端,即“遮蔽现象”(接近sw大虾提出的“幻视效应”和“扭曲效应”)。

拿楼主pm大虾提到的“statement”问题来说。。

一个把一则声明解释为(视为/当作为)“statement”的事件,很可能是这样的:

一个具备完整结构的声明以分号(Semicolon)结尾,令前者具有某种直观质感上的或类似于自然语言感官上的“statement”(如果对于汉语Users来说,则有可能是“句子”)质料。

所以,我们与其说“作者把声明‘误认为’是statement”,不如说“在作者的语境中,‘statement’一词乃是‘Something which be ended by/with/at a Semicolon’的*代称*”。

在这种情况下,C语言标准下的关于statement的信息,被遮蔽在作者的认识之外,故谓“遮蔽”。

我们使用“遮蔽”这个观念,而不倾向于用“错误”、“误解”这一类词,这是出于我们对这个现象的解释上的谨慎。

遮蔽现象,是永远无法避免的。我们承认这个现象,意味着我们因此才更有有效的办法,去为受遮蔽者去祛除这种遮蔽。

BTW,我们服务于祛蔽的工作,尊崇C语言标准应该被视为一个妥当而可靠的行事方式。由此说来,冠于pm的“标准派”不应该是一个贬称。

不过,严格地说来,“尊崇C语言标准”倒并不是“关于C语言的现象学”关心的事情。

它关心的事情,主要在于:一切概念或观念被提出、在各种现场被使用、在各种现场被呈现(“使用”和“呈现”对于概念或观念来说,是同义词)的现象。

它认为:除了现象,没有本质 —— 根本没有“本质”,或者退一步,非要用“本质”这个观念不可的话,也必须回到现象(之现场),即:现象之外,没有本质,或本质无从谈起。

现在,可以看出“关于C语言的现象学”的优势:它超越了“理性主义”vs“经验主义”的二元对立以及由此引发的争执。

那么,如果让我讲讲:“什么是C语言?”、“C语言(或其中一些概念)的本质是什么?”

我或许会这麽说:

作为“本质”或“本体”或“本原”的C语言 —— 是不存在的,或者说,这种观念是错误的。

关于C语言的一切,在一切对它的使用(现象)中呈现出来。

C语言(或其中一些概念)的本质 —— 也是不存在的,或者说,这种观念也是错误的。

C语言的一切概念(比如语法概念、算法概念、设计概念),仅存在于语法、算法、设计的*被使用*的现场之中,即由*被使用*而呈现。

以上,作为对sw大虾新年强帖的响应,仅供参考,呵呵 —— :)

论坛徽章:
2
程序设计版块每日发帖之星
日期:2015-06-17 22:20:00每日论坛发贴之星
日期:2015-06-17 22:20:00
发表于 2013-01-02 11:21 |显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽

论坛徽章:
36
子鼠
日期:2013-08-28 22:23:29黄金圣斗士
日期:2015-12-01 11:37:51程序设计版块每日发帖之星
日期:2015-12-14 06:20:00CU十四周年纪念徽章
日期:2015-12-22 16:50:40IT运维版块每日发帖之星
日期:2016-01-25 06:20:0015-16赛季CBA联赛之深圳
日期:2016-01-27 10:31:172016猴年福章徽章
日期:2016-02-18 15:30:3415-16赛季CBA联赛之福建
日期:2016-04-07 11:25:2215-16赛季CBA联赛之青岛
日期:2016-04-29 18:02:5915-16赛季CBA联赛之北控
日期:2016-06-20 17:38:50技术图书徽章
日期:2016-07-19 13:54:03程序设计版块每日发帖之星
日期:2016-08-21 06:20:00
发表于 2013-01-02 13:31 |显示全部楼层
回复 33# Ager


阿哥,叫小弟可可好不,压力山大。。

阿哥,我看国外的电影,基本记不住名字,演员名字和演员所演的人物名字,都分不清楚。。

我还是看生活大爆炸这种肥皂,人物少,时间长,才能记得住人名,哈哈~

论坛徽章:
0
发表于 2013-01-02 13:32 |显示全部楼层
回复 32# starwing83
wonderful
子非鱼,安知鱼之乐?
简化一下,关于C语言有没有那个common knowledge?
再进一步,关于being or anything,有没有common knowledge? for human being, or for god,or LORD,etc.
呵呵



   

论坛徽章:
2
程序设计版块每日发帖之星
日期:2015-06-17 22:20:00每日论坛发贴之星
日期:2015-06-17 22:20:00
发表于 2013-01-02 13:57 |显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽

论坛徽章:
11
摩羯座
日期:2013-09-16 11:10:272015亚冠之阿尔萨德
日期:2015-06-12 22:53:29午马
日期:2014-04-15 11:08:53亥猪
日期:2014-03-02 23:46:35申猴
日期:2013-12-06 22:07:00亥猪
日期:2013-11-28 12:03:13双鱼座
日期:2013-11-21 14:43:56亥猪
日期:2013-10-23 10:55:49处女座
日期:2013-10-17 18:15:43午马
日期:2013-09-27 17:40:4215-16赛季CBA联赛之青岛
日期:2016-06-22 00:45:55
发表于 2013-01-02 20:26 |显示全部楼层
本帖最后由 Ager 于 2013-01-02 20:30 编辑
cokeboL 发表于 2013-01-02 13:31
回复 33# Ager

阿哥,叫小弟可可好不,压力山大。。

阿哥,我看国外的电影,基本记不住名字,演员名字和演员所演的人物名字,都分不清楚。。


“可可”跟“可哥”不就差一个“可”字嘛,呵呵。。。。。

呵呵,“阿”、“可”、“哥”,都是一个家族的哦。。。。。 Just kidddding...

关于《三傻大闹宝莱坞》:

Rancho —— 就是男一号,帝国理工学院永远的真正的第一名,NASA太空笔的获得者,本尊的家仆与替身,后成为超级科学家,最后揭秘出来他是一个藏人:平措旺堆。

"Silencer" Chatur —— 就是男四号,“消音器”/“沉默者”/“臭屁王”,出生于乌干达,帝国理工学院的“千年老二”,后成为美国一家大科技公司的副总裁。

你指的是哪个?

呵呵 {:3_193:}

论坛徽章:
36
子鼠
日期:2013-08-28 22:23:29黄金圣斗士
日期:2015-12-01 11:37:51程序设计版块每日发帖之星
日期:2015-12-14 06:20:00CU十四周年纪念徽章
日期:2015-12-22 16:50:40IT运维版块每日发帖之星
日期:2016-01-25 06:20:0015-16赛季CBA联赛之深圳
日期:2016-01-27 10:31:172016猴年福章徽章
日期:2016-02-18 15:30:3415-16赛季CBA联赛之福建
日期:2016-04-07 11:25:2215-16赛季CBA联赛之青岛
日期:2016-04-29 18:02:5915-16赛季CBA联赛之北控
日期:2016-06-20 17:38:50技术图书徽章
日期:2016-07-19 13:54:03程序设计版块每日发帖之星
日期:2016-08-21 06:20:00
发表于 2013-01-02 21:41 |显示全部楼层
回复 39# Ager

能跟阿哥一个家族倍感荣幸啊

应该不是男一号吧,男一号是那个400多项专利那个
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

SACC2019中国系统架构师大会

【数字转型 架构演进】SACC2019中国系统架构师大会,8.5折限时优惠重磅来袭!
2019年10月31日~11月2日第11届中国系统架构师大会(SACC2019)将在北京隆重召开。四大主线并行的演讲模式,1个主会场、20个技术专场、超千人参与的会议规模,100+来自互联网、金融、制造业、电商等领域的嘉宾阵容,将为广大参会者提供一场最具价值的技术交流盛会。

限时8.5折扣期:2019年9月30日前


----------------------------------------

大会官网>>
  

北京盛拓优讯信息技术有限公司. 版权所有 16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122
中国互联网协会会员  联系我们:huangweiwei@it168.com
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP