如果我可以重新學習iOS開發

來源:互聯網
上載者:User

標籤:android   style   blog   http   ar   io   color   os   使用   

在過去的幾個月裡,我一直在學慣用Objective-C編寫iOS app,最後我開始理清思緒。這比我想象中要難很多,也花了太長時間。

我經常遇到困難、感到沮喪,修複bug比實際寫代碼要花太多時間。但是,在My Phone上把玩我從頭開發的app有一種讓人驚奇的感覺。

用這種方式我學到了很多,除了開發iOS app,還有平常的編程。我還遇到了一些問題,如果用不同的方法學習Objective-C,或許我就可以避免了。

回頭看,如果我今天要學習編程,那麼我會做一些不一樣的事情。

找到一名編程小夥伴

我還找到一種學習方法,那就是有一個可以交談的、活生生的人。

我的合夥創始人Josh,主要做Python開發,實際上和我一起學習Objective-C,並為我解答了很多編程理論方面的問題(“怎麼讓一個if語句再次起作用?”),在我真正遇到難題時幫我調試。

至少有了極具耐心的編程夥伴,他可以解釋基本的編程原則,這是莫大的協助。在我用Objective-C搞清楚具體細節之前,Josh經常協助我思考解決某個問題的大部分邏輯方法。

善用資源

如果你不夠幸運,身邊缺少有耐心的程式員解答問題,那麼,其它一些地方可以讓你從真實的人那裡獲得協助:

Stack Overflow

關於具體文法或實現的問題,Stack Overflow是我最近訪問最多的網站之一。我自己還沒有在那兒問過問題(由於該社區對初學者相當友好,我對提問持謹慎態度),因為我很少需要去問——通過瀏覽其他人的問題的答案,我的大部分問題就得到解決了。

Treehouse

Treehouse通過視頻課程教授編程,還建立了社區論壇,你可以在這裡討論有困難的bug,或者你在聽課過程中碰到的具體練習。

askadev

在你需要協助的時候,askadev支援你聯絡到有經驗的開發人員。我還沒有嘗試過這項服務,因此我不知道有多大用處、或是否囊括了所有程式設計語言,不過它是免費的,下次你有需要,不妨一試。

Codementor

如果你想給有經驗的開發人員支付現金來獲得協助,Codementor會把你和熟悉你在學的語言的人匹配到一起。它們涵蓋了Android、iOS、HTML、CSS、PHP、Python,以及很多技術。

小黃鴨問題的解決

如果你以前沒有看到,《小黃鴨式解決問題》的博文是非常有用的。具體操作是:對著一個小黃鴨或其它靜物,比如麵包機,闡述你的問題,大聲點兒。大聲講述問題的過程,經常有助於你自己意識到答案(或至少知道錯在哪裡了)。我已經發現,大聲地討論My Code是一種難以置信的好習慣,每次在我找別人幫忙之前,我都要盡量這樣做。

學習規範

在我學習編程的時光裡,最影響我的就是對於我正在使用技術的誤解和陌生。比如,開發API意味著我需要理解API的工作原理、怎樣使用POST和GET請求、怎樣分析JSON資料,甚至我需要掌握接收JSON資料。

學習Objective-C不是開發iOS app所需要知道的全部,至少,不是我想開發的那種。我犯了個錯誤,我認為只要知道Objective-C就行了。甚至更糟糕的,我經常遇到困難,因為Stack Overflow回答問題的人、線上教程和書籍章節都在解釋如何用Objective-C開發,完全跳過了必需的、我需要知道的、基於web的原則,因為他們認為我知道了。

如果我今天重新開始,我將首先補充、積累HTML和CSS方面的知識。當我開始碰到一些我不太瞭解的新技術時,在準備用Objective-C實現之前,我會大概瞭解一下。

任何語言都可以起步

如果你真的不確定從哪裡開始,或者你想開發什麼,請不要因此受到影響。雖然我花時間學習Ruby和Python、還沒有用它們完成任何項目,但是我不覺得時間被浪費了。

初學者通常的起點是學習HTML和CSS去開發網站。它們實際上是標記語言,如果你想開發移動或web app,貌似學習HTML和CSS是浪費時間。但是在這種情況下,你將獲得知識和經驗,對你繼續學習程式設計語言是有協助的。

如果你急切希望開始學習編程卻不知道從哪兒開始,就挑一本書、教程或線上課程,只要你喜歡,就搞定它!一旦你對想開發的東西有了更好的理解,你總是可以選擇學習一種不同的語言。

找到你真正關心的項目

對我而言,最大的學習曲線可能就是找到讓我堅持學習代碼的動機。過去我嘗試了很多次:在我小時候學習HTML和CSS,幾年後學習Ruby的基礎知識,最近在學Python。

我決定學習Objective-C,不是因為它勝過了Ruby或Python我才喜歡,也不是因為我認識學Objective-C的人,只是因為我有一個iOS app的想法清單,我想完成——我真的想去開發。

我學習Objective-C的動機比以前學習任何其它語言都要強烈,因為我想開發的私人項目在鼓勵著我。

最重要的是,隨著難度加大,我感到沮喪、遇到困難時,我沒有放棄——因為我正在開發我真正關心的項目。每次我設法實現一些新功能,運行良好,得到的收穫甚至更好了,因為它是我有激情的項目的一部分。

如果你正在考慮學習編程,而你沒有選擇語言或平台的任何限制,我明確建議選擇你真正有激情的項目,這樣才能為項目需要所選擇的語言打下基礎。

每個人的學習方法都不同,因此你可能有著與我不同的經曆,不過如果你只是剛起步、或在考慮學習編程的事情,那麼希望我的經驗和錯誤能幫你學得更快。

注1:小黃鴨調試法,又稱橡皮鴨調試法,黃鴨除蟲法(Rubber Duck Debugging)是軟體工程中使用的調試代碼方法之一。就是在程式的調試、錯誤修正或測試過程中,耐心地向小黃鴨解釋每一行程式的作用,以此來激發靈感。http://zh.wikipedia.org/wiki/%E5%B0%8F%E9%BB%84%E9%B8%AD%E8%B0%83%E8%AF%95%E6%B3%95

(原文:What I would do differently if I was learning to code today 譯者:臘八粥)

 

轉自:http://www.cocoachina.com/programmer/20141128/10353.html

如果我可以重新學習iOS開發(轉)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.