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

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

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

Transcript

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

    學程式的初學者們
  2. 愛瘋⼀一切為蘋果的彼得潘

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

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

  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/
  6. 相關教學資源 • Speaker Deck
 https://speakerdeck.com/apppeterpan • SlideShare
 http://www.slideshare.net/deeplovepan • email:

    apppeterpan@gmail.com • 彼得潘的 SWIFT iOS APP office hour
 http://swiftiosappofficehour.strikingly.com • FB: https://www.facebook.com/deeplove.pan • LINE: deeplovepeterpan
 line 官⽅方 IG 有問題歡迎 FB / LINE 我
  7. 叫我彼得潘,Peter,Deeplove, ⿁鬼塚,Swift⼩小王⼦子,情歌王⼦子 莫叫我老師 http://bit.ly/2xe9eOG

  8. 學程式 & 當⼯工程師是 幸福路路還是不歸路路呢 ? • 如何學程式 ? • 學程式容易易跟難的地⽅方

    • 讀資⼯工會比較厲害嗎 ? • ⾃自學 & 上課哪個好 ? • ⼯工程師⼯工作的好與壞
  9. 為什什麼想學程式 ?

  10. 為什什麼想學程式 ? 想學新的技能 創業 ⼯工作 轉職當⼯工程師 不⼩小⼼心考到資⼯工系 想要年年薪百萬 聽說未來來的社會程式很重要,最好學⼀一下 好玩,興趣

    想做 App,網站,遊戲 果粉 想家教女⽣生 聽說很好學 失業 不想被理理⼯工科看扁 想了了解背後的原理理 獲得別⼈人的崇拜
  11. 程式好學嗎 ?

  12. 沒有想像中難學 需具備的條件 • 基本的英⽂文能⼒力力,主要是英⽂文單字 • 單字不多,⽂文法簡單 • 為什什麼英⽂文單字重要之後會說明 • 簡單的數學能⼒力力

    • ⼤大部分的時候不會⽤用到三⾓角函數跟微積分 • 基本的英打能⼒力力 • 英⽂文鍵盤的位置有背起來來,不是⽤用⼀一指神功打字

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


    看到⼀一堆錯誤⽽而放棄。 Swift playground Scratch https://scratch.mit.edu
  14. 不要每個字都⾃自⼰己打 請交給專業的來來⾃自動完成 https://bit.ly/2tDRQT6

  15. 沒有想像中好學

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

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

  18. 有問題要勇敢問 • 台灣的學⽣生比較不好意思問問題 • 練習時遇到問題,先研究後再問 • ⼤大部分的程式問題都可以在 Google 找到解答。 •

    不知道怎麼問 ? 問問題也需要練習,多問就會愈問愈好 • 有些問題很難⽤用⽂文字說明清楚時,可以直接將程式傳給 對⽅方。
  19. google search 程式問題的⼩小技巧 https://bit.ly/2GH2QrF 以 swift iOS App 為例例

  20. 找誰問問題 • 找不到⼈人問 • ⾃自學,公司沒⼈人問,同事太忙沒空理理你 • 網路路問: FB & LINE

    社團,PTT 討論區 • 有些問題⾯面對⾯面問比較好解決 • 程式相關的實體聚會 & 讀書會,可從 FB search。 • 彼得潘的 FB & LINE: 歡迎任何⼈人傳訊息。 • 如果是付費上課的同學,跟免費⾃自學相比,錢的主要價值就在可以問問題。(發現同 學們還是比較愛私訊,就算有成立群組。) • 家教: ⼀一對⼀一時學⽣生比較有勇氣問
  21. 想不出來來怎麼寫, 是不是⾃自⼰己不適合寫程式呢 ? https://bit.ly/2XlT9Un

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

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

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

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

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

  27. 資⼯工系⼜又怎樣(學⽣生的問題?) • ⼤大學時因為分數唸了了資⼯工系, 沒興趣,只想得到學分 & 畢業。
 • 不⼀一定會去上課 (比⽅方睡到中午,下⼤大雨,夜唱 KTV)


    • 前⾯面的課睡過頭沒上到,所以後⾯面的課跟不上,只能⼀一直 翹課
 • 交的作業不⼀一定是⾃自⼰己寫的
 • 修的課太多,沒辦法每⾨門堂都付出 100% 的⼼心⼒力力。
  28. 資⼯工系⼜又怎樣(老師的問題?) • 教授很會研究,但不⾒見見得知道怎麼教程式 • 程式課不夠有趣,上課容易易睡著,比⽅方照著課本唸,或 是老師的聲⾳音很有催眠效果

  29. 資⼯工系⼜又怎樣 • ⼤大學唸的東⻄西,很多畢業都忘光了了 • 過去學過的知識,最有⽤用的其實是英⽂文
 • 彼得潘何時認真: 
 期中期末考前不睡覺,⼤大三為了了研究所可以直升⽽而努⼒力力 唸書

  30. 資⼯工系的專業課程 演算法,資料結構,作業系統,相關數學 • ⼀一般非本科⾃自學和外⾯面的程式課程比較少教 • 可以寫出更更好的程式 • 初學者可以先⽬目標能將東⻄西做出來來,之後有興趣再研究這些主 題。 •

    比較難 • 不是短時間能熟練的 • 就算資⼯工系也常常學不起來來 ( 有些是考研究所補習才加強的)
  31. 資⼯工系的專業課程 演算法,資料結構,作業系統,相關數學 • 找⼯工作 • 有些⼯工作會⽤用到,但台灣很多⼯工程師的⼯工作⽤用不到 • 產品不會⽤用到這些技術 • 程式可以寫出來來就好,接案案⼦子可以完成就好

    • 會這些技術的⼈人薪⽔水較⾼高,老闆想省錢 • 想要更更好的⼯工作,需要這些技術的公司 • 比⽅方 Apple,Google 之類的公司 • 想去矽⾕谷⼯工作
  32. ⾯面試的程式解題題⽬目 LeetCode https://leetcode.com • 想去比較好的公司,比⽅方 Apple,Google 之類的公司 • 想去矽⾕谷⼯工作 •

    需要⼤大量量練習,我去 Google ⼯工作的朋友,⾯面試前練習
 好幾百題 • 就算是名校資⼯工系,也要另外花時間練習,因為在學校
 的課程不會練。 • 初學者可以先⽬目標台灣⼀一般的⼯工程師⼯工作,還是有很多
 公司不會考這些題⽬目
  33. 台灣 & 美國⼤大學比較 • 有些⼈人在考⼤大學前努⼒力力唸書,但進了了⼤大學後沒有下個 ⽬目標,就沒那麼認真了了。 • 美國⼤大學很多東⻄西要求學⽣生課後⾃自⼰己研究,比⽅方課前 預習 &

    課後 study 的東⻄西很多,所以課程內容可以 教得較深較難。 • 美國學費超貴,會⼼心疼學費,所以比較認真。
  34. 學習效果跟付出的錢成正比 ? • 免費的容易易半途⽽而廢 ? • 愈貴的課不⾒見見得好,但是會比較認真 ? • 書跟線上影片較便便宜,所以容易易變成裝飾品

    ? • 免費重上跟暖暖包價
 https://bit.ly/2oANLL4
  35. 暖暖包價 坐輪輪椅或不會講話的可愛女孩,說不定很會寫程式

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

  37. 彼得潘讀資⼯工系, 如何了了解初學者學程式 ? • 我也是進資⼯工系才開始學,⼀一開始教授說的也常聽不懂 • 家教 & 寫書幫助很⼤大 (我其實想寫⼩小說,但是出版社只願意幫我出程式書)

    • http://yourappmentor.strikingly.com • 能⼒力力分班很重要 • 經過幾次教學後,讓我了了解能⼒力力分班的重要。 • 無程式基礎的⽂文組⽣生班 & 有程式基礎的彼得潘班 • http://learniosfromzero.strikingly.com • ⽂文組班教我研究初學者的問題,彼得潘班教我研究更更深的技術 • 教學也需要學習,每次教課都會從學⽣生⾝身上學到很多東⻄西。
  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
  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)
  40. 先學⼀一種程式, 學會後再學另⼀一種會容易易許多 • 原理理類似,比⽅方每種程式都有變數,function,if else,迴圈。這四個主題也是初學者⼀一開始學程式最重 要的部份。 • 你現在學的東⻄西會過時,重要的是學習新技術的能⼒力力。 • 時常有轉換程式跑道的⼯工程師,比⽅方本來來寫網⾴頁,後來來

    變成寫 App • 建議初學者先把⼀一種學好,不要同時學好幾種。
  41. 彼得潘寫過最困難的程式 • driver (驅動程式) • linux driver, windows driver, mac

    driver • 寫程式控制硬體,比⽅方印表機的 driver,硬碟的 driver。 • driver 程式寫壞了了,整台電腦當機,只能重開。 • 彼得潘遇到⼀一個花了了好幾個星期才解決的問題,每次要讓問題重現 都需要等好幾天。 • App 程式寫壞了了 App 會閃退,但是還可以打電話。所以我後來來就 決定寫 App 了了。
  42. ⾃自學還是上課 https://bit.ly/2wsNYX6

  43. ⾃自學的進度安排 • 建議先找好某本書或某個線上課程,依書和影片的進 度進⾏行行。 • 有些⼈人會⼀一次買很多書和很多影片,變成每個都只 看前三章。 • 找朋友⼀一起學習 •

    主要的問題在卡關,所以找到⼈人問很重要。(問問題 的部分前⾯面有提到)
  44. 幫助學程式的八個重點 https://bit.ly/2x30Tyi

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

  46. 同學的 blog ⽂文章 https://bit.ly/2mJdBjE • 不⽤用怕寫不好,重點是進步 • 記錄⾃自⼰己的成長 • 抄襲參參考同學的作業,新同學正常會比前⼈人厲害

    • 寫程式⽂文章⼀一般會愈寫愈好,因為會愈來來愈厲害,寫⼩小說就 不⼀一定了了 • 我也是寫⼀一年年 App 後開始寫書。(為了了實現當作家的夢想)
  47. 六種學習⽅方式⾯面臨臨的不同問題 • 利利⽤用影片或書⾃自學 (前⾯面⾃自學的⽂文章有討論) • ⼤大學⽣生在學校修的程式課程 (前⾯面資⼯工系的部分有討論) • ⼀一對⼀一家教 (

    家長想要⼩小孩學,但是⼩小孩想學嗎 ? ) • 上班族學程式 • ⼀一到五上課的密集班 • 提供場地 & 專家解答問題的⾃自學培訓 沒有最好的學習⽅方式,只有最適合⾃自⼰己的⽅方式
  48. 上班族學習問題 • 下班精神不好 • 加班所以請假或遲到 • 沒空寫作業 • 上課可以幫助上班族加快學習,但前提要寫作業。 •

    學程式跟其它事情的 priority • 各種事情: 約會,出差,感冒,旅遊 • 企業內訓: 被公司要求學習,其實沒興趣,或是還有很多原本的⼯工作要 做,沒時間練習。 https://www.youtube.com/watch?v=GjSnE6j-jOM
  49. 學成⼀一個程式要多少時間 三個⽉月 ⼀一個⽉月 半年年 ⼀一年年 ⼤大學四年年

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

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

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

    ? 透過別⼈人幫助提供 學程式的環境
  53. 把你關起來來學程式 (還好不是關在⼭山洞洞) • ⼀一到五上課的密集班 • 提供場地 & 專家解答問題的⾃自學培訓 • 額外好處:

    同學⼀一起學習,互相幫忙
  54. 密集上課可能遇到的問題 • 學太多,比⽅方 iOS + Android + 後台 + 網⾴頁。

    • 找⼯工作其實只要⼀一個專精就可以。公司要的是會 某個技術的⼈人,不是每個都會⼀一點點的⼈人。 • 課程時間太短,內容消化不了了,沒時間寫作業,前 ⾯面學的還沒吸收,新學的跟不上。 • 如果課程時間拉長呢? 學費可能更更貴 !
  55. ⾃自學培訓可能遇到的問題 • 每個⼈人⾃自⼰己找資源,有的找到比較好的,有的找到比 較不好的,因此可能有不同的學習成果。(相反的上 課是⼤大家學同⼀一套教材) • 適合程度較好或是學習動⼒力力較強的同學,因此通常會 挑⼈人。(如果是付費課程,有錢就能上課)

  56. 建議看英⽂文 • 英⽂文的書 & 影片比較新,比較好。 • 程式的英⽂文其實不難 • 中⽂文翻譯有時會不太順或翻錯。 •

    讀資⼯工時因為中⽂文翻譯常看不懂,慢慢養成看原⽂文書的習慣。 • google 找問題時,英⽂文的解答比較多,最好搜尋的關鍵字也打英⽂文。 • 電腦改成英⽂文介⾯面 ( ps: 到星巴克⽤用電腦時也比較潮) • 既然願意花時間學程式,建議也花點時間學英⽂文。(主要是背單字)
  57. 作業 & 考試 • 很討厭,但真的有⽤用 ! • 臨臨時抱佛腳是⼈人的天性 • 上課,看書,看影片只佔三成,學會程式七成要靠⾃自⼰己練習

    • 比⽅方上課三⼩小時,課後練習寫作業的時間⾄至少要六⼩小時。 • 不⾃自⼰己寫作業,上⼀一百次課,看⼀一百次影片也學不會。 • 彼得潘的 100 道 Swift iOS App 謎題 http://bit.ly/2quinCC
  58. ⼤大學⽣生和外⾯面課程的作業考試比較 • ⼤大學⽣生 • 為了了畢業,所以願意臨臨時抱佛腳。雖然抱佛腳不好,但還是會變強。 • 外⾯面的課程 • 沒寫作業或考不好也不會怎樣 •

    有付錢就可以畢業 • 沒有畢業證書也不會怎樣,畢業證書也沒什什麼⽤用 • 彼得潘的 App 班裡,作業寫比較多的兩兩種⼈人 • (1) 沒上班的⼈人 (2) 上班有空寫作業的⼈人 • 彼得潘提供作業全交的⼀一對⼀一家教獎勵: 沒有⼈人實現過
  59. 程式是理理⼯工科,應該是理理解的科⽬目, 不需要背吧 ?

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

    ⾯面的東⻄西。 • 記起來來的⽅方法(跟⼩小時候唸書⼀一樣) • 不背的⽅方法: 多練習,練習多了了就記起來來了了 • 刻意背
  61. 看到單字, 要能⾺馬上想到它在程式裡的作⽤用 程式練習的 flash card (閃卡)

  62. 從程式裡常⽤用的英⽂文單字找出規則 以 iOS App 為例例 • 程式沒什什麼創意,常⽤用的單字就那幾種。 • 很多地⽅方出現 will,did,start

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

    已經發⽣生。 • start: 開始。 • speechSynthesizer(_:didStart:): 已經開始講話。 • finish: 完成。 • webView(_:didFinish:): 網⾴頁已經完成載入。
  64. 持續學習很重要 • 程式的技術⼀一直在變 • ⼯工程師的苦 • 沒辦法⼀一個技術⽤用⼀一輩⼦子 • 喜歡學習的⼈人比較適合當⼯工程師 •

    怎樣的特質不適合當⼯工程師: 不喜歡學習
  65. 如何保持學習的熱情 ? • ⾃自⼰己很容易易三分鐘熱度 ( 就好像付給健⾝身房的錢) • 別⼈人的⿎鼓勵⽀支持 • 家⼈人朋友

    • ⻄西瓜媽的故事 https://medium.com/@gmb728 • 因為愛: 為了了家⼈人朋友,⼩小孩會給予很多真⼼心的回饋 • 跟朋友合作 side project • 彼得潘和朋友合作的記帳 App,每星期到對⽅方家裡⼀一起寫程式 • http://apppeterpan.strikingly.com • 跟朋友或同學⼀一起學習。 • 做出實際的產品,比⽅方上架 App。 • 使⽤用者的⽀支持和意⾒見見 ,比⽅方 App 的評論
  66. 如何保持學習的熱情 ? 成就感 & 愛很重要 ! • 成就感 • 可愛倉鼠

    https://bit.ly/2IMb6bz
 雖然⽤用了了三百多張view才拼完,但拼完很有成就感。 • 漂亮的花 https://bit.ly/2Tlppbf
 ⽤用⼀一個⼀一個view拼出⼀一朵花,花了了不少時間,但完成後相當有成就感。 • 愛 • 偶像⼤大師 https://bit.ly/2XsQLLT
 實際製作的時間也花了了⼤大約⼗十⼩小時左右,不過只要有愛就沒問題的~
  67. 我的偶像 ~ Penny https://bit.ly/2U95Vnk

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

  69. 如何保持學習的熱情 ? • 難度適中的主題 • 太難容易易放棄,太簡單容易易無聊 • 學習的兩兩個⽅方向 • 往深度發展

    • 比⽅方持續學習 iOS App 的各種功能,例例如 AR。 • 往廣度發展。 • 學會寫 iOS App 了了,來來玩玩學 Android App。 • 找出適合⾃自⼰己的學習⽅方式 • 看書,影片,上課,實作產品
  70. 學習 debug (修正程式的問題) • ⼯工程師⼯工作有很多時間花在解決程式的問題。 • 初學者可能三成的時間寫新功能,七成在 debug。 • 解決問題的時間很難估算,可能⼗十分鐘,也可能超過

    ⼀一星期。
  71. 學習 debug (修正程式的問題) • ⼯工程師和其它⼯工作的差異異 • 煮菜: 半⼩小時可以煮五道菜,⼀一⼩小時可以煮⼗十道菜,成果 可以預估。 •

    ⼯工程師: 成果無法預估,可能⼀一星期都毫無進展,每天都 在研究同⼀一個問題。 • 解出問題時很開⼼心,但解不出時很痛苦,要能忍受苦思問 題的痛苦才適合當⼯工程師。 • ⾼高⼿手也會解問題解很久,因為他會⾯面對更更難的問題。
  72. 學程式的六個階段 2. 看懂別⼈人寫的程式 3. ⾃自⼰己寫,不⼀一定對 4. 寫得對 6. 寫得好 5.

    寫得快 1. 理理解專家的講解 (比⽅方上課,看書,看影片) 初學者先⽬目標前 4 個階段 找⼯工作前最好練到第 5 個階段
  73. 怎麼知道真的會了了 ? 程式寫得快 • 為什什麼明明寫過了了,重頭⾃自⼰己做⼀一次還是腦袋⼀一片空⽩白做不出來來。 • 因為第⼀一次寫常常是參參考別⼈人的做法完成,很多是 copy paste 或是看著照抄。

    • 雖然寫過作業,完成 final project,甚⾄至上架 App 了了,但如果不熟練,⾯面試重頭 寫還是寫不出來來。(或是無法在⾯面試要求的時間內完成) • 當你能很快寫出來來時,代表你的理理解和熟練度都有⼀一定⽔水準。因為程式不是⽤用背的, 所以你要理理解才能寫得快。 • 能寫出來來沒有⽤用,要寫得快才能找到⼯工作。 • 考到台⼤大醫科的往往考試時寫得很快,寫完還能檢查。 • ⾯面試時要能很快答出問題或現場短時間內寫出程式。
  74. 怎麼知道真的會了了 ? 程式寫得快 • 如何練習寫程式的速度 • 同樣的題⽬目不只做⼀一次,要練到能⾃自⼰己做出來來,不 ⽤用參參考教材 & google。

    • 計錄完成的時間: 比⽅方第⼀一次花了了⼀一個⼩小時,第⼆二 次花了了半⼩小時。
  75. 如何寫得好 ? 覺得⾃自⼰己寫很爛,想精進⽬目前的語法架構 • 等有⼀一定基礎後,再來來研究這個部份。(剛開始學程式的朋友可以先不管) • 靠⾃自⼰己 • 隨著⼯工作經驗的累積,會愈來來會進步。 •

    初學者要注意的第⼀一點: 程式的命名 • 跟入⾨門教材的範例例學習 • ⽬目標寫得跟範例例⼀一樣好 • 模仿 Apple 教學範例例,寫出⼀一⼿手好 Swift • https://www.appcoda.com.tw/write-better-swift/
  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)
  77. 初學者常⾒見見的程式命名問題 • 看似簡單,但初學者要養成命名的好習慣需要⼀一些時 間。 • 我讀資⼯工時為了了趕學校的作業,那時也常隨便便取名。 • ⼀一開始初學者只想著⼀一件事,怎麼把東⻄西寫出來來。能 寫出來來就謝天謝地了了,因此名字往往懶懶得花時間想。

  78. 如何寫得好 ? ⾼高⼿手沒有比較聰明,就只是聞道有先後 • 要做出某個功能,往往有很多⽅方法。⾼高⼿手跟初學者的其中⼀一個差別,就在⾼高 ⼿手知道比較多⽅方法,知道在某個時候該選擇哪⼀一個⽅方法。 • 為什什麼⾼高⼿手知道 ? •

    利利⽤用各種學習⽅方法知道。 • ⼤大部分的程式技術都不是⾼高⼿手⾃自⼰己想到發明的,早已有⼈人發明。 • 初學者⼀一開始可能只知道其中⼀一種比較笨的寫法,可以試著研究是否有其它 的寫法,可能原本⼗十⾏行行的程式變成只要寫三⾏行行。(可以試著 google) • 比⽅方我會研究 iOS App ⾴頁⾯面間傳資料的各種不同⽅方法。 • 每天我都發現⾃自⼰己學到新的東⻄西,知道⼀一個新的⽅方法。
  79. 如何寫得好 ? 覺得⾃自⼰己寫很爛,想精進⽬目前的語法架構 • 學習讓程式更更容易易維護,更更不容易易有 bug 的寫法 • 研究許多讓程式更更好的教學,比⽅方書籍 •

    研究 GitHub 上不錯的程式專案。 • 模仿公司厲害同事的程式。 • 請⾼高⼿手 review code。
  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
  81. 學 iOS 程式設計的⽅方法 • 上架 App • 練習題 • 比⽅方我出的

    100 道 Swift iOS App 謎題 http://bit.ly/2quinCC • 外國⼤大學的 iOS 課程作業 https://bit.ly/2EGZVg4 • 沒有誰的書或課是你學了了就能找到⼯工作 ,但如果你題⽬目都能完成,東 ⻄西都能做出,⼀一定能找到⼯工作。 • 使⽤用 App 時看到不錯的畫⾯面或功能,試著模仿練習。 
 https://bit.ly/2HanuzB • 也歡迎找彼得潘
  82. iOS App 上架 • https://www.appcoda.com.tw/ios-app-submission/ • 其實不難,比⽅方猜數字 App 也可以上架。 •

    若若有特別的問題,Apple 會告訴你,乖乖地照 Apple 要的修改即可。 • ⽬目前要不上班,⾃自⼰己做 App 賺錢過不錯的⽣生活難度 有點⾼高。(太多 App 了了)
  83. 我難過的 App 退件故事

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

  85. 程式設計師可能的好處 較⾃自由 邊⼯工作邊吃東⻄西 上班滑 FB,LINE 跟朋友聊天 薪⽔水還不錯 ⼯工作內容有趣 (前提要喜歡動腦) 不⽤用曬太陽

    比較晚上班 不⽤用打卡 ⼯工作聽⾳音樂 遠端⼯工作 ,在家裡 咖啡廳⼯工作 做出產品的成就感 出國⼯工作 比較沒有⼈人 事⾾鬥爭 感覺很厲害 免費零食 周末到公司⽤用電 腦,省⽔水省電
  86. 想當⼯工程師嗎 ? ⼯工程師⼯工作的缺點 ?

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

  88. 責任制的⼯工作時間 • 忙的時間可能超過⼗十點下班,甚⾄至回家繼續寫。 • 下班還是在⼯工作,主管還會 LINE 你,要你改 bug。 • ⼤大部分沒有加班費

    • 新⼿手寫得比較慢,因此可能比較晚下班,甚⾄至假⽇日在寫程式。( 還 記得曾經 228 連假和跨年年寫程式) • 技術變強後,錢變多了了,但可能有更更多事要做,因此還是晚下班。 • ⼯工時長的缺點: 影響⼼心情,健康,愛情,婚姻 (看到很多朋友 & 同學 的故事)
  89. 彼得潘以前上班的⼀一天 • 早上⼗十點到公司,開始吃早餐 • 中午⼗十⼆二點到外⾯面吃午餐 • 下午三點到外⾯面買下午茶茶 • 下午六點多下班。 •

    重點其實是⼯工作效率,專⼼心寫⼀一⼩小時的程式可能等於三⼩小時⼀一 下⼦子 LINE,⼀一下⼦子 FB 所寫的程式。 • 看起來來⼯工時很短? 其實回家繼續寫公司的程式。
  90. 彼得潘加班的最⾼高紀錄 ?

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

  92. ⼯工程師的⼯工作很難平均分配 • ⼀一般都是有時操,有時閒 • 都很閒 • 公司⽣生意不好,快倒了了 • 主管不喜歡你,想要你走 •

    養老的公司 • 都很操 • 比⽅方⼀一直在燒錢,還沒有賺錢的新創公司 • 有朋友⼀一直加班,沒有加班才是不正常。不過她後來來太操做不下去,回家帶⼩小孩 才發現帶⼩小孩更更操。看來來⼤大家應該先帶⼩小孩,之後⼯工作就不怕操了了。
  93. ⼯工程師上班閒的時候做什什麼 ?

  94. ⼯工程師上班閒的時候可能做什什麼 ? • 研究其它程式技術 • 寫程式技術的 blog ⽂文章 • 讀英⽂文

    • 打電動 • 滑 FB, IG,抖⾳音,PTT • 看 youtube,看直播,追劇 • 睡覺 • 到外⾯面買下午茶茶 • 吃吃吃 • LINE 聊天 • 找新⼯工作: 看 104 ,linkedin • 看股票 • 寫 App 作業 • 做外⾯面的案⼦子 • 做 side project • 對著程式畫⾯面發呆 然後假裝滑鼠⼀一直動 • 蹲⾺馬桶 • 抽煙
  95. 重視產出 & 重視⼯工時 • 重視產出的公司 • 只要你能完成,做出好的成果,就有愈多的⾃自由 • 重視⼯工時的公司 •

    明明沒事做了了,但是主管還沒下班,你就不能下班 • 太早下班會績效不好。(⼯工程師的績效獎⾦金金很重要,有些公 司獎⾦金金 & 年年終的錢比整年年的⽉月薪加起來來還多) • 晚上留留在公司上網裝忙。
  96. 新⼿手找⼯工作好找嗎 • 能⼒力力是重點 • 當能⼒力力差不多時,女⽣生,年年輕,學歷會有⼀一點優勢 • 會看學歷嗎 • 第⼀一份⼯工作有影響 •

    想進 Apple , Google , FB,台積電,聯聯發科之類 的公司,學歷有幫助
  97. 公司的徵才網⾴頁看起來來很可怕 列列出的條件很多 • 還是可以投 • 公司挑⼈人,我們也挑公司 • 有些公司找不到⾼高⼿手,只能找新⼿手,他付的錢也請不 起有這些條件的⼈人 •

    找⼯工作跟找房⼦子很像,有時剛好你正在找⼯工作,他缺 ⼈人就要你了了。
  98. ⾯面試 • ⾯面試考題,請找 Google ⼤大神 • 現場寫程式的能⼒力力,初學者常⾒見見的問題在於不夠熟練 (有的可 以讓你回家寫) •

    有的甚⾄至不會問技術問題,比⽅方公司沒有 iOS ⼯工程師,沒⼈人可 以考 iOS App 技術問題 • iOS App ⼯工程師⾯面試鑑賞師
 http://interviewiosapp.strikingly.com • 合不合得來來很重要,記得微笑
  99. 公司只有⾃自⼰己寫 iOS App 沒有前輩怎麼辦 ? • 好處 • 比較不會被 fire

    ( fire 你就沒⼈人寫 iOS App 了了) • 可以⽤用⾃自⼰己喜歡的⽅方式寫。(公司有前輩可能會有好的程式 架構要遵守,但要先經歷學習的階段。) • 要學會⾃自⼰己找尋問題的答案,真的找不到再請教外⾯面的⼈人。 • 以 iOS 來來說,滿多⼩小公司都只有⼀一兩兩個⼈人,⾃自⼒力力⾃自強很重要。 • 有問題也可以 line 彼得潘。
  100. 公司好嗎 ? 如何選擇 ? • ⾯面試的感覺不準,就像談戀愛。常常要開始⼯工作後才 知道。(也可以先從網路路查評價) • 薪⽔水,興趣,地點,每個⼈人重視的點不⼀一樣。我之前 有⼀一次選公司的原因是因為它的旁邊是百貨公司。

    • 同事主管是否夠強,是否好相處。 • 新創公司⼀一般比較⾃自由,同事比較年年輕
  101. 新⼿手的第⼀一份⼯工作 • 第⼀一份⼯工作要運氣好才能找到滿意的⼯工作 • 新創的⼩小公司和知名度沒那麼⾼高的公司比較容易易進 • 在⼯工作中累積能⼒力力,之後可以換更更好的⼯工作 • ⼀一般情況下,跳巢薪⽔水漲得比較快。 •

    公司的調薪 • 新創公司有的比較沒錢,或是沒獲利利,可能會不調薪。(甚 ⾄至可能減薪)
  102. 那麼多⼈人學程式 ⼯工程師的⼯工作不會飽合嗎? • 很多⼈人⼯工作⼀一陣⼦子後放棄,所以持續有空缺 • 放棄的原因: 不開⼼心,做不出來來,錢太少 • 難的不是找到⼯工作,難的是持續做下去。 •

    放棄不是壞事,本來來就不是⼈人⼈人都適合寫程式,換⼀一 個⾃自⼰己開⼼心的⼯工作比較重要 • 也有不開⼼心繼續做的,比⽅方為了了錢,為了了養家
  103. 熱情歡樂的新創⼯工作環境 不過新創也有很操的,⼀一般有錢的比較不操 (比⽅方背後有⼤大公司當⾦金金主)

  104. ⼯工程師的⼯工作有趣嗎 • 什什麼樣的⼈人會覺得有趣: 喜歡動腦和學習。 • 要能忍受問題想不出來來,睡覺也在想的⽣生活。 • 也可能做很多雜事,比⽅方在新創公司,⼀一個⼈人要⾝身兼多職。 • 有時花很多時間做的東⻄西,最後卻完全⽤用不到,比⽅方老闆決定

    重新設計,之前做的 App 畫⾯面不要了了。 • 有時會開發功能類似的產品,⼀一直使⽤用重覆的技術。 • 有些功能簡單卻費時,比⽅方多國語⾔言 。
  105. 新⼿手會很容易易被 fire 嗎 ? 能成功度過試⽤用期嗎 ? • 正常情況不會被 fire,因為公司也很難找⼈人,尤其沒知名度的新創公 司。

    • 可能 fire 的情況 • 產品完成了了,公司不再需要你。 • 產品無法賺錢。 • 公司要節省開⽀支。 • ⼯工作態度不佳。 • 能⼒力力不⾜足。(可能你⽬目前的能⼒力力是 60,但你的⼯工作適合能⼒力力 90 的⼈人)
  106. 東⻄西做不出來來怎麼辦?

  107. 東⻄西做不出來來怎麼辦? • ⼤大部份都做得出來來,只是會 delay,需要更更多的時間 • 真的做不出來來 • 產品的難度超過你的能⼒力力。 • 這也是為何有五萬⽉月薪的⼯工程師,也有超過⼗十萬的

    • 雖然失敗了了,但更更重要是過程中技術成長了了 。 • 如果能⼒力力不⾜足,有可能完成嗎 ? • 除非找槍⼿手,但⼯工作不太可能找槍⼿手。 • 接案公司也常聽說案⼦子做不出來來的故事
  108. ⼯工程師的 Money • 有機會年年薪百萬。 • 新⼿手⼤大概四萬多。 • 其實很多⼈人⼯工時跟⼯工程師⼀一樣,但是錢少很多。所以⼯工程師已經算滿幸福了了。 • 不會變有錢⼈人,但可以過還

    ok 的⽣生活。 • 比較有機會調薪 • 因為技術變強,公司願意付更更⾼高的薪⽔水。 • 公司是否賺錢更更重要,沒賺錢技術再強也不會調。 • 其它⾏行行業: 有些⼯工作比較沒成長性,做⼗十年年跟做⼀一年年做的事差不多,所以調薪空間有限。 • 想要更更多的錢 • ⽵竹科,知名的公司,外商,外國 (比⽅方美國,⼤大陸,⽇日本,新加坡)
  109. 公司倒了了怎麼辦 • 新創公司比較容易易倒 ? • 很多新創公司撐不到三年年,不過可能你本來來就計畫兩兩三年年換⼀一次公司。 (技術學得差不多,覺得無聊,跳巢薪⽔水更更多) • ⼯工程師本來來就很少在⼀一家公司待⼀一輩⼦子,⽽而是每幾年年換⼀一次⼯工作,學習 新技術,製作下⼀一個有趣的產品。(台積電,聯聯發科之類的公司例例外)

    • 只要技術成長,換公司往往可以愈換愈好。 • 有的甚⾄至換過幾次公司後,最後想⾃自⼰己創業。 • 要有股份變⽩白紙的⼼心理理準備。
  110. 如何成為⼀一個好的新⼿手⼯工程師 • 養成學習的習慣。 • 看書,看影片,寫 blog,參參加活動,做 side project • ⽬目標將東⻄西做好,⽽而不是將東⻄西做出來來就好。

    • 不過有些公司⼀一直趕案⼦子,也可能讓⼯工程師只能將東⻄西做出來來就好 • 下班時間的運⽤用。 • 細節 • 快 • 研究別⼈人的程式 • debug • 教別⼈人
  111. 下班時間的運⽤用 • 畢業後,⼤大家⼀一開始⼯工作的起點是⼀一樣的,為什什麼⼗十 年年後同學會差那麼多 ? • 下班後做了了什什麼 ? • 我以前上班時,下班後⾃自學

    iOS App 開發,接案⼦子, 寫 App,寫書,教課等。 • 也要看公司,我有些在聯聯發科的朋友,的確下班後比 較沒⼒力力做別的事。
  112. 研究別⼈人的程式 https://bit.ly/2ThAERQ

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

  114. 新⼿手接案的可能 • 還是有⼀一些簡單的案⼦子。 • 案⼦子主要來來源: 家⼈人朋友介紹 • 網路路: ptt CodeJob,線上外包網

    • 最近有個修課的⼤大學⽣生接了了⼀一個三萬的案⼦子 • 可能的缺點: 規格時常修改,時間經常 delay • 技術不錯時,有機會接到⼀一個⽉月⼗十萬的案⼦子 • 外國的案⼦子錢比較多 ( 外國老闆覺得找台灣的⼯工程師比較划算)
  115. 台灣軟體就業環境的優點和缺點 • 優點 • 比起很多其它⾏行行業,同樣的⼯工時,薪⽔水已經算很不錯了了 • 有許多技術難度不會太⾼高的⼯工作,所以新⼿手不難找到⼯工作。 • ⾃自由: 只要能完成產品,上班可以⾃自由做很多事。(⽵竹科有些公司限制比較多)

    • 缺點 • 薪資比不上外國。 • ⼤大部分的⼯工作技術難度不⾼高,只想製作⼀一個普通的產品,⼯工程師技術成長有限。 如果在 Apple,Google 之類的公司可以有更更多的發展。 • 有些公司只⽬目標完成產品,只想快速賺錢,不在乎品質。
  116. 有任何問題,歡迎 FB / LINE 彼得潘 • FB: https://www.facebook.com/deeplove.pan • LINE:

    deeplovepeterpan