40歲開始學習Android開發,現在成了一名技術主管

語言: CN / TW / HK

 BATcoder技術 群,讓一部分人先進大廠

大家好,我是劉望舒,騰訊最具價值專家,著有三本業內知名暢銷書,連續五年蟬聯電子工業出版社年度優秀作者, 百度百科收錄的資深技術專家。

前華為面試官、獨角獸公司技術總監。

想要 加入  BATcoder技術群,公號回覆 BAT  即可。

作者 | Elye       譯者  | 彎月

出品 | CSDN(ID:CSDNnews)

大家好,我是皇叔,無意中發現這篇文章,覺得很勵志,因為想到國內最早的一批的安卓開發者有不少沒到35歲,但本文的作者在40歲才開始學習Android,這是什麼概念!即便作者所處的環境和大多數人不同,但他的經歷人仍舊會給一部分人帶來鼓舞和啟迪,這就足夠了。

下面是正文,本文中的我不是指皇叔,而是作者 Elye 

有人曾告訴我: “到了35歲,如果你還是一名程式設計師,就要開始為自己下半生的職業發展尋找其他出路了。 長江後浪推前浪,很快你就會被年輕一代淘汰。

於是,在35歲時,我也開始反思自己的事業。然而,我的情況有所不同。當時我並不是程式設計師,而是在做管理。儘管當時的我十分懷念早期做C++程式設計師的時光。

在我的職業生涯的早期,曾有過短暫的幾年從事C++開發的經歷。然而,在開始擔任管理職務後,我的程式設計技術就慢慢落下了。我的日常工作就是開會,做PPT和Excel表格,當然還有很多電子郵件。我常常幾周甚至幾個月都看不到程式碼,更不用說寫程式碼了。

1.離開管理的工作

39歲時,我移民了。在新的國度,我的管理技能無法再發揮作用。這裡的公司更喜歡有當地經驗的人擔任管理職務。

我的職業生涯面臨著變遷,我可以選擇從事其他不需要技術力的臨時工作。但我非常喜歡程式設計。我想重新回到出發點。所以,我嘗試了幾個C++面試。

很尷尬的是,我甚至未能通過初步的程式設計測試,我感到非常沮喪。

我不確定自己是否還想回去做C++程式設計。C++相關的工作面向的是嵌入式軟體開發,而且還涉及硬體,不是我感興趣的主流軟體開發。

第一步:做準備

既然不再熱衷於C++開發,那麼今後我該做些什麼呢?

當時,移動開發非常流行,尤其是iOS。但要學習iOS,首先需要一臺MacBook和iPhone。這兩樣裝置我都沒有。在沒有下定決心之前,我不想浪費如此大的一筆投資。

當時,我有一臺Windows膝上型電腦和一部三星S2手機。我看到了Android開發的增長趨勢。雖然在當時Android的使用並非最流行,但使用安卓手機的人越來越多,包括我自己。

於是,我選擇了Android,並明確了自己的方向。

接下來,我需要獲取相關資源:

  • 感謝Google,開發工具包Android Studio是免費的!而且註冊Google應用商店只需要25美元!

  • 我買了幾本書,由於Android 的開發技術在當時還很新,因此實質性的內容很少。

  • 最後,我從網上找到了很多學習資源和程式碼參考。此外,我還通過訂閱郵件獲取了一些最新的資訊。我發現,如今學習新技術比過去更容易了,任何人都可以獲取最新的資料!

下一步是什麼?當然是開始動手程式設計!

我開發了一些小應用,併發布到了應用商店。在這個過程中,我嘗試了端到端的開發體驗,即從設計、開發、測試到公開發布。

瞭解自己想學什麼,然後去學!

第二步:重新開始

雖然我可以自學,但我知道如果想加快學習的速度,最佳方式就是與其他 Android 開發人員一起工作。我希望加入一家從事 Android 開發的公司。

我通過自己釋出的應用,獲得了一家移動開發公司的面試機會。這確實是一個千載難逢的機會。

我知道自己的技術力還達不到高階開發人員,所以我會接受任何職位,只要能得到工作和學習的機會。我願意從事初級開發的工作,因為我可以獲得充足的學習機會。

不幸的是,我在最後一輪面試中失利了,深受打擊。

那麼,之後我做了什麼呢?我發了一封電子郵件,感謝公司提供的面試機會。

此外,我還懇求他們是否願意考慮讓我作為實習生加入公司。我告訴他們,我甚至願意無償工作,只要有機會學習提高自己的技術能力。

最後,他們終於答應了,只不過不是實習生的崗位,而是一個移動應用QA測試的職位。

我非常高興!雖然不能從事寫程式碼的工作,但我可以測試程式碼,我可以與專家交流並向他們學習。作為獎勵,我的測試工作還有報酬,總好過無薪實習。

環境是最佳學習動力。

第三步:學習

進入一家移動開發公司工作,成為 Android 開發人員的目標已實現了一半。為了實現剩下的一半,我必須提高自己的開發技術,做好準備,在機會出現時牢牢抓住。

