Android開發:10000小時後,渣本出身的我從外包走進了位元組跳動

2020-10-28 14:01:14

一、10000小時複習

關於10000小時定律,你可能在很多雞湯中都看到過,大致的意思就是說人們眼中的天才都是付出了持續不斷努力的,10000小時的練習是一個人從平凡成為領域大牛的必要條件。(我感覺到有槓精已經在摩拳擦掌了)。

在我的以往認知裡,對於這句話一直處於一種半信半疑的態度,直到等我感受到擁有之後的體驗,我才明白這並不是一句空話。雖然並不是所有的努力都是會有結果,但是不努力是永遠沒有結果的。

二、我的經歷

我的第一份Android開發的工作是在2016年7月底的時候找到的,那時候除了在學校學的一點資料結構、演演算法、Java、C++和程式設計思想以外,沒有任何專案經驗。

那時候找同學幫忙內推菊廠,無奈投了5個部門,4個無音信1個婉拒,然後就沒有再堅持。我依然記得那是2016年夏天最熱的時候,每天拿著簡歷頂著大太陽,奔走於各家小公司去面試,最終大概花了一週的時間後,過了3輪面試然後進了西安的一家外包公司。

直到2020年9月,我有幸成為位元組跳動的一名Android使用者端開發工程師。算起來已經入行4年零3個月了,如果每週按6個工作日算,平均每個工作日8個小時,那麼這段時間大約就是(52周* 4年+8周)* 6工作日/* 周8小時/天=10368(小時),也就算是剛剛熬過了10000小時,作為年近三十的野生Android碼農來說,這樣的結果來之不易。從外包進大廠有多難,圈內的人都明白,運氣之餘,也有自己腳踏實地的努力。這篇文章寫於入職後的一週,希望跟過去告個別,然後自信地擡起頭,在新的生活裡Inspire Creativity,Enrich Life!

 

三、我做對的事情

  • 努力工作,工作中學會技術覆盤

    在職場裡,這永遠是第一原則,過去的工作裡我的平均績效在B+的水平,至少自己不會因為工作內容枯燥簡單就草率對待。及時覆盤,把經驗和技術沉澱下來,但一定要強迫自己反思,無論是學會了什麼新技術,或者觀察自己在面對一些事情時採取的策略,或者對產品和業務的想法等等,寫什麼都可以,但一定要做。

    • 重要點:Android基礎

    2016年剛入行開始,我做的第一件事情就是補Android基礎,不誇張地說,當時幾乎每天早晨5點就起床,然後看書看部落格記筆記,csdn、簡書、知乎、部落格園等等部落格上面的技術文章我天天看,學習大牛的程式設計思想,就這樣近2個月的時間裡基礎知識水平大幅提高了,當然最終你會意識到Android基礎和減肥一樣,都是近乎永恆的話題。

    • 接了一些私活

    這是個稍微有些敏感的話題,但已經很久不做了(因為時間投入到其他事情上可能長期收益更大,總有一天你也會走到這一步),覺得這些經歷對自己還是很有意義的。我其實很推薦技術還不錯且有餘力的同學至少完整地做一次私活,你可以自己去網上找或者通過熟人介紹,你可能還會面臨和其他人競標,可能會把最終能落入自己口袋的收益想象得過高,可能還要自己擬協定,過程中除了搞定自己的開發,還要督促著其他共同作業者,甚至最後被隊友拖累。或者為了要到尾款而不得不裝孫子、送禮、請吃飯,程式設計師的那點傲嬌和麵子在真實的世界分分鐘被轟的一地雞毛,那時你才明白,成年人的世界沒有「容易」,世界上也沒有那麼多「應該」。我接私活有個原則,只接自己不會的,如果一個私活對我來說沒有任何鍛鍊,自己會引薦其他人。簽了協定,沒有退路了,你會發現其實學點新技術也沒那麼難,我就是用這樣的方式學會了使用flutter, kotlin, jetpackRxjava等等很多技術。也在一些規模稍大的專案中鍛鍊了帶隊的能力,而這些東西,在常規的小公司和工作中幾乎是沒有機會的。

    • 持續學習,寫技術部落格

    2019年5月左右,大約3年左右工作經驗時我開始嘗試寫技術部落格,因為寫部落格在面試的時候能給面試官留下非常不錯的印象,在位元組面試的時候,面試官就問我你平時寫技術部落格嗎?而且自己部落格里整理出來的文章是帶入自己的程式設計思想的,當別人提出來你的錯誤是才是對自己最大的提升。最終,從開始到現在,我大約寫下了110多篇不摻水的部落格,有一分部分都是Android基礎知識的學習筆記,也有一部分是專案實踐中碰到的一些技術難題,後面通過自我審查分析、朋友的指點,終於搞懂還整理成部落格供分享!其實剛開始寫部落格並沒有什麼目的,寫東西是自己的學習方式,它可以幫助我檢驗自己是否真的弄懂了某個知識點,後來的收穫都是意料之外的。

    • 做了一次外部的技術分享

    工作裡其實也做過不少公開的技術分享,還有被邀請去其他組做分享的,並不是說你必須技術非常牛逼才可以分享,畢竟分享不是裝B,你要做的是讓別人知道自己有認真思考過一些東西,而且願意分享,這才是非常重要的,當然這也能在一定程度上幫助你克服自卑心理。2019年11月,大約3年半工作經驗的時候,有幸在谷歌西安開發者社群的年會上做一些關於瀏覽器方面的知識分享,很認真地準備了PPT(其實我可喜歡做ppt了),也認識了很多新朋友。這樣的機會不多,如果有遇到,希望你儘量抓住,否則當你還一臉羞澀的給自己加內心戲的時候,機會可能就被別人拿走了,覺得自己行和覺得自己不行的人,往往都是對的。

    • 機會擺在面前時,請走出舒適圈

    當你發現自己處在一個困局時,是否還有勇氣走出舒適圈呢?2019年底,大約入行3年時,我面試了很多西安和杭州的大廠,儘管幾乎全都到了HR面的環節,但最終只拿到了2個很一般的Offer,擺在我面前的有兩條路,接受少量漲幅的薪資然後留在西安,或者選擇大幅度漲幅的薪資去杭州,如果這時候的你已經30歲了,有車有房還單身,你能接受去另一個城市嗎?我能,相比於孤獨,平庸更難以忍受,也因為自己知道,如果留下,4~5年後的自己很可能因為眼界和能力而被職場淘汰。

    在杭州的工作仍然是一家大廠的外包,雖然枯燥但也不是特別忙,工作氛圍也不錯,但是當我在工作中看到正式員工承擔的任務和能夠調動的資源後,很快就意識到雖然大家都在一起辦公。但其實並不在一個賽道上,他們受到的鍛鍊和成長的速度遠遠超過外包員工,而作我們只是在別人參加完一場場戰鬥後過來幫別人打掃戰場的,當我想要主動去學習更多時,桌面上通常只會跳出那刺眼的提示「外包同學沒有許可權」。這種環境最可怕的地方在於,處處存在的差異化待遇會讓人養成「受害者心態」,覺得面臨的一切都是客觀環境造成的,最終忘了自己還有選擇的權力和能力。

    原本的計劃是想等到2021年春季再挑戰大廠,base杭州,但是時間不等人,我們之中的一個同事在金九銀十這兩個月拿到了京東的offer,這便激起我對大廠再一次的渴望心,在短期對簡歷的整合以後便把簡歷直指大廠,後面在1個月面試征途中我便拿到了位元組跳動的offer。從拿到offer的那一刻開始,所以的努力都是值得的,只是base在北京且薪資漲幅也沒有達到自己的期望。剛剛習慣杭州生活的我再次面臨選擇,是再次走出舒適區抓住進大廠的機會(北京租房是真貴,其他消費其實並不誇張),還是按照自己的規劃穩紮穩打半年後再挑戰杭州的大廠,短暫的諮詢和考慮後,我選擇了北京。想起了那個上帝解救信徒的故事,機會到來的時候,它並不一定是你期望的樣子。

    在位元組跳動開始工作後,我很慶幸自己沒有錯過這次機會,對於一個只在外包公司工作過的技術從業者而言,它真的意味著另一個世界。

四、總結

成長,才是永遠的課題。

我喜歡朋友以前講的一個比喻:當你想要開車去周遊世界時,並不需要給自己的車裝滿足夠跑完整個世界的油量,而只需要加滿第一箱油就可以了,路上有那麼多加油站,你隨時都可以加油,路上有那麼多的人,你也不用所有的事都只靠自己,想要一箱油就跑完整個世界的人遍地都是,但他們可能永遠都不會出發,只有那些真正經歷過的風景,才會讓人真正變得豐富起來,哪怕看風景時的你狼狽不堪。

其實也就如工作一樣,那個靠會Android的四大元件就能夠獲取到滿意薪資的時代一去不復返了。沒有哪一個資本家是個傻子,經過一波一波的淘汰與洗牌,現在剩下的都是技術的金子。就像大浪褪去,裸泳的會慢慢上岸。

這裡附上我這四年收集整理、總結歸納的Android進階資料,包括了(①Android面試pdf+②Android技術知識彙總pdf+③Android進階筆記),希望可以給大家提升自己做一個參考。需要獲取的朋友可以去————【我的Github】免費下載閱讀。

 

 


Github地址:https://github.com/733gh/xiongfan2.0/tree/main

 

希望那些真正堅持下來的Android開發者們一定會取得不錯成績。畢竟Android市場是如此之大,從Android高階的蓬勃的就業崗位需求來看,我堅信也希望我們每一位Android開發者一直堅定我們自己的夢想,不忘初心,方得始終 。