1. 程式人生 > >iOS開發者如何在枯燥的工作中尋求技術的提升(進階篇)

iOS開發者如何在枯燥的工作中尋求技術的提升(進階篇)

調用 loaded 剛才 高可用 package 如果 sql 讀寫 大牛

技術成長是很多同學面臨的問題,一些工作了幾年的同學會遇到成長瓶頸,覺得自己進步緩慢,無論是公司業務的原因還是個人原因,覺得自己的技術水平得不到成長了。或者一些剛工作沒多久的同學和在找工作的同學,都想在一個好的環境下工作,提升自己的能力。

如果你有一個好的平臺,你可能做一個很小的功能就會有幾十萬幾百萬的用戶使用。做一個新產品,從主線產品稍微導入一點流量過來可能就有幾十萬幾百萬的訪問。你不僅要將功能開發出來,還要考慮到性能問題,能支持多少的訪問,是否需要水平擴展,是否需要做負載均衡等等問題。每次不斷有新問題不斷有新挑戰,就可以不斷成長。

作為一個開發者,有一個學習的氛圍跟一個交流圈子特別重要,這是一個我的iOS交流群:638302184,不管你是小白還是大牛歡迎入駐 ,分享BAT,阿裏面試題、面試經驗,討論技術, 大家一起交流學習成長!希望幫助開發者少走彎路。

如果你沒有這樣一個平臺,可能你們公司運營了1、2年的產品才有幾千、一萬的用戶,有些技術問題你根本連遇到的機會都沒有。用戶量沒有上去,業務不復雜,什麽分庫分表、讀寫分離、負載均衡、分布式設計等等和你無關,因為公司產品還沒有發展到那樣的級別。

我偶爾會聽到一些在二線城市的朋友說:“做技術就在北上廣待著,別回來,小城市的項目不養人。做的東西沒什麽挑戰,沒幾個用戶,都是CRUD,時間久了人就廢了。”

這是外部原因,不得不承認,一個好的平臺對一個人的發展至關重要,無論什麽職業。我個人對技術提升有一些自己的見解,我們高中物理都學過「勻加速直線運動」,他的公式是這樣的:

技術分享圖片

我們都學過這個公式,S是位移,V0是瞬時速度,a是加速度,t是時間。在技術成長之路上,S是你的技術能力,V0是你當初決定鉆研技術的熱情,a是你技術成長的加速度,t是時間。你技術的能力有多少,不是你一時的熱情決定的,而是你成長的加速度和時間決定的。t很好理解,如果你堅持學習,隨著時間的推移,現在的你一定會比以前的你更有能力。

a是我認為最重要的一項,它指的是技術成長的加速度,由兩部分構成:

你所在的平臺,這一點我剛才已經提到了,一個好的平臺很重要。

個人的學習

當你同時滿足這兩點時,你才能在相同的時間內比別人學的多很多。然而並不是每個人都會有一個好的平臺,畢竟BAT就招那麽多人,明星互聯網企業就那麽點,不是每個人都能進去。還有大量的二三線城市的開發者,可能他們的業務做的並不是那麽大。

當你沒辦法保證你的第一項時,你只能想辦法讓自己的第二項足夠優秀。這樣,你的整個a才能不至於比別人小很多。

怎麽通過個人學習來提升自己呢?我們都知道一定要學以致用,學了的東西如果不用,過一段時間就忘了。如果你平時經常寫PHP,突然一段時間因為工作原因去寫Golang了,等再回來寫PHP的時候發現手生,寫起來沒有以前流暢了。

你看了《高性能MySQL》,看了《Unix網絡編程》還看了《深入理解Nginx:模塊開發與架構解析》,你不去實踐,你是很難更深層次的理解他們的。但你所處的環境又涉及不到這些怎麽辦?你就是個寫業務層代碼的,你們公司產品沒多少用戶根本用不上這些,你只是一個小外包公司做網站的,功能要求能用就行。我覺得這些根本不是你追求更深層次技術的借口,或許你現在用不上,但總有一天你會用得上的。只是你現在的方式可能有一些問題。

你需要先從你手上的工作開始。

如果你是一個寫業務層API的,每天的工作就是照著套路去寫代碼,按照一定的規則一個一個的寫。或許你可以嘗試一下讓自己不再去做這種重復性的體力勞動,能不能寫一個程序,讓這個程序自己生成API,而你每次只需要做一些簡單的配置。這樣騰出的時間可以去做自己感興趣的事情,可以學習一些新東西。你的領導發現後,你也會有機會做更有意思的事情。

同樣,你也可以閱讀一下你所使用的框架的源代碼,學習一下別人的設計思想,如果你覺得哪裏有問題或者不夠好,你可不可以給作者提交一個Issue或者PR。

平時用到的Apache、Nginx、fpm這些,你知道他們的master進程是怎麽管理worker進程的嗎?他們是怎麽接收請求的,select、epoll這些你了解嗎?

你平時開發解決的一些特殊場景,例如加解密、支付接口調用、Excel導出、繪圖等,可不可以單獨做成一個庫,開源出來和大家交流學習?

你有寫博客嗎?或堅持寫博客嗎?

或許我們表面上在做著一些枯燥乏味的事情,這些沒有辦法幫助我們成長,但我們自己要有極客精神,我們要用極客的手段釋放自己的勞動力,我們要樂於分享樂於學習,能從簡單的事物中發掘它的本質。工作大部分都是重復性的、枯燥的,不同層次感受都是一樣的,你每次設計功能知道怎麽支撐並發怎麽高可用,重復這一套大同小異的東西,你一樣也會覺得沒什麽意思。我們不斷在這種枯燥的工作中尋找有趣的事情,才是有價值的。

和團隊的同學聊天時的感悟,即興而寫,希望對你有一些幫助。

iOS開發者如何在枯燥的工作中尋求技術的提升(進階篇)