對於 iOS 開發基於經驗的一些總結與規劃【4年開發經歷】

20年過去了一半,半年下來感受本身仍是很菜,忽然想起以前和朋友聊天,朋友自己技術實力極強,業界承認度也較高。可是仍是認爲本身很菜。我認爲這很大一部分是對於知識的敬畏心,做爲程序員就須要不斷的涉獵新知識,學習。而每次涉獵都發現本身的眇小…其實徹底沒必要畏懼知識的多,我一直認爲菜能夠接受,但每過一段時間回頭反思,發現本身原地踏步徹底不能接受…前端

回首發現本身步入程序員的行業也有幾年的光陰,記得一開始的時候,我也和不少初學者同樣,四處詢問怎麼才能實現高速的成長,想窺探大牛們的成長祕籍…雖然如今的本身依然有着超級多的不足,可是比起當初好笑的本身,也能夠無愧的說沒有辜負這幾年的光陰。程序員

曾經我一直認爲我要是能進一個足夠大的團隊,和一羣牛人一塊兒工做,不會了就去問,確定成長的超級快。年初的時候,本身足夠幸運,到了一個還不錯的團隊,團隊裏的小夥伴也很給力。這一年我發現本身也確實獲得了的進步,逐步涉獵更多的知識…面試

可是我發現整個過程卻和我當初的設想相去甚遠…當初覺得進了大的團隊,就有人教你帶你,可是事實上並不是如此,在大公司業務需求可能會變得很複雜,每一個人的工做量變得極大.面對KPI等壓力,沒有人能夠很輕鬆的怡然面對…也沒有人有時間去在很小的點上對你一點一點的提攜…因此,那些以爲進了大廠,就必定能成長的小夥伴,真的大廠極大的壓力並不必定是成長最好的土壤,可是不能否認的一點是高壓力和高負荷的工做,能提高工做效率,能從事更多深刻的工做,深刻纔是成長的原動力。固然感受本身這一年來成長較快的另外一個緣由是從身邊的隊友身上學到的改變了一些解決問題的思路和方式,以及提高效率的方式。算法

而這一切進大廠並非必然條件,對於我的的高要求和好奇心同樣能夠達到同樣的效果。swift

說了上邊一堆的廢話可能對於許多人而言,並無什麼很大的用處,其實細化到平常,不過是不要忽視不少細節,保持技術上的好奇心,多實踐也許就是技術人最好的成長方式。好比我想每一個iOSer確定都知道Runloop的概念,網上講解一大堆,每一個人面試的時候都要爲此好好準備一番,可是不多有人去真的思考這個不少操做系統上都有的機制究竟是用來做什麼的,原理究竟是什麼…其實基於原理的思考,再看技術上實現細節,也許真的會事倍功半…固然下邊還會說這件事…機器學習

還有不少人說,我在研究什麼什麼高深的技術,可是一問到技術上的細節,就會說那一部分基於SDK的並不瞭解…對於這樣的問題,記得之前作直播接入的騰訊雲SDK,那個時候就敢說本身作過直播,如今想來本身真的蠻可笑的…ide

此外,如今網上鋪天蓋地的一萬小時理論.可是我認爲這樣的理論會讓不少的人走向一個誤區.覺得我一直努力一直付出就必定能夠成長,我不否定這樣成長的事實,可是若是一萬個小時的努力只是去作徹底類似的事,成長真的有限…我認爲同等時間的基礎上生長速度卻取決於涉及的深度,反思總結的能力以及眼界,知識的廣度等多方面的因素綜合的結果.遙想高中時代,一樣的付出結果大爲不一樣,其實道理大體相同。函數

固然我上邊的話,一樣會給一些人形成誤區。由於只要努力的去學習一些難的知識,往深了看就行,其實我過往的經驗是,我深刻看一個知識的時候,常常過一段時間沒有技術場景的狀況下,就基本上忘記了,記下的都是皮毛,可是我發現常常再看一些基礎知識的時候可以聯想到一塊兒去,再回頭去看那些技術,反而有一種豁然開朗的感受,因此在深刻的時候基礎的重要性不言而喻。可是單看基礎同樣有此問題,因此孰輕孰重,徹底在於我的實踐。其實我認爲最好的方式是對於一個技術方向從淺到深的持續研究。這也就是不少優秀的技術博客,咱們看了沒多久就忘記的緣由。由於咱們老是看到一個技術面,缺乏總體和深刻的理解。oop

