自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

如何用蘇格拉底式問答法幫助學(xué)習(xí)者解決代碼問題

譯文 精選
開發(fā) 前端
作為一個編程社區(qū),freeCodeCamp為眾多對自身所寫代碼存在疑問的編程愛好者提供了強而有力的幫助。然而,盡管直接給出答案然后繼續(xù)推進這種方式看起來頗具吸引力,但實際上,這種做法對編程愛好者的學(xué)習(xí)進程是有害的。

譯者 | 劉濤

審校 | 重樓

作為一個編程社區(qū),freeCodeCamp為眾多對自身所寫代碼存在疑問的編程愛好者提供了強而有力的幫助。然而,盡管直接給出答案然后繼續(xù)推進這種方式看起來頗具吸引力,但實際上,這種做法對編程愛好者的學(xué)習(xí)進程是有害的。這其中的主要原因在于

當直接給出答案時,編程愛好者會失去那種“恍然大悟”的瞬間。這剝奪了他們通過獨立思考得出結(jié)論的機會,使得他們以最小的努力甚至無需過多思考就能取得進步。

那么,如何用最合適的方法幫助編程愛好者解決代碼問題呢?

什么是蘇格拉底式問答法

古希臘著名哲學(xué)家柏拉圖的老師是蘇格拉底,在柏拉圖的諸多作品中,他時常描繪蘇格拉底與同事以及學(xué)生之間的辯論場景。

蘇格拉底會通過這些辯論,指出人們普遍秉持的信念,并對其予以仔細審查,質(zhì)疑這些信念與其他信念是否和諧一致從而引導(dǎo)人們深入探索真理的本質(zhì)。

然而在數(shù)字時代,這種方法又該如何應(yīng)用于我們當下的交流互動當中呢?

讓我們從一個社區(qū)的真實案例中來思考這個問題:

可能很想給上述問題一個直接的答案,例如以下代碼所示

const sum = nums.reduce((acc, el) => acc + el, 0);

但是,如此行事實際上是替學(xué)習(xí)者完成了邏輯推理的過程。

相反,應(yīng)當專注于提出具有針對性的問題,以此引導(dǎo)他們尋得答案。例如,能夠從以下問題著手進行提問:

如果不使用代碼,如何用紙筆計算出一系列數(shù)字的總和?

要求學(xué)習(xí)者脫離代碼來回答這個問題,看似有悖于直覺,但實際上是在引導(dǎo)他們思考問題背后的邏輯。

讓我們假設(shè)學(xué)習(xí)者給出了如下的回答:

我會逐個瀏覽每個數(shù)字,并將其累加到之前數(shù)字的總和上。

隨著學(xué)習(xí)者開始回應(yīng)的問題,對話應(yīng)當以這種一問一答的形式展開,并且隨著學(xué)習(xí)者逐漸趨近解決方案,的問題應(yīng)愈發(fā)具體且具有針對性。

舉例來說,一系列問題如下展開

導(dǎo)師:“很好,那么什么是數(shù)字數(shù)組?”

學(xué)生:“一個列表?”

導(dǎo)師:“不錯!你將如何遍歷這個列表?”

學(xué)生:“用一個for循環(huán)?!?/span>

導(dǎo)師:“那么在每次迭代中,你的循環(huán)需要做什么?”

學(xué)生:“將當前數(shù)字加到總和中?!?/span>

導(dǎo)師:“你在哪里可以找到總和?”

學(xué)生:“我可以把它放在一個循環(huán)外部的變量中?!?/span>

導(dǎo)師:“很好,現(xiàn)在你可以嘗試編寫代碼了?!?/span>

——此示例為本文原創(chuàng)

此時,學(xué)習(xí)者很可能會將各個要點聯(lián)系起來,并得出最終的解決方案。

蘇格拉底式問答法在現(xiàn)代文化中的應(yīng)用

學(xué)習(xí)蘇格拉底式問答法(Socratic method)并非易事。實際上,許多人往往要到上大學(xué)時才會接觸到它。不過,在現(xiàn)代流行文化當中,存在著不少能夠幫助你理解蘇格拉底式問答法如何運作的實例。

在電視劇《豪斯醫(yī)生》(House, M.D.)里就充斥著此類例子。以名為“三個故事”(Three Stories)的一集為例,請看下面的對話:

豪斯:“腎結(jié)石會導(dǎo)致什么?”

學(xué)生:“尿中帶血?!?

豪斯:“你的尿是什么顏色?”

學(xué)生:“黃色?!?

豪斯:“你的血是什么顏色?”

學(xué)生:“紅色。”

豪斯:“我用了哪些顏色?”

學(xué)生:“紅色、黃色和棕色?!?

豪斯:“還有棕色。棕色是由什么導(dǎo)致的?”

學(xué)生:“廢物。” ——(Frapier,2008)1

會留意到這段對話的展開方式。豪斯的目的并非直接給出答案,而是通過提出演繹性的問題,引導(dǎo)學(xué)習(xí)者自行得出結(jié)論。

