动态网站制作指南 [  QQ表情  ]
[ 投票调查 ]
[ 企业邮箱 ]
[ 网站空间 ]
网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
ASP源码 | .Net源码 | PHP源码 | JSP源码 | JAVA源码 | CGI源码 | VB源码 | C++源码 | Delphi源码 | PB源码 | VF源码 | 汇编 | 服务器
电脑书籍下载:程序设计书籍 | 数据库教程书籍 | 平面与多媒体书籍 | 网络通讯书籍 | 系统管理书籍 | 网络安全书籍 | 认证考试书籍
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > 软件工程
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
文章搜索服务
邮件订阅
输入你的邮件地址,
你将不会错过任何关于:
[ 软件工程 ]的信息



本月文章推荐
.2006拭目以待 SOA标准走向成熟.
..NET架构的核心开发技术.
.众多厂商纷纷支持新的SOA编程模型.
.设计模式基本思想.
.走出一般性的建模误区.
.谈谈Site在活动目录中的应用.
.遇上用例驱动的团队.
.需求工程 研究现状.
.Ruby程序设计之简单例子.
.如何管好软件开发过程.
.Apache中的文件与目录(1).
.利用社会工程学 揭开网络钓鱼(Ph.
.软件开发方法综述.
.为什么要用UML建模之建模的重要性.
.保证SOA走上成功之路的十大步骤.
.“寻找圣杯的任务”——度量软件.
.解析UML的静态建模机制.
.3DS模型Bump Map(凹凸贴图)渲染.
.SOA从眺望到实施.
.“再用式”软件开发方法.

编程不难学?

发表日期:2008-3-23 |


编程应该好学?大概没有几个人会说这不是疯话不是梦话,编程难学可是举世公认的常识呀!要是好学,程序员的工资会高?要是好学,电脑还叫高科技?… Google“编程好学”、“程序设计好学”、“编程语言好学”,根本就没有多少结果,因为编程好不好学是不言而喻的,压根就没有几个人这样问!

本文的读者都是上过学的,假如回忆一下自己的学习经历,就能总结出,难学的课程通常是那些抽象的课程,比如数学,包含太多“脱离”实际的概念术语,是最难学的,理化和工科因为可以做实验和使用仪器工具,和现实有些直接的联系,而比数学易于理解。对推理能力、想像力、创造力的高要求也是数理化和工科难学的一个原因。至于编程,几乎和数学一样,有自己的一套封闭的名词术语和运行机制,其抽象的特征使其也难学-这是“常识”,也是“现实”。

有的时候,人人都默认的“常识”不一定是真理,比如“重的东西比轻的东西落下得快”,就曾经是全世界千千万万人民坚信了几千年的“常识”,直到被一个叫伽利略的人、在一个斜塔上、扔下一大一小两块石头所打翻。

作者多年前开始研究编程(实际上是更广泛的电脑知识)难学的原因和解决方法,发现编程本质上一点不抽象,相反,它是很实际的知识,原因如下:

1.编程知识是人造产品


比如Java,是由Sun公司的人创造的。人造知识的特点之一,就是它是由人为创造的规则组成,而人造规则是“死板”的,即便有时候“灵活”一下,“灵活”也是由人造的规则约束的。比如Java中的一个概念是什么意思、能用在什么场合、和其他概念有什么关系、怎样改变它的特性、扩展它的功能,全都明明白白地规定了下来。根本没有不为人知的潜规则(假如有,那就叫bug),需要学习者像伽利略一样,自己推理、自己思考、或者自己去发现。学习这些明明白白全能写在纸上、无需想像力和创造力的死规则会难吗?

2. 编程知识是有限的


因为它是人造的知识,所以它是有限的。比如JDK1.4版本(就像windows 2000),你可以找到它所有的知识点(尽管很多),虽然你可能不会在一个本书或者一个文档中找到它所有的知识,但确实可以想像有这样一本书,它包含了所有的JDK1.4的知识,包括如何使用它们的知识,当然,这本书从来没有出版过。人造知识也会发展,比如JDK1.4发展到JDK1.5(就像Windows 2000到Windows XP),但这也是Sun公司又添加了些新规则而已,不关学习者的事。有限的知识也意味着能在有限的时间内学会,而对于数学、物理这样的知识、甚至是其中的一个小的分支,我们都不知道它到底是无限的还是有限的,因为它的知识(至少大部分)都不是人造的,天知道有多少知识、它们藏在什么地方、能被谁发现或者解决,比如对于自由落体规律,在伽利略之前,全世界的天才聪明人都没想到登高丢石头。

说白了,Know Unknown Through Known其实就是由简到繁、由浅入深、由具体到抽象这些显而易见的老生常谈。可惜的是,这个显而易见的教学原则显而易见在电脑(包括编程)教学中没有“常谈”过,在作者网站的中英文文章中,举了很多违反这一“大白话”原则的例子,包括一些知名国外作者。本人认为,这是编程(包括其他电脑知识)难学的原因。而与此相对照的是,作者自从1999年开始电脑写作以来,已经出版了包括10本Java程序设计著作的电脑书,也作过长时间的Java教师,几乎没有人抱怨作者的书难看、课难懂,因为作者严格地在写作和教学中应用了Know Unknown Through Known原则。

那么,作者是怎样应用Know Unknown Through Known的呢?具体的教学技巧如下:

1.具体地列举学习一门课程的预备知识。比如,会不会循环语句?很多编程书只是用很概括的描述,例如“有Java的基础知识”、“初级”、“中级”等。对预备知识的具体描述,可避免学生选择太浅或者太深的课程。

2.总是用学生已经学过或者轻易理解的东西,来解释新的知识点。例如作者每当提到一个名词、概念或者其它知识点,问自己三个问题:“读者可能学过吗?前面讲过吗?应该在这里讲吗?”,尽量保证每一句话、每一个段落的知识只涉及前面的内容而不涉及后面的内容,使读者从第一页看起,基本没有看不懂的地方,这就是不用未知解释另外一个未知。比喻、示例、图片、动画等也是学生已经了解或者很轻易理解的“东西”。比如,假如教师打算用“老虎是一种大猫”来解释老虎,那么要先确认孩子见过猫。

3.尽量在新的知识点第一次出现时,将它解释清楚。因为知识点经常互相交叉,万一要提及后面才能具体讲解的知识,就使用这样的说法:“先不管XXX的含义,后面还要具体讲解”,以避免读者产生没有讲清楚的错觉。仅此一点,就可保证读者看得不累,不会卡在不理解的地方长久地流连忘返。因为读者在学习时,倾向于尽力理解每个字,假如碰到没有解释清楚的术语,就会停下来长时间地乱琢磨,直至怀疑自己是不是笨、或者书太难-大多不会认为是老师的错。

4. 在教编程语言时,尽量用程序例子来演示每个知识点:概念、名词、框架等,这是所谓的“实例教学法“。前面说过,编程语言的几乎所有知识点都是可以用程序演示的。虽然很多电脑书作者和教师也了解到了例子的重要性,可似乎仍然停留在不太清楚的潜意识中,没有有意识地在教学中使用程序演示每个(注重是“每个”)知识点-假如很多教师遵循了这个原则,编程好学就是常识了。很多编程书,例如作者网站上提到的那些,大谈所谓的体系、结构、层次、优势等等,绵延数页全是“理论”式的文字,没有几行代码或者实例。这相当于说一堆美女标准的“理论”:口脸鼻该长的什么样、身材比例多少、皮肤质地如何…却舍不得出示美女照片或者带学生站在大街上看美女。像编程知识一样,“美女”是很实用具体的知识,谁愿意光钻研“美女”的理论,却见不到美女的“实例”?


5. 对数据库、服务器、开发环境的教学,尽量用“怎么做XXX”的方式,列举具体的步骤。例如“怎样在JBuilder中设置JDBC的驱动”、“怎样部署程序到服务器中”等,这也是一种“实例”教学形式。要避免字典式的讲解,比如逐条讲解File菜单的Open、New、Save,却不演示从新建文件到编辑和保存文件的完整过程。

6.尽量避免大和复杂的程序实例,假如短小的例子能达到同样效果的话。一些作者和教师喜欢采用复杂的示例,虽然苦了学生,却显示了其专业技术水平,学生甚至还因此崇拜他们!

7. 教学过程应该一点一点地前进,一次只讲一个尽量小的知识点,避免涉及其他知识点,并且步骤尽量详尽到这种程度:即便一个人不理解你讲的知识,按照你的步骤也能得到最后的结果。

8.所有的代码应该是可运行的。很多书中的代码是代码片断或者伪代码,这会令学生花费额外的时间编写可运行的程序,而不一定能成功,这就增加了学习的难度。

9.只有当相当的知识点已经完成讲解后,才是使用综合复杂例子的合适时间。对开发人员来说,综合性强的例子绝对是需要的,就像要全面把握美女知识,一定要观看各国美女云集的环球小姐选美赛一样。

写作本文的目的,一是让广大读者和学生坚信,在编程学习方面,“没有笨学生,只有笨先生”(该说法来自作者的另外一篇文章),假如学不会编程中的什么东西,千万不要以为是自己笨!二是介绍作者的教育观点包括教学技巧,供其他教师借鉴参考。三是告诉读者,作者的所有将出版和已出版的著作,全是按照Know Unknown Through Known原则编写的,甚至本文也是按照这一思想写作的-比如上面的那些示例和比喻。

关于Know Unknown Through Known更严谨的论述,见作者网站的英文文章:An Effective Methodology of Teaching Programming Knowledge,网站上的其他文章中,还列举了很多正反两方面的例子,阅读起来更生动有趣。
上一篇:Rational统一过程 人气:749
下一篇:Apache APR可移植运行库简介(3) 人气:846
浏览全部软件工程的内容 Dreamweaver插件下载 常用网页广告代码全集
  最新网站源码 最新软件下载
2008-7-23 Menalto Gallery v2.3 Rc1 多国语
2008-7-23 深度学习网址导航系统 v2.6.1
2008-7-23 因特达crm2008客户关系管理系统
2008-7-23 60度 CMS v1.0 Build 080723
2008-7-23 幻影动漫网视频系统(Ppdong) v1.
2008-7-23 好易祝福墙 2008
2008-7-23 APJE私服发布系统 v2.0 PHP版
2008-7-23 毕业论文在线指导系统源码
2008-7-23 Jacky法律在线网站源码
2008-7-19 UltraEdit 简体中文增强版 14.10
2008-7-19 CentOS 5.2 i386 LiveCD
2008-7-19 Snapture多功能相机 v1.4
2008-7-19 iAcces中文输入法 v1.0Build016
2008-7-19 Cookbook烹饪秘籍 v2.5
2008-7-19 苹果专用DVD转换工具 v1.1.59汉化
2008-7-19 Modem修复软件ZiPhone修改版04.0
2008-7-19 AgileMessenger即时通讯工具美化
2008-7-19 Sketches画图软件 v0.7b6破解版


  发表评论
姓 名: 验证码:
内 容:
[ 汉字翻译拼音 ] [ 广告代码 ] [ 符号对照表 ] [ 进制转换 ] [ 经典小工具 ] [ 个税计算 ] [ 汉字简繁转换 ] [ 普通单位换算 ] [ 公制单位换算 ]
[ 生辰老黄历 ] [ 国内电话区号 ] [ 国家代码与域名缩写 ] [ 文字加密解密 ] [ 健康查询 ] [ 万年历 ] [ 手机号码查询 ] [ ip搜索 ] [ Google PR查询 ]
业务联系 | 广告刊登 | 频道合作 | 投稿荐稿 | 联系方式 | 加入收藏 | RSS订阅
Copyright © 2000-2008 www.knowsky.com All rights reserved | 网络实名:动态网站制作指南 | 沪ICP备05001343号
ホームページ制作 不動産検索システム 求人情報
防水工事·改修工事 フットサル大会 探偵