日語學習網
從現在開始學日文-日文學習App更新中
https://nihon.smady.com
操作介面非常簡單的日文考前複習App
https://nihon.smady.com/2019/11/study.html
如何開始自學N5日檢日文,給想學日文的N5日語檢定日自學者推薦資源
https://nihon.smady.com/2019/10/n5n5.html
超實用技巧!學會直接在線上輸入日語再快速貼到可日語檢索的網站
https://nihon.smady.com/2019/09/go.html
免費日語自遊行的日文go go go 1+2+350音教學
https://nihon.smady.com/2019/09/japan.html
推薦日本氣象新聞台學天氣日語
https://nihon.smady.com/2019/09/weather.html
先從學會享受會說日語的美好開始!入門中的入門!超容易記憶的副詞整理(約N5程度)
https://nihon.smady.com/2019/09/n5.html
【日文單字入門】初學者必學形容詞重點-免費學習資源整理
https://nihon.smady.com/2019/09/basic.html
100個都是日常生活中時常會看到的外來語單字
https://nihon.smady.com/2019/09/more.html
30天學會日文常用生活單字500個(基本單字附假名)
https://nihon.smady.com/2019/09/learn.html
分享取代往返日文補習班的日語自學法
https://nihon.smady.com/2019/09/freelesson.html
維持學日文語感的習慣必定保持每天看日語新聞
https://nihon.smady.com/2019/08/news.html
超實用密技!免費收看日本購物台營造全天候24小時日語環境
https://nihon.smady.com/2019/08/free-tv.html
包含英日、日英、中日、日中辭典且支援多種語言及日語的翻譯神器
https://nihon.smady.com/2019/08/better.html
免費日文基礎聽力練習(可以用日語來學習40國語言)
https://nihon.smady.com/2019/08/listening.html
很推薦的日文學習資源!全日文的東大日文學習
https://nihon.smady.com/2019/08/learn.html
不算正統學法但用自己的話說直覺式日語,中文和台語快速學日文
https://nihon.smady.com/2019/08/jp.html
自學日語聽力超有用秘訣就是看無字幕日語動畫
https://nihon.smady.com/2019/08/animation.html
再也不怕50音!釘宮理惠日語五十音超萌教學
https://nihon.smady.com/2019/08/50s.html
絕對有用!學會看動畫+漫畫自學日文
https://nihon.smady.com/2019/08/comic.html
學會善用OJAD日文字典日語考試從此就是一百分
https://nihon.smady.com/2019/08/best.html
個人最推薦的日語形容詞學習相關考試推薦書籍總整理
https://nihon.smady.com/2019/07/adjective.html
用Android的人快點來免費下載!用免費App瘋狂背日語單字
https://nihon.smady.com/2019/07/app_31.html
每天一定要努力養成的習慣!看NHK學習日語聽力解說新聞
https://nihon.smady.com/2019/07/nhk.html
圖解單字最推薦用日本小孩的方法記單字:圖解單字+聽力,不用背就能學好日文單字!
https://nihon.smady.com/2019/07/vocabularies.html
出口仁先生大家的日本語第11-20課文型(完全免費)
https://nihon.smady.com/2019/07/gogogo.html
初心者適用!免費下載8大免費日語50音自學基礎習字帖
https://nihon.smady.com/2019/07/nihongo.html
分類有超多的日文歌詞搜尋網站,用日文歌詞網站搜尋免費學日語
https://nihon.smady.com/2019/07/lyrics.html
JLPT日檢神器N1+N2+N3+N4+N5日文檢定考生必備4選項選擇題考古app
https://nihon.smady.com/2019/07/jlpt.html
有十萬字多字彙且可聽到日文和中文發音且免費提供的日中辭典
https://nihon.smady.com/2019/07/allfree.html
每天一定要讀由毎日新聞免費提供的毎日小學生新聞(跟著日本小學生學日文)
https://nihon.smady.com/2019/07/daily.html
學日文最有用的方法之一就是聽日本流行音樂(超好聽)
https://nihon.smady.com/2019/07/jpop.html
我個人最推薦的日文免費閱讀學習App(android版和iOS版都有)
https://nihon.smady.com/2019/07/app.html
相當實用外加免費提供使用的滬江日中字典
https://nihon.smady.com/2019/07/dictionary_11.html
來聽日文主播朗讀(日語聽力免費學習神器)
https://nihon.smady.com/2019/07/kyokuananet.html
生活日語pdf免費分享下載(有附上中文對照版pdf)
https://nihon.smady.com/2019/07/free.html
免費讓我們學習當代日文的超級好用日日辭典
https://nihon.smady.com/2019/07/dictionary.html
自學全日文書籍免費pdf下載分享(有版權且可自由下載)
https://nihon.smady.com/2019/07/pdf.html
15天複習超基礎必學單字(都有附上平假名)
https://nihon.smady.com/2019/05/basics.html
60天背完基本日語生活單字
https://nihon.smady.com/2019/05/basic.html
各類基礎日語字彙發音網站
https://nihon.smady.com/2019/05/speak.html
外來語苦手必備學習書!有讀音標示搭配音檔字彙情境的外來語日語會話書
https://nihon.smady.com/2019/05/better.html
日語學習書籍當中比較推薦的耳感記憶系列學習書籍總整理
https://nihon.smady.com/2019/02/book.html
JiSho免費線上+離線的日英/英日字典
https://nihon.smady.com/2018/10/jisho.html
很棒的免費日語繪本網站ehonnavi
https://nihon.smady.com/2018/08/ehonnavi.html
日文動詞基礎に~は~を~動詞
https://nihon.smady.com/2018/06/verb.html
動詞入門-上一段動詞+五段動詞+下一段動詞
https://nihon.smady.com/2018/05/verb_16.html
日語副詞とても+まあまあ+あまり+全然
https://nihon.smady.com/2018/05/adverb.html
日語助詞そして+しかし
https://nihon.smady.com/2018/05/ANDBUT.html
イ形容詞+ナ形容詞+は~が~形容詞的用法
https://nihon.smady.com/2018/05/adjective.html
維持語感必定保持每天看Line日語新聞的習慣
https://nihon.smady.com/2018/01/linenews.html
初學者一定要用的超有效聽歌50音學習法
https://nihon.smady.com/2017/09/50.html
快速學漢字必備的古今中外讀音查詢
https://nihon.smady.com/2017/09/old.html
支持正版授權!雖然要收費但是個人依舊非常推薦的Hulu美日劇動畫網
https://nihon.smady.com/2017/07/hulu.html
付費到italki線上找日文教師
https://nihon.smady.com/2017/07/italki.html
免費且正版授權的電視影音日劇和日本各直播頻道android版+ios版+電腦版+麥金塔mac版總整理
https://nihon.smady.com/2017/07/jstarkan.html
個人超超超超推薦免費且不用加入會員即可收看正版授權日本節目的abema
https://nihon.smady.com/2017/07/abema.html
日本東京外國語大學免費分享線上學習教材
https://nihon.smady.com/2017/07/JPLANG.html
免費日語繪本PIBO
https://nihon.smady.com/2017/07/pibo.html
免加入會員且免費正版授權的日本電視綜藝+日劇電視台網站
https://nihon.smady.com/2017/07/tver.html
日本人的名字讀音線上免費字典
https://nihon.smady.com/2017/07/mnamae.html
基礎實用旅遊日文教學總整理
https://nihon.smady.com/2017/07/travel.html
聽免費童謠學日文
https://nihon.smady.com/2017/07/listen.html
免費日文繪本
https://nihon.smady.com/2017/07/free.html
Ryuuu老師日語教學全系列整理(附上日文教學筆記整理)
https://nihon.smady.com/2017/06/ryuuu.html
看日語烹飪教學影片免費學日文
https://nihon.smady.com/2017/06/cook.html
500個好看日文廣告讓你的日語聽力大躍進
https://nihon.smady.com/2017/06/500.html
聽力進步必備每天挑一首喜歡的歌曲聽個10次日文好聽歌曲
https://nihon.smady.com/2017/06/jp.html
免費memrise日文教學測驗和免費課程
https://nihon.smady.com/2017/06/memrise.html
各種日文小說生動朗讀+日語文學的有聲書朗讀網站febe
https://nihon.smady.com/2017/06/febe.html
提供有趣的句子和顏文字轉換的免費日文輸入法
https://nihon.smady.com/2017/05/Simeji.html
輸入日語免煩惱~!快來玩可快速輸入日語平假名的免費虛擬鍵盤喔~!
https://nihon.smady.com/2017/05/keyboard.html
快速學日文的另類捷徑就來看はじめ社長
https://nihon.smady.com/2017/05/Hajime.html
整理一些很有趣的漢字
https://nihon.smady.com/2017/05/kanji.html
萬門大學全免費日語(從第1課到第50課大家的日本語免費教學)
https://nihon.smady.com/2017/05/wanmen.html
N5約100個漢字+800個單字字彙表
https://nihon.smady.com/2017/04/n5100800.html
N4重要文法そうだ和らしい和ようだ
https://nihon.smady.com/2017/04/n4_56.html
N4常考文法-意向形+とする
https://nihon.smady.com/2017/04/n4_25.html
N4考試基準
https://nihon.smady.com/2017/04/n4.html
日本語の森
https://nihon.smady.com/2017/04/Nihongonomori.html
個人非常推薦的免費自學用日語教材-孫寅華老師的早安日語
https://nihon.smady.com/2017/04/morning.html
我個人最推薦的日語新聞App
https://nihon.smady.com/2017/01/mainichi.html
comico讓我們免費用漫畫和小說免費學日文(日文網站和日文App下載)
https://nihon.smady.com/2017/01/comico.html
免費日文聽力學習App
https://nihon.smady.com/2017/01/app.html
寫給無法完整說出一句日文的人的日語會話書
https://nihon.smady.com/2017/01/conversation.html
日文文法圖解教學推薦書籍總整理
https://nihon.smady.com/2017/01/grammer.html
日語名詞
https://nihon.smady.com/2017/01/NOUN.html
史上最強圖解日語動詞
https://nihon.smady.com/2017/01/VERB.html
專門替華人寫的圖解日語慣用句
https://nihon.smady.com/2017/01/IDIOM.html
日語副詞書籍推薦總整理
https://nihon.smady.com/2017/01/Adverb.html
日語助詞學習書籍推薦最整理
https://nihon.smady.com/2017/01/adverbs.html
還蠻實用的吳氏日文日語的十大助詞快速學習教學
https://nihon.smady.com/2017/01/wu.html
5分鐘學會日本人的名字發音
https://nihon.smady.com/2017/01/namae.html
日文真人發音好用工具網站推薦
https://nihon.smady.com/2017/01/speak.html
免費學日文網站免費日語學習-線上自學日語免費日本語教室
https://nihon.smady.com/2017/01/Aiyori.html
[日英學習Podcast]兩位主持人分別用英語和日語討論
https://nihon.smady.com/2017/01/podcast.html
完整的まるごと線上教材線上免費互動學習
https://nihon.smady.com/2017/01/free.html
日本語能力試験N5免費教材
https://nihon.smady.com/2016/12/n5.html
2017強迫自己每天努力一點點,日文就會好上那麼一點點
https://nihon.smady.com/2016/11/daily_28.html
語言跟發音品質都很優秀的一次說整句日文免費服務
https://nihon.smady.com/2016/11/voice_24.html
測日語打字速度的好玩網站
https://nihon.smady.com/2016/11/typing.html
五段動詞變化上下段動詞變化+重音發音變化教學
https://nihon.smady.com/2016/11/verb.html
快來一起免費閱讀數十萬本全日文小說!小説を読もう!
https://nihon.smady.com/2016/11/syosetu.html
很容易就會不小心沉迷!免費練習聽力好幫手!用聲音寫日文日記!
https://nihon.smady.com/2016/11/voice.html
日文常用日語漢字表
https://nihon.smady.com/2016/11/basic.html
不可不玩的簡單日文學習宣導遊戲
https://nihon.smady.com/2016/11/game.html
每天一點小小的努力,努力維持自己的日文語感
https://nihon.smady.com/2016/11/daily.html
玩Facebook或寶可夢之前強迫自己背單字的好用App
https://nihon.smady.com/2016/10/Semper.html
用Hi Native手機版免費快速學日文
https://nihon.smady.com/2016/10/hi-native.html
支援android的weblio免費網路日語辭典app
https://nihon.smady.com/2016/10/androidweblioapp.html
免費學習日文單字、漢字、助詞、文法、會話的日語測驗android和iOS手機App
https://nihon.smady.com/2016/10/androidapp.html
史上最豐富實用的免費日本語詞典(附發音重音參考)
https://nihon.smady.com/2016/10/weblio.html
日語基礎50音+數字+日期時間表達+位置+顏色表達圖解+發音pdf下載
https://nihon.smady.com/2016/10/50pdf.html
個人相當喜歡的日文自學網站真心推薦
https://nihon.smady.com/2016/10/mcha.html
學會用MARU快速同時學習英文+日文
https://nihon.smady.com/2016/10/maru.html
全日語教材介紹和說明
https://nihon.smady.com/2016/10/nihongo.html
免費快速查詢漢字讀音+姓+名字+重音的讀音完全字典
https://nihon.smady.com/2016/10/kanji.html
分享無料自學日文中文學習書籍免費pdf下載
https://nihon.smady.com/2016/09/FREE.html
日文五十音基礎免費訓練班
https://nihon.smady.com/2016/09/50.html
日本超商日語學習總整理
https://nihon.smady.com/2016/09/cvs.html
生活日語火車旅遊會話總整理
https://nihon.smady.com/2016/09/train.html
日文自學的youtube影音網站總整理
https://nihon.smady.com/2016/08/youtube.html
可聽日文發音的好地方
https://nihon.smady.com/2016/07/voicetext.html
樂天日文infoseek
https://nihon.smady.com/2016/07/infoseek.html
日語自學網
https://nihon.smady.com/2016/07/smady.html
超級實用的國立教育廣播電台日語學習廣播節目
https://nihon.smady.com/2016/07/radio.html
壽司日文
https://nihon.smady.com/2016/07/sushi.html
基本50個動詞
https://nihon.smady.com/2016/07/50verbs.html
50音配對
https://nihon.smady.com/2016/07/50.html
日文聽力遊戲
https://nihon.smady.com/2016/07/listening.html
日語數字聽力遊戲
https://nihon.smady.com/2016/07/numbers.html
ニコッとタウン全日文免費網路遊戲nicotto
https://nihon.smady.com/2016/07/nicotto.html
goo辭書
https://nihon.smady.com/2016/07/goo.html
Yahoo!辞書
https://nihon.smady.com/2016/07/yahoo.html
免費日語學習網站ez japan
https://nihon.smady.com/2016/07/ez-japan.html
NHK免費提供的簡明日語100句
https://nihon.smady.com/2016/07/nhk100.html
自學的免費好幫手-日本語を学ぶ
https://nihon.smady.com/2016/07/learning-japanese.html
有平假名標註的NHK EASY新聞News app推薦
https://nihon.smady.com/2016/07/nhk-easynews-app.html
naver網站推薦的日語まとめ情報彙整
https://nihon.smady.com/2016/06/naver.html
日文漢字自動標假名的好用網站hiragana
https://nihon.smady.com/2016/06/hiragana.html
適合n4或n3程度的朋友們閱讀的日語部落格推薦
https://nihon.smady.com/2016/06/n4n3.html
iPhone支援發音還有例句的免費日語字典MOJi 辞書
https://nihon.smady.com/2016/04/iphonemoji.html
有提供文稿內容的日文影片網站kiroku
https://nihon.smady.com/2016/03/kiroku.html
學習日文的必備字彙好友Chrome外掛理解君
https://nihon.smady.com/2016/03/chrome.html
一次擴增多字彙就學同音漢字+近似音
https://nihon.smady.com/2016/03/vocabulary.html
日文禮貌用法-敬語真的好難
https://nihon.smady.com/2016/03/polite.html
基礎文法+語法解構日語教學書推薦整理
https://nihon.smady.com/2016/03/basic-grammer.html
日文結構圖式說明:看圖學會日本語文法:30天學會「東京日本語專門學校」文法精華
https://nihon.smady.com/2016/03/graphgrammer.html
很實用的打招呼日語用語
https://nihon.smady.com/2016/03/daily.html
不用老師教的日語動詞+形容詞變化(合訂本)
https://nihon.smady.com/2016/03/verb.html
格助詞+副助詞+接續助詞+終助詞Cafe=日語助詞CAFE不用老師教的日語動詞變化
https://nihon.smady.com/2016/03/cafecafe.html
同時也有10000部Youtube影片,追蹤數超過2,910的網紅コバにゃんチャンネル,也在其Youtube影片中提到,...
看 圖學 中文 語法 在 紀老師程式教學網 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 的哪一種,來加速學習)。
最後讓我重述一下我的觀點:我不反對用繪製流程圖來訓練邏輯能力,但說訓練邏輯能力,一定要會流程圖,這件事情我不贊同。天底下還有比流程圖更簡單、也能訓練邏輯能力的方法。千萬不要認為「流程圖」是訓練邏輯能力的唯一方法就行了。
啊!對了!麻煩不要拿著我這篇文章貼到李家同先生的網誌去戰人家。您可以兩篇文章都看,甚至選擇不同意我說的論點。李先生是我們這行的大前輩,我個人還是蠻尊敬他的。
看 圖學 中文 語法 在 紀老師程式教學網 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 的哪一種,來加速學習)。
最後讓我重述一下我的觀點:我不反對用繪製流程圖來訓練邏輯能力,但說訓練邏輯能力,一定要會流程圖,這件事情我不贊同。天底下還有比流程圖更簡單、也能訓練邏輯能力的方法。千萬不要認為「流程圖」是訓練邏輯能力的唯一方法就行了。
啊!對了!麻煩不要拿著我這篇文章貼到李家同先生的網誌去戰人家。您可以兩篇文章都看,甚至選擇不同意我說的論點。李先生是我們這行的大前輩,我個人還是蠻尊敬他的。