不同層級的Android開發者的不同行為

Android入墳之路發表於2019-04-11

四個層級如下:

第一層:普通程式設計師

第二層:熟練開發者、高階開發工程師、技術組長

第三層:技術專家、架構師、一線經理

第四層:科學家、研究員、首席(資深)架構師、部門研發總監

不同層級的Android開發者的不同行為

Android開發者的四個層級

按我的理解,無論是Android開發者還是其他的開發者都可以分為四個層級,可依次對應普通、熟練、優秀、卓越這四個詞。

一、 普通

普通開發者,能夠使用一定的專項技術,完成別人分配的模組的開發。在工作當中,他們很少有機會決定自己做什麼和怎麼做,通常是在他人指導和安排下編碼實現特定的細分功能。

這部分人中的大部分人,一般比較注重經濟利益,有一定的經濟壓力。尚未把程式設計作為自己的一種愛好和自我實現的途徑。多半感興趣的是怎麼找到一份好工作,怎麼得到一份好薪水。但是他們忽視了,從長遠來看,中國的軟體職場,最終的發展方向肯定不是“五分運氣,三分做人,兩分技術”。對於一個技術人員來說,技術才是獲得競爭優勢的唯一途徑。在技術上沒有競爭優勢,你就失去了一個技術人員的安身立命之本。他們盲目崇拜所謂的“創新和創意”,誤以為那是不用刻苦鑽研技術而又改變自己命運的捷徑!

