※ 引述《felaray (傲嬌魚)》之銘言:
: 請問各位先進前輩.我有個朋友完全不懂任何語法,最近想要培養coding方面的專長,
: 想請我教對方一些基本功.基於想幫助朋友的心態就答應了.
: 第一次的時候用閒聊的方法講了一些,但是發現幾乎沒有任何頭緒.
: 所以想來這邊請教,如果你們遇到完全不會任何語法及概念的新手,會從何處著手呢?
: 我想到以前第一堂C++課程老師是從 變數、運算子、邏輯判斷、迴圈等方向教我們..
: 還有什麼好建議嗎?
以我的經驗有幾個大方向可以參考。
1.你至少先教他程式的基本的概念。
像是你說的,基本的變數操作、運算子、if、for loop。
然後你要帶他做完幾個簡單的範例,再請他對這幾個範例做變化,得到不同的結果。
不管他對程式理解多少,他有一個可以work的code,讓他可以修修改改,
他才有嘗試的機會。
這點,學程式的應該多少有點感觸,學一個新語言最怕就是環境沒設好,
連第一個hello world都跑不起來XD
2.幫他找一本書,介紹網路上的學習資源,挑些比較有代表性的範例叫他跟著做。
除非中間有什麼重要的概念要提(例如指標、委派),
不然你只要從旁幫他解除卡住的部分就好。
開始就從1.和2.做起吧,你先看看他給你的回饋,以及他有多少的積極度,
再評估要繼續教他什麼。
教人程式最理想的就是以逸待勞,第一是不怕真心換絕情(這真的太多案例了),
第二是學軟體設計,本來就是要學著自己用手邊的資源堆出你要的目標。
當他有一些基礎之後,你就要不時的提醒他,當你想做什麼卻做不到的時候,
怎麼釐清問題,怎麼找資訊,怎麼查功能,甚至怎麼Debug。
如果他要做的東西超過他程度太多,那也請幫他踩個剎車,或者提個比較容易的備案。
接著就如同板友推的,會去學的就是會去學。
如果他自學上面碰到困難,引導他排除問題,
讓他依賴自己排除問題的能力,而不要讓他依賴你。
我相信這是學程式要學好的根本之道。
最後值得提一下的我覺得是:給他一點糖吃
像是我如果要教socket programming,我第一個一定是先帶他做出一個簡易聊天室。
原因是因為他馬上會得到一個有趣的成品。
程式範例呈現的結果,如果都是些跟他目標差距還很遠的內容,有些人容易感到疲憊,
但如果今天很快讓他有一個"玩具"可以玩,這對學習很有幫助。
(我教的那個傢伙,他學會怎麼做聊天室之後,回家就找了一堆資料,
然後嘗試了幾種分配聊天室的架構,分析哪個好哪個不好,我根本不太需要管他XD)
這大概是我的經驗