国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 學(xué)院 > 開發(fā)設(shè)計(jì) > 正文

編程不難學(xué)?

2019-11-17 04:36:22
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友
編程應(yīng)該好學(xué)?大概沒有幾個(gè)人會(huì)說(shuō)這不是瘋話不是夢(mèng)話,編程難學(xué)可是舉世公認(rèn)的常識(shí)呀!要是好學(xué),程序員的工資會(huì)高?要是好學(xué),電腦還叫高科技?… Google“編程好學(xué)”、“程序設(shè)計(jì)好學(xué)”、“編程語(yǔ)言好學(xué)”,根本就沒有多少結(jié)果,因?yàn)榫幊毯貌缓脤W(xué)是不言而喻的,壓根就沒有幾個(gè)人這樣問!

本文的讀者都是上過學(xué)的,假如回憶一下自己的學(xué)習(xí)經(jīng)歷,就能總結(jié)出,難學(xué)的課程通常是那些抽象的課程,比如數(shù)學(xué),包含太多“脫離”實(shí)際的概念術(shù)語(yǔ),是最難學(xué)的,理化和工科因?yàn)榭梢宰鰧?shí)驗(yàn)和使用儀器工具,和現(xiàn)實(shí)有些直接的聯(lián)系,而比數(shù)學(xué)易于理解。對(duì)推理能力、想像力、創(chuàng)造力的高要求也是數(shù)理化和工科難學(xué)的一個(gè)原因。至于編程,幾乎和數(shù)學(xué)一樣,有自己的一套封閉的名詞術(shù)語(yǔ)和運(yùn)行機(jī)制,其抽象的特征使其也難學(xué)-這是“常識(shí)”,也是“現(xiàn)實(shí)”。

有的時(shí)候,人人都默認(rèn)的“常識(shí)”不一定是真理,比如“重的東西比輕的東西落下得快”,就曾經(jīng)是全世界千千萬(wàn)萬(wàn)人民堅(jiān)信了幾千年的“常識(shí)”,直到被一個(gè)叫伽利略的人、在一個(gè)斜塔上、扔下一大一小兩塊石頭所打翻。

作者多年前開始研究編程(實(shí)際上是更廣泛的電腦知識(shí))難學(xué)的原因和解決方法,發(fā)現(xiàn)編程本質(zhì)上一點(diǎn)不抽象,相反,它是很實(shí)際的知識(shí),原因如下:

1.編程知識(shí)是人造產(chǎn)品


比如java,是由Sun公司的人創(chuàng)造的。人造知識(shí)的特點(diǎn)之一,就是它是由人為創(chuàng)造的規(guī)則組成,而人造規(guī)則是“死板”的,即便有時(shí)候“靈活”一下,“靈活”也是由人造的規(guī)則約束的。比如Java中的一個(gè)概念是什么意思、能用在什么場(chǎng)合、和其他概念有什么關(guān)系、怎樣改變它的特性、擴(kuò)展它的功能,全都明明白白地規(guī)定了下來(lái)。根本沒有不為人知的潛規(guī)則(假如有,那就叫bug),需要學(xué)習(xí)者像伽利略一樣,自己推理、自己思考、或者自己去發(fā)現(xiàn)。學(xué)習(xí)這些明明白白全能寫在紙上、無(wú)需想像力和創(chuàng)造力的死規(guī)則會(huì)難嗎?

2. 編程知識(shí)是有限的


因?yàn)樗侨嗽斓闹R(shí),所以它是有限的。比如JDK1.4版本(就像windows 2000),你可以找到它所有的知識(shí)點(diǎn)(盡管很多),雖然你可能不會(huì)在一個(gè)本書或者一個(gè)文檔中找到它所有的知識(shí),但確實(shí)可以想像有這樣一本書,它包含了所有的JDK1.4的知識(shí),包括如何使用它們的知識(shí),當(dāng)然,這本書從來(lái)沒有出版過。人造知識(shí)也會(huì)發(fā)展,比如JDK1.4發(fā)展到JDK1.5(就像Windows 2000到Windows xp),但這也是Sun公司又添加了些新規(guī)則而已,不關(guān)學(xué)習(xí)者的事。有限的知識(shí)也意味著能在有限的時(shí)間內(nèi)學(xué)會(huì),而對(duì)于數(shù)學(xué)、物理這樣的知識(shí)、甚至是其中的一個(gè)小的分支,我們都不知道它到底是無(wú)限的還是有限的,因?yàn)樗闹R(shí)(至少大部分)都不是人造的,天知道有多少知識(shí)、它們藏在什么地方、能被誰(shuí)發(fā)現(xiàn)或者解決,比如對(duì)于自由落體規(guī)律,在伽利略之前,全世界的天才聰明人都沒想到登高丟石頭。

