來自:知識小集(ID:iOS-Tips)
如果你是一個 iOS 開發的新手,我可以告訴你,這個職業的紅利期早已過去。隨著 APPL 的股價大跌以及內憂外患不斷,iOS 這個職業的恐慌指數在不斷的增高,已經對新手不太友好了。
如果你是一個 2-3 年的 iOS 從業人員,每天的工作內容就是畫畫介面、寫寫業務、調調介面,那你是時候改變一下自己的視角從新審視下未來的職業規劃。
如果你是一個3-5年的老鳥,掌握了一定的技術及資源,可能這篇文章的內容已經早已在你腦海中有段時日,只是缺乏良好的契機。
由於 iOS 開發,國內並沒有相關對口的專業,所以基本上大多數開發者都是透過自學進入市場的,有的由於是科班出身、重點大學,幸運的進入大廠深造,一路順風順水,使得其他的開發者只能望其項背。
但多數普通的開發者都是透過培訓機構進入市場的,並沒有很深的技術基礎,沒有系統的學習過計算機原理的課程,只是從培訓機構快速學習了API的呼叫,對其本質不是很瞭解,也造成了進階的困難,所以現在市面上出現了很多線上技術教育,學習是很好的行為,我們這裡談的是如何精準的學習。
自我接納
如何進行精準的學習?
首先我們需要學會自我接納。做產品的對標的使用者會有使用者畫像, 使用者畫像存在的意義是無論你做的是什麼說的是什麼,並不能取悅所有人。這就是定位的意義,對自身也是一樣,你需要瞭解自己的定位才能進行進一步的規劃。
相同的環境造就相同的價值觀,由於每個人的價值觀不同,造就了這個五彩繽紛的世界。當我們作為 iOS 開發剛進入市場的時候,那時候只需要會畫一個 TableView 就能賺取可觀薪水的日子早已離我們遠去。
隨著市場成熟後門檻也逐漸的提升,所以如果你只會用 Objective-C,畫介面、寫業務、調介面,現在需要加把勁了,因為這個時代正在淘汰這些低階工作。
有了改變自己認知的契機,我們就來問問自己三個問題:
-
你所擁有的技術儲備真的是市場上需要的嗎?
-
面對層出不窮的新興技術,如何才能做好技術選型?
-
你真的有把握能夠在技術這條路上走到底嗎?
市場資料
先不急著回答上述的問題,我們先看一下市場所呈現的資料,而不是人云亦云,不然就很容易被現在的某些知識付費收智商稅,鼓吹碎片化學習。
沒有資料支撐純靠思辨的產物不是知識,你僅僅獲得的是獲取知識的感覺。知識是需要全面系統的學習併進行場景驗證的,所以在如何規劃之前先看看資料。
上圖是艾瑞指數的資料,不用去管媒體如何煽動,資料表明 iOS 的佔有量還是比較穩定的,所以 iOS 沒有人要了可能真的只是一句玩笑,因為有市場就會有需求。
我們再來看 iOS 裝置的分佈圖, 可以發現目前主要群體還是使用的 iPhone6/6s 的裝置,可以看到 iPhone8/8P/XR,並沒有賣的很好,換機頻率下降是不爭的事實。
但整個行業都是如此,所以也不用太悲觀。所以還是以提升自身技術為先。
技術儲備
技術儲備是說明一個開發者具體的能力體現的,所以不斷學習是每個技術人每天需要完成的課題。以 iOS 舉例,iOS 基本技術無外乎UI、網路、業務三個方面,也就是畫介面、寫業務、調介面。
這是基礎能力,但你縱覽整個大前端技術棧,本質都是這三個方面,所以很多的開發者會想要深入學習,會看一些官方或者是三方的一些原始碼,並寫一些分析放在部落格上,自以為理解了作者的想法,沾沾自喜。就如有些人會看 Runtime,但很少人知道 Facebook 的 Fishhook,畢竟掌握後者的技術儲備和 Runtime 不是一個量級的。
這裡假設你已經熟悉了 Runtime 原始碼中的底層實現,瞭解了 OC 的實現機制,但你並不知道這些東西的使用場景在哪裡,為什麼大廠可以用這些做一些 APM 的東西,而你並不知道如何入手。這是因為你的技術儲備不足,再有就是你的視角產生了偏差。
C/C++/Linux/ASM, 這些基礎是必須瞭解,學完前者後,再看 Runtime 原始碼,就會感覺非常輕鬆,沒有任何的困難。
如果你只有技術的視角,以為技術能夠解決任何問題。事實是技術只是一個工具。工具就是可替換的,而工具只會變得越來越簡單,越來越順手。你的如果只被技術限制住,你的競爭力會逐年降低。
聊聊面試
網上只要發隨便發一篇面經,就會有很多人關註,筆者有幸面試過很多大廠,如餓了麼、京東、美團、攜程、頭條、招行等,面試題無外乎就是,OC原理、UIKit、網路、執行緒、元件化、演演算法、架構等。目前對 Swift 和跨平臺外掛化也會有一些涉及,這個部分取決於你所面試的業務線。但是,演演算法必考,架構必談。
其實如果你是一個有技術儲備的合格的開發者,透過面試對你來說並不是一個非常困難的事情,因為這些東西真的並不難,都是一些日常涉及的東西,常規操作而已。
談談全棧
對於技術提升會分為兩條線:深度和廣度。
演演算法有叫“深度優先”和“廣度優先”的,這兩條線並沒有孰優孰劣,看你所在的場景。在知識付費領域的概念就是,T 字型人才,80%人才,100%人才,具體選擇那條線沒有什麼實際的意義。
在先進網際網路技術棧被籠統的分為:前端、後端、移動端、資料端。我的觀點是全棧很有必要,首先你需要瞭解你的價值不取決於你的能力,而是市場的稀缺性。成為 100% 的專才,的確可以拿到頭部市場,但成本大風險高,而做一個 80% 的通才,是一個對普通人比較友好的選擇,而如果你已經是一個有技術儲備合格的開發者,T 字型發展也是一個合理的選擇。
如何選型
現在新興技術層出不窮,光 iOS 方向就有 ReactiveCocoa、ReactNative、Flutter等,還有人工智慧、區塊鏈等新興技術,所以吾生也有涯,而知也無涯,以有涯隨無涯,殆已!
技術不能夠脫離產品而獨立實現,產品不能脫離運營而獨立存活, 運營脫離了使用者也沒有了意義。你要理解網際網路的本質其實是人的連線,理解了這層邏輯, 反推來看你的視野就會清晰很多,由使用者產生了需求,運營使用者而產生了群體,分析群體而打造產品,實現產品才需要技術,所以在沒有很大基數的使用者的前提下,對技術的追求是沒有任何意義的。而當有了使用者,就會知道你該如何技術選型,最經濟的方法就是選擇那些穩定且成效快的,這也是為什麼三方庫存在的本質。
技術之外
技術本質只是工具,網際網路是人與人的連線,是思想的碰撞。這是為什麼一些大V僅僅是運營粉絲就能夠賺的可觀的收益,而那些明星級別的頂級流量自不必說。
所以一個優秀的開發者也需要學習運營和產品方面的相關知識,需要瞭解使用者畫像,需要瞭解人性,這樣在懟產品的時候就會更有底氣。
幸運的是,你成為產品簡單,產品成為你難。可以試著做一些新媒體及產品,並用技術實現,你會發現實現自我的同時,收穫了更多的快樂。當然對於不熟悉的東西,每走一步都異常艱難。
提升視野
現今世界最厲害的兩個武器:一個是技術,一個是傳播。每個時代都是相似的,例如以前一邊是王權,一邊是宗教。
作為開發者,技術是賴以生存的本能,而你需要提升的是你的傳播能力。那些人做公眾號、微博、抖音、技術部落格的本質就是為了傳播,而我寫這篇文章很大一部分原因是為了鍛煉我的文筆,更好地運營新媒體,創造屬於自己品牌的價值。
和技術儲備一樣,需要提升知識儲備,當知識儲備到了一定的階段,輸出倒逼輸入。你就會有發表自己觀點的欲求,也會從看部落格到寫部落格的階段。而現實是你可以靠技術進行變現。
當然變現並沒有那麼簡單,需要學習的東西很多。首先你需要瞭解瞭解技術,各種前沿技術和未來的趨勢,看看大佬們的想法,比如得到裡的萬維鋼和王煜全的專欄,對提升你的視野很有幫助,但如果你想要從中學習到知識,還是別天真了,老老實實的系統學習,動手去做。記住,沒有資料支撐,純靠思辨的產物不是知識。
●編號392,輸入編號直達本文
●輸入m獲取文章目錄
程式員求職面試
更多推薦《25個技術類微信公眾號》
涵蓋:程式人生、演演算法與資料結構、駭客技術與網路安全、大資料技術、前端開發、Java、Python、Web開發、安卓開發、iOS開發、C/C++、.NET、Linux、資料庫、運維等。