IOS從一無所知到精通大概需要多長時間 以及 開發者過去幾年最大的成長是什麼

幾個月前,面臨Android和IOS的選擇,找了一些資料,大部分來自知乎,摘錄如下:


——————————————————————————————————————————————————————————————

IOS從一無所知到精通大概需要多長時間?


劉虓震女,環境諮詢工程師

107 票,來自 譚永學陽端陸玄枵 
最近有三個相關問題都是你問的吧?我剛在其中一個回覆了。現在重定向到這裏來⋯⋯

正好我也在從頭學iOS開發,一點個人理解供參考:

斯坦福大學有公開免費的iOS開發課程CS193P,上課視頻、講義、作業一應俱全。
這門課程的預修要求是另外兩門課:CS106A/CS106B. 
這三門課的視頻都有中文字幕。可惜並不全,後面會詳細講。如果你的英文程度足夠好,當然就無所謂中文字幕了。

CS106A即編程方法學,該課無預修要求,是斯坦福大學的校選修課。非理工科學生也可選。第一堂課老師說:你只要知道如何開關機就能學這門課。既然你能上知乎,我想學這門課應該沒有問題了。
網易公開課:v.163.com/special... (28集中文字幕全)
斯坦福公開資料:see.stanford.edu/see/course...

CS106B即抽象編程,該課的預修要求是CS106A. 所以上完前面一門課繼續上這門就可以了。不過這門課的中文字幕遲遲沒有翻譯完成。
網易公開課:v.163.com/special...(27集翻譯至第8集)
斯坦福公開資料:see.stanford.edu/see/course...

斯坦福推薦在修CS193P之前最好再修一門CS107編程範式:
see.stanford.edu/see/course...
目前沒有看到公開的中文字幕,但是人人影視去年招募志願者翻譯,看情況已經在進行中了:
yyets.com/thread-2...
等你學完前兩門課,可能他們也能把這門課翻譯個八九不離十吧。 

CS193P在網易公開課上也有字幕,但是是針對iOS4.0版本的。斯坦福去年已經推出針對iOS5.0版本的課程。幸運的是,CocoaChina上有人自己在翻譯,目前譯到第12課。
CocoaChina中英字幕版:cocoachina.com/bbs/read...
斯坦福公開資料:stanford.edu/class...

CS193P學完以後,你肯定能自己製作出有意義的iOS App並將其上架了。但是要成爲真正的iOS developer,個人認爲還是有一定距離。做一個高效的,具備商業價值的編程人員,至少要懂一點算法。如果做個人開發者,還要略懂美工和市場推廣。這裏只談算法部分。

MIT公開課裏有一門算法導論,也有上課視頻:
v.163.com/special... (24集譯至第7集)
官方課程頁面:ocw.mit.edu/courses...

但是在修這門算法導論之前需要掌握一定的數學知識,主要是離散數學。對此MIT公開課裏有專門的一門Mathematics for Computer Science. 
ocw.mit.edu/courses...
這門課沒有上課視頻,並且畢竟是數學課,很抽象,所以學起來要吃力些。好在該課程的閱讀材料,講義和作業也有中文翻譯。在上面的網頁中,左側有個“簡體字”鏈接,點進去就可以看到了。

至於需要多長時間:
國外大學的課程一般是這樣的:每一個課時需要三倍的課下學習時間。以CS106A爲例,28個課時,上課本身加課下學習時間,大約是84小時。如果要學完最低限度的三門課,約250小時。如果要學完上述全部七門課,大約是590小時。根據以上的計算方式和自己每天可以投入的學習時間,相信你可以自己算出來需要多長時間。

當然,這是對一般的美國大學本科生而言的(而且是斯坦福和麻省理工的學生⋯⋯)。如果你的英文程度不夠好,對這些課又沒有任何基礎,同時還沒有同學和助教的幫助(對於這些較基礎的課程,學校全程配備助教,每週面對面輔導),可以想見會需要更多時間。

所以,在此推薦我的公開課學習博客:hohopencourse.diandian.com/
以個人開發iOS App爲目標,含有我全部的學習計劃、筆記和作業。每天學習一小時。有問題可以私下聯繫我進行交流。


劉志託IT項目經理