再來瞧瞧熱門電影《黑客帝國》(The Matrix):

墨菲斯:“尼奧,你有沒有做過一個夢,如此真實,讓你深信不疑?”

尼奧:“這不可能是……”

墨菲斯:“不可能是什么?不可能是真的嗎?”

墨菲斯:“如果你無法從那個夢中醒來,尼奧,你怎么知道夢境和現(xiàn)實世界之間的區(qū)別呢?” ——(沃卓斯基姐妹,1999 年)2

在這個場景里,墨菲斯運用蘇格拉底式問答法引導(dǎo)尼奧他對現(xiàn)實的感知產(chǎn)生質(zhì)疑。這是一個頗為戲劇化的例子,但其前提是相同的:并非告知學(xué)習(xí)者他們應(yīng)當如何思考,而是引導(dǎo)他們憑借自身的意愿得出結(jié)論。

最后,我們來看一個出自《律政俏佳人》(Legally Blonde)的例子:

Elle:“你父親被槍殺的時候,你正在洗澡?”

……

Chutney:“是的。我正在洗頭?!?/span>

Elle:“Windham小姐,你能跟我們講講你當天早些時候在做什么嗎?”

Chutney:“我起床后去了星巴克,然后去了健身房,燙了頭發(fā),就回家了?!?/span>

Elle:“然后你洗了澡。”

Chutney:“是的。”

……

Elle:“……Windham 小姐,你以前燙過頭發(fā)嗎?”

Chutney:“燙過?!?/span>

Elle:“那你能說說大概燙了多少次嗎?”

Chutney:“從十二歲開始,每年兩次。你自己算算吧。”

……

Elle:“Chutney,為什么 Tracy Marcinko 的卷發(fā)被水沖過后就毀了?”

Chutney:“因為卷發(fā)濕了?!?/span>

Elle:“沒錯。因為燙發(fā)保養(yǎng)的首要規(guī)則不就是,燙完頭發(fā)后至少二十四小時內(nèi)不能弄濕頭發(fā),否則可能會使硫代乙酸銨失效嗎?而一個一生中燙過——三十次發(fā)?——的人,不應(yīng)該很清楚這條規(guī)則嗎?而且,如果你事實上并沒有在洗頭,就像我所懷疑的那樣,因為你的卷發(fā)還完好無損,那你難道沒有聽到槍聲嗎?”

——(Luketic,2001)3

蘇格拉底式問答法在法律領(lǐng)域頗為常見,而這段對話便是一個極為出色的范例。在此段對話中,Elle 并非試圖引導(dǎo) Chutney 得出結(jié)論,而是在引導(dǎo)觀眾(在這種情形下是陪審團)得出結(jié)論。這對于像我們這樣的社區(qū)而言是一個重要的區(qū)別:與一位成員展開蘇格拉底式的討論,實際上能夠讓當前以及未來可能觀察到或回顧這段對話的成員從中受益。

蘇格拉底式問答法的目標

認識到蘇格拉底式教學(xué)法(Socratic method)的目標并非是迅速地交換信息,這一點極為關(guān)鍵。恰恰相反,其首要目標在于讓學(xué)習(xí)者認識到自身所知曉的內(nèi)容比他們自認為的要少,而后通過引發(fā)特定思過程的問題來引導(dǎo)他們探尋到答案。

當把這一方法運用到學(xué)習(xí)編程當中時,銘記“挑戰(zhàn)你的假設(shè)”這一說法是十分重要的。我們常常覺得自己清楚所編寫的代碼在做什么,所以當代碼無法正常運行時,我們的第一步應(yīng)當是檢驗這些假設(shè)。

在引導(dǎo)學(xué)習(xí)者進行調(diào)試的過程里,我們期望提出的問題也能夠發(fā)揮同樣的作用。的常用問題當中應(yīng)當涵蓋“這行代碼的作用是什么?”。當學(xué)習(xí)者給出的信息不準確時,要用能夠深入到代碼更小組成部分的問題來予以回應(yīng)——也就是說,要將問題拆解成小塊。

以這個例子為例:

學(xué)習(xí)者:“但也許那樣不行,因為我需要找到書,而不是書中的 ID?!?/span>

導(dǎo)師:“正確。好消息是,我們有一個函數(shù)表面上能夠做到這一點。壞消息是,這個函數(shù)實際上做不到。那么,這個函數(shù)真正是做什么的呢?”

學(xué)習(xí)者:“返回 bookId”

——摘自Discord 社區(qū)

通過提問“這個函數(shù)實際上是做什么的?”,導(dǎo)師為學(xué)習(xí)者指明了得出正確結(jié)論的方向,而無需提供任何具體的信息。學(xué)習(xí)者已經(jīng)知曉該函數(shù)未按預(yù)期執(zhí)行,而導(dǎo)師提出的問題則是為了挑戰(zhàn)學(xué)習(xí)者關(guān)于該函數(shù)確實按預(yù)期執(zhí)行的假設(shè)。

