$30 off During Our Annual Pro Sale. View Details »

初學者如何學習程式設計 & 工程師工作甘苦談

初學者如何學習程式設計 & 工程師工作甘苦談

學程式容易跟難的地方
當工程師需要讀資工嗎 ?
程式語言那麼多,要學哪一種 ?
初學者如何學程式 ?
六種學習方式面臨的不同問題 ? 自學 & 上課哪個好 ?
學程式的六個階段
程式設計師可能的好處
工程師工作的缺點
工程師上班閒的時候可能做什麼 ?
新手找工作好找嗎 ? 面試和公司的選擇
新手會很容易被 fire 嗎 ?公司倒了怎麼辦 ?
如何成為一個好的新手工程師 ?

More Decks by 愛瘋一切為蘋果的彼得潘

Other Decks in Programming

Transcript

  1. 初學者如何學習程式設
    計 & ⼯工程師⼯工作⽢甘苦談
    彼得潘
    ps: 投影片內容靈感: 彼得潘⾃自⼰己,
    以及感謝當⼯工程師的朋友和學⽣生 & 學程式的初學者們

    View Slide

  2. 愛瘋⼀一切為蘋果的彼得潘

    View Slide

  3. 改變彼得潘⼀一⽣生的⼈人
    Steve Jobs
    ⼈人帥真好
    https://www.youtube.com/watch?v=aEr6K1bwIVs

    View Slide

  4. http://apppeterpan.strikingly.com
    彼得潘簡介

    View Slide

  5. 相關教學資源
    • FB粉絲團: 愛瘋⼀一切為蘋果的彼得潘

    http://www.facebook.com/iphone.peterpan
    • 個⼈人網站

    http://apppeterpan.strikingly.com
    • medium: 彼得潘的App Neverland

    https://medium.com/@apppeterpan
    • FB社團: 彼得潘的蘋果App開發教室

    https://www.facebook.com/groups/
    peterpanappclass/

    View Slide

  6. 相關教學資源
    • Speaker Deck

    https://speakerdeck.com/apppeterpan
    • SlideShare

    http://www.slideshare.net/deeplovepan
    • email: [email protected]
    • 彼得潘的 SWIFT iOS APP office hour

    http://swiftiosappofficehour.strikingly.com
    • FB: https://www.facebook.com/deeplove.pan
    • LINE: deeplovepeterpan

    line 官⽅方
    IG
    有問題歡迎 FB / LINE 我

    View Slide

  7. 叫我彼得潘,Peter,Deeplove,
    ⿁鬼塚,Swift⼩小王⼦子,情歌王⼦子
    莫叫我老師
    http://bit.ly/2xe9eOG

    View Slide

  8. 學程式 & 當⼯工程師是
    幸福路路還是不歸路路呢 ?
    • 如何學程式 ?
    • 學程式容易易跟難的地⽅方
    • 讀資⼯工會比較厲害嗎 ?
    • ⾃自學 & 上課哪個好 ?
    • ⼯工程師⼯工作的好與壞

    View Slide

  9. 為什什麼想學程式 ?

    View Slide

  10. 為什什麼想學程式 ?
    想學新的技能
    創業
    ⼯工作
    轉職當⼯工程師
    不⼩小⼼心考到資⼯工系
    想要年年薪百萬
    聽說未來來的社會程式很重要,最好學⼀一下
    好玩,興趣 想做 App,網站,遊戲
    果粉
    想家教女⽣生
    聽說很好學
    失業
    不想被理理⼯工科看扁
    想了了解背後的原理理
    獲得別⼈人的崇拜

    View Slide

  11. 程式好學嗎 ?

    View Slide

  12. 沒有想像中難學
    需具備的條件
    • 基本的英⽂文能⼒力力,主要是英⽂文單字
    • 單字不多,⽂文法簡單
    • 為什什麼英⽂文單字重要之後會說明
    • 簡單的數學能⼒力力
    • ⼤大部分的時候不會⽤用到三⾓角函數跟微積分
    • 基本的英打能⼒力力
    • 英⽂文鍵盤的位置有背起來來,不是⽤用⼀一指神功打字


    View Slide

  13. 初學者很容易易打錯字
    比⽅方程式的單字拼錯,少了了 {
    https://www.apple.com/swift/playgrounds/
    • 有些⼈人建議初學者先學不⽤用⾃自⼰己打字的的程式,比較好學
    • 重點在學習程式的概念念,比⽅方 if else,迴圈,⽽而不會因為打字常打錯,

    看到⼀一堆錯誤⽽而放棄。
    Swift playground
    Scratch
    https://scratch.mit.edu

    View Slide

  14. 不要每個字都⾃自⼰己打
    請交給專業的來來⾃自動完成
    https://bit.ly/2tDRQT6

    View Slide

  15. 沒有想像中好學

    View Slide

  16. 那些年年我們學不會的程式設計
    https://bit.ly/2y8bc5u

    View Slide

  17. 多認識⼀一些單字很重要
    AVSpeechSynthesizer : 講話的合成器
    寫程式會⽤用到很多別⼈人寫的東⻄西,比⽅方 Apple 幫我們寫好實現講話跟地圖功能的東⻄西,這些東
    ⻄西都以英⽂文命名,單字意思知道的話比較看得懂跟記憶。

    View Slide

  18. 有問題要勇敢問
    • 台灣的學⽣生比較不好意思問問題
    • 練習時遇到問題,先研究後再問
    • ⼤大部分的程式問題都可以在 Google 找到解答。
    • 不知道怎麼問 ? 問問題也需要練習,多問就會愈問愈好
    • 有些問題很難⽤用⽂文字說明清楚時,可以直接將程式傳給
    對⽅方。

    View Slide

  19. google search 程式問題的⼩小技巧
    https://bit.ly/2GH2QrF
    以 swift iOS App 為例例

    View Slide

  20. 找誰問問題
    • 找不到⼈人問
    • ⾃自學,公司沒⼈人問,同事太忙沒空理理你
    • 網路路問: FB & LINE 社團,PTT 討論區
    • 有些問題⾯面對⾯面問比較好解決
    • 程式相關的實體聚會 & 讀書會,可從 FB search。
    • 彼得潘的 FB & LINE: 歡迎任何⼈人傳訊息。
    • 如果是付費上課的同學,跟免費⾃自學相比,錢的主要價值就在可以問問題。(發現同
    學們還是比較愛私訊,就算有成立群組。)
    • 家教: ⼀一對⼀一時學⽣生比較有勇氣問

    View Slide

  21. 想不出來來怎麼寫,
    是不是⾃自⼰己不適合寫程式呢 ?
    https://bit.ly/2XlT9Un

    View Slide

  22. 為什什麼其他同學程式作業寫那麼
    快 ? 是不是我太弱呢 ?
    https://bit.ly/2E8wT7D

    View Slide

  23. 什什麼樣的⼈人不適合學程式
    ⽂文青?
    女⽣生?
    ⽂文組⽣生?
    年年紀太⼤大?
    年年紀太⼩小?
    數學不好?
    英⽂文不好?
    學歷 ?
    沒錢 ?
    以上都適合

    View Slide

  24. 如果我是女⽣生 ?
    https://www.youtube.com/watch?v=wGqCROvjXrI
    那些年年,彼得潘資⼯工系班上前幾名都是女⽣生
    寫程式需要的三⼤大特質: 細⼼心,耐性,認真

    View Slide

  25. 超過 30 歲,
    開始學程式還來來得及嗎 ?
    https://bit.ly/2ieLRkV

    View Slide

  26. 想讀資⼯工系嗎 ?
    讀資⼯工的好處 ?

    View Slide

  27. 資⼯工系⼜又怎樣(學⽣生的問題?)
    • ⼤大學時因為分數唸了了資⼯工系, 沒興趣,只想得到學分 &
    畢業。

    • 不⼀一定會去上課 (比⽅方睡到中午,下⼤大雨,夜唱 KTV)

    • 前⾯面的課睡過頭沒上到,所以後⾯面的課跟不上,只能⼀一直
    翹課

    • 交的作業不⼀一定是⾃自⼰己寫的

    • 修的課太多,沒辦法每⾨門堂都付出 100% 的⼼心⼒力力。

    View Slide

  28. 資⼯工系⼜又怎樣(老師的問題?)
    • 教授很會研究,但不⾒見見得知道怎麼教程式
    • 程式課不夠有趣,上課容易易睡著,比⽅方照著課本唸,或
    是老師的聲⾳音很有催眠效果

    View Slide

  29. 資⼯工系⼜又怎樣
    • ⼤大學唸的東⻄西,很多畢業都忘光了了
    • 過去學過的知識,最有⽤用的其實是英⽂文

    • 彼得潘何時認真: 

    期中期末考前不睡覺,⼤大三為了了研究所可以直升⽽而努⼒力力
    唸書

    View Slide

  30. 資⼯工系的專業課程
    演算法,資料結構,作業系統,相關數學
    • ⼀一般非本科⾃自學和外⾯面的程式課程比較少教
    • 可以寫出更更好的程式
    • 初學者可以先⽬目標能將東⻄西做出來來,之後有興趣再研究這些主
    題。
    • 比較難
    • 不是短時間能熟練的
    • 就算資⼯工系也常常學不起來來 ( 有些是考研究所補習才加強的)

    View Slide

  31. 資⼯工系的專業課程
    演算法,資料結構,作業系統,相關數學
    • 找⼯工作
    • 有些⼯工作會⽤用到,但台灣很多⼯工程師的⼯工作⽤用不到
    • 產品不會⽤用到這些技術
    • 程式可以寫出來來就好,接案案⼦子可以完成就好
    • 會這些技術的⼈人薪⽔水較⾼高,老闆想省錢
    • 想要更更好的⼯工作,需要這些技術的公司
    • 比⽅方 Apple,Google 之類的公司
    • 想去矽⾕谷⼯工作

    View Slide

  32. ⾯面試的程式解題題⽬目
    LeetCode
    https://leetcode.com
    • 想去比較好的公司,比⽅方 Apple,Google 之類的公司
    • 想去矽⾕谷⼯工作
    • 需要⼤大量量練習,我去 Google ⼯工作的朋友,⾯面試前練習

    好幾百題
    • 就算是名校資⼯工系,也要另外花時間練習,因為在學校

    的課程不會練。
    • 初學者可以先⽬目標台灣⼀一般的⼯工程師⼯工作,還是有很多

    公司不會考這些題⽬目

    View Slide

  33. 台灣 & 美國⼤大學比較
    • 有些⼈人在考⼤大學前努⼒力力唸書,但進了了⼤大學後沒有下個
    ⽬目標,就沒那麼認真了了。
    • 美國⼤大學很多東⻄西要求學⽣生課後⾃自⼰己研究,比⽅方課前
    預習 & 課後 study 的東⻄西很多,所以課程內容可以
    教得較深較難。
    • 美國學費超貴,會⼼心疼學費,所以比較認真。

    View Slide

  34. 學習效果跟付出的錢成正比 ?
    • 免費的容易易半途⽽而廢 ?
    • 愈貴的課不⾒見見得好,但是會比較認真 ?
    • 書跟線上影片較便便宜,所以容易易變成裝飾品 ?
    • 免費重上跟暖暖包價

    https://bit.ly/2oANLL4

    View Slide

  35. 暖暖包價
    坐輪輪椅或不會講話的可愛女孩,說不定很會寫程式

    View Slide

  36. 初學者如何學習程式設計

    View Slide

  37. 彼得潘讀資⼯工系,
    如何了了解初學者學程式 ?
    • 我也是進資⼯工系才開始學,⼀一開始教授說的也常聽不懂
    • 家教 & 寫書幫助很⼤大 (我其實想寫⼩小說,但是出版社只願意幫我出程式書)
    • http://yourappmentor.strikingly.com
    • 能⼒力力分班很重要
    • 經過幾次教學後,讓我了了解能⼒力力分班的重要。
    • 無程式基礎的⽂文組⽣生班 & 有程式基礎的彼得潘班
    • http://learniosfromzero.strikingly.com
    • ⽂文組班教我研究初學者的問題,彼得潘班教我研究更更深的技術
    • 教學也需要學習,每次教課都會從學⽣生⾝身上學到很多東⻄西。

    View Slide

  38. 程式語⾔言那麼多,要學哪⼀一種 ?
    • 程式設計師: iOS App & Android App,網⾴頁前端,
    後台,遊戲,PC 上的軟體,linux driver & windows
    driver,資料分析師,還有很多其它的程式設計師。
    • 程式語⾔言: Swift,Python,Javascript,Java,C,
    C++,Ruby,Kotlin,Php,Objective-C,C#,
    Go,Matlab
    • 做網⾴頁還要學 html & css

    View Slide

  39. 找⾃自⼰己有興趣的主題學程式
    • 愛瘋⼀一切為蘋果的彼得潘: 別問我,我⼀一定偏⼼心選 Swift
    • Python 也滿適合當初學者第⼀一個學的程式語⾔言。
    • 只學語法容易易覺得無聊,建議找⾃自⼰己有興趣的主題,利利⽤用程式製作成品,會
    覺得比較好玩跟有成就感。
    • ⼀一些資⼯工資管的學⽣生反⽽而不想當⼯工程師,因為覺得程式無聊,很難。
    • 學⽣生的故事 https://bit.ly/2ilZGyd https://bit.ly/2f8lbhD
    • 不⽤用寫程式的電⼦子書 App https://bit.ly/2zLJrSP
    • 主題選擇例例⼦子: iOS App(Swift),Android App(Java),網⾴頁(html &
    Javascript),抓取網⾴頁資料的爬蟲(Python)

    View Slide

  40. 先學⼀一種程式,
    學會後再學另⼀一種會容易易許多
    • 原理理類似,比⽅方每種程式都有變數,function,if
    else,迴圈。這四個主題也是初學者⼀一開始學程式最重
    要的部份。
    • 你現在學的東⻄西會過時,重要的是學習新技術的能⼒力力。
    • 時常有轉換程式跑道的⼯工程師,比⽅方本來來寫網⾴頁,後來來
    變成寫 App
    • 建議初學者先把⼀一種學好,不要同時學好幾種。

    View Slide

  41. 彼得潘寫過最困難的程式
    • driver (驅動程式)
    • linux driver, windows driver, mac driver
    • 寫程式控制硬體,比⽅方印表機的 driver,硬碟的 driver。
    • driver 程式寫壞了了,整台電腦當機,只能重開。
    • 彼得潘遇到⼀一個花了了好幾個星期才解決的問題,每次要讓問題重現
    都需要等好幾天。
    • App 程式寫壞了了 App 會閃退,但是還可以打電話。所以我後來來就
    決定寫 App 了了。

    View Slide

  42. ⾃自學還是上課
    https://bit.ly/2wsNYX6

    View Slide

  43. ⾃自學的進度安排
    • 建議先找好某本書或某個線上課程,依書和影片的進
    度進⾏行行。
    • 有些⼈人會⼀一次買很多書和很多影片,變成每個都只
    看前三章。
    • 找朋友⼀一起學習
    • 主要的問題在卡關,所以找到⼈人問很重要。(問問題
    的部分前⾯面有提到)

    View Slide

  44. 幫助學程式的八個重點
    https://bit.ly/2x30Tyi

    View Slide

  45. iOS App 開發作家養成計畫
    https://bit.ly/2nMGPKs
    寫 Blog

    View Slide

  46. 同學的 blog ⽂文章
    https://bit.ly/2mJdBjE
    • 不⽤用怕寫不好,重點是進步
    • 記錄⾃自⼰己的成長
    • 抄襲參參考同學的作業,新同學正常會比前⼈人厲害
    • 寫程式⽂文章⼀一般會愈寫愈好,因為會愈來來愈厲害,寫⼩小說就
    不⼀一定了了
    • 我也是寫⼀一年年 App 後開始寫書。(為了了實現當作家的夢想)

    View Slide

  47. 六種學習⽅方式⾯面臨臨的不同問題
    • 利利⽤用影片或書⾃自學 (前⾯面⾃自學的⽂文章有討論)
    • ⼤大學⽣生在學校修的程式課程 (前⾯面資⼯工系的部分有討論)
    • ⼀一對⼀一家教 ( 家長想要⼩小孩學,但是⼩小孩想學嗎 ? )
    • 上班族學程式
    • ⼀一到五上課的密集班
    • 提供場地 & 專家解答問題的⾃自學培訓
    沒有最好的學習⽅方式,只有最適合⾃自⼰己的⽅方式

    View Slide

  48. 上班族學習問題
    • 下班精神不好
    • 加班所以請假或遲到
    • 沒空寫作業
    • 上課可以幫助上班族加快學習,但前提要寫作業。
    • 學程式跟其它事情的 priority
    • 各種事情: 約會,出差,感冒,旅遊
    • 企業內訓: 被公司要求學習,其實沒興趣,或是還有很多原本的⼯工作要
    做,沒時間練習。
    https://www.youtube.com/watch?v=GjSnE6j-jOM

    View Slide

  49. 學成⼀一個程式要多少時間
    三個⽉月
    ⼀一個⽉月
    半年年
    ⼀一年年
    ⼤大學四年年

    View Slide

  50. ⼀一⾸首歌的時間?
    https://www.youtube.com/watch?v=rR3U_ejGNto

    View Slide

  51. 向有⼩小孩的媽媽學習利利⽤用時間
    ⼤大部分初學程式的朋友都還沒有⼩小孩
    有⼩小孩也可以,我們要向媽媽看⿑齊
    媽媽做得到,我們也可以 !

    View Slide

  52. 學習環境很重要,
    就像住在外國或交外國女友(男友)學英⽂文
    • 每天接觸練習程式
    • 每天⼀一⼩小時會比三天打⿂魚,兩兩天曬網好。
    • https://www.hackingwithswift.com/100
    • 知道這樣很好,但是⾃自⼰己做不到 ? 透過別⼈人幫助提供
    學程式的環境

    View Slide

  53. 把你關起來來學程式
    (還好不是關在⼭山洞洞)
    • ⼀一到五上課的密集班
    • 提供場地 & 專家解答問題的⾃自學培訓
    • 額外好處: 同學⼀一起學習,互相幫忙

    View Slide

  54. 密集上課可能遇到的問題
    • 學太多,比⽅方 iOS + Android + 後台 + 網⾴頁。
    • 找⼯工作其實只要⼀一個專精就可以。公司要的是會
    某個技術的⼈人,不是每個都會⼀一點點的⼈人。
    • 課程時間太短,內容消化不了了,沒時間寫作業,前
    ⾯面學的還沒吸收,新學的跟不上。
    • 如果課程時間拉長呢? 學費可能更更貴 !

    View Slide

  55. ⾃自學培訓可能遇到的問題
    • 每個⼈人⾃自⼰己找資源,有的找到比較好的,有的找到比
    較不好的,因此可能有不同的學習成果。(相反的上
    課是⼤大家學同⼀一套教材)
    • 適合程度較好或是學習動⼒力力較強的同學,因此通常會
    挑⼈人。(如果是付費課程,有錢就能上課)

    View Slide

  56. 建議看英⽂文
    • 英⽂文的書 & 影片比較新,比較好。
    • 程式的英⽂文其實不難
    • 中⽂文翻譯有時會不太順或翻錯。
    • 讀資⼯工時因為中⽂文翻譯常看不懂,慢慢養成看原⽂文書的習慣。
    • google 找問題時,英⽂文的解答比較多,最好搜尋的關鍵字也打英⽂文。
    • 電腦改成英⽂文介⾯面 ( ps: 到星巴克⽤用電腦時也比較潮)
    • 既然願意花時間學程式,建議也花點時間學英⽂文。(主要是背單字)

    View Slide

  57. 作業 & 考試
    • 很討厭,但真的有⽤用 !
    • 臨臨時抱佛腳是⼈人的天性
    • 上課,看書,看影片只佔三成,學會程式七成要靠⾃自⼰己練習
    • 比⽅方上課三⼩小時,課後練習寫作業的時間⾄至少要六⼩小時。
    • 不⾃自⼰己寫作業,上⼀一百次課,看⼀一百次影片也學不會。
    • 彼得潘的 100 道 Swift iOS App 謎題 http://bit.ly/2quinCC

    View Slide

  58. ⼤大學⽣生和外⾯面課程的作業考試比較
    • ⼤大學⽣生
    • 為了了畢業,所以願意臨臨時抱佛腳。雖然抱佛腳不好,但還是會變強。
    • 外⾯面的課程
    • 沒寫作業或考不好也不會怎樣
    • 有付錢就可以畢業
    • 沒有畢業證書也不會怎樣,畢業證書也沒什什麼⽤用
    • 彼得潘的 App 班裡,作業寫比較多的兩兩種⼈人
    • (1) 沒上班的⼈人 (2) 上班有空寫作業的⼈人
    • 彼得潘提供作業全交的⼀一對⼀一家教獎勵: 沒有⼈人實現過

    View Slide

  59. 程式是理理⼯工科,應該是理理解的科⽬目,
    不需要背吧 ?

    View Slide

  60. 學程式有很多東⻄西要記
    • 語法的格式
    • 某個功能要使⽤用哪個東⻄西實現。
    • 程式裡的東⻄西都是英⽂文,由英⽂文單字組成,英⽂文單字知道意思的話比較容易易
    記起來來。
    • 上課的學⽣生⼀一般後⾯面的課程跟不上,不是因為太難,⽽而是沒有複習,忘了了前
    ⾯面的東⻄西。
    • 記起來來的⽅方法(跟⼩小時候唸書⼀一樣)
    • 不背的⽅方法: 多練習,練習多了了就記起來來了了
    • 刻意背

    View Slide

  61. 看到單字,
    要能⾺馬上想到它在程式裡的作⽤用
    程式練習的 flash card (閃卡)

    View Slide

  62. 從程式裡常⽤用的英⽂文單字找出規則
    以 iOS App 為例例
    • 程式沒什什麼創意,常⽤用的單字就那幾種。
    • 很多地⽅方出現 will,did,start ,finish。
    • 很多 App 的功能都跟開始和完成有關,因此猜想相
    關的程式單字會出現 start & finish,比⽅方想在網⾴頁完
    成載入時移除下載中的彩球。
    • 只要記得這些常⽤用的單字,寫程式時很容易易想到要怎
    麼寫或看懂別⼈人寫的程式。

    View Slide

  63. 從程式裡常⽤用的英⽂文單字找出規則
    以 iOS App 為例例
    • will: 將要發⽣生。
    • did: 已經發⽣生。
    • start: 開始。
    • speechSynthesizer(_:didStart:): 已經開始講話。
    • finish: 完成。
    • webView(_:didFinish:): 網⾴頁已經完成載入。

    View Slide

  64. 持續學習很重要
    • 程式的技術⼀一直在變
    • ⼯工程師的苦
    • 沒辦法⼀一個技術⽤用⼀一輩⼦子
    • 喜歡學習的⼈人比較適合當⼯工程師
    • 怎樣的特質不適合當⼯工程師: 不喜歡學習

    View Slide

  65. 如何保持學習的熱情 ?
    • ⾃自⼰己很容易易三分鐘熱度 ( 就好像付給健⾝身房的錢)
    • 別⼈人的⿎鼓勵⽀支持
    • 家⼈人朋友
    • ⻄西瓜媽的故事 https://medium.com/@gmb728
    • 因為愛: 為了了家⼈人朋友,⼩小孩會給予很多真⼼心的回饋
    • 跟朋友合作 side project
    • 彼得潘和朋友合作的記帳 App,每星期到對⽅方家裡⼀一起寫程式
    • http://apppeterpan.strikingly.com
    • 跟朋友或同學⼀一起學習。
    • 做出實際的產品,比⽅方上架 App。
    • 使⽤用者的⽀支持和意⾒見見 ,比⽅方 App 的評論

    View Slide

  66. 如何保持學習的熱情 ?
    成就感 & 愛很重要 !
    • 成就感
    • 可愛倉鼠 https://bit.ly/2IMb6bz

    雖然⽤用了了三百多張view才拼完,但拼完很有成就感。
    • 漂亮的花 https://bit.ly/2Tlppbf

    ⽤用⼀一個⼀一個view拼出⼀一朵花,花了了不少時間,但完成後相當有成就感。
    • 愛
    • 偶像⼤大師 https://bit.ly/2XsQLLT

    實際製作的時間也花了了⼤大約⼗十⼩小時左右,不過只要有愛就沒問題的~

    View Slide

  67. 我的偶像 ~ Penny
    https://bit.ly/2U95Vnk

    View Slide

  68. 如何保持學習的熱情 ?
    寶⾙貝你回來來了了
    https://www.youtube.com/watch?v=_iC8jnx32ho

    View Slide

  69. 如何保持學習的熱情 ?
    • 難度適中的主題
    • 太難容易易放棄,太簡單容易易無聊
    • 學習的兩兩個⽅方向
    • 往深度發展
    • 比⽅方持續學習 iOS App 的各種功能,例例如 AR。
    • 往廣度發展。
    • 學會寫 iOS App 了了,來來玩玩學 Android App。
    • 找出適合⾃自⼰己的學習⽅方式
    • 看書,影片,上課,實作產品

    View Slide

  70. 學習 debug (修正程式的問題)
    • ⼯工程師⼯工作有很多時間花在解決程式的問題。
    • 初學者可能三成的時間寫新功能,七成在 debug。
    • 解決問題的時間很難估算,可能⼗十分鐘,也可能超過
    ⼀一星期。

    View Slide

  71. 學習 debug (修正程式的問題)
    • ⼯工程師和其它⼯工作的差異異
    • 煮菜: 半⼩小時可以煮五道菜,⼀一⼩小時可以煮⼗十道菜,成果
    可以預估。
    • ⼯工程師: 成果無法預估,可能⼀一星期都毫無進展,每天都
    在研究同⼀一個問題。
    • 解出問題時很開⼼心,但解不出時很痛苦,要能忍受苦思問
    題的痛苦才適合當⼯工程師。
    • ⾼高⼿手也會解問題解很久,因為他會⾯面對更更難的問題。

    View Slide

  72. 學程式的六個階段
    2. 看懂別⼈人寫的程式
    3. ⾃自⼰己寫,不⼀一定對
    4. 寫得對
    6. 寫得好
    5. 寫得快
    1. 理理解專家的講解 (比⽅方上課,看書,看影片)
    初學者先⽬目標前 4 個階段
    找⼯工作前最好練到第 5 個階段

    View Slide

  73. 怎麼知道真的會了了 ?
    程式寫得快
    • 為什什麼明明寫過了了,重頭⾃自⼰己做⼀一次還是腦袋⼀一片空⽩白做不出來來。
    • 因為第⼀一次寫常常是參參考別⼈人的做法完成,很多是 copy paste 或是看著照抄。
    • 雖然寫過作業,完成 final project,甚⾄至上架 App 了了,但如果不熟練,⾯面試重頭
    寫還是寫不出來來。(或是無法在⾯面試要求的時間內完成)
    • 當你能很快寫出來來時,代表你的理理解和熟練度都有⼀一定⽔水準。因為程式不是⽤用背的,
    所以你要理理解才能寫得快。
    • 能寫出來來沒有⽤用,要寫得快才能找到⼯工作。
    • 考到台⼤大醫科的往往考試時寫得很快,寫完還能檢查。
    • ⾯面試時要能很快答出問題或現場短時間內寫出程式。

    View Slide

  74. 怎麼知道真的會了了 ?
    程式寫得快
    • 如何練習寫程式的速度
    • 同樣的題⽬目不只做⼀一次,要練到能⾃自⼰己做出來來,不
    ⽤用參參考教材 & google。
    • 計錄完成的時間: 比⽅方第⼀一次花了了⼀一個⼩小時,第⼆二
    次花了了半⼩小時。

    View Slide

  75. 如何寫得好 ?
    覺得⾃自⼰己寫很爛,想精進⽬目前的語法架構
    • 等有⼀一定基礎後,再來來研究這個部份。(剛開始學程式的朋友可以先不管)
    • 靠⾃自⼰己
    • 隨著⼯工作經驗的累積,會愈來來會進步。
    • 初學者要注意的第⼀一點: 程式的命名
    • 跟入⾨門教材的範例例學習
    • ⽬目標寫得跟範例例⼀一樣好
    • 模仿 Apple 教學範例例,寫出⼀一⼿手好 Swift
    • https://www.appcoda.com.tw/write-better-swift/

    View Slide

  76. 初學者常⾒見見的程式命名問題
    • 名字取不好,很容易易看不懂程式。
    • ⾃自⼰己看不懂,別⼈人也看不懂。
    • 最好⽤用能表達清楚意思的完整英⽂文單字取名,不要隨
    便便取名。
    let weight = 50
    let height = 1.65
    let bmi = weight / (height * height)
    let a = 50
    let b = 1.65
    let c = a / (b * b)

    View Slide

  77. 初學者常⾒見見的程式命名問題
    • 看似簡單,但初學者要養成命名的好習慣需要⼀一些時
    間。
    • 我讀資⼯工時為了了趕學校的作業,那時也常隨便便取名。
    • ⼀一開始初學者只想著⼀一件事,怎麼把東⻄西寫出來來。能
    寫出來來就謝天謝地了了,因此名字往往懶懶得花時間想。

    View Slide

  78. 如何寫得好 ?
    ⾼高⼿手沒有比較聰明,就只是聞道有先後
    • 要做出某個功能,往往有很多⽅方法。⾼高⼿手跟初學者的其中⼀一個差別,就在⾼高
    ⼿手知道比較多⽅方法,知道在某個時候該選擇哪⼀一個⽅方法。
    • 為什什麼⾼高⼿手知道 ?
    • 利利⽤用各種學習⽅方法知道。
    • ⼤大部分的程式技術都不是⾼高⼿手⾃自⼰己想到發明的,早已有⼈人發明。
    • 初學者⼀一開始可能只知道其中⼀一種比較笨的寫法,可以試著研究是否有其它
    的寫法,可能原本⼗十⾏行行的程式變成只要寫三⾏行行。(可以試著 google)
    • 比⽅方我會研究 iOS App ⾴頁⾯面間傳資料的各種不同⽅方法。
    • 每天我都發現⾃自⼰己學到新的東⻄西,知道⼀一個新的⽅方法。

    View Slide

  79. 如何寫得好 ?
    覺得⾃自⼰己寫很爛,想精進⽬目前的語法架構
    • 學習讓程式更更容易易維護,更更不容易易有 bug 的寫法
    • 研究許多讓程式更更好的教學,比⽅方書籍
    • 研究 GitHub 上不錯的程式專案。
    • 模仿公司厲害同事的程式。
    • 請⾼高⼿手 review code。

    View Slide

  80. 學 iOS 程式設計的⽅方法
    • ⼤大部分跟學其它程式⼀一樣,前⾯面有介紹。
    • iOS App開發的⼗十個 Q & A https://bit.ly/2nVqyDu
    • 推薦的書
    • 彼得潘的 Swift 程式設計入⾨門 (好吧,因為是我寫的)
    • Intro to App Development with Swift https://apple.co/2jQeoNE
    • App Development with Swift https://apple.co/2IA8JII
    • iOS 12 App 程式設計實戰⼼心法 https://www.appcoda.com.tw/books/
    • 網路路上還有很多學習資源
    • Awesome 的 iOS App 開發學習資源 https://bit.ly/2U8o30L
    • 彼得潘的 blog https://medium.com/@apppeterpan

    View Slide

  81. 學 iOS 程式設計的⽅方法
    • 上架 App
    • 練習題
    • 比⽅方我出的 100 道 Swift iOS App 謎題 http://bit.ly/2quinCC
    • 外國⼤大學的 iOS 課程作業 https://bit.ly/2EGZVg4
    • 沒有誰的書或課是你學了了就能找到⼯工作 ,但如果你題⽬目都能完成,東
    ⻄西都能做出,⼀一定能找到⼯工作。
    • 使⽤用 App 時看到不錯的畫⾯面或功能,試著模仿練習。 

    https://bit.ly/2HanuzB
    • 也歡迎找彼得潘

    View Slide

  82. iOS App 上架
    • https://www.appcoda.com.tw/ios-app-submission/
    • 其實不難,比⽅方猜數字 App 也可以上架。
    • 若若有特別的問題,Apple 會告訴你,乖乖地照 Apple
    要的修改即可。
    • ⽬目前要不上班,⾃自⼰己做 App 賺錢過不錯的⽣生活難度
    有點⾼高。(太多 App 了了)

    View Slide

  83. 我難過的 App 退件故事

    View Slide

  84. 想當⼯工程師嗎 ?
    ⼯工程師的好 ?

    View Slide

  85. 程式設計師可能的好處
    較⾃自由
    邊⼯工作邊吃東⻄西
    上班滑 FB,LINE 跟朋友聊天
    薪⽔水還不錯
    ⼯工作內容有趣
    (前提要喜歡動腦)
    不⽤用曬太陽
    比較晚上班
    不⽤用打卡
    ⼯工作聽⾳音樂
    遠端⼯工作 ,在家裡
    咖啡廳⼯工作
    做出產品的成就感
    出國⼯工作
    比較沒有⼈人
    事⾾鬥爭
    感覺很厲害
    免費零食
    周末到公司⽤用電
    腦,省⽔水省電

    View Slide

  86. 想當⼯工程師嗎 ?
    ⼯工程師⼯工作的缺點 ?

    View Slide

  87. 學了了程式找到⼯工作後,是否就像王
    ⼦子公主,從此過著幸福快樂的⽇日⼦子 ?
    https://bit.ly/2AP4XnS

    View Slide

  88. 責任制的⼯工作時間
    • 忙的時間可能超過⼗十點下班,甚⾄至回家繼續寫。
    • 下班還是在⼯工作,主管還會 LINE 你,要你改 bug。
    • ⼤大部分沒有加班費
    • 新⼿手寫得比較慢,因此可能比較晚下班,甚⾄至假⽇日在寫程式。( 還
    記得曾經 228 連假和跨年年寫程式)
    • 技術變強後,錢變多了了,但可能有更更多事要做,因此還是晚下班。
    • ⼯工時長的缺點: 影響⼼心情,健康,愛情,婚姻 (看到很多朋友 & 同學
    的故事)

    View Slide

  89. 彼得潘以前上班的⼀一天
    • 早上⼗十點到公司,開始吃早餐
    • 中午⼗十⼆二點到外⾯面吃午餐
    • 下午三點到外⾯面買下午茶茶
    • 下午六點多下班。
    • 重點其實是⼯工作效率,專⼼心寫⼀一⼩小時的程式可能等於三⼩小時⼀一
    下⼦子 LINE,⼀一下⼦子 FB 所寫的程式。
    • 看起來來⼯工時很短? 其實回家繼續寫公司的程式。

    View Slide

  90. 彼得潘加班的最⾼高紀錄 ?

    View Slide

  91. 彼得潘加班的最⾼高紀錄
    App 上架前寫到凌晨五點
    (還好是在家裡寫,不是在辦公室)
    ps: 最好不要超過半夜⼀一點寫程式,可能發⽣生很可怕的事,
    比⽅方寫出奇怪的程式 (因為頭腦不清楚)

    View Slide

  92. ⼯工程師的⼯工作很難平均分配
    • ⼀一般都是有時操,有時閒
    • 都很閒
    • 公司⽣生意不好,快倒了了
    • 主管不喜歡你,想要你走
    • 養老的公司
    • 都很操
    • 比⽅方⼀一直在燒錢,還沒有賺錢的新創公司
    • 有朋友⼀一直加班,沒有加班才是不正常。不過她後來來太操做不下去,回家帶⼩小孩
    才發現帶⼩小孩更更操。看來來⼤大家應該先帶⼩小孩,之後⼯工作就不怕操了了。

    View Slide

  93. ⼯工程師上班閒的時候做什什麼 ?

    View Slide

  94. ⼯工程師上班閒的時候可能做什什麼 ?
    • 研究其它程式技術
    • 寫程式技術的 blog ⽂文章
    • 讀英⽂文
    • 打電動
    • 滑 FB, IG,抖⾳音,PTT
    • 看 youtube,看直播,追劇
    • 睡覺
    • 到外⾯面買下午茶茶
    • 吃吃吃
    • LINE 聊天
    • 找新⼯工作: 看 104 ,linkedin
    • 看股票
    • 寫 App 作業
    • 做外⾯面的案⼦子
    • 做 side project
    • 對著程式畫⾯面發呆 然後假裝滑鼠⼀一直動
    • 蹲⾺馬桶
    • 抽煙

    View Slide

  95. 重視產出 & 重視⼯工時
    • 重視產出的公司
    • 只要你能完成,做出好的成果,就有愈多的⾃自由
    • 重視⼯工時的公司
    • 明明沒事做了了,但是主管還沒下班,你就不能下班
    • 太早下班會績效不好。(⼯工程師的績效獎⾦金金很重要,有些公
    司獎⾦金金 & 年年終的錢比整年年的⽉月薪加起來來還多)
    • 晚上留留在公司上網裝忙。

    View Slide

  96. 新⼿手找⼯工作好找嗎
    • 能⼒力力是重點
    • 當能⼒力力差不多時,女⽣生,年年輕,學歷會有⼀一點優勢
    • 會看學歷嗎
    • 第⼀一份⼯工作有影響
    • 想進 Apple , Google , FB,台積電,聯聯發科之類
    的公司,學歷有幫助

    View Slide

  97. 公司的徵才網⾴頁看起來來很可怕
    列列出的條件很多
    • 還是可以投
    • 公司挑⼈人,我們也挑公司
    • 有些公司找不到⾼高⼿手,只能找新⼿手,他付的錢也請不
    起有這些條件的⼈人
    • 找⼯工作跟找房⼦子很像,有時剛好你正在找⼯工作,他缺
    ⼈人就要你了了。

    View Slide

  98. ⾯面試
    • ⾯面試考題,請找 Google ⼤大神
    • 現場寫程式的能⼒力力,初學者常⾒見見的問題在於不夠熟練 (有的可
    以讓你回家寫)
    • 有的甚⾄至不會問技術問題,比⽅方公司沒有 iOS ⼯工程師,沒⼈人可
    以考 iOS App 技術問題
    • iOS App ⼯工程師⾯面試鑑賞師

    http://interviewiosapp.strikingly.com
    • 合不合得來來很重要,記得微笑

    View Slide

  99. 公司只有⾃自⼰己寫 iOS App
    沒有前輩怎麼辦 ?
    • 好處
    • 比較不會被 fire ( fire 你就沒⼈人寫 iOS App 了了)
    • 可以⽤用⾃自⼰己喜歡的⽅方式寫。(公司有前輩可能會有好的程式
    架構要遵守,但要先經歷學習的階段。)
    • 要學會⾃自⼰己找尋問題的答案,真的找不到再請教外⾯面的⼈人。
    • 以 iOS 來來說,滿多⼩小公司都只有⼀一兩兩個⼈人,⾃自⼒力力⾃自強很重要。
    • 有問題也可以 line 彼得潘。

    View Slide

  100. 公司好嗎 ? 如何選擇 ?
    • ⾯面試的感覺不準,就像談戀愛。常常要開始⼯工作後才
    知道。(也可以先從網路路查評價)
    • 薪⽔水,興趣,地點,每個⼈人重視的點不⼀一樣。我之前
    有⼀一次選公司的原因是因為它的旁邊是百貨公司。
    • 同事主管是否夠強,是否好相處。
    • 新創公司⼀一般比較⾃自由,同事比較年年輕

    View Slide

  101. 新⼿手的第⼀一份⼯工作
    • 第⼀一份⼯工作要運氣好才能找到滿意的⼯工作
    • 新創的⼩小公司和知名度沒那麼⾼高的公司比較容易易進
    • 在⼯工作中累積能⼒力力,之後可以換更更好的⼯工作
    • ⼀一般情況下,跳巢薪⽔水漲得比較快。
    • 公司的調薪
    • 新創公司有的比較沒錢,或是沒獲利利,可能會不調薪。(甚
    ⾄至可能減薪)

    View Slide

  102. 那麼多⼈人學程式
    ⼯工程師的⼯工作不會飽合嗎?
    • 很多⼈人⼯工作⼀一陣⼦子後放棄,所以持續有空缺
    • 放棄的原因: 不開⼼心,做不出來來,錢太少
    • 難的不是找到⼯工作,難的是持續做下去。
    • 放棄不是壞事,本來來就不是⼈人⼈人都適合寫程式,換⼀一
    個⾃自⼰己開⼼心的⼯工作比較重要
    • 也有不開⼼心繼續做的,比⽅方為了了錢,為了了養家

    View Slide

  103. 熱情歡樂的新創⼯工作環境
    不過新創也有很操的,⼀一般有錢的比較不操
    (比⽅方背後有⼤大公司當⾦金金主)

    View Slide

  104. ⼯工程師的⼯工作有趣嗎
    • 什什麼樣的⼈人會覺得有趣: 喜歡動腦和學習。
    • 要能忍受問題想不出來來,睡覺也在想的⽣生活。
    • 也可能做很多雜事,比⽅方在新創公司,⼀一個⼈人要⾝身兼多職。
    • 有時花很多時間做的東⻄西,最後卻完全⽤用不到,比⽅方老闆決定
    重新設計,之前做的 App 畫⾯面不要了了。
    • 有時會開發功能類似的產品,⼀一直使⽤用重覆的技術。
    • 有些功能簡單卻費時,比⽅方多國語⾔言 。

    View Slide

  105. 新⼿手會很容易易被 fire 嗎 ?
    能成功度過試⽤用期嗎 ?
    • 正常情況不會被 fire,因為公司也很難找⼈人,尤其沒知名度的新創公
    司。
    • 可能 fire 的情況
    • 產品完成了了,公司不再需要你。
    • 產品無法賺錢。
    • 公司要節省開⽀支。
    • ⼯工作態度不佳。
    • 能⼒力力不⾜足。(可能你⽬目前的能⼒力力是 60,但你的⼯工作適合能⼒力力 90 的⼈人)

    View Slide

  106. 東⻄西做不出來來怎麼辦?

    View Slide

  107. 東⻄西做不出來來怎麼辦?
    • ⼤大部份都做得出來來,只是會 delay,需要更更多的時間
    • 真的做不出來來
    • 產品的難度超過你的能⼒力力。
    • 這也是為何有五萬⽉月薪的⼯工程師,也有超過⼗十萬的
    • 雖然失敗了了,但更更重要是過程中技術成長了了 。
    • 如果能⼒力力不⾜足,有可能完成嗎 ?
    • 除非找槍⼿手,但⼯工作不太可能找槍⼿手。
    • 接案公司也常聽說案⼦子做不出來來的故事

    View Slide

  108. ⼯工程師的 Money
    • 有機會年年薪百萬。
    • 新⼿手⼤大概四萬多。
    • 其實很多⼈人⼯工時跟⼯工程師⼀一樣,但是錢少很多。所以⼯工程師已經算滿幸福了了。
    • 不會變有錢⼈人,但可以過還 ok 的⽣生活。
    • 比較有機會調薪
    • 因為技術變強,公司願意付更更⾼高的薪⽔水。
    • 公司是否賺錢更更重要,沒賺錢技術再強也不會調。
    • 其它⾏行行業: 有些⼯工作比較沒成長性,做⼗十年年跟做⼀一年年做的事差不多,所以調薪空間有限。
    • 想要更更多的錢
    • ⽵竹科,知名的公司,外商,外國 (比⽅方美國,⼤大陸,⽇日本,新加坡)

    View Slide

  109. 公司倒了了怎麼辦
    • 新創公司比較容易易倒 ?
    • 很多新創公司撐不到三年年,不過可能你本來來就計畫兩兩三年年換⼀一次公司。
    (技術學得差不多,覺得無聊,跳巢薪⽔水更更多)
    • ⼯工程師本來來就很少在⼀一家公司待⼀一輩⼦子,⽽而是每幾年年換⼀一次⼯工作,學習
    新技術,製作下⼀一個有趣的產品。(台積電,聯聯發科之類的公司例例外)
    • 只要技術成長,換公司往往可以愈換愈好。
    • 有的甚⾄至換過幾次公司後,最後想⾃自⼰己創業。
    • 要有股份變⽩白紙的⼼心理理準備。

    View Slide

  110. 如何成為⼀一個好的新⼿手⼯工程師
    • 養成學習的習慣。
    • 看書,看影片,寫 blog,參參加活動,做 side project
    • ⽬目標將東⻄西做好,⽽而不是將東⻄西做出來來就好。
    • 不過有些公司⼀一直趕案⼦子,也可能讓⼯工程師只能將東⻄西做出來來就好
    • 下班時間的運⽤用。
    • 細節
    • 快
    • 研究別⼈人的程式
    • debug
    • 教別⼈人

    View Slide

  111. 下班時間的運⽤用
    • 畢業後,⼤大家⼀一開始⼯工作的起點是⼀一樣的,為什什麼⼗十
    年年後同學會差那麼多 ?
    • 下班後做了了什什麼 ?
    • 我以前上班時,下班後⾃自學 iOS App 開發,接案⼦子,
    寫 App,寫書,教課等。
    • 也要看公司,我有些在聯聯發科的朋友,的確下班後比
    較沒⼒力力做別的事。

    View Slide

  112. 研究別⼈人的程式
    https://bit.ly/2ThAERQ

    View Slide

  113. 教學的⼗十⼤大好處
    https://bit.ly/2SUpC5V

    View Slide

  114. 新⼿手接案的可能
    • 還是有⼀一些簡單的案⼦子。
    • 案⼦子主要來來源: 家⼈人朋友介紹
    • 網路路: ptt CodeJob,線上外包網
    • 最近有個修課的⼤大學⽣生接了了⼀一個三萬的案⼦子
    • 可能的缺點: 規格時常修改,時間經常 delay
    • 技術不錯時,有機會接到⼀一個⽉月⼗十萬的案⼦子
    • 外國的案⼦子錢比較多 ( 外國老闆覺得找台灣的⼯工程師比較划算)

    View Slide

  115. 台灣軟體就業環境的優點和缺點
    • 優點
    • 比起很多其它⾏行行業,同樣的⼯工時,薪⽔水已經算很不錯了了
    • 有許多技術難度不會太⾼高的⼯工作,所以新⼿手不難找到⼯工作。
    • ⾃自由: 只要能完成產品,上班可以⾃自由做很多事。(⽵竹科有些公司限制比較多)
    • 缺點
    • 薪資比不上外國。
    • ⼤大部分的⼯工作技術難度不⾼高,只想製作⼀一個普通的產品,⼯工程師技術成長有限。
    如果在 Apple,Google 之類的公司可以有更更多的發展。
    • 有些公司只⽬目標完成產品,只想快速賺錢,不在乎品質。

    View Slide

  116. 有任何問題,歡迎 FB / LINE 彼得潘
    • FB: https://www.facebook.com/deeplove.pan
    • LINE: deeplovepeterpan


    View Slide