Java程序員要如何才能完成從新手碼農到架構師的轉變?

陳康喜


我在第一家單位工作的時候,工作到第三年,單位給我印了名片,上面的職位是【項目經理】,當時一方面有些竊喜,“我都是項目經理了,好像很厲害的樣子”,另外一方面有些驚訝,“我都幹啥了,怎麼就成項目經理了,不是還是幹開發的那些事兒麼”。後來我逐漸發現,有些公司的頭銜都很唬人的,所以在一些公司不要太在意架構師這個頭銜。

在我眼裡,架構師也可以分成兩種:一種是從程序員一步一步成長後“進化”成為的架構師,一種是PPT架構師,當然,我們的奮鬥目標肯定是要成為前者。

架構師的工作職責

  • 把控需求:架構師需要從需求階段就介入的,架構需要和需求人員(產品經理)溝通需求,保證自己可以完整的理解和把握客戶需求。

  • 架構設計和技術選型:如果是一個新的項目,架構師需要對項目進行分解,形成項目架構,在此基礎之上再完成技術選型(要結合公司的實際情況)。如果是一個老項目,架構師同樣需要這次的需求做在什麼地方,是在現有技術上就能實現,還是需要引入新的技術。

  • 制定規範、把握方向、踩坑填坑:架構師是要跟隨項目的整個流程,架構師就是項目的技術權威,他應該時刻與開發人員進行溝通,讓開發人員理解架構意圖,實現業務功能。架構師不是一個指揮者,把系統設計好了就讓程序員來幹,有一些技術難點,都需要架構師衝在前面解決。而不是當項目遇到一個“坑”時,架構師是要“真刀真槍”的寫代碼的。


需要在哪些方面努力,才能成長為架構師

  • 技術深度和廣度:這一點不用多說了吧,架構師的技術儲備一定要豐富,也就是見多識廣。想象一下如果一個架構師連memcached、redis都沒聽說過(哈哈,我說的就是六七年前自己)。

  • 抽象思維:這是進行系統分析和需求分解的基本素質,具備抽象思維的能力,才能把一個大的需求,分解成一個一個小的功能,但是分解後依然可以掌控全局。

  • 溝通能力:和需求人員溝通,和業務人員溝通,和項目成員溝通...

  • 領導能力:推動整個項目的發展,需要架構師的領導能力,這裡說的領導力和項目經理所需的領導力還不太一樣,想象一下如果有一個只會寫PPT的架構師,做出來的架構設計不切實際,那麼怎麼可能讓開發人員信服。這裡的領導能力,更多的是指技術能力的影響,甚至是個人魅力,也就是【可以服眾】,讓開發人員心裡想:“這個架構這牛,跟著他我學到了很多東西”。


我將持續分享Java開發、架構設計、程序員職業發展等方面的見解,希望能得到你的關注。


會點代碼的大叔


目前隨著互聯網的持續發展,架構師的成長路線也越來越多,以前行業內部的大部分架構師都是從程序員成長起來的,但是目前也有一批架構師是“培養”出來的,還有一部分架構師出自諮詢專家等崗位。

從Java程序員要成長為一名架構師往往需要經過以下幾個階段:

第一:從初級程序員到主力程序員。這個階段主要是夯實開發的基礎,在主力程序員期間會積累大量的設計方案,這是一個重要的學習階段,通過與架構師的接觸能夠了解架構師在設計軟件整體方案時的思路。大部分程序員都能完成從初級程序員到主力程序員的轉換,只要多參加一些實際項目大部分人都能積累足夠的經驗。

第二:從主力程序員到研發級程序員。從主力程序員成長為研發級程序員往往是一個重要的發展過程,要升級到研發級程序員需要具備更加全面的知識結構,另外對程序員的基礎知識有一定的要求。研發級程序員要解決軟件開發過程中的核心問題,往往關乎到整個軟件的性能。有不少主力程序員很難突破到研發級程序員,一個重要的原因就是知識結構不全,所以為了解決這個問題,有不少程序員會選擇通過讀研來完成突破。

第三:從研發級程序員到架構師。從研發級程序員到架構師是一個比較常見的發展路線,也有不少研發級程序員走技術專家的路線,當然這與具體的研發環境有一定的關係。從研發級程序員成長為架構師對知識面的要求還是比較全的,這就要求研發級程序員在工作的過程中要注重知識面的廣度。

總的來說,從程序員成長為架構師還是比較紮實的。

作者簡介:中國科學院大學計算機專業研究生導師,從事IT行業多年,研究方向包括動態軟件體系結構、大數據、人工智能相關領域,有多年的一線研發經驗。

歡迎關注作者,歡迎諮詢計算機相關問題。


IT人劉俊明