8 票,來自 董銳何家春小張 更多
操作系統是指操作系統原理 ,而不是僅僅指windows
學好基礎和原理,是讓你對程序運行,等有更深刻的認識,寫出的代碼更有效率,更健壯
但是以我個人和絕大部分的朋友來看,在學校裏光學原理,沒有幾個是認真的。建議你先寫一到二個小程序,然後再思考自己的程序可以怎麼樣優化,讓效率更高,資源佔用更少,代碼更清晰,維護更簡單。在有了代碼經驗的基礎上,再回頭看看代碼的重構這樣的書籍,會理論和實踐結合比較好。再做一個多線程讀同個資源,寫資源的小程序,再看看操作系統原理,應該會有更深一點的理解。
ios和android開發,以我帶應界畢業生的經驗來看,定好一個應用程序需要做什麼功能,先給自己定個小範圍,功能不要太複雜,然後去開發,網上的教程很多了,3個月左右會有很大的進步,半年左右會有模有樣的。
以上也僅僅是我在多年學習過程中,對技術慢慢積累,的一些學習入門的方法。入這行,每次去看一次重構、模式等,都有進一步的理解。當然也有很多時候會思維定勢,轉不過彎想東西,建議多誑技術論壇,多與人溝通。這樣進步還會加快。
最後送給你的是,多幫助別人,別人會更加和交流,問你問題。在回答別人問題的過程中,你會收穫價值感,成就感,促使你要向更高更好的地方學習,也爲自己提供了動力。這個也是我在進步的過程中,比較有效的一種方式。


馮 子力工科學生,Apple 控,日語控,想做個善…

9 票,來自 許藝彬王宏翔Rhythm 更多
最重要的是,我建議一定學好英文,以學習 iOS/OS 開發爲主要目的的話,甚至不需要非常全面地學習英文,技術英文能力是很容易通過突擊提高的。尤其不要讓英文成爲心理負擔,而排斥英文的文檔資源。

比起各種教材,請重視閱讀蘋果官方的文檔

我個人也推薦 Stanford 在 iTunes U 推出的 iOS 開發教程,講解比較清晰,比起一些國內教材,不容易讓人學完之後仍然過長時間徘徊在大學生作業的水平。當然,這套視頻教程本身作爲入門級教程,也不要抱太高的期望。深入地瞭解和獲得解決實際開發問題的能力,需要實際的長時間磨練纔可能。

買一個 iOS/Mac Developer Program,通過實際項目鍛鍊自己的能力,不要吝惜那每年區區六百塊錢,那同時也是你合法獲取蘋果文檔的入口。

不要不知道 GitHub。在自己開始大量閉門造車之前,閱讀幾個上面共享出來的項目,熟悉蘋果平臺的設計風格和邏輯。

在實際項目開發中遇到的具體問題,強烈推薦搜索 Stack Overflow 這個技術問答網站。基本上所有問題都會找到耐心的解答。你也可以逐漸主動融入其中的問答去,只是請注意,在提問時表現出你已經做了充分的研究和探索,花別人的時間要求回答是必要的,而不只是想吃白食。另外,CocoaChina 上面的一些討論也比較有質量,而且我們不能否認閱讀中文的速度可能還是比英文稍微快一點點。

你現在還在會糾結 Xcode 和書籍介紹的操作界面不一致的入門階段,這完全可以理解。我相信只要你多少花點時間上去,這個痛苦的階段不會很長。之後,建議你不要限定於特定的一種或幾種學習資源,要學會由概括到具體地理解蘋果平臺的一切。看書的應有順序絕對不是從頭到尾,而是從粗到細。學會看目錄,學會用自己的探索主動地建立知識架構,而不僅是書籍的灌輸和具體細節的學習。那時候,你就不會在意自己看的是什麼書了。最後再重複一句,比起看書,你要做自己感興趣的項目才提高得快。


iOS 或 Android 開發者們,你過去幾年最大的成長是什麼?


王亞暉做過幾款app,3年iOS開發經驗。

