㈠ 程序員,架構師,軟體工程師的區別
1、程序員,架構師,軟體工程師的能力要求不同,程序員是從事程序開發、程序維護人員,但是不擅長寫文檔。軟體工程師的技術要求比較全面,會熟練的寫語言代碼,也會寫一些項目的文檔。架構師是軟體開發過程中的重要人物,主要負責大系統項目的架構設計。
2、程序員,架構師,軟體工程師級別不同,程序員分為初級程序員、中級程序員,軟體工程師是從事軟體職業的人員的一種職業能力的認證,架構師是團隊領導型人物,是需要從資深軟體工程師裡面提升為架構師。
3、程序員,架構師,軟體工程師平均年薪不同,美國谷歌程序員的工資最低年薪平均水平為12.8336萬,軟體工程師平均工資較高,谷歌軟體工程師年薪平均水平為25-30萬美元,架構師的工資水平是最高的,谷歌大數據架構師年薪為50-60萬美元。
㈡ 程序員往上做是什麼軟體分析師、架構師、工程師有什麼區別
程序員往上做是軟體分析師、架構師這些高級技術人員。要說層級關系軟體分析師、架構師、工程師比程序員高級,這些都是從基礎程序員做起的。
(2)架構師比程序員厲害擴展閱讀
對於軟體工程師,不太重視學歷,但並不是對學歷沒有要求,重點關注項目的經驗和學習知識的能力,能否利用軟體工程專業知識來解決問題,根據崗位不同,對軟體工程師的要求也有所不同。
具體能力要根據崗位和自己的興趣愛好選定自己的職業規劃方向,一方面要詳細了解軟體工程師的要求,可以關注企業的招聘信息;一方面自己要貯備通用的知識技能。
可以確定的是軟體工程師的前途在未來的發展依然是不斷升溫的職業,比較需要有技術和良好前景的專業。
參考資料
網路—軟體工程師
網路—程序員
網路—系統架構設計師
網路—系統分析師
㈢ 架構師比程序員強在哪裡呢
程序員只會寫代碼
架構師不僅能夠寫出高質量的代碼,還能說出高質量的代碼
㈣ 架構師和程序員的區別是什麼
1、關注范圍不同
程序員專注於具體細節,而架構師專注於「宏觀視角」。
2、領導關系不同
程序員處於被領導地位,架構師則扮演領導角色。
3、職責不同
程序員要解決公司中英文官網、現貨商城的程序性問題,維護公司網站後台。可以對公司網站程序進行二次開發,保證功能實現。維護公司伺服器安全。
在項目開發過程中,架構師需要依據用戶需求,將完整的系統拆分為子系統和組件,形成不同的邏輯層或服務,確定各層的介面、層與層相互之間的關系,對整個系統分層進行「縱向」分解,對同一邏輯層分塊進行「橫向」分解。
4、自身價值不同
架構師的價值要高於程序員,主要體現比其他人多了解一點業務系統全局性的知識,能夠有助於在不同的組件之間進行適當的協調,輔助其他成員共同完成添磚加瓦和增補任務。
㈤ 為什麼CTO、技術總監、架構師都不寫代碼,還這么牛逼
常常會被問到這樣的問題:CTO、技術總監、架構師很少寫具體代碼,為什麼還很牛逼的樣子,拿這么高工資?
其實,這個問題本身就錯了。就好比問:導演、製片人為什麼不懂演戲,還能指導演員,好像比演員厲害似的?其實不難理解,導演、製片人的核心能力並不是演戲,又怎麼能跟演員作比較呢?
回答前面的問題,邏輯也是一樣的,拿CTO、技術總監、架構師,跟程序員比寫代碼的能力,本身就是個錯誤。因為,他們的核心能力是不一樣的。
CTO、技術總監、架構師的核心能力是技術判斷力 。簡單來講,就是判斷一個項目、一個系統架構、某個技術方向,是否符合企業當前現狀,是否對企業的未來產生價值。
程序員的核心能力是寫代碼的能仔頌力。 就是做具體的代碼實現。
所以CTO/技術總監/架構師,跟程序員的核心能力,是完全不一樣的能力,是沒法作直接比較的 。
通常我們說,CTO、技術總監、架構師們很牛逼, 指的是他們的技術判斷力牛逼,而不是他們寫代碼的能力牛逼 。相反,他們寫代碼的能力可能還比不上一個資深程序員。
但是, 他們所做的技術判斷,給公司 帶來非常 高的價值 。比如,阿里雲創始人王堅博士,在所有人反對的時候,他堅持雲計算是未來,幫助阿里提前布局雲計算,為阿里成長為萬億商業帝國,立下汗馬功勞。這就是技術判斷力,給企業帶來的巨大價值。
大家之所以都很容易混淆這幾個角色,以及它們的職責,其實很重要的一個原因就是, 人們常常把CTO、架構師、技術經理的亮戚中頭銜,亂授予技術負責人 。在國內這種現象尤其嚴重。
比如,一個初創公司的技術負責人,實際乾的活就是個技術經理。老闆為了顯得高大上,硬要給他安一個CTO的頭銜。這種情況很普遍,特別是全民創業的那幾年,遍地都是CTO。
為了說清楚技術負責人的職責,我們以一個電商公司的成長為例,講解企業在初創期、發展期、成熟期的不同階段,都需要什麼樣的技術負責人,以及他們具體都幹些什麼。
實現復雜功能,解決技術難題
一個剛剛起步的創業公司,通常只有幾個程序員,甚至連產品經理、項目經理都沒有,老闆自己就是產品經理,把想法跟開發人員一說,就快速地做出原型。
如果這個階段對開發的能力不滿,那麼大概需要的只是一個高級開發人員,他能搞定一般的技術難題,實現復雜功能,思路清晰、幹活利索。千萬不要去大廠挖個技術總監,你家廟太小,供不起這么大的神,他真來了也發揮不了應有的作用。
老讀者知道,老K有過一段創業經歷,當時追隨我的老領導出來創業,我就是名義上的CTO,帶了7、8人的團隊,我還同時帶了兩個項目,每個項目里我都貢獻了30%以上的代碼量。其實,當時的我,就是個高級程序員而已。
小結一下,高級程序員的主要職責是:
1,實現復雜功能,編寫核心代碼;
2,處理線上bug,解決技術難敬山題。
交付效率提高、質量提升
當公司的業務發展起來後,就需要一支相對完善的技術團隊,有了專職產品經理、測試人員等,團隊規模在15人左右,專注於一條產品線。
復雜功能、技術難題,高級開發人員可以搞定,但是如果要解決開發團隊效率、技術人員能力提升、代碼質量和編碼規范等,就需要技術經理了。技術經理通常寫少量的代碼,更多做技術管理、項目團隊等工作。
這就是許多創業公司A輪融資前的情況。由技術經理總體負責技術團隊,產品經理對接業務需求,做產品規劃、競品分析,而不是抄襲哪個App。
小結一下,技術經理的職責是:
1、開發任務分派。開發工作量評估、分派,最大化資源利用率;
2、代碼質量提升。Code Review、編碼規范、線上bug分析;
3、項目管理。確保項目的按時交付,建立管理機制;
4、團隊管理。團隊搭建、人員招聘、人員培養。
技術規劃、多產品線、項目群管理
當技術團隊發展到30人左右,有了多條核心產品線、有了多個技術經理時,就需要一個技術總監了。
技術總監,作為領域專家,站在更高的層面思考技術如何建立壁壘,構建技術競爭力。逐步開始建立公共技術平台,協調多條產品線在統一的技術平台上快速迭代,讓產品線跑得快、跑得穩。
技術總監,在領域內有多年沉澱,來自知名互聯網企業,能夠把技術團隊帶上一個新的台階。技術總監,更多是做技術判斷了,也有些技術型的技術總監仍然會寫些核心代碼、做架構設計。
技術總監的職責:
1、搭建公司技術平台部,統一技術棧;
2、建立產品研發體系,讓技術團隊可持續性地快速交付;
3、管理和協調多條產品線,打造明星產品;
4、建立技術壁壘,形成技術競爭力;
架構設計、架構實現、架構評審
公司如果「跑到」了B輪,技術團隊應該要接近百人了,此時的技術團隊跟初創時期相比,已經很不錯了。
有技術總監協調著各產品線,有開發經理帶領技術團隊快速迭代產品。代碼規范、最佳實踐的總結和推廣也在逐步開展。
此時,需要把架構規劃和架構評審的職能從技術總監和開發經理身上剝離,即分離專業崗和管理崗,專業人做專業事。
這時候就需要設立架構師崗位,專注於技術架構分析、架構設計、架構實現、推動重構、推行架構原則等工作,讓技術總監和技術經理側重在項目管理、團隊管理。
架構師的職責是:
1、業務架構設計和實現。根據業務規劃和應用場景,設計切合當前業務要求,並且具備一定前瞻性的應用架構、類、介面、業務抽象及業務建模等。
2、架構設計和實現。識別非功能性需求,如性能、可擴展性、安全性、高可用及易部署等。
技術產品戰略規劃,提升技術競爭力
當技術團隊有了幾名總監、架構師,人數達到幾百人,是時候引入真正意義上的CTO了,除非CTO是聯合創始人,否則這個CTO會有「虎落平陽」的感覺,公司也會覺得這個人「滿嘴跑火車,卻落不了地」。
國內的中大型互聯網公司,一般有產品VP和技術VP,有的技術VP就是CTO。如果CTO統管技術和產品,那麼產品VP就給CTO匯報,否則他們是平級的。
以國內互聯網公司CTO為例,總結一下CTO的主要職責:
1、技術賦能商業。敏銳的商業洞察、深入的產業研究、參與公司戰略規劃,技術引領業務增長,通過技術和產品實現戰略落地。
2、技術趨勢研究。思考未來3~5年的技術發展趨勢,以及新技術發展給企業帶來的機遇和風險,為企業提前布局。
3、技術治理體系。持續的過程改進、高效的研發流程、穩定的交付質量、高可用的系統。
4、組織與文化。建設學習型組織、自我完善型組織,建立符合企業特色的文化氛圍。
最後, 不想當CTO的程序員,不是好騎手 。從程序員到CTO的成長過程,需要不斷提升技術能力、產品能力、項目能力、管理能力、商業視野、個人影響力、行業人脈等等。除了自身的奮斗之外,機會和運氣同樣重要,而且是可遇不可求的。但是,夢想還是要有的,萬一見鬼了呢。