這裏也能夠拿本身做爲例子,由於各類各樣的緣由,最近有換工做的嘗試,找身邊的朋友內推了滴滴。面試的過程當中個人簡歷中寫了最近本身作的一些包大小優化相關的工做,咱們作的程度大概到Mach-O的級別,其實還有不少不足,滴滴技術上的的老大就問我有沒有從編譯原理上作一些考慮。其實知道clang的詞法解析,語法解析,語義解析生成語法樹的過程,可是真的不知道技術上的細節…其實這裏就涉及到了編譯原理的基礎和編譯原理上的深刻…其實就是想借此說一下基礎和深刻的區別究竟是什麼以及基礎對於深刻的重要性。雖然有幸耗時兩個小時過了聽說最難的iOS老大的技術面,可是還來不及興奮,就由於手寫不出DFS等比較基礎算法被淘汰…說實話對於這樣的失敗方式心底十分的不甘心也很難接受,可終究是由於本身菜,怨不得任何人,至此更明白基礎的重要性。學習

這是個人iOS開發交流羣:519832104無論你是小白仍是大牛歡迎入駐,能夠一塊兒分享經驗,討論技術,共同窗習成長!
另附上一份各好友收集的大廠面試題,須要iOS開發學習資料、面試真題,進羣便可自行下載!
對於 iOS 開發基於經驗的一些總結與規劃【4年開發經歷】

點擊此處,當即與iOS大牛交流學習

可能有人會問,對於客戶端開發,算法真的有那麼重要麼。我想說對於部分人而言重要,算法能夠是優化函數執行時間的思路和方向。而對於部分人而言,確實無關緊要。其實深刻的時候,不少優化相關的工做其實和算法真的息息相關。可對於實現需求自己,可能有人會以爲意義不大…因此見解徹底因人而異,算法之於我,我認爲就是本身不足的短板,最近可能會用很長的一段時間,花時間去補相關的知識。再多餘的說句可能會讓人以爲裝逼的話,不過我以爲無所謂別人怎麼看。成長毫不是出於功利目的,全部只是功利目的的成長必定伴隨不少潛在的問題。

面完滴滴以後,我徹底放棄了換工做的想法。其實不是找不到,自大的認爲找到一家比起當前薪資有一點漲薪幅度的公司應該不難,可是從成長的角度考慮,這樣的選擇無疑是一種失敗。

由於就換工做這件事而言,自己就是一件成本極高的事情。程序員要在離職前完成不少交接的工做,下一家公司還要熟悉新的開發風格規範等等…這一段時間其實我認爲作的工做就相對低效。並且沒想清楚本身爲何要換工做,盲目的找到了下一份工做,最後的結果大部分都是步入持續換工做的死循環。因此換工做必定要去想,這份工做爲何想換,下一份必定不會出現相同的問題麼?怎麼在下一份工做中解決類似的問題。若是有解決方案,那就在當下去實踐沒有什麼大不了。

此外,頻繁的換工做其實會對本身的職業生涯產生很大的影響。前段時間練車,同車的人閒聊中得知是360的前端,技術上聊天中感受很強(固然我前端很菜,可是我認爲不少知識有共通性)從其口中得知,由於回老家了兩年,兩年間兩份工做,回到北京面阿里的時候,過了全部的技術面,可是由於頻繁的換工做,被HR拒之門外…我認爲這樣真的太惋惜…但是不穩定,對於一個企業而言從成本角度考慮也徹底可以理解。如今京東對於穩定性的要求,瞭解的人天然都懂,固然對於職業生涯沒有這樣量級要求的小夥伴也徹底當我沒說….因此,若是對於下一份工做沒作好多年穩定下來的準備,但願最好不要換。

固然我說到阿里這些公司,並不表明個人意思必定要去頂級的互聯網公司,此外作大廠的螺絲釘也不必定是最好的選擇。其實大廠以外,依然有不少好的公司能夠給咱們比大廠更好的成長,可是這就須要咱們發現的眼光了。

其實這裏可能就會涉及到最近看書中寫道的一些預見性。有幸去一個有足夠成長空間的公司,公司業務量級的不斷擴大,陪伴一個企業成長,不斷地去承擔更大的壓力和責任,我想這樣的成長速度和成就感才必定是不少人最想要的。

說到預見性,舉個小例子。就說我爲何選擇滴滴面試,想進滴滴吧,由於我看好出行領域的將來,看好的緣由是新能源汽車如今已經成爲了將來的大勢所趨,而無人駕駛汽車的量產我想也並不會太遠了。

此外隨着技術上的深刻,我以爲最多十年的時間,街頭上可能會出現不少無人駕駛的新能源汽車並且成本不會很高。可能有人就說我說的是僞命題,成本低了那麼買的人多了,對於共享出行並無什麼優點。

