作者:怪怪 来源:博客园   酷勤网收集 2008-05-11

摘要
  在这里再次强调一下我的体会。目标驱动作为, 问题驱动学习, 这是最好的办法。 第二点就是对好的东西的认知, 第三点是孜孜不倦的改进。 这些东西没达到一定的程度, 学习什么、认可那种, 也会经常走到半路, 就停止了, 然后自以为看到了全部的风景。

注:本文是由《不要再面向对象》而发表的观点

不参与具体应该如何学习和实践的讨论了, 我要学会沉默。 但是愿意相信我的人, 我还是可以有一些建议。

对于初学者, SICP这本书的学习如果能早于谭浩强的C, 和面向对象方法, 绝对有好处。 然后在学习了C和更高级的面向对象方法之后, 反过来再读SICP, 又会在后者上有所提高。 当然, 对已经学习了命令式编程的兄弟来说, 后学SICP,虽然会有些别扭, 如果能够保持一个初学者的良好心态, 也仍然有所助益。

面向对象不是唯一的方法论, 也不太可能是最完善的一种方法论, 之所以流行, 其深刻原因也不是我们能回答的。 只是提醒大家, 有一种现象, 叫做劣币驱逐良币(我并没有说它一定是)。 但是无论好坏,现在面向对象的周边配套设施却是最齐全的, 考虑到这一点, 不逐渐深入掌握面向对象的各方面常识, 对于我们平时的顺利工作来说又是不行的。

只是学习面向对象的方法, 不见得一定是从常规入手; 当然, 对于一些人来说, 常规是结构化->面向对象, 对于另一些人则意味着直接开始面向对象的学习。

在这里再次强调一下我的体会。目标驱动作为, 问题驱动学习, 这是最好的办法。 第二点就是对好的东西的认知, 第三点是孜孜不倦的改进。 这些东西没达到一定的程度, 学习什么、认可那种, 也会经常走到半路, 就停止了, 然后自以为看到了全部的风景。

反过来说, 对大多数人的生活和工作来讲, 达到一定水平已经足够了, 更加深入反而是低效的, 争论其实也是不必要的, 怎么舒服怎么来就可以了。 对于这种情况, 我们认同的东西, 即使它有缺陷, 对我们也不会有更多的损害, 因此我们最佳的策略是到此为止。 在这一点上我还是相当乐观的: 认识的误区即便是个瘤子, 也不见得就有多毒, 在医疗上也不是倾向于对任何一个异常都下刀子的, 不是吗?

然而设立停止点不代表从今天开始就不用学习了, 对一个普通的行业从业人员, 不学习就意味着淘汰。 只是在这种策略下, 我们讨论和学习的重点, 不应放在证明自己的选择好坏上, 而是在已经做出了选择之后, 在这个选择的范畴之内, 如何做的更好这一议题上。

对于选择不同的人, 其实更多应该是划分自己的小圈子内部讨论如何改良, 而不是急于去证明自己的决策。 当我们去其它小圈子的时候, 更多的应该抱有一种看看有什么可以借鉴的的目的,而不是形成在世界观、 方法论、 学习过程上的对立。 能得到别人观点的启发, 对自己是最有利的, 而不是对抗。 Strustroup这样语言圈子里的人上人,都不选择评价语言的好坏这一行为, 更何况于你我呢? 而php、ruby炮轰Java, 人家那是有商业目的的, 咱们更多的似乎应该是求同存异吧。

再比如那些最坚决的面向对象支持者, 人家Linus炮轰C++的时候, 基本把整个面向对象方法论都给否定了, 你可以试着去回复他的论点, 但有几个人觉得自己在资格和水平上(后者更为关键)能够和他平等的对话呢? 估计, 因为Linus几句话, 因为他的权威属性, 否定自己的选择的人也不多。 关键是他那些刀刀见血的言论, 会对我们有什么启发; 没得到收获, 也无所谓, 这说明我们的工作碰到他所抨击的问题的概率比较小, 那么把它们当作其它世界的存在就可以了。

