昨日,老大给我上了深刻的一课,感触很深。根据老大的教诲和自己的一些感悟,记录于此。希望能
给大家一些帮助。
学习编程,不知道各位有没有类似我这样的困境。天天学,但效率很低,而且很容易遗忘,认识问题
很不深刻,经不起人家的深究和盘问。编程领域中的新名词、新概念层出不穷。而我们总是疲于应付,
总感觉甩在后面了,没法子掌握主动。多数概念只停留在Demo&Sample的运行上。最后,只知道有这么回
事,知其名而已。
这种问题的原因是什么呢?我觉得是,脑海无轮廓,见水不思源,见木不想根。归根到底是缺乏思维
主动性和创造性,并且很具有思维的依赖性,总想通过别人的讲解(blog等)来理解一些概念。世上没有
救世主,惟有你而已。所以,应当主动的去思考问题,深究问题,举一反三,触类旁通方可达一新境界。
- 什么是已知模型?
生活中的,学习中的,工作中的等。数学的,语文的,故事,报告,新闻,动物,广告,无花
八 门。这些都是我们脑海中有的信息和概念。这些概念我称之为[已知的模型]。这个已知的模型库
是非常大的,只要我们用好它,应当是取之不尽的,只要你努力去想,思考问题,类比问题。
- 由已知模型到理解未知模型的步骤(见下图)
1)提取[概念模型]:从我们脑海中已知模型库中找出与未知模型比较相吻合的模型
2)检验[概念模型]、探索[未知模型]:用概念模型中的一些概念到未知模型去检验,或者用
未知模型中的表现出来的特性到概念模型中寻找相类似的概念已加深理解
3)修正[概念模型]:将2中相比较的结果反馈到概念模型,根据2中比较的相同或不同点修正
脑海中的概念模型。
4)不断重复2,3,敲打,锻造我们脑海中的概念模型。
5)最后,[概念模型]和[未知模型]合二为一,脑海中已经有了[未知模型]非常详细的信息,
也就是精确模型,未知已经由已知得到!!!
下面我们就根据上面步骤来做几个SAMPLE:
SAMPLE1:学习系统的模块化编程?[未知的]
1, 为了掌握模块化,我们可以想象模块非常类似一个公司的部门,系统就好比公司了
2, 有了公司这个[已知模型]后,我们就可以根据公司部门之间的一些概念来理解模块化
理解一:为什么要模块化?公司为什么要部门化呢?显然,部门化是为了不同的分工,
把事情细化。 模块化原因也是由于分工,细化系统的。这样理解就比较自然
而有趣了。
理解二:模块的高内聚和低藕合
想象一下,一个部门如果不是高内聚的,是比较松散的,部门内部的人联系比
较少,有的人成天无所事事,那还要这个人做什么呢?低藕合呢?就是部门之
间不可以耦合得太紧密,否则不好开展工作吧,两个部门粘在一块了。部门的
划分就好似存在一个界限嘛,职责分明的。
理解三:公司的部门间的合作是通过什么传递的呢?部门是否应当对其他部门隐藏他部
门的业务。一个部门做完了它本分的工作,它是如何通知相关部门等等,这些
就涉及了模块的消息传递,模块的封装等等
3, 重复多问几个为什么?不断的做2操作,来完善模块化在你脑海中的概念模型。
4, 理解模块化的好处和其他。。。
SAMPLE2:结构化XmL语言的理解?
1, 构化语言,结构化是重点。于是,我们想象Xml是一颗树,象《野蛮女友》里面的树,
树根很大,可以有很多的树茎,叶子,小鸟,树底下还有青蛙等。
2, 提炼模型:如何从树根找到叶子呢?[逼出了Xpath]如何用Xml表达一只小鸟飞到了
树上,树的季节交替等。如此一来,概念是不是都很自然的出来了。。。
SAMPLE3:字节流,文件流?
1,我们想到水流,想到瀑布,湖,河,海洋。小溪流入大海,小溪流入小江。
SAMPLE4:数据库?
1,数据库类比仓库,数据挖掘呢?老鼠到仓库找东西吃
SAMPLE5:传址,传值?
1,邮递员送包裹单和送信
SAMPLE6:Oracle里面的sql连接写法,加号放哪边问题?
2,类比拔河,人少的得加油 where AA.ID=BB.ID(+) BB加油呀!
SAMPLE7:.NET垃圾回收 类比 丁春秋化功大法之统一江湖[以后写,列在这先]
SAMPLE8:接口 类比 插头
SAMPLE9:指针 类比 遥控器
SAMPLE10:医院的检验系统 类比 老师改试卷
[流程的对比]:
取样本 护士 检验科 检验 报告单 拿报告单
做试卷 学习委员 办公室 改试卷 打分 拿试卷