31 票,來自 李智輝snuc陳丘 更多
成長?好問題。把初戀送出去了……
======================騷氣的分割線=====================
玩笑結束,正文開始。
其實這三年做iOS是我做計算機以來成長最多的時候,主要是四點。
  • 眼界的開闊,在做iOS之前整體見識比較短淺,基本上看的都是國內的站長論壇在做網站,即便做手機開發接觸的也是國內的那些無良廠商,對於產品的類型和其他內容想的都不是很多,在做iOS之後開始接觸到了各種新鮮的知識,同樣直接接觸到了國外更多更有意思的想法。
  • 技術的更迭,我第一次接觸MVC的東西居然是做iOS。這是真的。很多優秀的技術思想都是在做iOS的時候學到的,甚至我現在學HTML5也是爲了做移動開發,很大程度上這幾年很多有意思的技術都是靠移動平臺推進的。
  • 第一次覺得自己離成功如此之進,iOS是我第一次發現,原來自己和用戶的距離如此之進,當然我本身沒有賺到錢,否則也不用苦逼的在這裡回答問題,但是激勵了我不停的去寫東西,至少我做的東西能夠輕鬆的推到用戶面前。
  • 程序的美感,不知道是不是隻有我有這種感覺,就是在這個之前我做遊戲不是很主動交互設計和用戶介面,但是在接觸iOS之後對於這些本來不該程序考慮的事情格外重視,甚至超過了程序的本身。
:wq
3月12日 · 13 條評論      

Yop2年iOS技術累積

24 票,來自 Lans楊曦Jenny 更多
看到這個題目,有點感觸,因爲自己這兩年的職業發展和機遇,正是從接觸了iOS之後開始的。

分幾個階段描述一下接觸iOS以來自己的成長吧,也順便在此爲自己留一個紀錄:

1)初識iOS
我的第一份正式工作是在香港當一名初級工程師,某天很要好的同事跟我介紹說iPhone的app開發很不錯,appstore的模式獨立開發者也可以做,約我一起創業做遊戲。我答應了。
辭職之後因某些原因,他去了另一家公司上班,我則自學獨立做了個遊戲放上了appstore。

這個階段經常在cocoachina上面泡銷售版,學了相當多和appstore相關的東西。雖然只有一個產品,但是對整個開發環境認識較深。

2)項目經理
遊戲上線之後,由於本人對市場和銷售毫無熱情,因此並沒有賺得第一桶金><
在我貧困潦倒的時候,一老友的朋友接觸了我,邀請我過去他們公司負責iOS這塊的發展,創業公司。
一週後我憑藉對其產品的認識寫了一紙文檔,很偶然地被boss看到,便成了所謂的項目經理了。當時公司在6人左右。

這個階段是我第一次在正式工作上進行團隊合作(大學時期有短暫的非正式項目的管理經驗)。首次在創業公司工作很有趣,收穫了一羣很好的工作夥伴。

3)產品經理
之後半年,公司成長到20人規模,而我的工作重心也從原來的項目開發管理轉移到產品的規劃和設計,人員的招聘和培養方面。公司氛圍很融洽,我至今懷念。當時很經常和boss討論產品,爭論盈利模式,也越來越多地涉及到公司發展層面的問題。

這個階段可以說是我成長最快的階段。視野從員工的角度提升到了公司的層面,而且在一個快速發展的創業公司,體驗到了創業的快樂和艱辛。期間還進行了較多的有益的閱讀及實踐,管理技巧也有所提升。最後是由於產品經理的定位,真正開始關注互聯網和互聯網產品(本人之前職業重心在於遊戲行業),感覺逐漸確實地踏入了IT行業了。

4)創業者
上階段後期,我在網上認識了我現在的合夥人,兩人有着共同的遊戲夢,它是設計師,我是工程師,一拍即合。隨即我第二次北上,創業。創業的過程不得不說是很有趣的~ 有困惑,有成就,有誘惑,有賞識,有各種歡呼和喜悅,也有各種苦難和壓力。直至這一刻,我們窮得身無分文,卻對前景充滿期待,甚至迫不及待。

在這個階段,開始拋棄各種想法和空話,踏踏實實地一步一步往前走。得到了寶貴的創業夥伴,結識了很多朋友,接觸到了以往無法觸及的生活。開始經營自己的人脈,開始培養自己的影響力。

5)合作者
最近一段時間,開始爲投資的事情奔波,開始結識到一些經驗資源有一定累積的人,也結識到了許多走在我們前面的人。機會和機遇接踵而來,我們現在所面對的,是未來的可能性。

