作者poopoo888888 (阿川)
看板Soft_Job
標題[心得] 工程師的缺德行為:叫朋友去學C/C++
時間Thu Feb 5 17:51:31 2015
yo~小弟出社會工作一兩年了,有一些心得想分享給想入門學程式的朋友
網頁好讀版
http://blog.turn.tw/?p=1283 ------------------------------------------------------
常常看到非資訊背景的朋友問工程師:我最近想學寫程式!該怎麼入門?
通常他們會得到很多糟糕的答案:「先了解演演算法」、「先弄懂資料結構」、
「先認識物件導向」。
這些答案都夠糟糕了,但最糟糕的答案莫過於「從C/C++開始入門」。
(我看過最扯的建議是「去找C++ Primer Plus來看」。
這本磚頭書絕對不適合一般人自學)
照著以上建議去做的朋友,大概會在兩週之內就得到滿滿的挫折感,
然後認為自己「果然不適合寫程式」,也不好意思再去跟工程師講自己的狀況,
最終再也不想踏入programming領域。
這些建議真是害人不淺。
資訊相關科系,是因為要接續到之後的資料結構、作業系統,
所以大一從C/C++開始入門會比較連貫、才能完整學一次電腦的基本知識。
而這些想學coding的朋友,大部分只是這兩種情況:
A. 最近覺得寫網站好酷,想試試看自己能否寫個blog、或是個人網頁
B. 對工作上某些人工流程不滿意,想試試看自己能否學寫程式、用電腦解決問題
他們的願望僅此而已,並沒有打算成為電腦專家、駭客,實在沒有必要從C/C++入門。
就像點火一樣,先從零星的火苗開始、小心保護不要讓它熄滅,
接著慢慢加東西進去、讓火焰慢慢成為大火。
學習,除了知識/技能之外,培養成就感與熱情也是很重要的。
而從C/C++入門,會讓正要萌芽的小火苗直接消滅殆盡。
我對程式設計入門的建議很簡單。
如果你是狀況A,去學PHP&MySQL,先弄一個醜醜網頁出來就可以了。
如果你是狀況B,去學Python,先弄一個能執行、能顯示幾個文字的程式就可以了。
一般人想到程式通常只想到「圖形化介面」,
如果能寫出一個有介面的小玩意會非常有成就感。
那樣的話,學PHP來寫個網站、直接就是介面,絕對有趣;學Python很快就能把玩內建的
tkinter函式庫、做出按鈕做出選單,樂趣無窮。
話雖如此,你到市面上找PHP或是Python的書,大概還是會落得「滿滿的挫折感然後正式放
棄」的下場。
別擔心,這不是你的錯,是那些書寫得不夠好。沒有一本是真正的程式設計入門書。
那些書只想著給你知識/技能,沒有想到要培養你的成就感、保護你的熱情。
要找書的話,我只建議兩本。
狀況A,去找歐萊禮的「深入淺出 PHP 與 MySQL」(Head First PHP & MySQL)。
狀況B,去找歐萊禮的「深入淺出程式設計」(Head First Programming)。
已經出社會了嗎?去台灣大學資訊系統訓練班逛逛吧,看看時間跟課程費用能否負擔
(我有經濟系背景的朋友去上過幾堂課程,學得滿開心)。
政府也有推動青年就業讚的課程,滿足某些條件還能申請補助
(不過,我有朋友上過其中一堂PHP課程,
印象很糟糕、覺得是業者要賺政府補助款隨便開設的課程。但畢竟是單一經驗
,我還是列出來給各位參考。)
國外的線上開放課程也可以考慮。
Coursera的
人人都懂的編程課(Python)
學習編程:基礎
麻省理工的
Introduction to Computer Science and Programming
A Gentle Introduction to Programming Using Python
全部都是用Python入門。
我對程式設計入門的建議就只有這樣。
你不需要知道什麼演演算法、資料結構、物件導向。
什麼狗屁名詞都不需要知道。那大多只是工程師下意識地想讓你覺得他們很厲害而已。
你只要想辦法寫出一個會動的程式就可以了。所有偉大的東西都是這樣開始的。
Q1: 但是狀況A還要面對HTML/CSS耶.. 好像很難?
每個技能深入下去沒有不難的。但是HTML/CSS要入門實在不怎麼難。
就從隨便寫幾個表單或按鈕、弄個醜醜的靜態網頁出來開始吧。
Q2: 我是工程師,我能怎麼幫助朋友?
幫他們搞定環境設定吧!幫他們把最基礎卻又最給新手挫折感的環境給設定好!讓他們能用
記事本跟幾個小工具就開始寫code!給他們成就感!
Q3: 那寫手機app呢?你怎麼沒提到?
我覺得手機app還滿難入門的,實在給不出有建設性的建議。不知道。不過,上面的連結也
許有一些手機相關課程,不妨試試?
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 111.249.197.44
※ 文章網址: https://www.ptt.cc/bbs/Soft_Job/M.1423129894.A.186.html
推 y2468101216: 先推 回去再補充 02/05 17:59
→ allenxxx: 但是比較起來"快快樂樂學XX"系列更是騙錢! 02/05 18:00
推 howdiun: Android會在嘗試安裝eclipse後獲得滿滿挫折感 02/05 18:02
→ blackhippo: eclipse..大學上java課就先被這玩意兒擊沉了... 02/05 18:03
推 kidd0717: 推三樓XDDD 02/05 18:09
→ knives: 不過很好笑的是大學好像都會先從c開始教 02/05 18:12
推 rodion: 樓上沒看懂原文 02/05 18:15
推 hicoy: 大學教C是為了學OS,要入門的真的建議從Python之類的學起 02/05 18:17
→ icewindful: 先把一種語言跟觀念學好 在來研究網那走 02/05 18:22
推 colin8930: 套句我們老師說的: C是被設計成用來寫OS的 02/05 18:22
推 abccbaandy: android官方都放棄eclipse了... 02/05 18:22
推 GoalBased: 你要看想學的人的"目的",太多是覺得科技業很賺= = 02/05 18:24
推 GoalBased: 之後我會推薦html+javascript連IDE都不用多方便阿 02/05 18:30
→ realmeat: 那從看opensource開始學起好了... 02/05 18:31
→ x000032001: xdd 這是在諷刺隔壁板嗎 02/05 18:32
推 tw0517tw: 學web不學個潮潮的(?)ror嗎 02/05 18:37
推 sing10407: 事實上薪水也是偏高啦 02/05 18:38
推 typepeter: 中肯到不行 02/05 18:39
推 agomi: 太中肯了 推推!! 02/05 18:53
推 carterdunk: 中肯。coding培養社會底層奴才 02/05 19:00
推 givemepass: 其實蠻中肯的 02/05 19:14
→ bndan: 從易成品語言上手的模式可以用成就感培養興趣.但這類人相對 02/05 19:20
→ bndan: 的問題就是挫折太晚加入太大的話 會直接被打爆的(QUIT)... 02/05 19:21
推 Jamie319: 推三樓XDD 02/05 19:27
噓 dritchie: 哈哈哈哈哈哈哈 02/05 19:31
推 vn509942: 太好了 以後直接貼這篇給別人 推 02/05 19:51
推 gmoz: 不錯阿 02/05 20:26
→ gmoz: 想聽一下噓的人的意見@@ 02/05 20:27
推 yushiung: 我覺得很中肯啊 小弟也覺得coursera MIT OCW 02/05 20:28
→ yushiung: 和台大資工系統訓練班很棒 02/05 20:28
→ yushiung: 甚至覺得網路上的課程資源已優於project少的大學資工課 02/05 20:34
→ yushiung: Havard cs50 也是入門資工的好課 02/05 20:57
推 CHOCOLATER00: 最近才在看coursera上密西根大學的python課程 02/05 21:35
→ CHOCOLATER00: 那老師講的還滿有趣的!! 02/05 21:35
推 feeya: 應該先去搞一套免費版本的VS比較實際 02/05 21:38
推 tomroy: eclipse真的是崩潰 02/05 21:40
→ cha122977: Eclipse已經不用了 不過我覺得最大的問題是英文XD 02/05 22:11
→ cha122977: **Android已經不用Eclipse了 02/05 22:12
推 wuliou: 淚推三樓 eclipse真的是搞死新手 02/05 22:45
→ guanting886: 我覺得還是要學著怎麼問對的人XD..跟對大大 造福群眾 02/05 22:52
→ guanting886: 不過IDE真的是蠻重要的,跟學步車一樣 02/05 22:54
推 abc53: python去codecademy直接練習比較有趣 02/05 23:27
推 Psyman: 無痛入門大推Codecademy! 02/05 23:28
推 rupcj8: 真的覺得英文最重要...新技術大抵上都是英文 02/05 23:39
→ rupcj8: coursera和EDX真的大抵上都很不錯 我覺得應該贏一堆 02/05 23:41
→ rupcj8: 台灣的實體課程 02/05 23:41
→ rupcj8: 畢竟那些老師在教學上都非常優秀才會出來開課 02/05 23:41
→ uranusjr: C 與其說被設計來寫 OS, 不如說設計成那樣只好拿來做 OS 02/05 23:46
推 gn00273680: VS真的強大 02/05 23:49
推 nfsong: c# 02/06 00:01
推 jammy50605: 我都跟朋友講請他們先看C耶XD 因為大學資工就是從C教 02/06 00:09
推 snaketsai: 我是覺得跟需要的知識背景有關啦... 02/06 00:11
→ snaketsai: 資工系有很多東西需要一些觀念,用C的時機多 02/06 00:12
→ snaketsai: 但是我自己推學弟時,都推可以寫Python 02/06 00:13
→ snaketsai: 真的有效能瓶頸,抽出來C/CPP寫完編完用swig包 02/06 00:14
推 zoko741235: 我的同學程設課(cpp)都乖乖讀原文書學基本 讀到後來他 02/06 00:22
→ zoko741235: 自己開始覺得好像沒這麼喜歡程設 但那些東西其實網路 02/06 00:22
→ zoko741235: 爬文就有大概了 囧 02/06 00:22
推 timeflying: 我好奇jammy50605的朋友幾個還在寫程式,沒有的話就.. 02/06 07:33
→ timeflying: 代表此論文章正確XD 02/06 07:33
推 ppHomer: "用記事本跟幾個小工具就開始寫code"好強呀, 沒IDE不會寫 02/06 07:59
推 vaio5566: 用過VS之後在其他的IDE都有滿滿的錯折感 02/06 08:20
→ WolfLord: 那用方格紙寫ASM然後人腦COMPILER填到最左欄位的話呢? 02/06 08:21
推 gamania54088: 實用 02/06 08:45
推 NTPU5566Kobe: 推 02/06 09:08
推 asleisureto: 以前學生時代覺得VS不怎好用,直到我碰了Elipse... 02/06 09:19
→ asleisureto: Eclipse 02/06 09:20
→ new1025: 中懇 02/06 09:26
→ StupidGaGa: 推做法,不推想法,這樣感覺像是在玩玩具一樣 02/06 09:55
→ StupidGaGa: 我都直接丟入門書,通常沒耐心沒毅力玩票的人就88 02/06 09:56
→ StupidGaGa: 一推人說想學,但都是玩票居多,丟書給他就沒下文了 02/06 09:57
→ StupidGaGa: 我以前也是個eclipser,直到我膝蓋中了visual studio 02/06 10:08
→ superpai: 幹嘛淘汰別人 來玩玩具的人越多越好 02/06 11:07
推 zoko741235: 我覺得淘汰別人的想法很詭異 好像寫程式的人都要堅毅 02/06 12:32
→ zoko741235: 熱情甚至天賦異稟一樣 02/06 12:32
→ uranusjr: Yeah, 有些人就是想玩玩具, 那你就拿玩具給他玩 02/06 12:53
→ uranusjr: 不過這邊要先定義「學程式」的意思, 程式人常常會太認真 02/06 12:54
→ uranusjr: 看待「想學」這句話; 一般人這樣說的時候意思是類似「我 02/06 12:55
→ uranusjr: 想學日文」那樣玩票性的, 但常常會被業界人理解成想鑽研 02/06 12:55
→ redmilk: 玩processing也很有樂趣 02/06 13:35
→ StupidGaGa: 如果想學程式,為何連看個「深入淺出」都覺得難? 02/06 15:09
→ StupidGaGa: 我個人想法老派,你肯學我就交,你想玩票我為何要認真 02/06 15:10
→ StupidGaGa: 我從不覺得是在淘汰別人,是他們自己淘汰自己 02/06 15:11
→ uranusjr: 台灣老闆:不是我壓榨員工,是員工自己壓榨自己 02/06 15:27
→ uranusjr: 感謝樓上示範社會達爾文主義的既得利益者標準說詞 02/06 15:28
→ StupidGaGa: 感謝樓上不食人間煙火的發言 02/06 15:36
→ uranusjr: 原來盡可能幫助多一點人學習叫做不食煙火, 嶄新定義 XD 02/06 15:59
→ StupidGaGa: 樓上講的好像是在救助傷患嗎?都成年了想學就該找資源 02/06 16:02
→ StupidGaGa: 玩票的怎麼教都會走,有心學的怎樣就是會留下來 02/06 16:02
→ StupidGaGa: 說的好像要把屎把尿的交,這種人能用嗎? 02/06 16:03
→ StupidGaGa: 以前沒有C#沒辦法,只能看C,現在有C#深入淺出還是走 02/06 16:04
→ StupidGaGa: 新手問問題,回答英文網址還會跟你說我看不懂 02/06 16:05
→ StupidGaGa: 要你翻譯中文或者程式碼寫出來,這樣玩票才會懂 02/06 16:05
→ StupidGaGa: 程式卡住發問,結果全部程式丟上來說不行跑 02/06 16:06
→ StupidGaGa: 怪了,現在資源那麼多,入門書不看還說我淘汰? 02/06 16:08
→ uranusjr: 我認為「有心學的怎樣就是會留下來」值得商榷; 當然如果 02/06 16:08
→ uranusjr: 真的沒心也不用特意留, 但即使是台灣也有很多人想留卻因 02/06 16:09
→ StupidGaGa: 樓上我真的懷疑你不食人間煙火,或你還沒出社會 02/06 16:09
→ uranusjr: 種種因素遇到困難; 但或許你沒有遇到這種狀況吧。 02/06 16:10
→ StupidGaGa: 我的教法永遠都是給釣竿,給魚免談。要給魚請掏錢 02/06 16:10
→ platinumstar: StupidGaGa跟我一個主管好像.. 02/06 16:39
→ platinumstar: 只是那主管連詢問工作項目也是這種心態就是了 02/06 16:40
→ platinumstar: 我為什麼要告訴你公司的一些機器相關文件 02/06 16:41
→ platinumstar: 你憑什麼..啥努力也沒有就得到..他最常講的話.. 02/06 16:41
→ platinumstar: 而且他非常的覺得自己"因材施教"得很好 02/06 16:45
→ platinumstar: 但看了一年..就是程式不行的就電對方程式差 02/06 16:45
→ platinumstar: 程式比他行的..就電對方沒有主管高度..想不遠.. 02/06 16:46
→ platinumstar: 感嘆公司沒有對手..但又感嘆老闆出不起錢找強人.. 02/06 16:47
→ StupidGaGa: 等你遇過一推玩票的你就知道了,小朱大的幾篇文很實用 02/06 17:20
→ StupidGaGa: 以下是小朱大文章的部分截取 02/06 17:27
→ StupidGaGa: 你自己的頭腦不夠好,難道要怪我們嗎? 02/06 17:27
→ StupidGaGa: 你理解速度不夠快,也要怪我們嗎? 02/06 17:27
→ StupidGaGa: 我們可不是你父母,也不是你老師,更不是你女(男)友, 02/06 17:28
→ StupidGaGa: 我們幹嘛要為你學習能力差負責? 02/06 17:28
→ StupidGaGa: 那只是你不想學習或懶得學習的藉口罷了! 02/06 17:28
→ StupidGaGa: 以上。 02/06 17:29
推 yueayase: StupidGaGa雖然你講得讓我覺得有點生氣,但說真的寫程式 02/06 17:48
→ yueayase: 態度很重要 02/06 17:48
→ yueayase: 努力也是 02/06 17:48
推 noonOut: 我覺得態度勝過一切 循循善誘實在沒啥意義 想學的自己就 02/06 18:56
→ noonOut: 會克服 沒克服代表你不夠想學 02/06 18:56
→ noonOut: 在我的世界裡不夠聰明是不存在的 但是不夠想學倒是常出現 02/06 18:57
→ noonOut: 不想學也沒那麼邪惡 憑什麼要別人努力去學你覺得有趣的東 02/06 18:57
→ noonOut: 西 02/06 18:58
→ noonOut: 他不想學為什麼你要逼他想學呢? 02/06 18:59
→ noonOut: 假如他真的想學 那他通常自己會有個大方向了 02/06 19:00
→ noonOut: 最多幫他找出他沒有自己發現的方向 幫忙他就是了 02/06 19:01
→ noonOut: 應該不會有那種「我想學但我不知道要學什麼」 02/06 19:02
→ noonOut: 這句話對我來說就是他其實知道只是他沒表達出來 02/06 19:03
→ noonOut: 比較瞎的是這串討論最後變成再戰語言... 02/06 19:10
推 vi000246: 深入淺出系列很好讀 連在軍中也讀得下 當閒書看就好 02/06 21:15
→ viper9709: 推態度才是重點~ 02/06 23:54
→ TobyH4cker: 想學自然會努力去解決問題,他們需要的只是簡單的提點 02/07 05:18
→ TobyH4cker: 而已,三分鐘熱度就放棄的,是他自己不適合 02/07 05:18
→ TobyH4cker: 當然旁人有給出好的方向是好事,師父帶入門,修行在 02/07 05:20
→ TobyH4cker: 個人 02/07 05:20
→ TobyH4cker: 真的有心的人自然會有所收穫,反正將自食惡果 02/07 05:21
推 stosto: C++要買C++風格與藝術,誰推薦primer的阿? 02/07 22:52
→ stosto: C++也不是不能學,明明指標觀念很重要 02/07 22:52
→ red0210: C++ primer 這本書很棒啊。 02/08 06:13
→ stosto: primer比較歸類在字典吧 02/09 00:26
→ ACMANIAC: C++ Primer 怎會歸類在字典... 一個基本會寫 C++ 的至少 02/09 20:26
→ ACMANIAC: 這本書要啃過一遍吧。 02/09 20:26
推 kevinkuan0: 非常好的文章,個人是想寫程式,被人推坑去資工系學c+ 02/15 16:06
→ kevinkuan0: +。資工系好玩不後悔,但要寫程式根本不用懂這麼多。 02/15 16:06
→ kevinkuan0: 一開始就要懂這麼多只是鑽牛角尖。 02/15 16:06
推 akk98: 謝謝您 09/11 19:07