说是沉默, 还是写了这么多。 抱歉我不会在此贴及其回复中谈及我对面向对象的看法。 不过未来我会逐渐介绍一些在采用其它语言范式和仅仅采用C#或者C++这样一种特定语言时, 面向对象和面向对象技巧的一些非面向对象的替代方法,它们当中有些更加适合特定的场景; 当然也会介绍一些面向对象方法内部的经验。 因为关键的总是如何改进, 而不是选择什么。

解决问题, 才是我们应该做的。

评论

#1楼

果然比我的文章有深度...佩服一个.
解决问题确实是至关重要的, 它关乎我们的肚子和我们的腰包. 因此, 我并不明确支持任何一种设计思想 - 大凡能解决问题的, 就是在这个场景下适合的.
其实我的学习也是完全杂乱的, 用到什么学什么, 没有很明确的体系; 但是这样可以解决问题, 这就够了. 至于我, 是不想做所谓的计算机科学家的; 我更喜欢管理, 而不是被人管理 :D
2008-05-11 16:57 | 随风流月

#2楼 [楼主]

@随风流月
呵呵, 像你这样的天才少年, 现在就考虑肚子和腰包,做出对自己的职业规划, 未必是获得幸福(而不是权力和钱)的最好途径哦。

个人建议, 仅供参考。
2008-05-11 17:02 | 怪怪

#3楼

哇,我刚还说还是这边清静呢,打算泡杯茶慢慢看呢,没想到一个不小心给刷新了,原来战火烧到这边来了...哈哈..
2008-05-11 17:09 | Joanna [未注册用户]

#4楼

@怪怪
我一直说我太理性和务实了, 缺乏感情色彩, 果然是这样的. 很多人曾经指出过这个问题, 然而我还是没有找到一个中庸的方案 - 嗯, 我还是一个 Christian, 这意味着我可以从 GOD 而非自己寻求出路.
2008-05-11 17:13 | 随风流月

#5楼

@随风流月
你居然是Christian?
2008-05-11 17:19 | Jeffrey Zhao

#6楼 [楼主]

@随风流月
呵呵, 说不准你这个是表象呢, 所谓的补偿人格, 正是心里的柔软, 让自己看起来、行动起来、自我认知为, 一个相反的人 :)

自己最难对付的。

@Joanna
呵呵, 只当娱乐一下就好了 :)
2008-05-11 17:20 | 怪怪

#7楼

@怪怪
貌似你研究心理的说 - 我最近也关注了一段时间, 貌似我是一个 ENTJ/ENTP 的说. :)

@Jeffrey Zhao
没有错, Christian.
2008-05-11 17:25 | 随风流月

#8楼 [楼主]

@随风流月
呵呵, 我不算研究, 就是乱七八糟的看过一点。 其实关键是找准“努力成为的人”和“到底是什么人”之间的区别。

类似于柏拉图和麦穗的那个例子, 太早做判断不是一个最优解, 所以冒昧的做一个提醒 :)
2008-05-11 17:31 | 怪怪

#9楼

@随风流月
不像啊……
2008-05-11 18:41 | Jeffrey Zhao

#10楼

我相信我是唯一将此文认认真真读两遍的人,第0遍精粗读:一目十目,感觉不错;第1遍完整读;第2遍完整读;接着,收录到“针式PKM”中经常读
2008-05-11 18:51 | 个人知识管理

#11楼

空谈误国!
做点好东西出来才是真的!
什么时候写程序变成八股文倒也奇怪了。
面向语言编程才是趋势, 这已经被linq证实了。

领域语言--》中间码---》机器码
会计动词--》linq--》DB
名词=对象
动词=方法
忘记对象吧, 因为以后我们关心的是名词和动词


2008-05-11 19:32 | 一个农民 [未注册用户]

#12楼

关注那篇文章来者,想写的东西都没写成。
2008-05-11 19:34 | 金色海洋(jyk)

#13楼

@一个农民
面向语言? 我们应该有自然语言编程才对...
2008-05-11 19:35 | 随风流月

来自:我们应该讨论什么? 就面向对象的讨论所引发的一些思考

分类: 设计模式 系统架构



关于酷勤 | 联系方式 | 免责声明 | 友情链接