作了五年Android,我頓悟了...

前言

兩年前, 我寫過一篇《個人三年Android開發總結》,時光流逝, 轉眼間我已經從事Android開發已五年有餘,很慶幸我依然從事着我熱愛的Android開發.

咱們作技術開發的人都有個習慣,那就是喜歡不按期地進行總結,固然我也不例外.我有個特別的愛好,那就是把我一年前的代碼拿出來和我如今寫的代碼進行對比,看是否有所長進.程序員

一我的回首過去,若是發現如今的本身和一年前或者更久前的本身沒有任何積極的變化的話,那麼你這些年就算是虛度光陰了.編程

回首我這五年, 若是說前三年我是野蠻生長,瘋狂擼碼,較爲浮躁的三年,那麼這兩年我就是沉下心來,潛心修煉積累經驗的兩年.緩存

image

工做環境發生變化

我從事Android開發的前三年只在一家公司待過,天天都作着幾乎相同的工做,作的項目也是較爲簡單的小項目,一兩我的就能承擔的應用開發,用的也是相對簡單,沒有什麼核心競爭力的技術.微信

可是這兩年來,我接觸到了很多的公司.它們有改革的老國企,有剛剛成立的創業公司,也有已經上市的公司.不一樣類型、不一樣行業、不一樣規模的企業,必然致使工做內容、團隊、企業文化的不一樣.架構

相比較我待的第一家公司來講,後面的幾家公司更加尊重個人我的見解,這也是我決定跳槽的緣由.雖然我也很是感謝個人第一家公司給予我更多的機會去成長,可是咱們出來工做本質上是出於經濟目的的,光談理想而不給予現實的恩惠,一味強調你是公司培養出來的,時間長了是留不住人的.框架

老舊國企

俗話說,跳槽是有成本的.因爲工做內容、團隊的變化,我須要從新學習特定行業的專業知識,從新創建本身的同事關係,這就要求我須要很是強大的學習能力和適應能力.工具

個人第一次跳槽相對來講是比較失敗的,由於沒有經驗,我竟然跳槽到了一個嚴重老齡化的前國企公司,這是一家作汽車硬件的企業,周圍的同事平均年齡35歲以上,天天他們討論的話題都是本身家小孩的學習教育,這讓我這個連女友都沒有的單身汪情何以堪.學習

更讓我沒法適應的是它那很是慢的工做節奏,一週的工做半天就完成了,剩下的時間徹底不知道作什麼...真的是無事可作.測試

創業公司

後來我被一位很是賞識個人老闆看中,加入到他的創業公司,成爲了一名創業者.這是一家從事兒童可穿戴設備的公司,做爲最先加入的員工之一,我可謂是見證了一家創業公司從起步到發展再到衰落的全過程,而這僅僅只須要一年的時間.spa

創業公司的坑雖然很多,不過這對咱們我的的成長仍是很是有價值的.在創業公司的這一年,我作了不少普通程序員這一生可能都沒法觸及的工做內容,也積累了不少人生哲學.

  • 1.應用開發框架的搭建.
  • 2.產品需求討論.
  • 3.企業文化建設.
  • 4.企業稅務處理.
  • 5.應用的上架和運營.
  • 6.產品生產、組裝、銷售和售後維護.
  • 7.企業商標、專利註冊.

在創業公司,職位沒有明顯的劃分,不少時候你須要作不少與你崗位無關的工做.從好的角度來講,這能夠極大地豐富我的的人生閱歷,提高一我的獨立思考、自主學習和解決問題的能力.若是你的經濟能力有必定的支持,那麼去創業公司歷練一把也是很是不錯的,萬一它往後發展成爲一家獨角獸呢?

上市公司

以後我來到了我如今待的這家公司.比起我以前待的創業公司就我一個Android開發,在這裏我算是找到了失去好久的團隊歸宿感.大公司除了人多之外,工做的強度和難度也大大地增長,加班固然也成爲了屢見不鮮,固然與之相對應的福利也是提高了很多.

在大公司,技術水平並非決定這我的發展潛力的決定性因素.要知道大公司最不缺的就是人才,能進大公司的,哪一個不是有兩把刷子的呢?對於大公司而言,他們須要的是擁有極強責任心以及不辭辛苦的員工,可否承擔某一模塊功能的穩定性就直接決定了你的去留.初此以外,溝通能力也是很是重要的能力.由於大公司的項目功能相對複雜,參與的人員衆多,不少複雜的問題每每能夠經過溝通予以解決.並且及時表達出你的想法,主動承擔一些緊急的任務都能給你不少的加分.

能夠說在大公司的這些日子裏,讓我學習和領悟到了不少非技術方面的能力:

  • 語言表達能力(大公司常常須要在不少人面前發言).
  • 與不一樣人溝通的能力.
  • 複雜問題的定位和解決能力.
  • 團隊協做能力.
  • 幫助(指導)他人的能力.
  • 團隊建設和管理的能力.

這也是爲何我去年寫了那麼多經驗感悟文章的緣由.而上面的這些能力,不少是僅僅靠擼碼是沒法獲取到的.

image

心態上發生變化

我從事Android開發的前三年,之因此那麼拼命地工做和學習,一部分是出於興趣,而另外一部則是想要證實本身.

  • 對於公司而言: 我要證實本身是公司不可或缺的人才.
  • 對於領導而言: 我要證實本身的技術水平是組內第一.
  • 對於家人而言: 我要證實本身有能力養活本身.
  • 對於女朋友而言: 我要證實本身有能力獨自照顧一我的.

馬斯洛需求層次理論告訴咱們, 當一我的的需求獲得知足以後,他會追尋更高層次的需求.

當這些都被我一一證實了以後,一切都變了.證實本身已經顯得不那麼的重要,追求自身價值的體現成爲了我現階段的目標.