在這個階段,收入一般就在 5000 ~ 20000 元 / 月,很難突破 20000 元 / 月。同時,這個階段的開發者,也很少有超過 30 歲的——因為超過 30 歲你還停留在這個階段,基本上就混不下去了。(這個階段會有大量的人退出,謀求轉型……

二、熟練

一般的開發者,會在普通開發者這個階段停留 3 ~ 5 年,然後就進階為熟練開發者,能運用一組技能樹,完成較為複雜的軟體模組的開發工作。進入這個階段的標識有兩個:

  • 你可以做某個功能模組或子系統的軟體設計工作。
  • 你可以分配任務給普通開發者。

不過我覺得,從應用層開發達到一定技術水平後,轉到中間層或者稱之為“框架層”開發的人,比一開始就坐框架層開發的人,更容易深入。做過應用層開發的人,更有所謂的“切膚之疼”,從而更能理解一些策略和為什麼的原理性的東西。這類開發人員一般屬於稍微資深一點的,一般都有強烈的技術飢餓感,覺得自己懂的很少,不停的去提高充實自己

到了熟練階段,你才算是有一技之長,才稱得上是靠技術吃飯(因為普通開發者越來越多,初階的編碼能力已經算不上一技之長了)。有了一技之長,你的收入就能獲得突破,拿 20000 ~ 40000 元的月薪。

你可能會在這個階段停留 3 ~ 5 年。

這個階段會有大部分人開始懷疑程式人生的意義,一方面對開發工作很熟悉了,也沒激情了,另一方面又很難進入下一階段獲得突破,於是倦怠、空虛、無聊、意義匱乏等狀況紛至沓來。在這個三十而立的年紀,很多人會考慮轉型,一部分人因為看不到其它的機會又難以放棄開發技能的積累和高薪,在猶猶豫豫中蹉跎歲月;另一部分人未雨綢繆,在日常的開發工作中,已經發展了支線劇情,轉型比較順利。

在熟練開發者這個階段,有一小部分人,能夠在某個技術棧上持續精進,凸顯出優勢,靠這種技術優勢,成為高階開發者;另有一小部分人,一手技術,一手業務,靠交叉優勢,也成為了高階開發者。在這兩類高階開發者中,又會誕生出 Team Leader 這種角色。

成為上面這部分人的典型標誌就是:你被很多人需要,有各種疑難問題需要你參與或主持解決。

三、 優秀

擁有技術優勢的高階開發者和擁有技術+業務組合優勢的高階開發者,他們當中有一部分人會晉級為技術專家或架構師。Team Leader 可能會晉級為一線經理(技術經理、專案經理、研發經理)。這算是開發者的第三個層級。進入這個層級的開發者通常會:帶人,帶專案,安排別人做事情,在重要的技術決策上擁有話語權。

這類開發的技術含量其實和中間層開發差不太多,從某種意義上還不如。其實,驅動開發更主要的要求需要一定的硬體知識。這類開發人員一般是各大手機廠家的開發人員,由於接觸的面比較窄,技術飢餓感不如中間層開發人員。第二,第三層的開發人員通常在國內的廠家任職,比如魅族、小米、HTC。只有這個樣的廠家經過一定的技術沉澱,才會向最高層進軍,中國軟體行業才會做出真正意義上的自主的平臺

到了這個階段,你的年齡應該在 30 ~ 35 歲,年收入會突破 50 萬。

假如你過了 35 歲,還沒到第三階段,嗯,我猜,要麼你待錯了環境錯失了進階的機會,要麼你主動放棄了職場成長,覺得拿個 2、3 萬月薪過過小日子已經很舒服了。

處在這個階段的朋友,都是獨擋一面的優秀人才。已經超越了具體的技術能力,很好的建立了思維框架,解決問題的能力很強,所以你會看到,很多人能夠迅速在非開發領域取得成績。這就是大前研一所說的即戰力。

四、卓越

很多小公司的技術領導者(包括首席架構師、資深架構師、CTO等),實際上多數是從第三階段橫跨出來的,利用相對優勢(腦補吧)獲得了職能和頭銜上的提升。(汗顏,我就幹過這事兒)

這種人是真正意義上的Android程式設計師,他們會有選擇的去閱讀Android框架原始碼,會認真的去閱讀dalvik的原始碼。自身知識結構也比較成熟,知識面比較廣。會很多上面三類人都不具有的除錯和跟蹤技巧。對一些作業系統和平臺設計的思想和策略,瞭如指掌。在問題域和技術域之間左右逢源。這些人,多半也精通其他移動平臺或者伺服器作業系統。

談收入的話,這個層級的開發者,年薪往往在 80 萬以上,過百萬的不在少數。除了薪酬福利,他們往往還持有股票。

不同層級的Android開發者的不同行為

六種差異造成開發者之間的差距

一、知識差異

Android小白可能不知道在手機上顯示一個圖片用什麼元件、什麼標籤,而熟練的Android開發者一定知道,並且能噼啪幾下敲出來。

這是知識儲備的差距。

知識和資訊是你分析問題時的大變數,當你的知識儲備量很小時,你往往是兩眼一抹黑,不知道從何說起。

所以,知識差距,是不同層次的開發者之間最顯著的差距。

二、技能差異

一個普通的Android開發者,剛剛入門,會用 一些基礎的技術,而現在有一個新的專案啟動,你讓他負責這個專案前端模組的架構和設計,他大概率做不出來。

因為他還不具備勝任這類工作的架構能力、設計能力以及抽象能力,缺乏相應的技能。當你沒有相關技能時,就不具備搞定複雜問題的基礎條件。

不同層次的開發者之間,在技能層面存在顯著差異,層級高的人擁有一個“工具房”,而層級低的開發者,手裡往往只有一把螺絲刀。

三、動機差異

如果你留意觀察身邊的同事,就會發現:

  • 有的人積極主動,什麼都願意做,做什麼都津津有味,都能快速學習、迅速行動並做出符合預期的結果
  • 有的人你每次安排任務給他,就算是他可以搞定的,他也推三阻四,不情不願這就是動機差距。

當你一個人知道如何去做,但是卻選擇不做一件事時,往往是缺乏做這件事的動機;當你不想做一件事時,總是能夠找到千萬個理由來拒絕。

通常某個開發者不願意做某件事,是因為:

  1. 他沒有真正認同團隊的目標
  2. 他覺得團隊的目標沒什麼意義
  3. 焦慮或擔憂,覺得這事兒做起來有難度,或者做了也不指定有好結果
  4. 心煩意亂,比如最近丈母孃催買房催得厲害
  5. 單純的不想努力,就是要在這裡混著

……

不管哪種原因,你不做一件事,就少一次磨練和收穫的機會,久而久之,別人在行動中成長起來了,你還在原地踏步。

四、行動差異

兩個人都在不斷做事,結果仍然可能不同:有的人三年精通某個技術棧,成為團隊內的核心骨幹;而有人的,做開發五年還只能寫寫靜態頁面。

你是遵循一定的方法和流程來開發,比如先完成設計、編寫測試程式碼、再編碼、跑單元測試,還是拿到需求就立馬開始編碼、邊寫邊發現程式碼不符合需求不斷推倒重來……

你是每次都給自己設定目標,希望這次任務用到的知識和技術點不同於上次,希望這次的程式碼設計和上次不同,還是根本不管這些,先寫,能 Run ,完成任務交差……

這都些做事方法上的差異,會讓同一件事有不同的結果讓做同樣事情的人有不同的收穫。

五、習慣差異

有的開發者每天早上都琢磨下今天要做的事情,每天晚上都回顧下今天完成了什麼事情、什麼事情沒完成、什麼事情還沒開始做,早計劃晚回顧;有的開發者每天到了單位,開機,重新整理聞,來兩把遊戲,然後喝茶,找人聊天,下班了吃個飯,打兩局遊戲……

有的開發者,每週都回顧總結,寫週報,發給直屬上司;有的開發者,經理強調一百遍“每週五要發週報”也充耳不聞……

有的開發者,遇見測試提 Bug ,就高叫“不可能”;有的開發者,則會說“我看看”……

有的開發者,遇見困難的問題或者難搞的醒目,會說“讓我試試”;有的開發者遇見難題,兩手一攤,“這太難了,我搞不定”……

在做專案時,有的開發者會把自己手上的任務按重要性、優先順序排序,先做優先順序高的、難度大的;有的開發者會每次都挑難度低的事情先做……

積行成習,積習成性,積性成命。

好的習慣,大概率產生好的結果;不良習慣,大概率導致不如意的結果。

你的將來,由你的習慣決定。所以,請看看自己身上,有哪些習慣會讓自己積累越來越多的能力,鞏固它們;有哪些習慣會讓自己越來越 low ,弱化它們,揚棄它們。

六、環境差異

環境會在某種程度上塑造人,你會成為你身邊人的平均數。你在一個技術氛圍濃厚、優秀開發者眾多的團隊裡,就有大概率更快地成長。

環境是可以選擇的:你不幸進了處於衰退期的行業,可以轉身去朝陽行業;你進了無所事事的、靠關係拿訂單的傳統軟體企業,可以考慮去網際網路領域的快節奏單位;你所在的專案組沒什麼技術氛圍,你可以離開,找一個崇尚技術的團隊。



相關文章