精華區beta Gossiping 關於我們 聯絡資訊
※ 引述《NightMoon33 (夜月)》之銘言: : 先說一下,小魯雖然是理工科的,但不會寫程式語言 : 不過發現台灣寫程式語言的人蠻多的 : 國立大學有教,科大也有教,私立大學也有教,外面補習班也有教 : 市面上程式語言的書超多 : 寫程式語言門檻到底高不高? : 大家都會寫程式語言,怎麼知道誰比較強? : 寫程式這塊好像薪水高低也蠻懸殊的 : 剛出社會第一份工作,有聽過年薪百萬的,也有聽過領22k的 HI! 小弟前陣子常被朋友問到這個問題,因此寫了一篇網誌 供您參考! 網頁好讀版: 「工程師的缺德行為:叫朋友去學C/C++」 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), 來自: 27.244.34.151 ※ 文章網址: https://www.ptt.cc/bbs/Gossiping/M.1424426990.A.4D9.html
tigernaxo: 之前就有讀過,今天竟然在ptt看到作者 02/20 18:11
thundelet: 用心推 02/20 18:12
agong: 推 02/20 18:13
EngivalLirva: 不會吧 學長 是你?! 02/20 18:14
pttresident: 感謝推;阿就真的只想寫個小自動程式而已 XD 02/20 18:14
jayfeng: 原來是作者!? 02/20 18:14
sen1008: 大推,我買了一本C++看沒多久就當骨董了 02/20 18:15
kingman5566: 推 02/20 18:15
ANava: 讚 真不懂那些叫初學者直接學C的腦袋在想什麼 02/20 18:17
nk965821: 推作者 02/20 18:17
winiS: 那年代的教學就是這樣搞的啊… 丟塊磚頭看有沒有緣 02/20 18:18
chenxfu: 因為以前在大學第一次寫程式就是學C... 02/20 18:18
illreal: 下個autoit就很滿足了,了不起再學一下vba,excel跑好快 02/20 18:20
aris1008: 用心給推 02/20 18:20
HermesKing: 用心給推 02/20 18:22
jengjye: 以前老師大一計概課直接教C...當時連電腦運作概念都無 02/20 18:24
jengjye: 想想他真的滿無良的.... 02/20 18:24
jengjye: 如果真的有人想學 我建議先計組,再來學個java 02/20 18:25
jengjye: Design patterns學一學 基本就差不多了 02/20 18:26
lturtsamuel: php才是害人不淺 荼毒程序員的靈魂 02/20 18:26
jengjye: 後續要發展哪方面都有底子 02/20 18:26
L0v35: 每個大學一開始都是教C吧 02/20 18:26
lturtsamuel: 覺得用python寫演算法是最好的入門 02/20 18:27
yiersan: 推 的確這樣 02/20 18:28
odbc: 良心 02/20 18:28
VIP: 我自己自學就是從C++開始 沒啥挫折感啊 02/20 18:29
jaid: 作者你好 02/20 18:35
sakyer: 不推歐巴馬寫的第一個程式語言JavaScript 嗎? 02/20 18:38
netsphere: C還好,C++真的有點複雜 02/20 18:38
tinlans: 只有選用對的工具這點可以贊同,但你太妖魔化 C/C++ 了。 02/20 18:39
ANava: 樓樓上 妳自學C不覺得難不代表大部分人都不覺得難 02/20 18:40
ANava: 我自己也是相關科系出身的 但我也不會交身邊朋友直接學C 02/20 18:41
netsphere: 樓上,我有說大部分人都不覺得難嗎 02/20 18:43
kipi91718: Python根本讚 PHP的話...有點容易混亂觀念 02/20 18:44
SuperUp: 這種嘴砲文反而一堆人推 02/20 18:47
MangoTW: PHP一直有在更新好嗎?是一堆人用舊思維教才害到新人 02/20 18:49
steve1012: python 不錯 02/20 18:52
ADHD: python就是 我資工朋友就是這樣說 02/20 18:56
ex250203: 噓SuperUp 自己嘴砲 還說人嘴砲 689的人不意外 02/20 18:57
hauhauster: 推 02/20 18:58
netsphere: 善意推文還會被腦補針對,世界真的什麼人都有 02/20 18:58
SuperUp: 資料結構和演算法是程式的基礎也是重要核心 這篇就是嘴砲 02/20 19:04
SuperUp: 原來跟你意見不同的人都是689喔 可悲 02/20 19:04
mayjan: 這篇不錯 我很認同 02/20 19:04
mayjan: 先有成就感 02/20 19:05
mayjan: 智障才什麼都不懂就看C++ PRIMER (不是PLUS ) 02/20 19:05
SuperUp: 如果你相信這篇能寫出好程式我祝福你啦 ^.< 02/20 19:08
ex250203: 要學資結和演算法 你要不要乾脆說去念資工系比較快? 02/20 19:09
ex250203: 補充一下 689就是689 02/20 19:11
SuperUp: 祝福你啦 ^_< 没寫過啥程式的屁孩我才懶得理咧 02/20 19:11
ex250203: 顆顆 我倒是覺得樓上才沒寫過程式 中二屁孩不意外 02/20 19:15
milkool: 學C是從蹲馬步開始打底學武功 用其他捷徑練程式根本學半 02/20 19:38
milkool: 套花拳繡腿 02/20 19:38
milkool: 底子好轉學其他語言駕輕就熟 像我三天內修完整套降龍十八 02/20 19:39
milkool: 掌 02/20 19:39
dontblame: 應該也沒那麼硬啦,當年沒有網站的年代我高中就自學C++ 02/20 19:41
missin: 有些人可能就沒接觸過更簡單的 02/20 19:57
JeanSijhih: 說的很對,不過魯叔從ASM開始學的耶...XD 02/20 20:02
HornyDragon: 推 02/20 20:05
thigefe: 推 02/20 20:23
tanted: 我機械系大一時 也沒甚麼電腦基礎 就學C了 02/20 20:31
QQron: 哈哈哈大過年就在PTT看到你 02/20 21:15
lturtsamuel: 不用貶低演算法啦 基本功不用分資工或外系 02/20 21:25
kgtmac1: 推 02/20 21:28
wweking2002: 強者我朋友 推 02/20 21:32
a9601268787: 就聰明的直接學C c+q java 02/20 22:03
a9601268787: 理解力沒那麼高簡單的先 02/20 22:04
a9601268787: 簡單的開始 02/20 22:04
kioh: 基礎的東西不學好,未來也走不長 02/20 22:13
kioh: 如果只是想玩玩,建議還是別浪費時間吧 02/20 22:14
tdkblur: 狀況A其實建議去學PHP/MySQL還是太深 不如先去摸摸DW就好 02/20 22:25
tdkblur: 成就感升很快 甚至學用Google的Blogger拼個網頁出來也夠 02/20 22:26
tdkblur: 炫了XD 02/20 22:26
Kreen: 推原po推的書,歐萊里真的講的簡單明瞭。 02/20 22:27
Hurricaneger: 學C++很好啊! 02/20 22:27
ssadd502227: 我重修三次資料結構才徹底搞懂鍊結串列 02/20 22:32
wense: 有些人就看不懂這篇要表達的意思,一開始要讓他有成就感不 02/20 22:40
wense: 要馬上放棄,才可以更深入學習,主要是讓他對寫程式產生興 02/20 22:40
wense: 趣。 02/20 22:41
jackcorner: 非理工科不建議學程式進業界,非理工的程式效率真的有 02/20 22:57
jackcorner: 差,如果是學興趣自己玩玩就還好,不然只會增加更多線 02/20 22:58
jackcorner: 上工程師更多loading而已 02/20 22:58
KittenXBen: 專業只能推 02/20 22:58
TFBF: s大的閱讀測驗應該都錯很多喔要不回補校重修國語 02/20 23:52
osk2: 就是要有成就感而已,一堆人是在噓什麼 02/21 01:18
sunnyfriz: 學校都是C開始教啊?挫折會在哪方面不是很明白,通常都 02/21 01:59
sunnyfriz: 是很簡單的輸入輸出運算開始 02/21 01:59
kioh: 連C都會有挫折感,還是放棄比較好,不是嗎? 02/21 04:05
A4P8T6X9: 很快就會發現只能動的程式是一坨屎 02/21 07:37
v2266514: 不從嚴謹開始,會debug到死 02/21 08:13
raok: 我也是學了C/C++後才學資結演算法 真心覺得先念過計組很有幫 02/21 08:22
raok: 助 02/21 08:23
email2ray: 個人覺得學程式跟學英文沒啥一樣,要經常使用才會熟練 02/21 08:59
email2ray: ,任何語言都一樣。 02/21 08:59
beetlej: 讚啦 02/21 09:01
hank830320: 還好我都只能學aspen plus 02/21 09:25
okitasoshi: 推薦好文 02/21 09:46
NgJovi: 文章好像工程師很拍心 ... 其實就沒多想阿 學校就是從C學 02/21 11:10
andyssfresh: 推 02/21 14:35
hayahaya: 水喔 02/22 12:52