不幸的是,作為QA測試人員,每天我都需要工作8個小時,因此感覺自己的時間有點不夠用。我非常羨慕公司裡的開發人員,因為他們能夠一邊工作一邊學習,但我就沒有這麼奢侈的待遇了。

儘管如此,加入移動開發公司本身就擁有很大的優勢。我可以訪問公司的學習資源,這可以幫助我探索自己的學習方向,我很感激。

最重要的是,我認識了該領域的一些專家。其中很多人都比我年輕。但年齡不是問題,重要的是他們在這個領域的經驗。我非常羨慕他們的技術和知識,也很感謝他們願意與我分享。

在工作時間之外自學程式設計非常不容易,但我感到很充實。學習一點一滴的知識,朝著正確的方向慢慢前進。我的目標就是成為一名安卓開發。

在這個階段,我需要的是不斷地展示自己的學習成果,同時兢兢業業地履行QA的職責。我會定期向 Android 開發組長展示我取得的成果,並在有 Android 開發人員職位空缺時考察我是否做好了準備。

6個月後,我轉到了開發崗位,正式成為了一名 Android 開發!雖然只是一名初級開發,但畢竟是開發人員!

實際工作是最好的學習方式。

第四步:分享

在正式成為Android開發時,我已經40歲了。但這不是故事的結尾,只是一個開始。

我非常高興,因為我終於可以在工作時間寫程式碼了。我的工作就是寫程式碼。我可以在工作中學習了。我必須與專家結對程式設計,並向他們學習。我必須閱讀他們的程式碼,而他們必須審查我的程式碼。這樣,我對Android的理解速度就會更快。

雖然我可以滿足於現狀,但我深知歲月不饒人,我沒有其他人那麼多的時間。我需要做的不僅僅是學習。

在技術負責人的鼓勵下,我開始寫部落格。我花了很長一段時間做準備,因為我一直在想,誰願意讀我的文章?我又不是技術專家。如果我寫的文章不達標怎麼辦?如果我寫錯了,該怎麼辦?

儘管如此,我發現自己的記憶力已不如往昔,前面學到的知識,過幾天就忘了。所以,我的初衷很簡單,為自己寫部落格,其實就是學習筆記。即便沒有人閱讀也沒關係,因為至少我可以通過閱讀自己的文章複習學過的知識。

於是,我開始記錄下自己的學習成果,儘可能簡單地記錄,幫助我回憶。每次我都會畫圖表,並附上了一段示例程式碼。一切都是為了確保我能輕鬆回憶起自己學到的知識。

令我驚訝的是,真的有人讀這些文章,還有人留言表示感謝。他們極大地鼓勵了我繼續寫部落格。更重要的是,有人坦言不同意我的觀點。誠然,有時我也會受打擊,但這些留言讓我意識到眼前的問題還有不同的想法。

有時真的是我錯了。有時,雖然我沒有錯,但我誤解了對方的觀點。這些都是學習的機會,是成為更好的 Android 開發必然需要經歷的階段。

只要願意敞開心扉,在分享時,自己也能學習到更多。

第五步:走出舒適區

經過4年多不懈的努力,我逐漸適應了Android開發。我成長為了一名高階Android開發。除了從事開發的工作,我還需要負責指導其他初級開發人員。

當然我並沒有掌握Android的一切,我需要不斷了解如何獲取和查詢資訊,並更好地判斷對錯。Android開發也在不斷髮展,因此需要學習的東西很多。我很享受。

我可以就此止步,安安穩穩地生活和工作。我熱愛我的工作,我喜歡程式設計。但目前我的影響力非常有限。我問自己,這就是自己接下來10年的生活嗎?

所以我決定等待時機,並持續前進。我申請了負責iOS和Android的首席開發人員職位,但我明白自己並不擅長iOS。

知道自己無法勝任的感覺會讓我很不舒服,但正是這種不舒服的感覺可以鞭策自己不斷學習和擴充套件知識。所以,我開始花時間學習iOS。

我認為,我對iOS的掌握無法達到Android的水平,但學習iOS可以幫助我開拓看待移動開發的眼界。讓我瞭解Android擅長什麼,以及什麼地方落後。

無法分辨優點和缺點,表明我們學習的知識還不夠。繼續努力。

6.重新接觸管理的工作

時至今日,距離我第一次涉足Android開發已經過去7年多了,這期間發生了很多變化。

如今的我是一名移動技術主管,負責跨移動團隊的協作和架構工作。除了技術之外,我還需要負責部分管理工作。

我又一次面臨沒有太多時間寫程式碼和學習的狀況。但我仍然喜歡我的工作,因為從本質上來看,這依舊是個技術崗位,只是在更高的技術水平。

如果想做出更高級別的技術決策,就必須建立扎實的技術底子。我不能吃老本,必須不斷學習,不能重蹈覆轍。

以上就是我的小故事。40歲開始學習軟體開發也不算晚。

參考連結:

https://levelup.gitconnected.com/i-started-android-development-at-40-6591c1e8bc38