再舉一個例子:

導(dǎo)師:“這是來自Chalenge(原文拼寫錯誤)一個例子。你理解他們給出的這個例子了嗎?”

學(xué)習(xí)者:“是的,但是我沒懂 for-in循環(huán),我不明白‘(const food in refrigerator)’這句,要用const或let來聲明字符串屬性名讓我感到困惑(現(xiàn)在我已經(jīng)懂了)”。

導(dǎo)師:“好的,那我們就從這里開始講起,而不是直接講Challenge的全部解決方案。”

導(dǎo)師:“運行這段代碼時會發(fā)生什么?”

……

學(xué)習(xí)者:“對象的每個鍵都被設(shè)置為在for-in循環(huán)中創(chuàng)建的變量 food,然后它遍歷對象,并輸出鍵和分配給鍵的值?”

——來源于Discord社區(qū)

同樣,我們能夠看到導(dǎo)師是如何通過提出具有針對性的問題,引導(dǎo)學(xué)習(xí)者憑借自身的推理找到解決方案的。

這便是蘇格拉底教學(xué)法的最終目標:借助學(xué)習(xí)者自身的推理,引導(dǎo)他們得出合乎邏輯的結(jié)論。

蘇格拉底式問答法的長期益處

蘇格拉底式問答法的意義并不僅僅局限于當下問題的即刻解決。在這種方法中所運用的演繹推理過程,同樣能夠為學(xué)習(xí)者帶來長遠的好處。

通過向?qū)W習(xí)者提問來挑戰(zhàn)他們原來的假設(shè)和知識,并引導(dǎo)他們找尋解決方案的這一過程,同樣能夠被學(xué)習(xí)者內(nèi)化。這對于解決調(diào)試問題、隔離假設(shè),甚至是學(xué)習(xí)如何清晰地闡述問題而言,都是一個強有力的工具。

也就是說,通過引導(dǎo)學(xué)習(xí)者進行這種一問一答式的對話,學(xué)習(xí)者也能夠?qū)W會自行向自己提出這些問題。他們能夠?qū)⑦@種不斷提出愈發(fā)具體問題的過程視作一條邏輯路徑,并在以后遭遇代碼問題(甚至生活中的其他方面問題)時,腦海中運行這一路徑!

結(jié)論

直接為學(xué)習(xí)者提供解決方案,會抑制他們的智力發(fā)展,并且剝奪他們通過自身得出邏輯結(jié)論所獲得的有益體驗。通過使用蘇格拉底式問答法等技術(shù)手段,我們能夠營造出一個更強大、更高效的教育環(huán)境,讓學(xué)習(xí)者得以持續(xù)成長。

這種方法或許看起來既繁瑣又冗長,事實也的確如此。直接給他人提供解決問題的代碼要迅速得多(并且可以說更為容易)。

但那種方法往往最終會對學(xué)習(xí)者造成損害。如果作者要分享一個親身經(jīng)歷作為例證,我曾目睹人們在成為蘇格拉底式問答法的對象時感到沮喪,或者對這種一來一回的對話失去耐心。但我從未見過他們對自己通過推理得出問題解決方案的那一刻感到不滿或失望——在那一刻,他們恍然大悟。

原文標題:How to Help Someone with Their Code Using the Socratic Method,作者:Naomi Carrigan

責任編輯:華軒 來源: 51CTO
相關(guān)推薦

2024-12-17 12:53:45

AI自我進化谷歌

2023-09-14 13:10:48

2009-08-07 10:20:43

學(xué)習(xí)云計算開發(fā)開源平臺

2024-09-23 10:00:00

代碼Python

2022-06-14 10:47:00

分布式事務(wù)數(shù)據(jù)

2018-05-04 08:20:39

機器學(xué)習(xí)深度學(xué)習(xí)人工智能

2019-06-18 07:15:22

Linux拼寫look命令

2023-04-06 09:44:00

ChatGPT行業(yè)質(zhì)量

2014-11-28 14:50:08

長城電腦

2017-07-20 06:27:22

機器學(xué)習(xí)人工智能數(shù)據(jù)

2017-08-24 13:44:28

牛頓法Logistic回歸Python

2018-10-06 21:46:51

物聯(lián)網(wǎng)人口老齡化IOT

2025-01-24 09:10:00

2017-05-02 20:56:36

機器學(xué)習(xí)HR簡歷

2020-11-01 23:46:19

AI機器學(xué)習(xí)農(nóng)業(yè)

2022-08-01 10:41:03

人工智能認證人工智能

2009-08-31 09:17:13

2009-09-17 10:10:10

Oracle學(xué)習(xí)

2021-01-04 08:39:26

JAVA8OptionalNPE

2019-08-01 15:08:37

PythonLine操作系統(tǒng)
點贊
收藏

51CTO技術(shù)棧公眾號