※ 引述《ccwscc (Cory)》之銘言:
: 抱歉到這裡打擾大家了,
: 有些問題想請教一下,
: 最近因為在搜尋想使用的APP過程中,
: 常常會覺得APP的某些部分不合自己胃口,
: 漸漸就萌生想自己來學習寫APP的念頭,
: 但因為我自己非本科生,完完全全就是零基礎,
: 在最近幾天一頭栽進搜尋資料的過程中,
: 碰到最大的困難就是我連基本的一些專有名詞都看不懂啊....
: 目前我的目標是可以自己寫出一個IOS的APP,
: 看到很多人問到的第一個問題就是到底該選擇哪種語言?
: 也看了不少大家對Swift跟Objective-C看法與建議
: 但對一個毫無基礎可言的初學者來說,實在是很難下決定從哪裡開始才好?
: 所以才想上來請教一下各位前輩的建議?
: 或是各位前輩有沒有更建議我從哪個部分開始學習會比較好?
: 也想暸解一下是否有推薦相關的書籍以及資料?
: 新手問的問題可能很蠢,但還是勞煩各位了,
: 真的很謝謝大家解惑,萬分感激。
問題頗大…………
其實要說頗大…也可以說可大可小。
基本關鍵在於:你到底是要做什麼東西?
好吧!就語言來說我是建議學swift。
沒什麼道理就他容易懂也跟大部份的程式語言的編寫習慣類似。
但是ios開發你要我怎麼說?
簡單的可以幾乎不用寫code拉拉元件就好。
(不過就不用想能做出什麼太令人驚艷的東西。)
複雜的你得先學物件導向,了解所有的元件的屬性控制,甚至於自己用程式碼生成
元件。
要瞭解storyboard、xib。
當你能把這些東西控制的很好時事情就結束了嗎?
不!你開始可能就會要把一些資料存在手機。
所以你開始額外的要學習像是coredata或是realm
(對!coredata是apple官方的,realm是第三方的)
然後!也許這時你就需要去跟外部要些什麼東西。
你要開始學習資料怎麼傳輸。了解資料格式。
甚至你需要一個自己需求的資源來源。
於是你大概要開始學會架伺服器,學習寫網頁後端語言
(通常建議是php)
* 補充 *
對!我原本的編輯漏了這一段。
當你開始學習後端語言,你理所當然的又得使用後端資料庫來做存取。
所以你可能就得學mysql、postgresql甚至於是nosql
然後你還得了解伺服器的網路運作。
如果你是自架伺服器還得了解怎麼讓外部連線進來。
然後你可能還要申請個域名好讓你的連線不會都只是一堆ip
(然後做到這一步,你可能就想就讓網站和app同步運作……所以又要學習
網頁前端技術……這當然是另外一回事了。)
* 結束 *
當你能很成功的串起後端資料時,你就又發現怎麼app上架就被打槍!
對!因為你沒有用https,然後你又得再花時學會怎麼弄https的證書。
怎麼讓你的網站資源是安全的ssl加密傳輸連線。
其實不管任何時候,我都不希望把一件很需要基礎的事情講的很簡單。
(雖然他們也並非難入登天的事)
只是新手入門,要注意、要瞭解、要學習的資源非常大量。
而我會建議基本的先從語言本身著手。
不要看著那console畫面只能呈現你練習基礎語法的結果。
(或是playground呈現的基礎語法結果)
就感到索然無味興緻缺缺。
初新手不從這麼基礎的地方下手,一開始就想要做出很好的產品。
那拌隨而來的就只會是一次又一次的挫折。
因為原因就在那,但你就是找不到。
我會告訴你,swift其實是一個很棒的語言。
尤其有很多在其他語言不見得擁有的做法。
但我也會告訴你……swift有更多更棒的東西書上也不見得會教。
資源也不見得一定找得到。
廣泛而大量的去看各種人家寫的code或是了解資料結構、資料傳遞的方法相當重要。
但是……這是我過去在不管是swift或是其他語言看到初學者的共同現象。
那就是「貼code」而不是「自己打字」。
我完全不建議初學者或是沒有對語言有一定基礎的人做「貼code」這件事。
拿來貼上去能動就不管了。
也不知道人家寫的是什麼東西。
(這又不是封裝好的物件、函式、api、framework……)
初學就是耐住性子……一個一個字打上去。
磨耐性,也磨你對code的專注力。
當然以上所述……全都是在講「自學」的情形。
如果你是有去外面上課什麼的也許狀況就不同,能更快進入。
因為我想老師多少都有責任告訴你該怎麼做,會遇到什麼狀況,怎麼解決問題。
但就算上完課,回頭練習最好還是抱著自學的態去做基本功。
努力的磨總是會磨出好東西的。