2016 年 02 月 15 日

學習Swift的100天

View story at Medium.com

這位程式設計師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之前, 我必須學習

  1. Swift
  2. Xcode
  3. 程式設計概念
  4. iOS Frameworks

學習Swift有哪些好的資源

Sam回答: 我學習和閱讀很多我在Swift可以發現的東西, 我也讀了許多關於程式設計的資料例如物件導向程式設計和MVC架構, 我覺得學習這些概念遠比學習Swift語法還重要, 以下是一些學習Swift很不錯的資源, 以下資源沒有特別的優先順序

  1. The Swift Programming Language by Apple 也有Web版本
  2. Developing iOS 8 Apps with Swift by Standford  這是iTune U線上學習課程, 講師是Paul Hegarty, 他在NeXT時期與Steve Jobs共事. 這是個免費的課程
  3. Ray Wenderlich 這個網站是一群很有天份的程式設計師寫很多課程而且是免費的, 也有付費的課程與書籍
  4. Design+Code by Meng To: 他在他的書中收集了相當可觀的資料. Meng從0開始教如何使用Xcode, Sketch, Swift, Spring Animation..開始建構一個App, 他不定期更新這本書, 對於已經購買的用戶也不用多收額外費用. (註: 這本書是要收費的, 而且購買這本書享有Sketch折扣優惠, Meng前年也來台授課, 小編有參加他的課程, 他在iOS前端設計真的很厲害)
  5. Swift By Example by Brett Bukowski 這個網站藉由提供解釋程式碼範例幫助你學習Swift語法.

你提到學習程式設計遠比學習Swift語法來得重要?

Sam回答: 是的, 因為學習程式設計讓你開始建構一些東西.

並不是說學會了for迴圈用法就代表你會程式設計,相當於學習鉛筆的用法等於開始學畫畫一樣-Bret Victor, 前Apple設計師

我花了許多時間嘗試去建構一些東西並且提問問題, 對於這些東西如何運作感到疑惑. 我不會說我已經會程式設計因為我仍然在學習. 但是我記得那個時刻我敲打著我的頭當我總算知道這些東西是如何運作. 這些事實上都跟Swift無關. 在那個當下讓我突然頓悟了程式設計是當我使用一種建構雛形的工具叫Framer, 這個工具的概念是快速的將程式碼互動結果視覺化, 這個構想是Bret Victor在他的一場演講介紹的-Inventing on Principle. 使用Framer給我對一個程式碼架構整體的認識. 它回答了我常想的一些問題例如:

  1. 為何要寫一個函式(function)?
  2. 我可以用for迴圈來產生什麼?
  3. if敘述的使用案例是什麼?
  4. 還有許多種種的問題….

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程式設計師.

你可能會有興趣

  1. 完整的 iOS 10 開發者線上課程建立 21  App

  2. Swift 3 從入門到精通 中文課程
  3. iOS Apps with REST Apis 現在開發 iOS App 大概脫離不了與雲端服務做整合,這本書以實際的案例給你指引。

喜歡我們的分享嗎? 記得使用以下社群分享按鈕分享給你的朋友吧!

 

Join the conversation! 4 Comments

  1. […] 學習Swift的100天 這裡面有不少學習Swift的資源連結, 還有如果您只有HTML/CSS的基礎, 這一篇更是要看, 因為這位程式設計師在學習Swift之前只有Web設計基礎, 聽起來很振奮人心吧! […]

    喜歡

    回應
  2. […] 上週分享一篇學習Swift的100天, 才過一週就出現了Swift 30天實作30個iOS範例 -> https://github.com/allenwong/30DaysofSwift, 點進去看作者還將他30天的範例opensource, 觀摩他人的學習範例也是增進自己技術能力的方法, 這個分享跟學習Swift的100天比較不一樣的是作者沒有分享他的學習歷程, 學習Swift的100天的作者在進入iOS開發領域前工作是做網頁設計師, 所以他的分享等於鼓舞了非程式設計背景的設計師如何跨入iOS程式設計師的經驗分享, 小編建議如果您本身沒有程式設計經驗可以先看學習Swift的100天那位作者的學習經驗, 然後再來觀摩一下Swift30天的30個範例程式. […]

    喜歡

    回應
  3. […] Swift 30天實作30個iOS範例 Swift的進入門檻很低嗎? 這位開發者在30天內做了30個範例並opensource. 分享這篇到FB社團時, 這30個專案的作者也來說明他本身也是設計師, 受到學習Swift的100天那位原作者鼓舞於是他也開始他的30天計畫 […]

    喜歡

    回應

發表迴響

在下方填入你的資料或按右方圖示以社群網站登入:

WordPress.com Logo

您的留言將使用 WordPress.com 帳號。 登出 / 變更 )

Twitter picture

您的留言將使用 Twitter 帳號。 登出 / 變更 )

Facebook照片

您的留言將使用 Facebook 帳號。 登出 / 變更 )

Google+ photo

您的留言將使用 Google+ 帳號。 登出 / 變更 )

連結到 %s

分類

iOS開發