一区二区久久-一区二区三区www-一区二区三区久久-一区二区三区久久精品-麻豆国产一区二区在线观看-麻豆国产视频

如何教新手編程

  英文原文:Teaching Programming To A Highly Motivated Beginner

  作者:Philip Guo

  譯者:zhongqi

  過(guò)去的一年中,許多計(jì)算機(jī)專業(yè)的教授和教育專家都寫了關(guān)于 MOOC 如何擴(kuò)大計(jì)算機(jī)教育服務(wù)的規(guī)模,使得成千上萬(wàn)的學(xué)生都能享受到。而我想從另外一個(gè)角度,說(shuō)一說(shuō)我是如何在 9 個(gè)月的時(shí)間里向 1 位學(xué)生教授計(jì)算機(jī)編程的。

  2011 年 7 月到 2012 年 3 月之間,我給 Brian Goler 教授基本的編程知識(shí);他是舊金山灣區(qū)一位有經(jīng)驗(yàn)的企業(yè)家,在市場(chǎng)、銷售和產(chǎn)品開發(fā)等方面都有廣泛的經(jīng)驗(yàn)。Brian 之前沒有編程經(jīng)驗(yàn),但在幾個(gè)月的時(shí)間里,他就做出了 SwearBuy,一個(gè)讓那個(gè)人們對(duì)喜愛的產(chǎn)品發(fā)表評(píng)論的免費(fèi) web 應(yīng)用程序。更重要的是,Brian 獲得了自學(xué)的能力,能夠接下來(lái)自己搜尋、學(xué)習(xí)更高階的技術(shù)內(nèi)容。我的主要貢獻(xiàn),是指導(dǎo)他克服一些通常會(huì)打擊初學(xué)者的障礙。

  背景

  Brian 通過(guò)我的個(gè)人網(wǎng)站上知道了我,因?yàn)槔镞呌袔灼?jì)算機(jī)科學(xué)教育的文章。下面摘錄他在 2011 年 7 月給我發(fā)的第一封郵件里的一段內(nèi)容:

我們沒見過(guò)面,但我想試試看能否從您這兒得到些建議。

我在網(wǎng)上搜尋能幫我學(xué)習(xí)編程的導(dǎo)師的時(shí)候發(fā)現(xiàn)了你的網(wǎng)站。更準(zhǔn)確地說(shuō),我在上一門計(jì)算機(jī)課程,我希望找一個(gè)導(dǎo)師,每周能當(dāng)面輔導(dǎo)我 1-2 次,每次 1 小時(shí)左右。

我正在上 MIT 的 OCW 6.00 課程。盡管 OCW 和其他的在線課程都很棒,但我覺得如果有個(gè)人可以請(qǐng)教、還能檢查我的作業(yè),并給與反饋,那我的進(jìn)度應(yīng)該會(huì)更快些,對(duì)概念的理解也會(huì)更深入。