說(shuō)白了,Know Unknown Through Known其實(shí)就是由簡(jiǎn)到繁、由淺入深、由具體到抽象這些顯而易見的老生常談。可惜的是,這個(gè)顯而易見的教學(xué)原則顯而易見在電腦(包括編程)教學(xué)中沒有“常談”過,在作者網(wǎng)站的中英文文章中,舉了很多違反這一“大白話”原則的例子,包括一些知名國(guó)外作者。本人認(rèn)為,這是編程(包括其他電腦知識(shí))難學(xué)的原因。而與此相對(duì)照的是,作者自從1999年開始電腦寫作以來(lái),已經(jīng)出版了包括10本Java程序設(shè)計(jì)著作的電腦書,也作過長(zhǎng)時(shí)間的Java教師,幾乎沒有人抱怨作者的書難看、課難懂,因?yàn)樽髡邍?yán)格地在寫作和教學(xué)中應(yīng)用了Know Unknown Through Known原則。

那么,作者是怎樣應(yīng)用Know Unknown Through Known的呢?具體的教學(xué)技巧如下:

1.具體地列舉學(xué)習(xí)一門課程的預(yù)備知識(shí)。比如,會(huì)不會(huì)循環(huán)語(yǔ)句?很多編程書只是用很概括的描述,例如“有Java的基礎(chǔ)知識(shí)”、“初級(jí)”、“中級(jí)”等。對(duì)預(yù)備知識(shí)的具體描述,可避免學(xué)生選擇太淺或者太深的課程。

2.總是用學(xué)生已經(jīng)學(xué)過或者輕易理解的東西,來(lái)解釋新的知識(shí)點(diǎn)。例如作者每當(dāng)提到一個(gè)名詞、概念或者其它知識(shí)點(diǎn),問自己三個(gè)問題:“讀者可能學(xué)過嗎?前面講過嗎?應(yīng)該在這里講嗎?”,盡量保證每一句話、每一個(gè)段落的知識(shí)只涉及前面的內(nèi)容而不涉及后面的內(nèi)容,使讀者從第一頁(yè)看起,基本沒有看不懂的地方,這就是不用未知解釋另外一個(gè)未知。比喻、示例、圖片、動(dòng)畫等也是學(xué)生已經(jīng)了解或者很輕易理解的“東西”。比如,假如教師打算用“老虎是一種大貓”來(lái)解釋老虎,那么要先確認(rèn)孩子見過貓。

3.盡量在新的知識(shí)點(diǎn)第一次出現(xiàn)時(shí),將它解釋清楚。因?yàn)橹R(shí)點(diǎn)經(jīng)常互相交叉,萬(wàn)一要提及后面才能具體講解的知識(shí),就使用這樣的說(shuō)法:“先不管XXX的含義,后面還要具體講解”,以避免讀者產(chǎn)生沒有講清楚的錯(cuò)覺。僅此一點(diǎn),就可保證讀者看得不累,不會(huì)卡在不理解的地方長(zhǎng)久地流連忘返。因?yàn)樽x者在學(xué)習(xí)時(shí),傾向于盡力理解每個(gè)字,假如碰到?jīng)]有解釋清楚的術(shù)語(yǔ),就會(huì)停下來(lái)長(zhǎng)時(shí)間地亂琢磨,直至懷疑自己是不是笨、或者書太難-大多不會(huì)認(rèn)為是老師的錯(cuò)。