因而,我離開了當年的那家公司,放棄了父母規劃的道路,離開了女朋友,開始聽從着本身的心裏,尋找人生的答案...

此時的我,須要的並非別人的確定.我並不會在乎別人的讚揚或者是詆譭,我所作的都是發自心裏的事情,而不隨外物而影響.

因而,我選擇成爲了一名開源項目的創做者和佈道者.將我平時積累的技術經驗所有分享出來,目的就是幫助全世界全部熱愛技術的人士,同時讓個人價值在別人身上獲得體現.

在這兩年內,我積極維護我開源的項目,同時還在各大技術社區和論壇上發佈一些相關的技術文章,同時還運營了本身的微信公衆號.近期,我還積極創做一些開源技術相關的視頻.這樣作的目的,一方面是能夠把本身的經驗和技術分享給更多須要的人,讓知識發揮它更大的做用(知識在於傳承), 另外一方面也是知足了本身的虛榮心,讓本身的價值得以體現.

image

思惟方式發生變化

從事Android的前三年,個人想法是相對激進的.那時的我,對全部的新技術都是那麼的趨之若鶩,而對於那些相對陳舊的技術是嗤之以鼻.我天真地認爲那些新技術都是革命性的,都須要去掌握、學習並運用到實際的工做中去,而那些舊技術就是須要替代的對象.

因而,我就不計代價,大張旗鼓地把公司以前使用的舊技術一股腦地都準備換了,而當時領導的到處阻撓在我看來就是技術上的不思進取,中間還鬧了很多矛盾,這也成爲了我後來離開公司的緣由之一.如今想來,當時的我想法真的是很是的幼稚!

技術不是惟一的生產力

技術是生產力,但並非惟一的生產力.

在創業公司的那一年裏,讓我不折不扣地明白了,技術並非惟一的生產力.一家公司的發展,更多靠的是強力的融資能力(資本),強大的渠道推廣能力(營銷),不少時候技術只是其中的一部分,充當的僅僅是工具人的角色.

當年那個極力崇尚技術至高無上的青年被現實狠狠地教育了一把.那時的我認爲只有純作技術的才能被人尊重,而那些在產品線作業務、測試,或者跑業務跑市場的人都是不值一提的.然而也正是我那時瞧不起的那些人,直接致使了我待的那家創業公司的衰敗.

技術沒有好壞

技術沒有好壞,更沒有高低貴賤,有的只是合適與不合適.

新技術必定比舊技術好嗎? 若是這個問題在兩年前問我,那麼個人回答必定是確定的! 但若是你如今問我,個人回答就不同了.

任何的新技術必定是在舊技術上有了一些改進,不然它就不爲是一項新技術.那麼咱們爲什麼不直接使用它呢?由於這裏咱們考慮的更可能是成本的問題:

  • 新技術必然帶來更高的學習成本.
  • 新技術的引入必然帶來更多的替代成本.
  • 新技術若是還沒有成熟,當遇到一個坑時必然帶來更大的解決成本.
  • 若是使用新技術遇到一些沒法解決的問題,會帶來一些風險成本.

當一項技術的使用所帶來的收益要遠遠大於它帶來的成本時,這個時候咱們纔會考慮採用這項技術.

能夠看到上述我列舉的成本對於大公司來講是至關巨大的:

  • 大公司的人員較多,新技術的學習成本很是高(不可能全裁了重招吧)
  • 大公司的項目一般偏大,替換的成本相對較高.
  • 大公司產品的功能較爲複雜,碰到一些沒人遇到過坑也是常有的事.
  • 大公司對項目的風險通常是零容忍的:寧肯不作也不能冒風險.

這也是爲何不少大公司不肯意採用新技術,而是選擇沿用以前成熟的技術的緣由.

因此咱們在思考一項技術可否被咱們採用的時候,壓根就沒有考慮過這項技術的新舊以及高低貴賤.至於那些整天在技術社區裏發一些技術焦慮文章的人,我以爲社區就應該屏蔽他們,以避免誤導那些剛入門的小朋友.

追本溯源

當你拋開事物的表面,去追尋其本質以後,你會發現不少東西都是相通的.

兩年前我在學習和使用技術的時候,更多的是遵循拿來主義和實用主義,天真地認爲我會用這項技術就等於我掌握了這項技術.

之因此這麼想,歸結緣由仍是見的世面過小了.以前待的小公司,業務並無那麼複雜,用例也沒那麼多,遇到的狀況也相對簡單單一,因此簡單地使用基本就完事了.

然而,到了大公司以後,那業務的複雜程度以及用例覆蓋到的場景遠遠是你所想象不到的.不少時候,一些問題你是不能經過簡單的使用就能解決的.尤爲是發生一些詭異的問題時,你不閱讀源碼瞭解其實現原理,是沒法進行解釋的.

舉個例子,咱們作Android的都用過RecyclerView,可你有閱讀過RecyclerView的源碼,瞭解其緩存機制嗎?相信你看完RecyclerView的源碼以後,你就會知道,其實你所謂的掌握RecyclerView,只不過是RecyclerView的冰山一角.

學習一項技術,若是你只是掌握瞭如何去使用,那麼這只是你邁出去的第一步,後面更重要的是要追本溯源,深究其底層實現原理,這個時候你纔會發現,不少技術原來是相通的.

最後

做爲一名Android開發的熱愛者,只要Android不死,我就會一直在Android開發的道路上前行.不管前途如何曲折,我相信Android會變得更加美好!

我是xuexiangjys,一枚熱愛學習,愛好編程,勤于思考,致力於Android架構研究以及開源項目經驗分享的技術up主。獲取更多資訊,歡迎微信搜索公衆號: 【個人Android開源之旅】
相關文章
相關標籤/搜索