Contents
這位程式設計師Sam Lu分享了他學習100天Swift的歷程, 在這100天中他完成了40個project練習, 這篇文章使用訪談式的方式分享他的Swift學習經驗, 對於沒有程式設計經驗或是只懂HTML, CSS的網頁設計師想要跨入iOS程式設計這個領域很有啟發與幫助, 做個紀錄摘要
學習Swift之前你有很多的程式設計經驗嗎?
Sam回答: 沒有很多 , Sam接著回答說他的專長是做動畫, 是個自學的Web開發者, 他懂HTML, CSS, Sass, JavaScript, jQuery, 和一些Ruby和Python, 但是之前沒有開發過App, 雖然他精通HTML和CSS, 他的一位程式設計師朋友讓他相信了這些(指HTML,CSS)都是描述性(script)語言, 只是用來描述內容的風格, 程式設計並不是這樣的. Sam認為即使HTML和CSS都不是程式設計語言, 但是他還是認為會這些技術也幫助他去看程式碼和如何除錯.
Swift很容易學習嗎?
Sam回答: Swift的語法很容易學習, Apple設計這個程式設計語言這件事做的真是美妙並且同時出版了很詳細的書. 但是Swift只是一件謎思, 在建構我第一個App之前, 我必須學習
- Swift
- Xcode
- 程式設計概念
- iOS Frameworks
學習Swift有哪些好的資源
Sam回答: 我學習和閱讀很多我在Swift可以發現的東西, 我也讀了許多關於程式設計的資料例如物件導向程式設計和MVC架構, 我覺得學習這些概念遠比學習Swift語法還重要, 以下是一些學習Swift很不錯的資源, 以下資源沒有特別的優先順序
- The Swift Programming Language by Apple 也有Web版本
- Developing iOS 8 Apps with Swift by Standford 這是iTune U線上學習課程, 講師是Paul Hegarty, 他在NeXT時期與Steve Jobs共事. 這是個免費的課程
- Ray Wenderlich 這個網站是一群很有天份的程式設計師寫很多課程而且是免費的, 也有付費的課程與書籍
- Design+Code by Meng To: 他在他的書中收集了相當可觀的資料. Meng從0開始教如何使用Xcode, Sketch, Swift, Spring Animation..開始建構一個App, 他不定期更新這本書, 對於已經購買的用戶也不用多收額外費用. (註: 這本書是要收費的, 而且購買這本書享有Sketch折扣優惠, Meng前年也來台授課, 小編有參加他的課程, 他在iOS前端設計真的很厲害)
- Swift By Example by Brett Bukowski 這個網站藉由提供解釋程式碼範例幫助你學習Swift語法.
你提到學習程式設計遠比學習Swift語法來得重要?
Sam回答: 是的, 因為學習程式設計讓你開始建構一些東西.
並不是說學會了for迴圈用法就代表你會程式設計,相當於學習鉛筆的用法等於開始學畫畫一樣-Bret Victor, 前Apple設計師
我花了許多時間嘗試去建構一些東西並且提問問題, 對於這些東西如何運作感到疑惑. 我不會說我已經會程式設計因為我仍然在學習. 但是我記得那個時刻我敲打著我的頭當我總算知道這些東西是如何運作. 這些事實上都跟Swift無關. 在那個當下讓我突然頓悟了程式設計是當我使用一種建構雛形的工具叫Framer, 這個工具的概念是快速的將程式碼互動結果視覺化, 這個構想是Bret Victor在他的一場演講介紹的-Inventing on Principle. 使用Framer給我對一個程式碼架構整體的認識. 它回答了我常想的一些問題例如:
- 為何要寫一個函式(function)?
- 我可以用for迴圈來產生什麼?
- if敘述的使用案例是什麼?
- 還有許多種種的問題….
Framer使用視覺化的方法回答了我這些問題. 我只要對程式碼做一些變更就可以很快看到結果. 這逐漸讓我形成對於如何使用程式碼建構一些東西有一個基礎的了解. 但我不是說如果你學會了使用Framer, 你就會開始建構iOS App, 我想表達的是Framer教導了我一種思考的方法, 讓我可以更容易學習如何建構iOS App. Apple也有自己的互動式寫程式工具叫-Playgrounds內建在Xcode中, Framer與Playgrounds都是很棒的工具.
最後的想法
Sam : 喔, 回想起來這是一段不短的路, 當我開始這個專案, 我想我會有100個專案代表終點, 但是到目前為止只有40個. 因為我是一邊學習一邊建構程式. 大部分的專案只花幾天就完成了. 我非常高興我能做到這樣的成果. 這給我了一種新的思考方式. 新的方法去解決問題. 我對於軟體開發工程師有全新的理解.
在我做這個專案前, 我常啟動App然後對於這些app的運作感到奇妙, 但是現在的我啟動App後會開始思考, 為什麼他們以這種方式建構?
Sam Lu的作品展示在 samvlu.com
感想:
看了Sam的學習過程和他分享出來的40個專案展示真的很激勵人心, 有志者事竟成, 從Sam的訪談可以看得出他幾乎沒有程式設計的基礎, 他分享他的經驗應該也可以鼓舞到你, 如果你也想成為一位iOS程式設計師.
您可能會有興趣
網站最新內容
- IELTS Band 7+ 完整準備課程
- Linux Red Hat Certified Engineer (RHCE – EX294)
- 加倍你的社交技能並立即與人連結
- AI 與 ChatGPT:社群媒體自動化的 4 級方法
- GIMP 初學者速成課程!