4. 在教編程語(yǔ)言時(shí),盡量用程序例子來(lái)演示每個(gè)知識(shí)點(diǎn):概念、名詞、框架等,這是所謂的“實(shí)例教學(xué)法“。前面說(shuō)過,編程語(yǔ)言的幾乎所有知識(shí)點(diǎn)都是可以用程序演示的。雖然很多電腦書作者和教師也了解到了例子的重要性,可似乎仍然停留在不太清楚的潛意識(shí)中,沒有有意識(shí)地在教學(xué)中使用程序演示每個(gè)(注重是“每個(gè)”)知識(shí)點(diǎn)-假如很多教師遵循了這個(gè)原則,編程好學(xué)就是常識(shí)了。很多編程書,例如作者網(wǎng)站上提到的那些,大談所謂的體系、結(jié)構(gòu)、層次、優(yōu)勢(shì)等等,綿延數(shù)頁(yè)全是“理論”式的文字,沒有幾行代碼或者實(shí)例。這相當(dāng)于說(shuō)一堆美女標(biāo)準(zhǔn)的“理論”:口臉鼻該長(zhǎng)的什么樣、身材比例多少、皮膚質(zhì)地如何…卻舍不得出示美女照片或者帶學(xué)生站在大街上看美女。像編程知識(shí)一樣,“美女”是很實(shí)用具體的知識(shí),誰(shuí)愿意光鉆研“美女”的理論,卻見不到美女的“實(shí)例”?


5. 對(duì)數(shù)據(jù)庫(kù)、服務(wù)器、開發(fā)環(huán)境的教學(xué),盡量用“怎么做XXX”的方式,列舉具體的步驟。例如“怎樣在JBuilder中設(shè)置JDBC的驅(qū)動(dòng)”、“怎樣部署程序到服務(wù)器中”等,這也是一種“實(shí)例”教學(xué)形式。要避免字典式的講解,比如逐條講解File菜單的Open、New、Save,卻不演示從新建文件到編輯和保存文件的完整過程。

6.盡量避免大和復(fù)雜的程序?qū)嵗偃缍绦〉睦幽苓_(dá)到同樣效果的話。一些作者和教師喜歡采用復(fù)雜的示例,雖然苦了學(xué)生,卻顯示了其專業(yè)技術(shù)水平,學(xué)生甚至還因此崇拜他們!

7. 教學(xué)過程應(yīng)該一點(diǎn)一點(diǎn)地前進(jìn),一次只講一個(gè)盡量小的知識(shí)點(diǎn),避免涉及其他知識(shí)點(diǎn),并且步驟盡量詳盡到這種程度:即便一個(gè)人不理解你講的知識(shí),按照你的步驟也能得到最后的結(jié)果。

8.所有的代碼應(yīng)該是可運(yùn)行的。很多書中的代碼是代碼片斷或者偽代碼,這會(huì)令學(xué)生花費(fèi)額外的時(shí)間編寫可運(yùn)行的程序,而不一定能成功,這就增加了學(xué)習(xí)的難度。

9.只有當(dāng)相當(dāng)?shù)闹R(shí)點(diǎn)已經(jīng)完成講解后,才是使用綜合復(fù)雜例子的合適時(shí)間。對(duì)開發(fā)人員來(lái)說(shuō),綜合性強(qiáng)的例子絕對(duì)是需要的,就像要全面把握美女知識(shí),一定要觀看各國(guó)美女云集的環(huán)球小姐選美賽一樣。

寫作本文的目的,一是讓廣大讀者和學(xué)生堅(jiān)信,在編程學(xué)習(xí)方面,“沒有笨學(xué)生,只有笨先生”(該說(shuō)法來(lái)自作者的另外一篇文章),假如學(xué)不會(huì)編程中的什么東西,千萬(wàn)不要以為是自己笨!二是介紹作者的教育觀點(diǎn)包括教學(xué)技巧,供其他教師借鑒參考。三是告訴讀者,作者的所有將出版和已出版的著作,全是按照Know Unknown Through Known原則編寫的,甚至本文也是按照這一思想寫作的-比如上面的那些示例和比喻。

關(guān)于Know Unknown Through Known更嚴(yán)謹(jǐn)?shù)恼撌觯娮髡呔W(wǎng)站的英文文章:An Effective Methodology of Teaching PRogramming Knowledge,網(wǎng)站上的其他文章中,還列舉了很多正反兩方面的例子,閱讀起來(lái)更生動(dòng)有趣。

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 夏邑县| 辽宁省| 嘉义县| 分宜县| 小金县| 理塘县| 莱西市| 徐水县| 深州市| 儋州市| 澳门| 黄山市| 南宫市| 开平市| 黎川县| 安西县| 建昌县| 锡林浩特市| 平陆县| 临澧县| 海安县| 澜沧| 博客| 兴业县| 象山县| 通榆县| 汕尾市| 介休市| 确山县| 九寨沟县| 鄂托克前旗| 集安市| 永泰县| 渝北区| 高要市| 夏邑县| 改则县| 景德镇市| 夹江县| 沁源县| 稷山县|