標籤:現在 負載平衡 需要 使用 互連網 upload 一段 寫代碼 fpm
技術成長是很多同學面臨的問題,一些工作了幾年的同學會遇到成長瓶頸,覺得自己進步緩慢,無論是公司業務的原因還是個人原因,覺得自己的技術水平得不到成長了。或者一些剛工作沒多久的同學和在找工作的同學,都想在一個好的環境下工作,提升自己的能力。
如果你有一個好的平台,你可能做一個很小的功能就會有幾十萬幾百萬的使用者使用。做一個新產品,從主線產品稍微匯入一點流量過來可能就有幾十萬幾百萬的訪問。你不僅要將功能開發出來,還要考慮到效能問題,能支援多少的訪問,是否需要水平擴充,是否需要做負載平衡等等問題。每次不斷有新問題不斷有新挑戰,就可以不斷成長。
作為一個開發人員,有一個學習的氛圍跟一個交流圈子特別重要,這是一個我的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開發人員如何在枯燥的工作中尋求技術的提升(進階篇)