
前言
兩年前, 我寫過一篇《我的三年Android開發總結》,時光流逝, 轉眼間我已經從事Android開發已五年有余,很慶幸我依然從事著我熱愛的Android開發.
我們做技術開發的人都有個習慣,那就是喜歡不定期地進行總結,當然我也不例外.我有個特別的愛好,那就是把我一年前的代碼拿出來和我現在寫的代碼進行對比,看是否有所長進.
一個人回首過去,如果發現現在的自己和一年前或者更久前的自己沒有任何積極的變化的話,那么你這些年就算是虛度光陰了.
回首我這五年, 如果說前三年我是野蠻生長,瘋狂擼碼,較為浮躁的三年,那么這兩年我就是沉下心來,潛心修煉積累經驗的兩年.

作業環境發生變化
我從事Android開發的前三年只在一家公司待過,每天都做著幾乎相同的作業,做的專案也是較為簡單的小專案,一兩個人就能承擔的應用開發,用的也是相對簡單,沒有什么核心競爭力的技術.
但是這兩年來,我接觸到了不少的公司.它們有改革的老國企,有剛剛成立的創業公司,也有已經上市的公司.不同型別、不同行業、不同規模的企業,必然導致作業內容、團隊、企業文化的不同.
相比較我待的第一家公司來說,后面的幾家公司更加尊重我的個人看法,這也是我決定跳槽的原因.雖然我也非常感謝我的第一家公司給予我更多的機會去成長,但是我們出來作業本質上是出于經濟目的的,光談理想而不給予現實的恩惠,一味強調你是公司培養出來的,時間長了是留不住人的.
老舊國企
俗話說,跳槽是有成本的.由于作業內容、團隊的變化,我需要重新學習特定行業的專業知識,重新建立自己的同事關系,這就要求我需要非常強大的學習能力和適應能力.
我的第一次跳槽相對來說是比較失敗的,因為沒有經驗,我居然跳槽到了一個嚴重老齡化的前國企公司,這是一家做汽車硬體的企業,周圍的同事平均年齡35歲以上,每天他們討論的話題都是自己家小孩的學習教育,這讓我這個連女朋友都沒有的單身汪情何以堪.
更讓我無法適應的是它那非常慢的作業節奏,一周的作業半天就完成了,剩下的時間完全不知道做什么…真的是無事可做.
創業公司
后來我被一位非常賞識我的老板看中,加入到他的創業公司,成為了一名創業者.這是一家從事兒童可穿戴設備的公司,作為最早加入的員工之一,我可謂是見證了一家創業公司從起步到發展再到衰落的全程序,而這僅僅只需要一年的時間.
創業公司的坑雖然不少,不過這對我們個人的成長還是非常有價值的.在創業公司的這一年,我做了很多普通程式員這一輩子可能都無法觸及的作業內容,也積累了很多人生哲學.
- 1.應用開發框架的搭建.
- 2.產品需求討論.
- 3.企業文化建設.
- 4.企業稅務處理.
- 5.應用的上架和運營.
- 6.產品生產、組裝、銷售和售后維護.
- 7.企業商標、專利注冊.
在創業公司,職位沒有明顯的劃分,很多時候你需要做很多與你崗位無關的作業.從好的角度來說,這可以極大地豐富個人的人生閱歷,提升一個人獨立思考、自主學習和解決問題的能力.如果你的經濟能力有一定的支持,那么去創業公司歷練一把也是非常不錯的,萬一它日后發展成為一家獨角獸呢?
上市公司
之后我來到了我現在待的這家公司.比起我之前待的創業公司就我一個Android開發,在這里我算是找到了失去很久的團隊歸宿感.大公司除了人多以外,作業的強度和難度也大大地增加,加班當然也成為了家常便飯,當然與之相對應的福利也是提升了不少.
在大公司,技術水平并不是決定這個人發展潛力的決定性因素.要知道大公司最不缺的就是人才,能進大公司的,哪個不是有兩把刷子的呢?對于大公司而言,他們需要的是擁有極強責任心以及任勞任怨的員工,能否承擔某一模塊功能的穩定性就直接決定了你的去留.除此之外,溝通能力也是非常重要的能力.因為大公司的專案功能相對復雜,參與的人員眾多,很多復雜的問題往往可以通過溝通予以解決.而且及時表達出你的想法,主動承擔一些緊急的任務都能給你很多的加分.
可以說在大公司的這些日子里,讓我學習和領悟到了很多非技術方面的能力:
- 語言表達能力(大公司經常需要在很多人面前發言).
- 與不同人溝通的能力.
- 復雜問題的定位和解決能力.
- 團隊協作能力.
- 幫助(指導)他人的能力.
- 團隊建設和管理的能力.
這也是為什么我去年寫了那么多經驗感悟文章的原因.而上面的這些能力,很多是僅僅靠擼碼是無法獲取到的.