期待,一年之後的自己又會是哪種形態?
3月12日 · 4 條評論      

朱磊沉浸在移動互聯網的浪潮中.

20 票,來自 Josn猿人先森Jenny 更多
Android開發者

09年6月份去買的Android手機,09年底寫出應用,隨即加入創業公司至今.
A. 眼界開闊
在做Android之前做的是銀行外圍業務,實在是厭惡了那種說話不算數,各方推諉責任的工作模式.幾十人幹了快一年,還沒有人用過,挫敗感太強了.接觸Android後,差異感太大了.
  1. 原來只用一週就可以完成一個小產品;
  2. 原來這個東西放出去還能掙錢;
  3. 原來有很多人對你的產品感興趣,並給出各種意見.
  4. 原來你也可以說,這個意見俺就是不接受.
  5. 原來創業公司可以這樣起步,幾個人,租個小兩居.
  6. 原來團隊開發可以如此高效.
  7. 原來想法可以如此的多,且大家的想法有如此多的交集.
  8. 原來別人也想到這個,並且比我們還先動手.
  9. 原來很多想法都如此的淺薄,禁不起推敲.
  10. 原來我們做的東西也可以Top 1.
  11. 原來有如此多的創業團隊,會有Bump,Path,Flipboard這麼精緻的產品.
  12. 原來社區產品的運營很重要,用戶個性的多樣化,完全不按你規定的路線出牌
  13. 原來我必須對多樣化的用戶需求進行篩選,排級,剔除.叫的最響的不一定是最有用的需求
  14. 原來用戶需要引導,用戶也有反擊.
B. 自我約束
這點收穫也很大,創業公司,不規定你什麼時候上下班,不規定你什麼時候出活,沒人明確的指定你要做成什麼樣.但大家都在一起工作,每天工作內容,質量,數量.大家都一清二楚.你需要:
  1. 自己去定開發計劃,清楚自己在做什麼.
  2. 自己去保證開發效率,當你在做自己的產品的時候,這種動力是油然而生的.
  3. 自己保證開發質量,作爲小牛代碼質量這個是基本功;UI/UE 也得努力學,不落後.
C. 學會規劃
規劃時間,規劃產品,規劃職業.學會一種方法.XY法.X軸代表你學習的廣度,Y軸代表你學習的深度.
比如想成爲Android開發高手:
X軸可以有:基礎組件的使用,framework架構,設計模式,UI/UE
Y軸可以有:基礎組件能夠自定義,framework的源碼深入閱讀,設計模式的熟練使用,UI/UE的領悟.

這樣你就可以很容易看出自己的方向,可以偏產品一點,那麼UI/UE到什麼程度,偏技術一些framework的源碼閱讀到什麼程度.

D. 這是一個團隊
學會協同工作,使用一些工具,google Doc,Trac,git等;定期做技術交流;定期做水果分享.達到知識共享.共同進步.
3月12日 · 2 條評論      

夏鐦Zentertain創始人,iOS/Mac開發者

14 票,來自 郭遠遠李繼剛pillar 更多
iOS開發者一枚。

1 App Store是全年不休的奧運會,每天和全球競爭,能形成全球視野。
2 持續關注Top Paid、Top Free榜,得到的信息量巨大。Top Grossing這個App Store上絕無僅有的榜單更是讓開發者每天都能從盈利的角度鍛鍊自己的產品眼光。
3 在App Store公平透明的機制下,見證了許多無名小卒的產品大紅大紫。這讓我更相信產品自身的力量。
4 無數的案例讓我相信,做對事情遠比把事情做好重要。
3月12日 · 5 條評論      