其實否則,由於不會變的是城市空間。因此未來城市出行可能會由於汽車太多而變得更加擁堵。而滴滴基於多年的大數據和如今的自研地圖必定有能力去優化出行路徑的預判和選擇,這就是不少人忽略的壁壘。

並且在省去了其中人力難於管理,更容易提供統一化的服務以後,成本可能會更被大衆所接受。那時共享出行可能會真的改變人們的出行方式,那個時代也許出租車真的會被淘汰。對於未來這樣的預見,是我想去滴滴的緣由。

其實上邊不過是預見的太多的例子中的一個,移動時代移動支付的興起,回到幾年前再日後看,其實這其中的道理也就沒那麼難懂了…固然,對於預見性,也有不少僞命題,好比多年前的共享,其實不是想法很差只是當時沒有移動互聯網的土壤供其成長,因此太早的預見性也可能失敗。因此對於預見性,更多的是仁者見仁,智者見智。可是隻要是基於足夠思考的踐行我想都不會太差。

若是隻是爲了換工做而換工做,最後可能會走入死循環,我想這是每一從業者都不想看到發生在本身身上的。

此外對於換工做而言,必定要有對於行業和市場的有足夠清晰的判斷,好比當下一份?double?薪資的初創企業請你去,會如何選擇呢?前段時間有朋友真的面對這樣的抉擇,固然薪資可能不至於那麼誇張,當時咱們吃飯說到此事,我就很直的勸他不要去…

由於如今的大市場環境就是不景氣,如今的投資環境並很差,再加上美國近幾年可能會不斷地加息,國內市場雖然沒有直接的加息,可是貸款等變向加息不少人都能感受獲得。這就意味着資金的流動性在未來一段時間必定會變得較差,因此投資人會變得相對謹慎,再加上美國不久未來會下降企業稅,國外的資本在硅谷也就有了更多的選擇。

因此這一切對國內的創業環境而言都是打擊,因此我認爲明年多是創業更寒冷的寒冬。會有更多的小企業面對資金不足的問題,這個時候選擇去初創企業那所謂的高薪。確實有很大的風險。一旦失業,再從新起航,這來回之間時間成本因素考量之下,也並不必定值得。在此還想說我沒有任何對於創業者的否認,在這樣的環境下堅決初心的創業者,我相信必定是心裏強大的勇士,我心底也充滿了敬畏。

也相信在這樣環境下成長起來的企業,必定有很好的前景。只是但願可讓不少人在換工做的時候有足夠的考量,若是沒有面對這些問題的勇氣的人,也必定不是創業者想找的人。彼此不耽誤,我認爲這樣也許再好不過。

其實說了那麼多,才發現好像偏離對於將來思考的主題。那麼就言歸正傳。既然決定了穩定下來,那就在工做之餘,必定要給本身定下成長的方向。除了對於本身影響較大的算法以外,我認爲未來的客戶端工程的發展方向都是向着巨型項目的方向進行發展。

因此這一過程當中,我想有經驗的開發者必定知道效率在這個過程當中的重要性,接下來一年我可能會看更專一的去作相關的東西。其實面試滴滴給了我一個很好的出發點,因此第一步就從編譯原理入手吧。

此外,最近在看一本debug相關的書,發現debug徹底能夠變得更加高效。可是其中可能會用到Python腳原本完成部分工做。這半年愈來愈發現,對於客戶端開發掌握一門腳本語言的重要性,真的會有不少不少的使用場景的。因此會嘗試使用Xcode的實現更高效lldb。總之我認爲效率化的方向,都值得深刻的去研究。

前段時間有幸的看到了bestswifter分享的機器學習在客戶端的使用場景的ppt,其實這徹底是能夠進行嘗試的方向,隨着手機計算和存儲能力的提高。徹底有理由相信客戶端可以完成更多相關的任務,這個方向深刻的研究,說不定會是一種趨勢。

此外也給小夥伴提個醒,做爲iOS開發者,對於蘋果官方的消息,必定要有足夠的預判。好比對於Hybrid的開發模式,是否是能夠適度的減小相關鑽研的時間。滴滴在作HTN我想可能就有對於這方面的考慮吧。再好比蘋果可能會大範圍的下架模板化的項目,對於外包而言將是極重的打擊.因此在外包行業的小夥伴,真的提早要有必定的準備…

總之接下來即將到來的下半年必定不忘保持初心,在好好工做之餘,看足夠的書,完成本身想要作的事,哪怕明年這個時候發現本身更菜了,可是回首此文,能讀到本身的成長,就足夠了。

相關文章
相關標籤/搜索