心態上發生變化
我從事Android開發的前三年,之所以那么拼命地作業和學習,一部分是出于興趣,而另一部則是想要證明自己.
- 對于公司而言: 我要證明自己是公司不可或缺的人才.
- 對于領導而言: 我要證明自己的技術水平是組內第一.
- 對于家人而言: 我要證明自己有能力養活自己.
- 對于女友而言: 我要證明自己有能力獨自照顧一個人.
馬斯洛需求層次理論告訴我們, 當一個人的需求得到滿足之后,他會追尋更高層次的需求.
當這些都被我一一證明了之后,一切都變了.證明自己已經顯得不那么的重要,追求自身價值的體現成為了我現階段的目標.
于是,我離開了當年的那家公司,放棄了父母規劃的道路,離開了女友,開始遵從著自己的內心,尋找人生的答案…
此時的我,需要的并不是別人的肯定.我并不會在意別人的贊賞或者是詆毀,我所做的都是發自內心的事情,而不隨外物而影響.
于是,我選擇成為了一名開源專案的創作者和布道者.將我平時積累的技術經驗全部分享出來,目的就是幫助全世界所有熱愛技術的人士,同時讓我的價值在別人身上得到體現.
在這兩年內,我積極維護我開源的專案,同時還在各大技術社區和論壇上發布一些相關的技術文章,同時還運營了自己的微信公眾號.近期,我還積極創作一些開源技術相關的視頻.這樣做的目的,一方面是可以把自己的經驗和技術分享給更多需要的人,讓知識發揮它更大的作用(知識在于傳承), 另一方面也是滿足了自己的虛榮心,讓自己的價值得以體現.

思維方式發生變化
從事Android的前三年,我的想法是相對激進的.那時的我,對所有的新技術都是那么的趨之若鶩,而對于那些相對陳舊的技術是嗤之以鼻.我天真地認為那些新技術都是革命性的,都需要去掌握、學習并運用到實際的作業中去,而那些舊技術就是需要替代的物件.
于是,我就不計代價,大張旗鼓地把公司之前使用的舊技術一股腦地都準備換了,而當時領導的處處阻撓在我看來就是技術上的不思進取,中間還鬧了不少矛盾,這也成為了我后來離開公司的原因之一.現在想來,當時的我想法真的是非常的幼稚!
技術不是唯一的生產力
技術是生產力,但并不是唯一的生產力.
在創業公司的那一年里,讓我徹徹底底地明白了,技術并不是唯一的生產力.一家公司的發展,更多靠的是強力的融資能力(資本),強大的渠道推廣能力(營銷),很多時候技術只是其中的一部分,充當的僅僅是工具人的角色.
當年那個極力崇尚技術至高無上的青年被現實狠狠地教育了一把.那時的我認為只有純做技術的才能被人尊重,而那些在產品線做業務、測驗,或者跑業務跑市場的人都是不值一提的.然而也正是我那時瞧不起的那些人,直接導致了我待的那家創業公司的衰敗.
技術沒有好壞
技術沒有好壞,更沒有高低貴賤,有的只是合適與不合適.
新技術一定比舊技術好嗎? 如果這個問題在兩年前問我,那么我的回答一定是肯定的! 但如果你現在問我,我的回答就不一樣了.
任何的新技術一定是在舊技術上有了一些改進,否則它就不為是一項新技術.那么我們為何不直接使用它呢?因為這里我們考慮的更多是成本的問題:
- 新技術必然帶來更高的學習成本.
- 新技術的引入必然帶來更多的替代成本.
- 新技術如果尚未成熟,當遇到一個坑時必然帶來更大的解決成本.
- 如果使用新技術遇到一些無法解決的問題,會帶來一些風險成本.
當一項技術的使用所帶來的收益要遠遠大于它帶來的成本時,這個時候我們才會考慮采用這項技術.
可以看到上述我列舉的成本對于大公司來說是相當巨大的:
- 大公司的人員較多,新技術的學習成本非常高(不可能全裁了重招吧)
- 大公司的專案通常偏大,替換的成本相對較高.
- 大公司產品的功能較為復雜,碰到一些沒人遇到過坑也是常有的事.
- 大公司對專案的風險一般是零容忍的:寧可不做也不能冒風險.
這也是為什么很多大公司不愿意采用新技術,而是選擇沿用之前成熟的技術的原因.
所以我們在思考一項技術能否被我們采用的時候,壓根就沒有考慮過這項技術的新舊以及高低貴賤.至于那些成天在技術社區里發一些技術焦慮文章的人,我覺得社區就應該屏蔽他們,以免誤導那些剛入門的小朋友.
追本溯源
當你拋開事物的表面,去追尋其本質之后,你會發現很多東西都是相通的.
兩年前我在學習和使用技術的時候,更多的是遵循拿來主義和實用主義,天真地認為我會用這項技術就等于我掌握了這項技術.
之所以這么想,歸結原因還是見的世面太小了.之前待的小公司,業務并沒有那么復雜,用例也沒那么多,遇到的情況也相對簡單單一,所以簡單地使用基本就完事了.
然而,到了大公司之后,那業務的復雜程度以及用例覆寫到的場景遠遠是你所想象不到的.很多時候,一些問題你是不能通過簡單的使用就能解決的.尤其是發生一些詭異的問題時,你不閱讀原始碼了解其實作原理,是無法進行解釋的.
舉個例子,我們做Android的都用過RecyclerView,可你有閱讀過RecyclerView的原始碼,了解其快取機制嗎?相信你看完RecyclerView的原始碼之后,你就會知道,其實你所謂的掌握RecyclerView,只不過是RecyclerView的冰山一角.
學習一項技術,如果你只是掌握了如何去使用,那么這只是你邁出去的第一步,后面更重要的是要追本溯源,深究其底層實作原理,這個時候你才會發現,很多技術原來是相通的.
最后
作為一名Android開發的熱愛者,只要Android不死,我就會一直在Android開發的道路上前行.無論前途如何曲折,我相信Android會變得更加美好!
我是xuexiangjys,一枚熱愛學習,愛好編程,勤于思考,致力于Android架構研究以及開源專案經驗分享的技術up主,獲取更多資訊,歡迎微信搜索公眾號:【我的Android開源之旅】
CSDN認證博客專家
Java
Android
架構設計
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/265347.html
標籤:AI
上一篇:Python OpenCV 影像處理之直方圖相關知識細節,學點細的
下一篇:Java-泛型學習
