※ 本文為 ott 轉寄自 ptt.cc 更新時間: 2015-02-05 21:26:07
看板 Soft_Job
作者 poopoo888888 (阿川)
標題 [心得] 工程師的缺德行為:叫朋友去學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
※ 文章代碼(AID): #1Kqpqc66 (Soft_Job)
※ 文章網址: https://www.ptt.cc/bbs/Soft_Job/M.1423129894.A.186.html
y2468101216: 先推 回去再補充1F 02/05 17:59
allenxxx: 但是比較起來"快快樂樂學XX"系列更是騙錢!2F 02/05 18:00
howdiun: Android會在嘗試安裝eclipse後獲得滿滿挫折感3F 02/05 18:02
blackhippo: eclipse..大學上java課就先被這玩意兒擊沉了...4F 02/05 18:03
kidd0717: 推三樓XDDD5F 02/05 18:09
knives: 不過很好笑的是大學好像都會先從c開始教6F 02/05 18:12
rodion: 樓上沒看懂原文7F 02/05 18:15
hicoy: 大學教C是為了學OS,要入門的真的建議從Python之類的學起8F 02/05 18:17
icewindful: 先把一種語言跟觀念學好 在來研究網那走9F 02/05 18:22
colin8930: 套句我們老師說的: C是被設計成用來寫OS的10F 02/05 18:22
abccbaandy: android官方都放棄eclipse了...11F 02/05 18:22
GoalBased: 你要看想學的人的"目的",太多是覺得科技業很賺= =12F 02/05 18:24
GoalBased: 之後我會推薦html+javascript連IDE都不用多方便阿
realmeat: 那從看opensource開始學起好了...14F 02/05 18:31
x000032001: xdd 這是在諷刺隔壁板嗎15F 02/05 18:32
tw0517tw: 學web不學個潮潮的(?)ror嗎16F 02/05 18:37
sing10407: 事實上薪水也是偏高啦17F 02/05 18:38
typepeter: 中肯到不行18F 02/05 18:39
agomi: 太中肯了 推推!!19F 02/05 18:53
carterdunk: 中肯。coding培養社會底層奴才20F 02/05 19:00
givemepass: 其實蠻中肯的21F 02/05 19:14
bndan: 從易成品語言上手的模式可以用成就感培養興趣.但這類人相對22F 02/05 19:20
bndan: 的問題就是挫折太晚加入太大的話 會直接被打爆的(QUIT)...
Jamie319: 推三樓XDD24F 02/05 19:27
dritchie: 哈哈哈哈哈哈哈25F 02/05 19:31
vn509942: 太好了 以後直接貼這篇給別人 推26F 02/05 19:51
gmoz: 不錯阿27F 02/05 20:26
gmoz: 想聽一下噓的人的意見@@
yushiung: 我覺得很中肯啊  小弟也覺得coursera MIT OCW29F 02/05 20:28
yushiung: 和台大資工系統訓練班很棒
yushiung: 甚至覺得網路上的課程資源已優於project少的大學資工課
yushiung: Havard cs50 也是入門資工的好課

--
※ 看板: ott 文章推薦值: 0 目前人氣: 0 累積人氣: 4446 
作者 poopoo888888 的最新發文:
點此顯示更多發文記錄
分享網址: 複製 已複製
1樓 時間: 2015-02-06 12:34:16 (台灣)
  02-06 12:34 TW
先學C不錯啊, 但C++ 後面有空再玩... TCLSH,BASH 也易學易用!
2樓 時間: 2018-01-24 12:26:16 (台灣)
  01-24 12:26 TW
女秘書會C就好~~~不一定要到C++
3樓 時間: 2018-01-24 13:28:18 (澳門)
  01-24 13:28 MO
記憶中,中學都提倡B,之後能到C就很好了,能C++更是絕佳了。但J就有點強人所難,還想要P?!!! 這不欺負人。
4樓 時間: 2018-01-24 15:25:46 (台灣)
  01-24 15:25 TW
本文猛推PHP,那麼不談別的,PHP除了另外轉譯以外,就是寫出來的檔案扔給(或是呼叫)瀏覽器來跑,這是我外行人的解釋方法,目前這一類程式語言通常都可以跨平台,剩下來的差別就是語法而已;
if迴圈printf這些東西則是從C一直到現在20幾年沒變過,網路上課堂上教的也是,反而今天說又有一個新語言多簡單多容易就來試試看的說法,我個人覺得才是真的在殘害新手的做法吧 (茶
5樓 時間: 2018-01-24 15:42:38 (台灣)
  01-24 15:42 TW
看不懂再講捨麼.....
6樓 時間: 2018-01-24 17:01:25 (台灣)
  01-24 17:01 TW
C語言要學是因為他是所有程式根本,不學只是要會用php其實繞過也OK
7樓 時間: 2018-01-24 17:47:35 (台灣)
  01-24 17:47 TW
看來有人不會讀空氣,叫你去看書,只是假理由,用意在讓你知道這東西有多難;有被問過的就知道,實際狀況通常是問的人明明不懂,看到什麼程式好喜歡,就覺得自已像郭靖一樣想學就學的會,打電話還問一大堆,遠的問到怎麼做遊戲,深的問怎麼要寫程式的細節..
「幹!難道要伶祖媽在電話裡教C語言?」 最後只好跟他說,「我跟你講,你先去圖書館借一本C++就可以囉,很簡單的,啾咪!」 然後他就再也沒打電話來了,但也沒聽過他寫出什麼程式出來。
8樓 時間: 2018-01-24 17:55:54 (台灣)
  01-24 17:55 TW
如果每個人都看書就會寫程式的話,那大家都可以去估狗上班了 XD
但也就是台灣的工具書大多都是些千篇一律且無用的東西
懶得網路找看英文的話,歐萊禮那幾本有中文的是還不錯啦
guest
x)推文 r)回覆 e)編輯 d)刪除 M)收藏 ^x)轉錄 同主題: =)首篇 [)上篇 ])下篇