如果重新開始學iOS,我會建議....

先自我介紹一下,我從iOS4的時候開始寫app,期間寫過10幾個案子,大概作過這些:
  • 品牌app代工
  • SMS串接
  • LBS應用
  • 2D遊戲
  • VOIP、聊天室
在學習的過程中,運氣很好遇到許多朋友一起學習、也有很多前輩不吝分享,這段時間,也走了很多冤枉路。如果我重新開始學iOS,我會建議:

前半年
  • 一開始不要看iOS的書,應該要看ObjC的。先搞懂ObjC裡面的OO怎麼作,學會繼承、封裝就夠了,多型之後再說。學完ObjC再看iOS。
  • 背基本語法,像是NSString、NSArray、NSDictionary、NSNumber的語法都背下來,不管哪個案子都一定會用到的。
  • 先學會刻UI,這是一切的根本。一開始可以全部都用storyboard完成一個案子,之後要學會和xib混用。(光這條大概就可以練半年一年了)
  • 不小心寫到遊戲的話:ㄜ....熱情會支持你完成所有事情的。翻出高中數學、線性代數還有微積分吧!
  • 定目標,有目標才有動力。:像是「半年內看完市面上所有iOS教學書」或者「要寫出十個app上架」還是「每個月寫一篇slide」之類的都可以。
  • 寫第一個案子的時候,先求能動、不要管design pattern。
  • 寫了三四個月以後,再把一開始寫的code拿出來笑一下。這個時候再把多型練起來。
  • 學會用block還有memory使用(雖然arc很方便,但也有一些用了arc就必死無疑的狀況)。
  • 要用到thread 如果不需要cancel就全部都用GCD,盡量不要用operationQueue。
  • 最重要:卡關的時候要知道那邊可以參考,可以參考這篇<每天都會看的iOS 論壇/部落格>,加feed每天追看個三個月就差不多趕上最新趨勢了。這些文章內容一定有很多是現在開發的案子用不到的,但是如果哪一天需要用的時要知道去哪裡找資料。
半年後,比較進階的
  • 開始學design pattern,嘗試在案子裡面使用,但要記得design pattern 是選項,不是必要。
  • 開發之前預先想好哪些東西可以模組化,模組化的東西其他案子也可以用到。考慮到規格變動的可能性,先想好app架構再開始開發。
  • 要學會跟PM壓時間。事情作不完就看看有沒有同事可以幫忙,不行就看看能不能改due、再不行就分階段驗收、再不行才加班、加班發現解決不了就workaround跟他拼了。還不行就只能跪客戶了XD。(有的PM會把加班當成事情作不完的第一選項,需要溝通
  • 看WWDC session video,session speaker大部分都是framework作者。所有iOS教學書的來源都是官方文件,再加上作者自己開發上的心得,很多書都只是把session英翻中用自己的話講一次,看過影片就沒必要買書了。
  • 參加聚會,多參加幾個就會發現除了apple這世界還很大。
長期努力目標
  • 組讀書會,這需要主管支持才辦得到,找一些不是特定語言的書跟其他同事一起討論。像是<Code Complete>、<Clean Code>、<Pragmatic Programmer>、<浮現式設計>、<高效程序員的45個習慣> 這幾本都還蠻適合的。
  • 吃飽閒閒的話,可以參加HPX讀書會,從UX出發,會看到一些跟設計、心理學有關的書。
  • 把code寫得像apple sample code一樣。
  • 去hackthon,這需要找到隊友才去得了。簡直就是精神時光屋,跟2 300個人一起熬夜寫程式壓力有夠大。近距離觀察神人發光,無價。
  • 分享,寫slide或寫部落格,趴數提升後試著上台分享。優點應該不需要再強調,通常這就是思緒重新整理的時候,也可以知道自己到底是全部了解還是只懂自己有用到的。







沒有留言: