首頁>科技>

時光流逝, 轉眼間我已經從事Android開發已五年有餘,很慶幸我依然從事著我熱愛的Android開發.

我們做技術開發的人都有個習慣,那就是喜歡不定期地進行總結,當然我也不例外.我有個特別的愛好,那就是把我一年前的程式碼拿出來和我現在寫的程式碼進行對比,看是否有所長進.

一個人回首過去,如果發現現在的自己和一年前或者更久前的自己沒有任何積極的變化的話,那麼你這些年就算是虛度光陰了.

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

工作環境發生變化

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

但是這兩年來,我接觸到了不少的公司.它們有改革的老國企,有剛剛成立的創業公司,也有已經上市的公司.不同型別、不同行業、不同規模的企業,必然導致工作內容、團隊、企業文化的不同.

相比較我待的第一家公司來說,後面的幾家公司更加尊重我的個人看法,這也是我決定跳槽的原因.雖然我也非常感謝我的第一家公司給予我更多的機會去成長,但是我們出來工作本質上是出於經濟目的的,光談理想而不給予現實的恩惠,一味強調你是公司培養出來的,時間長了是留不住人的.

老舊國企

俗話說,跳槽是有成本的.由於工作內容、團隊的變化,我需要重新學習特定行業的專業知識,重新建立自己的同事關係,這就要求我需要非常強大的學習能力和適應能力.

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

創業公司

後來我被一位非常賞識我的老闆看中,加入到他的創業公司,成為了一名創業者.這是一家從事兒童可穿戴裝置的公司,作為最早加入的員工之一,我可謂是見證了一家創業公司從起步到發展再到衰落的全過程,而這僅僅只需要一年的時間.

創業公司的坑雖然不少,不過這對我們個人的成長還是非常有價值的.在創業公司的這一年,我做了很多普通程式設計師這一輩子可能都無法觸及的工作內容,也積累了很多人生哲學.

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

在創業公司,職位沒有明顯的劃分,很多時候你需要做很多與你崗位無關的工作.從好的角度來說,這可以極大地豐富個人的人生閱歷,提升一個人獨立思考、自主學習和解決問題的能力.如果你的經濟能力有一定的支援,那麼去創業公司歷練一把也是非常不錯的,萬一它日後發展成為一家獨角獸呢?

上市公司

之後我來到了我現在待的這家公司.比起我之前待的創業公司就我一個Android開發,在這裡我算是找到了失去很久的團隊歸宿感.大公司除了人多以外,工作的強度和難度也大大地增加,加班當然也成為了家常便飯,當然與之相對應的福利也是提升了不少.

在大公司,技術水平並不是決定這個人發展潛力的決定性因素.要知道大公司最不缺的就是人才,能進大公司的,哪個不是有兩把刷子的呢?對於大公司而言,他們需要的是擁有極強責任心以及任勞任怨的員工,能否承擔某一模組功能的穩定性就直接決定了你的去留.除此之外,溝通能力也是非常重要的能力.因為大公司的專案功能相對複雜,參與的人員眾多,很多複雜的問題往往可以透過溝通予以解決.而且及時表達出你的想法,主動承擔一些緊急的任務都能給你很多的加分.

可以說在大公司的這些日子裡,讓我學習和領悟到了很多非技術方面的能力:

語言表達能力(大公司經常需要在很多人面前發言).與不同人溝通的能力.複雜問題的定位和解決能力.團隊協作能力.幫助(指導)他人的能力.團隊建設和管理的能力.

這也是為什麼我去年寫了那麼多經驗感悟文章的原因.而上面的這些能力,很多是僅僅靠擼碼是無法獲取到的.

心態上發生變化

我從事Android開發的前三年,之所以那麼拼命地工作和學習,一部分是出於興趣,而另一部則是想要證明自己.

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

馬斯洛需求層次理論告訴我們, 當一個人的需求得到滿足之後,他會追尋更高層次的需求.

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

於是,我離開了當年的那家公司,放棄了父母規劃的道路,離開了女友,開始遵從著自己的內心,尋找人生的答案...

此時的我,需要的並不是別人的肯定.我並不會在意別人的讚賞或者是詆譭,我所做的都是發自內心的事情,而不隨外物而影響.

思維方式發生變化

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

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

技術不是唯一的生產力

技術是生產力,但並不是唯一的生產力.

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

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

技術沒有好壞

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

新技術一定比舊技術好嗎? 如果這個問題在兩年前問我,那麼我的回答一定是肯定的! 但如果你現在問我,我的回答就不一樣了.

任何的新技術一定是在舊技術上有了一些改進,否則它就不為是一項新技術.那麼我們為何不直接使用它呢?因為這裡我們考慮的更多是成本的問題:

新技術必然帶來更高的學習成本.新技術的引入必然帶來更多的替代成本.新技術如果尚未成熟,當遇到一個坑時必然帶來更大的解決成本.如果使用新技術遇到一些無法解決的問題,會帶來一些風險成本.

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

可以看到上述我列舉的成本對於大公司來說是相當巨大的:

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

這也是為什麼很多大公司不願意採用新技術,而是選擇沿用之前成熟的技術的原因.

所以我們在思考一項技術能否被我們採用的時候,壓根就沒有考慮過這項技術的新舊以及高低貴賤.至於那些成天在技術社群裡發一些技術焦慮文章的人,我覺得社群就應該遮蔽他們,以免誤導那些剛入門的小朋友.

追本溯源

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

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

之所以這麼想,歸結原因還是見的世面太小了.之前待的小公司,業務並沒有那麼複雜,用例也沒那麼多,遇到的情況也相對簡單單一,所以簡單地使用基本就完事了.

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

舉個例子,我們做Android的都用過RecyclerView,可你有閱讀過RecyclerView的原始碼,瞭解其快取機制嗎?相信你看完RecyclerView的原始碼之後,你就會知道,其實你所謂的掌握RecyclerView,只不過是RecyclerView的冰山一角.

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

而且大廠招Android高階工程師要求很高,問的東西很深,一般都會問到原理和底層,你必須專精於Android中某一塊的知識點,不然面試中對什麼知識都是點到即止,肯定是不行。

這些都是我現在閒暇還會反覆翻閱的精品資料。裡面對近幾年的大廠面試高頻知識點都有詳細的講解。相信可以有效的幫助大家掌握知識、理解原理。

要想在眾多求職者中脫穎而出,提升自己才是關鍵,在這裡我將同大佬整理Android中高階相關的面試題分享給大家Android學習PDF+架構影片+面試文件+原始碼筆記,高階架構技術進階腦圖、Android開發面試專題資料,高階進階架構資料,分享給大家,大家可以私信我【架構】,免費獲取!!!

你也可以拿去查漏補缺,提升自身的競爭力。

最後

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

6
  • 整治雙十一購物亂象,國家再次出手!該跟這些套路說再見了
  • DateValue函式和DateAdd函式