阿里P8架構師講述:3—5年程式設計師的發展和出路在哪裡?

Java和Android架構發表於2019-02-26

640?wx_fmt=jpeg

工作3—5年後,程式設計師們的成長將邁入一個全新階段。這既是程式設計師們的黃金時期同時又是最迷茫的時期,因為大家必須要要思考一下今後的職業方向。

3—5年程式設計師的發展和出路在哪裡?

是繼續做技術人,還是向管理者發力?是繼續留在大公司,還是轉投潛力小公司?如果沒有核心競爭力,入行一兩年的新程式設計師朋友是可以替代你大部分工作的,而且薪資還低,要怎麼辦,何去何從?

中堅力量的程式設計師們,是相對穩定的一群人,整體跳槽率低於三年以下經驗的程式設計師,但是結合開頭的迷茫,這個穩定其實也有點尷尬。

5年的程式設計師們正在面臨的窘境是,必須快速成長,成為技術總監,否則很可能會被0—3年物美價廉的程式設計師替代。

那麼程式設計師究竟要有怎樣的核心競爭力,才能不迷茫,完成進階呢?

1.從思維角度理解

正確認識自己

很多人會笑?最瞭解自己的人當然是自己。沒錯,但正視自己的優缺點,客觀做出正確的選擇卻很難。

有了5年的工作經驗之後,你應該非常清楚自己適不適合IT這個行業,並且對於自己將來走技術路線比如成為架構師;還是走管理路線比如成為CTO還是創業有一個大致的思考。

但是這些必須基於你對自己的瞭解,如果你性格非常內向,不喜歡和別人溝通,但做事有條理,完美主義,細心嚴謹,就算不為了工作自己也會寫開原始碼,並且樂在其中,說明你很適合做技術方向,想要做管理崗位還需要更多磨練。

迴歸程式設計的本質

讓我們迴歸程式設計的本質,重新去理解程式設計師這個職業。

很多人認為程式設計師只要能按照需求寫程式碼就可以了。雖然這也沒什麼錯,但以上的工作,即使你完成了,依然很難拉開你與別人的差距,拔高自己。

有三點建議:

(1).用程式碼解決問題

寫程式碼的最終目的什麼?是為了產品的誕生。對產品功能進行分析、思考、程式碼落地的能力是重中之重。

寫程式碼不是在完成一個任務,而是在解決一個問題,你需要了解清楚這個問題的前因後果,調查清楚同類問題的相同點、關聯性、痛點,舉一反三,真正去解決問題所以程式設計師不就能之糾結於程式碼是否寫得漂亮,而應該落實到它是否能解決問題。

(2).理解產品和使用者

記得知乎上有一個問題是,程式設計師應該給產品提建議麼?當然應該,不是有句話說,人人都是產品經理嗎?何況還是和產品經理並肩作戰的程式設計師。

程式設計師不僅要提建議,還要給出自己對產品的思考、理解、規劃。程式碼寫出來的是是實實在在的產品,只有理解產品和使用者才能真正生動起來。

(3).商業思維

我們要從更高層面去看待和理解程式設計的工作。

我國不像美國那樣有那麼深的技術積累,在技術創新方面的能力遠遠落後於它,所以我國的網際網路產品更多是商業模式的創新,而非技術創新。

程式設計師所掌握的技術的淘汰速度可能還沒有商業模式淘汰的速度快,商業模式的快速進步和更新必然要求技術能夠快速更新以支援其發展。

2.從技術方面入手

在BAT這樣的公司裡,商業上的變化非常之快,要求技術體系能夠適應這樣的變化,直接導致了幾乎所有的架構體系都不停地往通用性、擴充套件性方向發展,都以提供商業能力為自己的最終目標。如果沒有商業思維,如何去理解和更新龐大的技術體系呢?

技術為商業服務、商業推動技術進步,這是網際網路公司的基本法則。商業思維的一個體現,可能就是前瞻性了。能看到未來的技術需求和發展方向,你就是行業專家了。