您在 MIT 和 Stanford 都待過(guò),應(yīng)該認(rèn)識(shí)一些合適的人吧?或者,可以給我推薦下去哪兒找合適的人?當(dāng)然,我會(huì)向輔導(dǎo)的人付錢的。

  因?yàn)槟菚?huì)兒我剛好不忙,于是我就親自輔導(dǎo) Brian。我們第一次的一小時(shí)會(huì)面是在他家,第二次是在附近的一家咖啡館。之后我去參加某個(gè)學(xué)術(shù)會(huì)議,于是第三次的輔導(dǎo)我們就通過(guò) Skype 在線視頻電話進(jìn)行。我們用了 Skype 的屏幕共享功能,這樣在聊天的時(shí)候我就能同時(shí)看到他的電腦屏幕。這種形式非常適合輔導(dǎo),于是我們決定接下來(lái)的所有輔導(dǎo)都通過(guò) Skype 進(jìn)行。我只當(dāng)面輔導(dǎo)過(guò) Brian 兩次,而我們的 Skype 視頻通話時(shí)長(zhǎng)高達(dá) 50 小時(shí)(大約 40 次)。

  在 Skype 上的在線輔導(dǎo)進(jìn)行的如此順暢,我們都感到很驚喜。這甚至比我們當(dāng)面聊天更有效,那樣還會(huì)受困于嘈雜的咖啡廳和狹小的筆記本電腦屏幕。借助 Skype 的屏幕共享功能,我能在我自己的公寓里邊舒服地看到 Brian 的電腦屏幕,并且與他實(shí)時(shí)互動(dòng)。如果我需要畫些草圖來(lái)說(shuō)明,那我只需要共享屏幕,然后用繪圖板來(lái)畫就行了。(Salman Khan 就是用類似的辦法教他的表弟,于是就有了現(xiàn)在知名的可汗學(xué)院教育視頻。)

  基于項(xiàng)目的學(xué)習(xí)

  Brian 的目標(biāo)是學(xué)習(xí)基本的編程技巧,提高自己;而不是要獲得一份程序員的工作,或是成為一名研究人員。在見我之前,Brian 已經(jīng)通過(guò)上 MIT 開放課程中的計(jì)算機(jī)科學(xué)與編程基礎(chǔ),自學(xué)了幾周 Python 編程。開始的幾次輔導(dǎo)中,我們通過(guò)課程講義和作業(yè),復(fù)習(xí)了基本的編程概念。

  然而,我很快就意識(shí)到,僅僅通過(guò)學(xué)院式的課程資料來(lái)學(xué)習(xí),無(wú)法讓 Brian 足夠投入,尤其考慮到他已經(jīng)大學(xué)畢業(yè) 20 年這個(gè)現(xiàn)實(shí)。他看起來(lái)并不滿足于只學(xué)習(xí)一些計(jì)算機(jī)學(xué)科的術(shù)語(yǔ)、做一些針對(duì)大學(xué)生的數(shù)學(xué)相關(guān)的小練習(xí)。

  因此,我決定教 Brian 成為一個(gè)實(shí)用主義的業(yè)余程序員,而不是一個(gè)博學(xué)的計(jì)算機(jī)科學(xué)專家。我鼓勵(lì)他想出一個(gè)給自己或朋友用、自己也愿意做的軟件。相應(yīng)地,我將指導(dǎo)他完成這個(gè)軟件項(xiàng)目。這個(gè)想法如此簡(jiǎn)單,但效果卻異常好。

  Brian 提出了一些 idea,并最終決定實(shí)現(xiàn)其中的一個(gè),也就是后來(lái)的 SwearBuy。在接下來(lái)的 9 個(gè)月里,他每周都投入十幾個(gè)小時(shí)的時(shí)間編寫 SwearBuy,常常干到深夜。我們每周都有一到兩次的 Skype 輔導(dǎo),每次持續(xù)一到兩個(gè)小時(shí)。輔導(dǎo)中的大部分時(shí)間,我都用來(lái)回答 Brian 的問(wèn)題,幫他調(diào)試 bug,有時(shí)還跟他結(jié)對(duì)編程,一起寫點(diǎn)兒代碼。我每次講的時(shí)間都只有幾分鐘。除了能讓他的注意力高度集中外,這種基于問(wèn)答的形式對(duì)我來(lái)說(shuō)也很不錯(cuò),因?yàn)槲規(guī)缀醪槐鼗〞r(shí)間提前做什么準(zhǔn)備。

  基于項(xiàng)目的學(xué)習(xí)十分高效,因?yàn)?Brian十分重視他自己的第一個(gè)項(xiàng)目。他的學(xué)習(xí)被需求牽著走,而不是一些預(yù)先設(shè)置好的的學(xué)術(shù)課程。因?yàn)樗麑?duì) Swearbuy 的熱情非常高,所以常常會(huì)想出很多新功能的點(diǎn)子。為了實(shí)現(xiàn)這些功能,他必然要學(xué)習(xí)一些新的編程技術(shù)。因此,我的角色就變成了:

  • 評(píng)估他想實(shí)現(xiàn)的功能的可行性,如果需要的話,指導(dǎo)他完成一個(gè)簡(jiǎn)單版本;

  • 挑選最適合他需要的編程工具、風(fēng)格以及技巧;

  • 給他找到合適的自學(xué)資料(比如代碼示例、博客、在線教程、書等);

  • 在他努力理解和應(yīng)用自學(xué)的內(nèi)容時(shí),回答他的疑問(wèn)。

  編程實(shí)現(xiàn)一個(gè)任務(wù),常常有幾十種甚至上百種方式;這種選擇的多樣性常常讓初學(xué)者手足無(wú)措。因?yàn)檫x擇太多,他們反而不知從何入手。我要做的,主要就是幫他將選擇范圍縮小到一個(gè)可控的范疇,適合他各個(gè)階段的學(xué)習(xí);然后讓他去自學(xué),遇到問(wèn)題時(shí)我再解答他的疑問(wèn)。

  我十多年的編程和教授編程的經(jīng)驗(yàn),使得我在每個(gè)需要選擇的點(diǎn)上,都能將選擇范圍縮小到我認(rèn)為最適合Brian學(xué)習(xí)的程度。比如,我選擇讓他用最基本的編程語(yǔ)言(比如 Python, JavaScript, SQL)功能來(lái)“從頭”搭建 SwearBuy,而不是在已有的一些復(fù)雜的 web 應(yīng)用開發(fā)框架上開始。盡管為此 Brian 不得不寫更多的代碼來(lái)“從頭”(這個(gè)詞兒可能有些不準(zhǔn)確,因?yàn)椴豢赡芡耆珡牧汩_始)開始實(shí)現(xiàn)期望的功能,但他通過(guò)這個(gè)過(guò)程,能夠深入到內(nèi)部原理,深入理解各個(gè)部分是如何組合到一起的。

  Brian 的項(xiàng)目是我們 Skype 會(huì)話的絕好的基礎(chǔ),因?yàn)槲夷軐⒆约阂淌诘男赂拍钊谌氲剿雽?shí)現(xiàn)的新功能中去。再多的刻意的課后練習(xí)所發(fā)揮的作用,也比不上一個(gè)屬于學(xué)生自己的的應(yīng)用程序。

  在掙扎中學(xué)習(xí)

  在我們每次 1-2 小時(shí)的 Skype 輔導(dǎo)開始前,Brian 通常會(huì)編程 10-15 個(gè)小時(shí),所以他總是用大量急切的問(wèn)題要問(wèn),有很多新寫的代碼需要我?guī)退麃?lái)調(diào)試和優(yōu)化。如果我只是給他講課,而不基于任何背景,那他不可能消化的這么徹底,很可能只是點(diǎn)點(diǎn)頭,然后說(shuō)“嗯,好吧,好像是這么回事兒……不錯(cuò),然后呢?”相反,因?yàn)樗诿看屋o導(dǎo)之前,都一直在和具體的代碼相關(guān)的問(wèn)題糾纏——甚至經(jīng)常因此而受挫和沮喪——所以每當(dāng)我給他解釋清楚了什么之前看起來(lái)好像不可逾越的問(wèn)題時(shí),他的反應(yīng)往往是“喔喔喔,哇哦!現(xiàn)在我算是徹底明白了!”。他的喜悅和釋然每次都那么明顯。我覺得對(duì)消化知識(shí)來(lái)說(shuō),沒有比這更好的方式了:先花上幾個(gè)小時(shí)努力解決問(wèn)題,不斷積累心中煩躁的情緒,然后再接受導(dǎo)師的指導(dǎo)。

  為了減少 Brian 的痛苦,我?guī)退罱碎_發(fā)環(huán)境,做了一些乏味的工作,因?yàn)檫@些東西不會(huì)直接促進(jìn)他的學(xué)習(xí)。我希望他把精力花費(fèi)在編程和搭建 SwearBuy 上,而不要浪費(fèi)時(shí)間做些不相關(guān)的事情,比如搭建服務(wù)器或是版本控制系統(tǒng)。(當(dāng)然了,如果他的目標(biāo)是成為一個(gè)系統(tǒng)管理員,那我盡可以讓他去糾結(jié)那些細(xì)節(jié)。)

  有很多時(shí)髦的書、在線教程以及直播節(jié)目,都宣稱能讓你在 7 天或是 3 周時(shí)間里學(xué)會(huì)編程(或者別的什么技能)。很明顯,你不可能在幾周里就掌握一門新技能,而且我覺得也沒幾個(gè)人真的相信他們可以。這些“快速獲取技能”計(jì)劃的真正問(wèn)題在于,他們忽視了可持續(xù)性。這些課程就好像減肥食譜一樣,可能會(huì)讓你馬上減掉 10 磅體重,但卻無(wú)法讓你保持住,除非你真正地養(yǎng)成了好的習(xí)慣。類似的,除非你不斷努力很多年,否則也無(wú)法精通編程;為了激勵(lì)自己不斷努力,你必須是在做自己有熱情的事情。努力掙扎可不是什么有趣的事兒,如果沒有適當(dāng)?shù)募?lì),太容易早早地放棄了。

  當(dāng) Brian 意識(shí)到他不再需要我的輔導(dǎo)時(shí),我知道我成功了。盡管他也承認(rèn)要成為一名技藝精湛的程序員,自己還需要努力好幾年,但他已經(jīng)知道在現(xiàn)有的水平下,如何努力才能到達(dá)那個(gè)高度。在過(guò)去的九個(gè)月里,他學(xué)到了足夠多的東西,能夠支持他繼續(xù)自學(xué)下去。對(duì)于自己給了他足夠的方法和智慧來(lái)繼續(xù)自學(xué),而不是填鴨式地應(yīng)付一個(gè)學(xué)生,我感到很自豪。

  最后的思考

  在我們的輔導(dǎo)結(jié)束之后,Brian 反映說(shuō),盡管他受益于這種“通過(guò)做來(lái)學(xué)習(xí)”的方法,但他仍然認(rèn)為,將基于項(xiàng)目的學(xué)習(xí)和傳統(tǒng)的計(jì)算機(jī)課程學(xué)習(xí)結(jié)合起來(lái),有很大的價(jià)值。在構(gòu)建 SwearBuy 的過(guò)程中,他經(jīng)常通過(guò) Google、閱讀技術(shù)博客、從 StackOverflow 上拷貝代碼等方式,來(lái)臨時(shí)解決自己的問(wèn)題。結(jié)果,他發(fā)現(xiàn)自己經(jīng)常得出并非最優(yōu)的方案,而且用的東西自己都無(wú)法完全理解。Brian 的一些巨大的進(jìn)步,來(lái)自于他從項(xiàng)目中抽身出來(lái),轉(zhuǎn)而去學(xué)習(xí)書中或課程中遇到的新的概念,然后想著如何將其用到 SwearBuy 中。

  自從我們 2012 年 3 月結(jié)束最后一次的輔導(dǎo)以來(lái),我 6 個(gè)月沒有收到 Brian 的消息了。最近他給我發(fā)的電子郵件中提到,他剛剛寫了個(gè) Python 腳本,幫自己給個(gè)人股票投資建立模型:“對(duì)這個(gè)腳本我感到很自豪,因?yàn)檫@是我做的第一個(gè)實(shí)用的自用工具。我過(guò)去一直都在評(píng)估股票投資項(xiàng)目,一直想模擬各種場(chǎng)景;一開始我用的是 Excel,但后來(lái)終于發(fā)現(xiàn) Python 才是做這件事兒的不二之選。”

  我很喜歡這封郵件,因?yàn)樗故玖司幊碳寄艿淖饔茫屧緹o(wú)聊且困難的任務(wù)能夠輕松完成。我希望每個(gè)學(xué)習(xí)編程的人都能有邁過(guò)那道坎兒的時(shí)刻,從那以后就不僅是為學(xué)校或公司的活兒而編程,而更多的是為自己而編程。

  我還想說(shuō)一遍那句老話,積極性意味著一切(motivation is everything)。Brian 的積極性來(lái)自自己的項(xiàng)目,所以實(shí)際上他是自學(xué)的。我要做的僅僅是定期指導(dǎo)一下他,幫他最有效地進(jìn)步,讓他的努力變?yōu)橛行У膶W(xué)習(xí)。

  我的這些經(jīng)驗(yàn)如何才能推廣到教授大批的自我激勵(lì)的程度遠(yuǎn)不及 Brian 的學(xué)生的教學(xué)實(shí)踐中去?我摸索出的這些技巧如何能不再局限于一對(duì)一的輔導(dǎo)這種形式?我也不知道。我只知道,如果你能讓學(xué)生產(chǎn)生真正的積極性,幫他們移除學(xué)習(xí)中一些不必要的障礙,而且在適當(dāng)?shù)臅r(shí)候拉他們一把,那么實(shí)際上他們就完全可以自學(xué)。

it知識(shí)庫(kù)如何教新手編程,轉(zhuǎn)載需保留來(lái)源!

鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。

主站蜘蛛池模板: 伊人网在线免费观看 | 视频综合网 | 免费a级欧美黑寡妇a观看 | 国产福利在线观看 | 真人午夜a一级毛片 | 91福利国产在线观看 | 视频在线观看黄 | 韩国一区二区三区 | 国产福利一区二区三区在线视频 | 男女一级毛片 | 91精品全国免费观看含羞草 | 九九手机视频 | 四虎精品国产一区二区三区 | 激情5月婷婷 | 欧美午夜性刺激在线观看免费 | 久久精品.com | 国产精品福利在线观看免费不卡 | 欧美一级做一a做片性视频 欧美一级做一级做片性十三 | 青青草91视频 | 激情视频激情图片激情小说 | 女人洗澡一级毛片一级毛片 | 色呦| 国产亚洲综合视频 | 国产午夜大片 | 不卡视频一区二区 | 欧美特黄高清免费观看的 | 欧美五月婷婷 | 成人a视频 | 91久久国产青草亚洲 | eeuss影院www在线观看手机 | 苦瓜se在线精品视频 | 91网站入口 | 色综合色综合色综合色综合 | 玖玖在线免费视频 | 99精品热线在线观看免费视频 | 国内自产拍自a免费毛片 | 欧美人体一区二区三区 | 一色屋色费精品视频在线观看 | www色视频在线观看 www色在线 | 午夜喷水 | nnnwww在线观看视频 |