潘思霽初學者的初學者,奔跑中的90後。(要上…

13 票,來自 李菲菲夏潮凌周潛 更多
一個菜鳥的成長
斷斷續續學了半年的android開發,最多算個初學者beta1.0,所以只能分享一些代碼之外的成長和認知。
【大學的課程已經無法滿足社會需求】
學習android開發,讓我對“編程”這兩個字有了更新的認識。讓我明白了“編程”不僅僅是“冒泡法排序”和測試卷上的幾道編程例題。不過還是要感謝帶我入門的C語言老師。
【更加抓緊時間學習】
“斷斷續續”學,是因爲那個時候課餘時間真不多。就是在這種狀態下,學會了如何擠壓時間來學習開發。那個學期也是我吃盒飯吃得最多的一個學期。都說大學“輕鬆”,但是真正想要學點東西,時間還真的不夠用,要抓緊。
【端正態度】
很多人對我說過:吶,你在學android啊!怎麼不去學iphone開發?appstore才能賺錢,做android沒前途的。關於android前途的討論,我已經見過無數了。而我認爲與其討論那前途,還不如把時間用在學習上,學好了自然有出路。
【挫敗感和成就感】
“不死小強”和“不死bug”永遠是編程路上無法避免的,有時候真得能把一個初學者打趴下,讓你心灰意冷。但是決定“吃這碗飯”,你的內心是決不能“死”。當經歷“九九八十一難”之後,第一個app終於“出生”了,當時的喜悅和成就感是無法形容的。
【學會Google】
在開發中遇到了問題,那麼最好的老師就是Google了。從使用Google到巧用Google,掌握了關鍵字的把握、搜索技巧,並開始英文搜索,培養閱讀能力。
【打工和實習】
開發設備還是要花錢買的,對於學生黨來說就只能靠打工賺錢了。開始做做小工,比如裝修拉電線什麼的。最後加上一些獎學金,買了第一臺android機。這學期初開始準備找實習,於是學着寫簡歷投簡歷,陸續投了幾家,都被pass掉了。這些也都算是經歷了吧。(最近一個蘑菇街,說是讓我等電話面試,估計是pass掉了)
【發現更大的世界】
接觸android開發,我發現我關注一個app的UI和交互已經超越了代碼。於是近期我又開始學習交互設計這方面的知識,提升自己的app的體驗。自己也感到奇怪爲什麼的“更大的世界”不是“代碼的深入”而是“交互設計”,只能說“更大的世界”是未知的。而下個“更大的世界”同樣未知,等待我去發現。

學習就是個成長的過程,寫不了太專業的,就寫點切身感受。
3月12日 · 5 條評論      

黃程做過android小遊戲

10 票,來自 天昂Zizon徐恩平 更多
。拒絕閉門造車,多關注行業發展,尤其是通用的方法,工具,框架,流程等的發展。
。其實Android像極了當年的J2ME,各廠商的定製和擴展,各種終端的差異性,很大程度上反而阻礙了它的發展。一次iOS到Android的移植工作深刻感受到了這點。但又不能忽視和放棄這塊。持續關注,有限投入。
。開發過程中,實際業務邏輯(比如遊戲的實際邏輯)只佔開發內容的20%,更多精力花在了底層的搭建,各種終端特異性的統一,各種輔助工具和方法的建立等。
。合理利用現成的框架和引擎,儘量不要重複發明輪子。
3月12日 · 添加評論      

沈曉春iOS app developer

9 票,來自 大強齊小七Zizon 更多
獨立開發者,資源有限,所以很多想法是從有限的資源開始考慮問題
  •  專注於一個方面,做好了再想其他
  • 吃自己的狗糧,做自己要用的App,猜用戶想要什麼,大部分時候,用戶表達的可能是錯誤的
  • 做小範圍內用戶必須要用的,而不是大衆可能會用的應用,比如,圍棋相關應用,這是個小範圍的應用,愛圍棋的用戶可能會用。做大衆應用,可能無法競爭過那些巨頭,如果他們進入。小範圍的,巨頭可能不屑於進入
  • 尊重版權,可以借鑑別人的產品,但不能侵害別人的版權,包括音樂、圖像等
  • 簡單有效的贏利模式,比如做收費應用0.99$
  • 保持初心,有時做應用做得覺得累了,煩了,想想,當初爲何要做應用,其實就是愛好,自己用手機應用解決自己的問題
3月13日 · 2 條評論      

黃利慶曾經從事Linux/Android嵌入式系統研究…

7 票,來自 YANG楊揚胡維 更多
受OurDearAmy邀請回答 :) 我在前公司從事的是Android系統級開發,寫應用的話,幾個小工具,還有一個不幸半路夭折的電子市場。

1. 視野大大開闊了。簡單的舉個例子,RIL(Radio Layer Interface)的設計。摸過幾個平臺:MTK,展信,威盛via,broncho,對手機軟件RIL設計也有一些經驗,但都是傳統的。第一次看了Android的RIL 代碼,設計之巧妙,代碼短小精悍,令人歎服,你要知道,Broncho MMI ril層共15萬行C++代碼。RIL C層與應用層用socket通訊,傳統的就是一個傳個指針進來,強制轉化爲結構體。mock-ril是個牛X的東西,用了google的protobuf,還有nodejs。沒看錯,是js。多年前,我就想到用動態腳本測試手機模組AT mmi,可惜只寫些簡單的ruby的測試用例。看了mock-ril,hold 不住了。Android在很多設計上借鑑web開發的思想。

2. 感到離自主創業越來越近。09年公司一些員工出去單幹,寫app去了。那時公司放棄自主開發的Broncho平臺,轉投入android。除了出方案,公司可以投入精力做工具類軟件,ROM,電子市場(其實,就我一個人寫)等等。現在想想,一個方向做好了,也會有不錯的成就。但是公司的DNA決定了它很難轉型。如誰誰誰說的:“帶着70後做系統集成;帶着80後做互聯網;正帶着90後做APP!”  app是個趨勢。

3. 成長? 用到啥學啥,技術都在變化。寫寫blog,與朋友們分享,也因此認識很多同行優秀的開發者。
3月13日 · 添加評論      

劉永寬攻城獅

6 票,來自 周源徐恩平耿健桓 更多
做ios開發一年多,算不上經驗豐富 但是收穫還是有的
  1. 知道了用戶體驗的重要性,真正站到了用戶角度去做產品
  2. 追求完美,固然沒有完美的產品,但是完美是開發者的追求,有時候會爲一個像素點的錯位去不斷的調試
  3. 第一次知道原來bug可以帶來如此大的災難,在前東家做過一個公司產品的通用模塊,曾因爲沒有捕獲異常而導致公司全線產品掛掉(千萬級用戶),雖然避免不了bug的出現,再小心不足爲過
  4. 雖然ios市場門檻越來越高了,但是用心做產品會得到用戶認可的
  5. 結交了圈內很多朋友
  6. 查文檔,看英文的能力被提高了
3月12日 · 添加評論      

halzhangandroid&ios developer,兩年Andro…

4 票,來自 李一民黃志川OurDearAmy 更多
1,愛玩了
手機裏面的app上百個,每個都會玩一下,看看別人怎麼做的,怎麼設計的;
2,對產品有了入門級的認識
玩多了,對產品方面有了一下初步的認識。以後說不定會轉向產品人員,不過現在主要還是想多寫寫代碼;
3,人脈廣了
認識很多圈內外的人,不一定都是從事開發工作的。
4,技術涉獵更加廣泛
除了android,也開始做一些ios開發,wp7也有了解。
瞭解一下各個平臺的差異化。好在哪裏,不好在哪裏,各個平臺互相借鑑。體驗一下各個平臺的交互設計。
5,github,stack overflow經常上了
其實就是如何自己去解決那些開發過程中問到的一些問題。
學會在github找現有的解決方案,學會到stack overflow尋找問題的答案;
3月12日 · 1 條評論      

yava半瓶水

4 票,來自 劉永巧陳然李楠 更多
Android開發一年多,除了技術漲了點,薪水漲了點,剩下的只有這點個人感悟了:
  1. 個人能力有限,只有和一些志同道合的兄弟們在一起,才能做一些有影響力有意義的事情。 
  2. 某些情況下激情比技術更重要,不去“拼”,憑做出來的東西要比別人的出色。
  3. 任務分配得當,小弟會做得比你還出色,善於用人也是一個技術活
  4. 善於溝通,往往會事半功倍,溝通也是一個技術活:)
  5. 開發的產品被成千上萬的人使用很興奮。
昨天 22:16 · 1 條評論      

藍文Python/Android/Ruby

3 票,來自 天昂朱磊周源
Android 開發3年多,最好的軟件在android market上超過200w下載,雖然是朋友的創意,但是也是值得高興的事情.

最近3年一直在做Android前端和服務器後端的開發,並且也同時涉及技術和團隊管理,有一定提升。今年換了工作,會主要關注移動互聯網應用市場的數據挖掘和分析,希望能夠從更大更廣的視野來看這個市場。




發佈了72 篇原創文章 · 獲贊 1 · 訪問量 15萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章