現如今網際網路最火最新的技術知識有哪些呢?

根據阿里巴巴的面試入職標準定義

1.架構師築基專題

(1)併發程式設計

併發程式設計幾乎是所有網際網路公司面試必問問題,併發程式設計是Java程式設計師最重要的技能之一,也是最難掌握的一種技能。它要求程式設計者對計算機最底層的運作原理有深刻的理解,同時要求程式設計者邏輯清晰、思維縝密,這樣才能寫出高效、安全、可靠的多執行緒併發程式。目前網上沒有系統的全面的併發程式設計學習大綱,我搜集了很多資料總結出來一個最全面的學習大綱:

640?wx_fmt=png

(2)JVM效能調優

效能一直是讓程式設計師比較頭疼的問題。當系統架構變得複雜而龐大之後,效能方面就會下降,特別是阿里巴巴這樣的一線網際網路公司最為注重,因此想進入阿里,效能優化一定是要去深入學習與理解的一環,本屌在效能優化這一塊雖然不能算專家,也可以自信的說是精通了(注意:自己的簡歷上一定不要寫精通xxxx,要不然面試官會懟死你。好在本屌這一塊還算自信)

640?wx_fmt=png

(3)網路程式設計和高效IO

(4)Tomcat進階解析

(5)MySQL深度優化,Linux基礎及進階以及設計模式實戰

2.開源框架解析專題

閱讀、分析原始碼是程式設計師最基本的碼程式碼能力也是碼農的根本所在,學習經典原始碼中所用到的經典設計思想及常用設計模式,能夠幫你瞭解大牛是如何寫程式碼的,從而吸收大牛的程式碼功力。在阿里面試中,MyBatis,Spring等框架的底層原理是經常會被問到的

640?wx_fmt=png

3.高效能架構專題

阿里巴巴有很多大團隊,這種大團隊裡有很多小團隊,到小團隊之後,做的業務都不相同,如果想立足成為一線網際網路公司中的萬能選手,最主流的分散式架構中有很多知識都是必須要去了解與學習的。並且在阿里面試過程中,面試官會問到實際應用場景的問題:比如微服務化、使用者量、併發量、業務複雜度以及可擴充套件程度等,這裡不多贅述。本屌提供一個分散式架構的學習思路也是自己目前還在學習中的體系:

(1)分散式架構思維以及分散式協調和分流

640?wx_fmt=jpeg

(2)非同步與訊息中介軟體

640?wx_fmt=jpeg

(3)快取和Nosql

640?wx_fmt=jpeg

(4)高可靠資料儲存以及分散式常見場景解決方案實戰

4.微服務專題

微服務是現在網際網路架構技術中最火熱的話題之一,也是本屌目前正在學習研究的方向。在阿里面試過程中,面試官很少會問到關於微服務相關的問題。但作為一名開發者,一名有技術夢想的程式設計師微服務架構是現在必須要去了解的主流技術

(1)springboot,springcould,Docker虛擬化技術

(2)dubbo應用及原始碼解讀,RPC原理

640?wx_fmt=png

5.DevOps(架構師工具箱

640?wx_fmt=png

6.B2C商城實戰

640?wx_fmt=png

最近是金三銀四面試季,很多程式設計師都在投簡歷,所以再分享一波福利,自己收集了一些關於Java架構方面的資料,裡面就有微服務、 效能調優,原始碼分析,高併發和分散式等資料,歡迎大家來我的群裡下載,群裡也有一些資深HR,也會在群裡聊一些行業資訊。

640?wx_fmt=jpeg

640?wx_fmt=jpeg

資料每天更新,免費領取

掃碼加群:854613173免費領取資料

640?wx_fmt=jpeg

我自己也比較喜歡技術,群裡也有很多阿里大牛,也有一線網際網路的資深HR,最近在面試的朋友或者在找工作的程式設計師都可以進來看看哦,點選下方的閱讀原文就可以進群啦。


↙點選“閱讀原文”即可進群獲取架構資料哦



相關文章