有句話這麼說的:不想當將軍的士兵不是好士兵!你才剛入行就有這種想法是很好的,接下來就是要付諸行動了!

先看下架構師具體的職能是什麼?

1,負責將業務需求轉化為可執行的開發計劃,制定整個項目的架構搭建!

2,負責整個項目的各方面指標,比如高可用性,高穩定性,高效率等等!

3,降低整個系統的可擴展性,降低維護成本,保證系統的質量!

怎麼成為一個優秀的架構師呢?起碼得做到如下幾點:

1,熟知整個系統涉及到的技術棧:前端,後端,數據庫,運維,測試!

2,分佈式技術:微服務,負載均衡,集群,一致性hash,高可用,容器技術,服務間通信等等!

3,中間件:數據庫相關包括監控中間件,分庫分表中間件,緩存中間件,消息隊列等!

4,技術能力:開發能力優,閱讀過大量框架源碼,能快速發現和改進已有框架的問題,熟知設計模式,能搭建穩定性和擴展性好的架構,對主流技術能迅速掌握!

5,調優能力:jvm調優,sql調優,服務器調優,能快速定位局部出現的可能性問題!

6,工具:svn,maven,gradle,git,jenkins,jmeter,jstack等等各方面的工具!

換句話說,作為一個架構師,需要上得廳堂,下得廚房!!!我目前定位是一個初級架構師,仍需努力。。


哎喲JAVA不錯哦


我有以下建議,請您參考:

1 優秀代碼能力

架構師應該要承擔項目中核心、複雜代碼的編寫工作,這也是阿里畢玄對於架構師的要求。所以必須在日常的工作中多寫代碼,承擔核心代碼編寫工作,鍛鍊自己。

其中有一個非常重要的能力:抽象能力。比如一段代碼出現在A類中,就不應該被複制到B類中,把公用代碼抽象出來,抽象為架構工程,可以提高開發效率,增加代碼可讀性和維護性。


2 精通相關業務

業務架構師必須對所在行業有著深刻的認識,這樣可以對業務提出好的建議,有的建議甚至是方向性的建議,這就需要在工作中積累,不要牴觸業務學習。


3 從0到1設計開發項目的能力

請參看我的頭條文章:《從0到1構建互聯網業務系統的基本方法論》


4 溝通能力

架構師不是一個人在工作,必須協調組內的成員,把架構描述清楚,把任務分配妥當,對項目進度的把控,必須有一個好的溝通能力。


5 排查問題能力

代碼出現了問題,尤其是線上問題,十分緊急,架構師必須能迅速定位問題,解決問題。這就要架構師平時多排查問題,掌握一些基本的排查工具和方法。



IT徐胖子


新手變老手,可以通過不斷的積累代碼量、項目經驗來實現,就是所謂的代碼敲多了,手就“老”了。

但是老手與架構師又完全是不同的概念的。

架構師的核心在於思維,要站在比一般的開發工程師更高的高度看待問題。如果舉個例子的話,程序是一棟大廈,架構師是設計師,而普通的程序員就是施工人員。工人按照設計師的圖紙施工,一層層的把大廈建起。

怎麼成為架構師呢?肯定不是憑空想來的。

每一個架構師都是從實際的開發中成長起來的,多年的開發、學習,讓他們都有著紮實的專業基礎、熟練的專業技能、豐富的知識掌握,以及最重要的一點:優秀的編程思想。前面的那些很多開發者都能達到,但最終能成功成為架構師的卻為數不多。決定能不能成功打通“任督二脈”修煉成功的關鍵在於:你能不能把你擁有的這些東西融匯貫通,吸收昇華,然後形成結果,提高你的編程思想高度。不做一個只會搬磚的碼農。


奇驢打魚


java如果現在還是零基礎的話,建議先學習java,打好java基礎,最基本的框架也要學好。

如果你現在已經是java程序員的話,可以參考一下這個學習路線

可以關注我,裡面有很多技術文章供你學習,私信我回復【資料】也可獲取各種學習資料,全是技術乾貨,每一天都會更新。


優效程序員


首先要打好基礎,其次在工作中根據安排的任務需求深挖下去學習,然後就要廣泛的稍微瞭解一起比如前端、移動端的一些知識,不求精通,起碼有所瞭解。

當然,如果你有興趣來學算法,歡迎關注我一起學習!


五分鐘學算法


先打好基礎,在工作之餘要注意多積累,多練手,切不可完成工作就算完事了,一定要注意自我學習,自我提升,奔著架構師的夢想前進,你可以的!加油!


搞笑中的戰鬥機


首先要有足夠的項目經驗,並且不斷的學習成長,多看,多寫,多研究,慢慢成長


分享到:


相關文章: