[網文觀點] 李家同先生:不會畫流程圖,就表示他沒有邏輯思考的能力,不可能會寫程式
原文出處: https://goo.gl/UxxUeM
----------(本文開始)----------
前不久拜讀李家同先生的「怪不得很多資訊相關科系的學生不會寫程式」,對於其中他觀察到的現象「某些資訊系畢業生不會寫程式」,肇因於「沒有邏輯思考能力」,最後得出「會畫流程圖才有邏輯能力,才會寫程式」,我一半同意,一半不同意。所以撰文抒發一下我個人的淺見。
根據我自己在電腦補習班教書 30 年的經驗(我從 1989 年開始在電腦補習班執教),我同意「要會寫程式 --> 需要有邏輯能力」這條推論。但「要有邏輯能力 --> 要會畫流程圖」這一條我就不太敢苟同了。
先定義一下「邏輯能力」。我認為的邏輯能力是,遇到一個問題,腦袋能把「先做哪一件事,再做哪一件事」這個順序安排得好。邏輯能力與數學無關。就我看來,我家附近最有邏輯能力的人,是巷口早餐店的掌廚阿姨。大家絡繹不絕的點餐,她還是有辦法指揮廚房內的三名助手:「小A,你先下兩杯冰咖啡...小B,準備好一份切邊土司,兩份漢堡麵包...小C,XX 桌去收一下,然後幫李大哥結帳...」一切有條不紊!這也是程式設計最重要的能力:「把解題步驟有條不紊地依序寫成程式碼」。我覺得她來學程式,一定是會學得很好!
養成「邏輯能力」的方法很多,「畫流程圖」只是其中一種方法。所以「能畫流程圖 --> 有邏輯能力」這條我贊成。但李先生說的「要有邏輯能力 --> 必須要會畫流程圖」這條反過來的推論,我就不贊成了!「能畫流程圖 --> 有邏輯能力」這條,並非「反之亦然」的條件。「有邏輯能力」對應出去的,是個「一對多」的關係。能畫流程圖的人,邏輯能力一定不差,但邏輯能力好的人,不一定會畫流程圖。否則巷口早餐店掌廚阿姨不會畫流程圖,不就成了最沒有邏輯能力的人?(不知道我這樣解釋,大家覺得我的邏輯能力還可以嗎? XD )
另一點我不太贊成讓程式初學者去靠「畫流程圖」學會程式邏輯的原因是,業界已經不太要求程式設計師繪製流程圖了。用流程圖來表示程式邏輯,已經是 1980 年代「結構化程式導向」工法那個時期的事情了。進入 1990 年代,程式已經全面改用「物件導向程式設計」工法,「流程圖」裡的那些方塊、菱形,沒有辦法表示出「物件」、「類別」...等這類概念。所以 1990 年代業界提出另一套符號,叫做「UML(Unified Model Language)」圖。用「Use Case」、「Class Diagram」、「Sequence Diagram」...等這幾套符號,全面取代以前的流程圖符號了。想簡單了解 UML 的朋友可以參考這篇文章: https://goo.gl/LTv4fS
時序進入 2000 年代,大家發現「寫程式前先畫流程圖 / UML 圖」這件事是不切實際的。因為 2000 年代的軟體生命週期更短!汰換率比以前更快!已經沒有時間讓程式師慢慢畫流程圖後,才開始寫程式。況且,辛苦畫好的流程圖,會因為修改程式碼但忘了順便修改流程圖,導致流程圖漸漸無法反應現時這套程式的邏輯,而成了廢物。另外,流程圖並非每位新進員工都會,新人訓練還要加上教會他流程圖的各種符號,以便看懂公司內各種文件,C/P 值太低了!所以 2000 年後,資訊業界就不太要求程式師用流程圖或 UML 圖,來表示程式邏輯了。
那現在資訊業界用什麼方法表示程式邏輯呢?最簡單的方法:用文字條列。把一小段的程式該做哪些事情,一條條列出來,簡單描述即可。把該做的事情用文字條列,人人都不用特別學習另一套符號,成本超低!也能表現出程式邏輯(其實流程圖要表示的,不就是程式邏輯嗎?用文字表示效果一樣)。甚至於還能把這些條列文字,用「註解」的方式,寫入原始碼中。這樣修改原始碼,就會順便修改註解,保持「邏輯」與「原始碼」同步。如果你想把程式邏輯從註解抽出來變成文件,用特殊軟體抽出註解、拋棄原始碼就行了。業界最出名的這類抽取註解變文件的工具,有 JavaDoc(這部影片有示範 JavaDoc 抽出來的註解可以變成多精美的文件: https://youtu.be/Ls-NHebXY20 )。正因為用的是最簡單的「文字」,才能輕易地把程式邏輯內嵌在原始碼中。如果是圖形,那就辦不到了。
如果你真的要用圖形表示程式邏輯,業界現在流行「直接把操作介面畫出來」。不用畫得很精緻,用一些方框代表「這裡是文字框、這裡是確定鈕」即可。這類手法,稱為「Wireframe」。這邊有一篇 Wireframe 的中文說明: https://goo.gl/KIrq0Y 。用 Wireframe,不僅好學(基本上沒有特定規則,看得懂就好),畫出來也可以分享給客戶,示範我們會怎麼幫他設計他想要的程式,而不用擔心客戶看不懂流程圖。更適合用來表達 1990 年代後期興起的「圖形使用者介面(GUI, Graphical User Interface)」。流程圖某種情況下,只適合表示 1980 年代那種「文字式介面」的需求了。
那為什麼現今資訊系畢業的學生,不會寫程式的比例變多了呢?事實上,是現在資訊系學生要學的東西變多了。所以分配到每一樣的「練習」變少,就變成「樣樣通、樣樣鬆」了。光學完理論,還來不及實作,就被逼著去學下一項。就像剛考上普通駕照,沒時間給他道路駕駛,然後逼著他又去考職業駕照、大客車駕照、連結車駕照,再來感嘆:「現在年輕人道路駕駛變差了」。我開始學程式設計的時間,應該只比李家同先生晚一點,大概都是 1980 年代前後。那時候,只要學會 C 語言,加上資料結構、演算法,人家就虎視眈眈地問你什麼時候畢業、能去他們公司工作了。沒有 GUI、沒有網頁程式設計、沒有手機程式設計、沒有大數據...通.通.都.沒.有!所以,不太會寫程式的原因,是「練習不夠」,而「邏輯能力」就是靠大量實作練出來的。因此,真正的因果關係,我認為是「學習項目太多 --> 實作練習不足 --> 邏輯能力無法提昇 --> 寫程式時腦袋一片空白 --> 被人家說不會寫程式」。真正解藥是:「專注一項,多多實作練習」。你至少要把一種語言練到精通,養出基本的程式撰寫邏輯後,再去跳其他語言。這樣就不會「樣樣通、樣樣鬆」了(我個人的基本功底,是 C 與 Java。兩種語言我都練到真的很強!學新語言,我都會去找對照關係:這個語法對應到 C/Java 的哪一種,來加速學習)。
最後讓我重述一下我的觀點:我不反對用繪製流程圖來訓練邏輯能力,但說訓練邏輯能力,一定要會流程圖,這件事情我不贊同。天底下還有比流程圖更簡單、也能訓練邏輯能力的方法。千萬不要認為「流程圖」是訓練邏輯能力的唯一方法就行了。
啊!對了!麻煩不要拿著我這篇文章貼到李家同先生的網誌去戰人家。您可以兩篇文章都看,甚至選擇不同意我說的論點。李先生是我們這行的大前輩,我個人還是蠻尊敬他的。
同時也有3部Youtube影片,追蹤數超過1萬的網紅曼曼職能治療師的育兒紀錄,也在其Youtube影片中提到,一日跟寶皇玩扮家家酒的買賣遊戲。 「這裡一共是88元喔~」寶皇說。可能是帶有吉利的意思吧? 寶皇從小特別喜歡88這個數字,每次要比喻很多數量的時候常常都是88個XD 我從皮夾拿出一張木製的信用卡遞給他, 「好,謝謝。我刷卡。」 寶皇熟練的接過,低著頭一邊刷卡一邊問 「請問您要打統編嗎?有載具嗎?」 ...
流程圖符號 在 紀老師程式教學網 Facebook 的最佳貼文
[網文觀點] 李家同先生:不會畫流程圖,就表示他沒有邏輯思考的能力,不可能會寫程式
原文出處: https://goo.gl/UxxUeM
-\-\-\-\-\-\-\-\-\-\(本文開始)-\-\-\-\-\-\-\-\-\-\
前不久拜讀李家同先生的「怪不得很多資訊相關科系的學生不會寫程式」,對於其中他觀察到的現象「某些資訊系畢業生不會寫程式」,肇因於「沒有邏輯思考能力」,最後得出「會畫流程圖才有邏輯能力,才會寫程式」,我一半同意,一半不同意。所以撰文抒發一下我個人的淺見。
根據我自己在電腦補習班教書 30 年的經驗(我從 1989 年開始在電腦補習班執教),我同意「要會寫程式 -\-\> 需要有邏輯能力」這條推論。但「要有邏輯能力 -\-\> 要會畫流程圖」這一條我就不太敢苟同了。
先定義一下「邏輯能力」。我認為的邏輯能力是,遇到一個問題,腦袋能把「先做哪一件事,再做哪一件事」這個順序安排得好。邏輯能力與數學無關。就我看來,我家附近最有邏輯能力的人,是巷口早餐店的掌廚阿姨。大家絡繹不絕的點餐,她還是有辦法指揮廚房內的三名助手:「小A,你先下兩杯冰咖啡...小B,準備好一份切邊土司,兩份漢堡麵包...小C,XX 桌去收一下,然後幫李大哥結帳...」一切有條不紊!這也是程式設計最重要的能力:「把解題步驟有條不紊地依序寫成程式碼」。我覺得她來學程式,一定是會學得很好!
養成「邏輯能力」的方法很多,「畫流程圖」只是其中一種方法。所以「能畫流程圖 -\-\> 有邏輯能力」這條我贊成。但李先生說的「要有邏輯能力 -\-\> 必須要會畫流程圖」這條反過來的推論,我就不贊成了!「能畫流程圖 -\-\> 有邏輯能力」這條,並非「反之亦然」的條件。「有邏輯能力」對應出去的,是個「一對多」的關係。能畫流程圖的人,邏輯能力一定不差,但邏輯能力好的人,不一定會畫流程圖。否則巷口早餐店掌廚阿姨不會畫流程圖,不就成了最沒有邏輯能力的人?(不知道我這樣解釋,大家覺得我的邏輯能力還可以嗎? XD )
另一點我不太贊成讓程式初學者去靠「畫流程圖」學會程式邏輯的原因是,業界已經不太要求程式設計師繪製流程圖了。用流程圖來表示程式邏輯,已經是 1980 年代「結構化程式導向」工法那個時期的事情了。進入 1990 年代,程式已經全面改用「物件導向程式設計」工法,「流程圖」裡的那些方塊、菱形,沒有辦法表示出「物件」、「類別」...等這類概念。所以 1990 年代業界提出另一套符號,叫做「UML(Unified Model Language)」圖。用「Use Case」、「Class Diagram」、「Sequence Diagram」...等這幾套符號,全面取代以前的流程圖符號了。想簡單了解 UML 的朋友可以參考這篇文章: https://goo.gl/LTv4fS
時序進入 2000 年代,大家發現「寫程式前先畫流程圖 / UML 圖」這件事是不切實際的。因為 2000 年代的軟體生命週期更短!汰換率比以前更快!已經沒有時間讓程式師慢慢畫流程圖後,才開始寫程式。況且,辛苦畫好的流程圖,會因為修改程式碼但忘了順便修改流程圖,導致流程圖漸漸無法反應現時這套程式的邏輯,而成了廢物。另外,流程圖並非每位新進員工都會,新人訓練還要加上教會他流程圖的各種符號,以便看懂公司內各種文件,C/P 值太低了!所以 2000 年後,資訊業界就不太要求程式師用流程圖或 UML 圖,來表示程式邏輯了。
那現在資訊業界用什麼方法表示程式邏輯呢?最簡單的方法:用文字條列。把一小段的程式該做哪些事情,一條條列出來,簡單描述即可。把該做的事情用文字條列,人人都不用特別學習另一套符號,成本超低!也能表現出程式邏輯(其實流程圖要表示的,不就是程式邏輯嗎?用文字表示效果一樣)。甚至於還能把這些條列文字,用「註解」的方式,寫入原始碼中。這樣修改原始碼,就會順便修改註解,保持「邏輯」與「原始碼」同步。如果你想把程式邏輯從註解抽出來變成文件,用特殊軟體抽出註解、拋棄原始碼就行了。業界最出名的這類抽取註解變文件的工具,有 JavaDoc(這部影片有示範 JavaDoc 抽出來的註解可以變成多精美的文件: https://youtu.be/Ls-NHebXY20 )。正因為用的是最簡單的「文字」,才能輕易地把程式邏輯內嵌在原始碼中。如果是圖形,那就辦不到了。
如果你真的要用圖形表示程式邏輯,業界現在流行「直接把操作介面畫出來」。不用畫得很精緻,用一些方框代表「這裡是文字框、這裡是確定鈕」即可。這類手法,稱為「Wireframe」。這邊有一篇 Wireframe 的中文說明: https://goo.gl/KIrq0Y 。用 Wireframe,不僅好學(基本上沒有特定規則,看得懂就好),畫出來也可以分享給客戶,示範我們會怎麼幫他設計他想要的程式,而不用擔心客戶看不懂流程圖。更適合用來表達 1990 年代後期興起的「圖形使用者介面(GUI, Graphical User Interface)」。流程圖某種情況下,只適合表示 1980 年代那種「文字式介面」的需求了。
那為什麼現今資訊系畢業的學生,不會寫程式的比例變多了呢?事實上,是現在資訊系學生要學的東西變多了。所以分配到每一樣的「練習」變少,就變成「樣樣通、樣樣鬆」了。光學完理論,還來不及實作,就被逼著去學下一項。就像剛考上普通駕照,沒時間給他道路駕駛,然後逼著他又去考職業駕照、大客車駕照、連結車駕照,再來感嘆:「現在年輕人道路駕駛變差了」。我開始學程式設計的時間,應該只比李家同先生晚一點,大概都是 1980 年代前後。那時候,只要學會 C 語言,加上資料結構、演算法,人家就虎視眈眈地問你什麼時候畢業、能去他們公司工作了。沒有 GUI、沒有網頁程式設計、沒有手機程式設計、沒有大數據...通.通.都.沒.有!所以,不太會寫程式的原因,是「練習不夠」,而「邏輯能力」就是靠大量實作練出來的。因此,真正的因果關係,我認為是「學習項目太多 -\-\> 實作練習不足 -\-\> 邏輯能力無法提昇 -\-\> 寫程式時腦袋一片空白 -\-\> 被人家說不會寫程式」。真正解藥是:「專注一項,多多實作練習」。你至少要把一種語言練到精通,養出基本的程式撰寫邏輯後,再去跳其他語言。這樣就不會「樣樣通、樣樣鬆」了(我個人的基本功底,是 C 與 Java。兩種語言我都練到真的很強!學新語言,我都會去找對照關係:這個語法對應到 C/Java 的哪一種,來加速學習)。
最後讓我重述一下我的觀點:我不反對用繪製流程圖來訓練邏輯能力,但說訓練邏輯能力,一定要會流程圖,這件事情我不贊同。天底下還有比流程圖更簡單、也能訓練邏輯能力的方法。千萬不要認為「流程圖」是訓練邏輯能力的唯一方法就行了。
啊!對了!麻煩不要拿著我這篇文章貼到李家同先生的網誌去戰人家。您可以兩篇文章都看,甚至選擇不同意我說的論點。李先生是我們這行的大前輩,我個人還是蠻尊敬他的。
流程圖符號 在 曼曼職能治療師的育兒紀錄 Youtube 的最讚貼文
一日跟寶皇玩扮家家酒的買賣遊戲。
「這裡一共是88元喔~」寶皇說。可能是帶有吉利的意思吧? 寶皇從小特別喜歡88這個數字,每次要比喻很多數量的時候常常都是88個XD
我從皮夾拿出一張木製的信用卡遞給他,
「好,謝謝。我刷卡。」
寶皇熟練的接過,低著頭一邊刷卡一邊問
「請問您要打統編嗎?有載具嗎?」
「欸!?......我不用開統編跟載具。」
沒想到與4歲的孩子玩扮家家酒這麼擬真,而且平常都是湯姆哥負責結帳,讓我一下子沒反應過來,而寶皇繼續發揮他那不輸專業收銀員的【工作SOP】
「您有開車嗎?」
「ㄟ......我有開車。」
寶皇立刻從收銀機裡拿出一張票卡還順便遞給我一張小汽車貼紙:
「這個是給您折抵停車費的,還有這個是集點貼紙,集滿後可以換鍋子喔!歡迎下次再來!」
#好的
#感覺寶皇很適合參加一日店員的活動呀
/
寶皇從1歲多開始玩水果攤老闆的買賣遊戲,從單純「要蘋果、給蘋果」開始,到現在加入金錢使用、簡單數學加總等概念,每次融入一點新元素,所以依舊很喜愛這個遊戲、玩得很投入。其中,我覺得透過買賣遊戲學習數學概念,非常能引發孩子學習動機,因為有具體的物品和代幣等,讓孩子比較容易理解,然後從收銀機或鈔票上認識數字,也讓孩子覺得很好玩,很自然地就能記起這些概念!
因此,隨著孩子的認知成長,扮演遊戲能讓孩子發揮更多能力,例如:金錢使用、數學概念、計畫整個活動主題、準備和擺放場景、協調與溝通等。今天就透過Tenderlaef木製玩具來跟大家分享【買賣遊戲/車車玩具】配件選擇&促進的發展能力
好讀詳細圖文: https://bit.ly/3cRDbdu
扮演玩具&木質車車這裡買: https://bit.ly/3s5zwyW
【什麼時候可以開始扮演遊戲】
如果你觀察到孩子開始將一個東西想像成某個東西玩,這就是扮演遊戲的開始喔!
※依據發展里程碑,大約是1.5-2歲
我們可以把握這個自發動機,提供機會與環境,讓孩子去延伸更豐富的內容。
【買賣遊戲對發展的5大助益】
而隨著孩子的認知能力成長,扮演遊戲可以讓孩子發揮更多能力,例如:金錢使用、數學概念、計畫整個活動主題、準備和擺放場景、協調與溝通等。
▪️社會互動的模擬:從買賣過程學習基本禮貌用語、打招呼、提問等技巧,進一步學習釐清對方需求,如何提問或確認才能獲得答案。
▪️認知計畫能力:商品要怎麼擺放、如何分類,以及買賣流程順序,都會運用到孩子的認知&計畫能力。孩子也可能憑藉曾跟大人去購物的經驗,然後重現在扮演遊戲中,並仔細思考整個購物流程的細節步驟。
▪️問題解決能力:每個人扮演角色的提問和互動方式不同,我們不一定都要演出很配合的情境,偶爾可以出個狀況題,讓孩子去思考如何反應?(例如:錢帶不夠、買錯商品、殺價等)
▪️金錢使用與數學概念:雖然是遊戲,但也是實際會遇到的生活情境。買賣遊戲可以讓孩子認識如何使用貨幣,以及判斷自己手上的錢是否足夠購買。具體簡單的練習加減概念,如果是一次購買多個,還可以練習到乘法概念。
▪️想像力與創意:扮演遊戲可盡情發揮想像與嘗試不同互動方式與角色性格。也可以用身邊現有的物品發揮創意、自行作命名或想像,例如:除了紙鈔的使用,也可以把紙鈔當作停車券、發票、折價券的使用。
【玩車車也能玩出不同能力】
很多小朋友喜歡車子,有些家長會擔心孩子花太多時間在玩車子會不會不好?其實,每個孩子都有自己比較喜歡的活動,如果引導下還是會參與其他活動,就不用太擔心。或者可以藉由孩子喜歡的車子,來學習認知概念或精細操作,這樣玩車子也可以學到很多東西喔!
1歲以上就可以透過車子來學習
▪️透過車子的顏色→辨識顏色&顏色名稱
▪️認識不同車子的功能與名詞→來擴充詞彙量&認知能力
▪️搭配地圖,練習控制車子的方向→鍛鍊到手腕、手部動作控制,對書寫有幫助
▪️促進想像力→可以編有關車子的故事、情節
▪️擴充汽車相關知識→例如:交通規則、斑馬線、道路符號
所以,在小朋友的興趣中,融入一點活動變化,就可以達到寓教於樂的效果喔!
流程圖符號 在 平民小雞 Youtube 的最佳解答
以下攻略轉自巴哈
首先,需要一男一女 (真實性別可以搞基,遊戲角色請男女各一)
去普隆德拉右上角學習冒險技能:牽手(要主控的人學即可)
兩人組隊在一起後(不可有別人),
點選另一半的組隊頭像,選擇邀請牽手
然後去接下來這四個動作都做一次:
1.普隆德拉南門音樂盒撥放:守護永恆的愛(Love Forever)聽完,一定要自己撥不可聽他人。
2.牽手模式下開起照相機,左下角表情符號旁可打字,隨便輸入送出 (不用晚上,白天也可)。
3.南門左方乘坐大波利氣球。
4.吉芬左方的地圖,過傳點後正中間搭乘摩天輪(身上需要有幻想之證銀才可搭乘)
普隆德拉活動商人有賣(若身上沒有)
以上四件事都做完即可完成成就:奇妙之旅,點擊後即可拿到盧恩髮圈
不用照順序來,但是每件事都要做一次
(被牽手的人可以不用撥CD,聽主控撥的即可,但是打字需要)
頭飾能力:命中+5,物/法攻+10,無屬性傷害減傷2%
【RO 仙境傳說:守護永恆的愛】官方粉絲團
https://www.facebook.com/RO.ForeverLove/
流程圖符號 在 孫在陽 Youtube 的精選貼文
Visio 2010版有許多重大的改變,主要功能是繪製流程圖、交互功能流程圖、室內建築圖、組--織圖、魚骨圖、腦力激盪圖、甘特圖、統計圖等各種辦公室人員可能需要的圖表。圖表檢-查-、自動對齊、產生圖例、與資料庫結合、每個圖形都加入幾何資訊,都是很捧的功能。
流程圖符號 在 [教學] 流程圖(Flow Chart)常用符號說明 - Pinterest 的必吃
繪製流程圖的軟體有很多,如Boring 之前介紹過的Cacoo ,Office 中的Visio 等,可是今天要來說明的 ... [教學] 流程圖(Flow Chart)常用符號說明Diagram, Symbols,. ... <看更多>
流程圖符號 在 流程圖符號說明 的必吃
文書,如申報資料書表、各稅申報書、申. 請書、登記簿、清冊、報表、底冊等。 複數文件,如正本、副本。 各項歷史檔案,如磁帶。 資料庫,如磁帶、原始資料儲存。 流程. ... <看更多>