40歲開始學(xué)編程,現(xiàn)在成了一名技術(shù)主管
點擊“開發(fā)者技術(shù)前線”,選擇“星標(biāo)”
讓一部分開發(fā)者看到未來

有人曾告訴我:“到了35歲,如果你還是一名程序員,就要開始為自己下半生的職業(yè)發(fā)展尋找其他出路了。長江后浪推前浪,很快你就會被年輕一代淘汰?!?/span>
于是,在35歲時,我也開始反思自己的事業(yè)。然而,我的情況有所不同。當(dāng)時我并不是程序員,而是在做管理。盡管當(dāng)時的我十分懷念早期做C++程序員的時光。
在我的職業(yè)生涯的早期,曾有過短暫的幾年從事C++開發(fā)的經(jīng)歷。然而,在開始擔(dān)任管理職務(wù)后,我的編程技術(shù)就慢慢落下了。我的日常工作就是開會,做PPT和Excel表格,當(dāng)然還有很多電子郵件。我常常幾周甚至幾個月都看不到代碼,更不用說寫代碼了。
1.離開管理的工作
39歲時,我移民了。在新的國度,我的管理技能無法再發(fā)揮作用。這里的公司更喜歡有當(dāng)?shù)亟?jīng)驗的人擔(dān)任管理職務(wù)。
我的職業(yè)生涯面臨著變遷,我可以選擇從事其他不需要技術(shù)力的臨時工作。但我非常喜歡編程。我想重新回到出發(fā)點。所以,我嘗試了幾個C++面試。
很尷尬的是,我甚至未能通過初步的編程測試,我感到非常沮喪。
我不確定自己是否還想回去做C++編程。C++相關(guān)的工作面向的是嵌入式軟件開發(fā),而且還涉及硬件,不是我感興趣的主流軟件開發(fā)。
第一步:做準(zhǔn)備
既然不再熱衷于C++開發(fā),那么今后我該做些什么呢?
當(dāng)時,移動開發(fā)非常流行,尤其是iOS。但要學(xué)習(xí)iOS,首先需要一臺MacBook和iPhone。這兩樣設(shè)備我都沒有。在沒有下定決心之前,我不想浪費如此大的一筆投資。
當(dāng)時,我有一臺Windows筆記本電腦和一部三星S2手機。我看到了Android開發(fā)的增長趨勢。雖然在當(dāng)時Android的使用并非最流行,但使用安卓手機的人越來越多,包括我自己。
于是,我選擇了Android,并明確了自己的方向。
接下來,我需要獲取相關(guān)資源:
感謝Google,開發(fā)工具包Android Studio是免費的!而且注冊Google應(yīng)用商店只需要25美元!
我買了幾本書,由于Android 的開發(fā)技術(shù)在當(dāng)時還很新,因此實質(zhì)性的內(nèi)容很少。
最后,我從網(wǎng)上找到了很多學(xué)習(xí)資源和代碼參考。此外,我還通過訂閱郵件獲取了一些最新的信息。我發(fā)現(xiàn),如今學(xué)習(xí)新技術(shù)比過去更容易了,任何人都可以獲取最新的資料!
下一步是什么?當(dāng)然是開始動手編程!
我開發(fā)了一些小應(yīng)用,并發(fā)布到了應(yīng)用商店。在這個過程中,我嘗試了端到端的開發(fā)體驗,即從設(shè)計、開發(fā)、測試到公開發(fā)布。
了解自己想學(xué)什么,然后去學(xué)!
第二步:重新開始
雖然我可以自學(xué),但我知道如果想加快學(xué)習(xí)的速度,最佳方式就是與其他 Android 開發(fā)人員一起工作。我希望加入一家從事 Android 開發(fā)的公司。
我通過自己發(fā)布的應(yīng)用,獲得了一家移動開發(fā)公司的面試機會。這確實是一個千載難逢的機會。
我知道自己的技術(shù)力還達(dá)不到高級開發(fā)人員,所以我會接受任何職位,只要能得到工作和學(xué)習(xí)的機會。我愿意從事初級開發(fā)的工作,因為我可以獲得充足的學(xué)習(xí)機會。
不幸的是,我在最后一輪面試中失利了,深受打擊。
那么,之后我做了什么呢?我發(fā)了一封電子郵件,感謝公司提供的面試機會。
此外,我還懇求他們是否愿意考慮讓我作為實習(xí)生加入公司。我告訴他們,我甚至愿意無償工作,只要有機會學(xué)習(xí)提高自己的技術(shù)能力。
最后,他們終于答應(yīng)了,只不過不是實習(xí)生的崗位,而是一個移動應(yīng)用QA測試的職位。
我非常高興!雖然不能從事寫代碼的工作,但我可以測試代碼,我可以與專家交流并向他們學(xué)習(xí)。作為獎勵,我的測試工作還有報酬,總好過無薪實習(xí)。
環(huán)境是最佳學(xué)習(xí)動力。
第三步:學(xué)習(xí)
進入一家移動開發(fā)公司工作,成為 Android 開發(fā)人員的目標(biāo)已實現(xiàn)了一半。為了實現(xiàn)剩下的一半,我必須提高自己的開發(fā)技術(shù),做好準(zhǔn)備,在機會出現(xiàn)時牢牢抓住。
不幸的是,作為QA測試人員,每天我都需要工作8個小時,因此感覺自己的時間有點不夠用。我非常羨慕公司里的開發(fā)人員,因為他們能夠一邊工作一邊學(xué)習(xí),但我就沒有這么奢侈的待遇了。
盡管如此,加入移動開發(fā)公司本身就擁有很大的優(yōu)勢。我可以訪問公司的學(xué)習(xí)資源,這可以幫助我探索自己的學(xué)習(xí)方向,我很感激。
最重要的是,我認(rèn)識了該領(lǐng)域的一些專家。其中很多人都比我年輕。但年齡不是問題,重要的是他們在這個領(lǐng)域的經(jīng)驗。我非常羨慕他們的技術(shù)和知識,也很感謝他們愿意與我分享。
在工作時間之外自學(xué)編程非常不容易,但我感到很充實。學(xué)習(xí)一點一滴的知識,朝著正確的方向慢慢前進。我的目標(biāo)就是成為一名安卓開發(fā)。
在這個階段,我需要的是不斷地展示自己的學(xué)習(xí)成果,同時兢兢業(yè)業(yè)地履行QA的職責(zé)。我會定期向 Android 開發(fā)組長展示我取得的成果,并在有 Android 開發(fā)人員職位空缺時考察我是否做好了準(zhǔn)備。
6個月后,我轉(zhuǎn)到了開發(fā)崗位,正式成為了一名 Android 開發(fā)!雖然只是一名初級開發(fā),但畢竟是開發(fā)人員!
實際工作是最好的學(xué)習(xí)方式。
第四步:分享
在正式成為Android開發(fā)時,我已經(jīng)40歲了。但這不是故事的結(jié)尾,只是一個開始。
我非常高興,因為我終于可以在工作時間寫代碼了。我的工作就是寫代碼。我可以在工作中學(xué)習(xí)了。我必須與專家結(jié)對編程,并向他們學(xué)習(xí)。我必須閱讀他們的代碼,而他們必須審查我的代碼。這樣,我對Android的理解速度就會更快。
雖然我可以滿足于現(xiàn)狀,但我深知歲月不饒人,我沒有其他人那么多的時間。我需要做的不僅僅是學(xué)習(xí)。
在技術(shù)負(fù)責(zé)人的鼓勵下,我開始寫博客。我花了很長一段時間做準(zhǔn)備,因為我一直在想,誰愿意讀我的文章?我又不是技術(shù)專家。如果我寫的文章不達(dá)標(biāo)怎么辦?如果我寫錯了,該怎么辦?
盡管如此,我發(fā)現(xiàn)自己的記憶力已不如往昔,前面學(xué)到的知識,過幾天就忘了。所以,我的初衷很簡單,為自己寫博客,其實就是學(xué)習(xí)筆記。即便沒有人閱讀也沒關(guān)系,因為至少我可以通過閱讀自己的文章復(fù)習(xí)學(xué)過的知識。
于是,我開始記錄下自己的學(xué)習(xí)成果,盡可能簡單地記錄,幫助我回憶。每次我都會畫圖表,并附上了一段示例代碼。一切都是為了確保我能輕松回憶起自己學(xué)到的知識。
令我驚訝的是,真的有人讀這些文章,還有人留言表示感謝。他們極大地鼓勵了我繼續(xù)寫博客。更重要的是,有人坦言不同意我的觀點。誠然,有時我也會受打擊,但這些留言讓我意識到眼前的問題還有不同的想法。
有時真的是我錯了。有時,雖然我沒有錯,但我誤解了對方的觀點。這些都是學(xué)習(xí)的機會,是成為更好的 Android 開發(fā)必然需要經(jīng)歷的階段。
只要愿意敞開心扉,在分享時,自己也能學(xué)習(xí)到更多。
第五步:走出舒適區(qū)
經(jīng)過4年多不懈的努力,我逐漸適應(yīng)了Android開發(fā)。我成長為了一名高級Android開發(fā)。除了從事開發(fā)的工作,我還需要負(fù)責(zé)指導(dǎo)其他初級開發(fā)人員。
當(dāng)然我并沒有掌握Android的一切,我需要不斷了解如何獲取和查找信息,并更好地判斷對錯。Android開發(fā)也在不斷發(fā)展,因此需要學(xué)習(xí)的東西很多。我很享受。
我可以就此止步,安安穩(wěn)穩(wěn)地生活和工作。我熱愛我的工作,我喜歡編程。但目前我的影響力非常有限。我問自己,這就是自己接下來10年的生活嗎?
所以我決定等待時機,并持續(xù)前進。我申請了負(fù)責(zé)iOS和Android的首席開發(fā)人員職位,但我明白自己并不擅長iOS。
知道自己無法勝任的感覺會讓我很不舒服,但正是這種不舒服的感覺可以鞭策自己不斷學(xué)習(xí)和擴展知識。所以,我開始花時間學(xué)習(xí)iOS。
我認(rèn)為,我對iOS的掌握無法達(dá)到Android的水平,但學(xué)習(xí)iOS可以幫助我開拓看待移動開發(fā)的眼界。讓我了解Android擅長什么,以及什么地方落后。
無法分辨優(yōu)點和缺點,表明我們學(xué)習(xí)的知識還不夠。繼續(xù)努力。
6.重新接觸管理的工作
時至今日,距離我第一次涉足Android開發(fā)已經(jīng)過去7年多了,這期間發(fā)生了很多變化。
如今的我是一名移動技術(shù)主管,負(fù)責(zé)跨移動團隊的協(xié)作和架構(gòu)工作。除了技術(shù)之外,我還需要負(fù)責(zé)部分管理工作。
我又一次面臨沒有太多時間寫代碼和學(xué)習(xí)的狀況。但我仍然喜歡我的工作,因為從本質(zhì)上來看,這依舊是個技術(shù)崗位,只是在更高的技術(shù)水平。
如果想做出更高級別的技術(shù)決策,就必須建立扎實的技術(shù)底子。我不能吃老本,必須不斷學(xué)習(xí),不能重蹈覆轍。
以上就是我的小故事。40歲開始學(xué)習(xí)軟件開發(fā)也不算晚。
參考鏈接:
https://levelup.gitconnected.com/i-started-android-development-at-40-6591c1e8bc38
—?完?—
點這里??關(guān)注我,記得標(biāo)星呀~
前線推出學(xué)習(xí)交流一定要備注: 研究/工作方向+地點+學(xué)校/公司+昵稱( 如算法+上海) 掃碼加微信,進群和大佬們零距離
后臺回復(fù)“電子書”?“資料”?領(lǐng)取一份干貨,數(shù)百面試手冊等你 開發(fā)者技術(shù)前線 ,匯集技術(shù)前線快訊和關(guān)注行業(yè)趨勢,大廠干貨, 是開發(fā)者經(jīng)歷和成長的優(yōu)秀指南。
