03.06 架構師的工作和程序員的工作有何不同?

夏末川


程序員的工作和架構師有什麼不同?

簡單的說,程序員分為初級程序員,中級程序員,高級程序員,而架構師必定是優秀的高級程序員,優秀的高級程序員未必是架構師。下面我們來看看程序員和架構師的主要工作

初級程序員:這種程序員通常都是剛畢業不久或者剛從培訓機構出來工作不久,對編程語言基礎有一定的理解,對常用數據結構和數據庫技術能夠熟練的應用,但是沒有功能模塊的概念,通常都是參考系統中相關功能來實現自己的邏輯單元,很多時候都是去百度然後COPY-UPDATE來完成任務。

中級程序員:已經有個三五年的工作經驗,對技術和業務都已經相對熟悉,能夠獨立設計和完成一些系統的功能模塊,並能對初級程序員進行指導。

高級程序員:已經擁有五年以上的工作工作經驗,對技術和業務已經非常熟悉,系統中的幾乎所有功能都能夠帶領初、中級程序員來完成,並能夠指導初中級程序員的工作。

架構師:已經工作8年以上,對業務和技術都有自己的理解,在某個行業內做過很多新項目,並在項目中參與軟件架構的設計,完成某些核心功能模塊的編寫,並帶領和指導初中高級程序員完成軟件項目的研發工作。

優秀的架構師必定是優秀的高級程序員,只有在足夠的項目中經歷多種疑難雜症,才能在最初的軟件架構設計上採取合適的架構。比如軟件項目打算採用主流的分佈式架構,但是到底用dubbo還是springcloud呢?其實2種架構都是可以的,但是都有很多的坑需要踩,分佈式事務問題,分表分庫問題,微服務的細化問題,發佈部署問題,運維問題等等,很多問題是高級程序員都考慮不到的。高級程序員只要掌握技術和業務,完成功能模塊即可,而架構師必須掌握二外的很多內容,不僅僅專注於代碼的編寫上,還要專注於項目的可維護性、易擴展性、易使用性等。

高級程序員經過多個新項目的實現,注意積累,也是很容易成為架構師的。現實中往往很多高級程序員沒有這樣的機會,而僅專注於代碼的編寫上,所以很多高級程序員都停留在了程序員的水平。





該死的Bug


架構師負責公司項目需要用到的框架,考慮的因素有很多種。比如,用戶流量在10w左右用什麼框架,1000w又用什麼框架才可以達到系統的最佳性能。

程序員就很簡單了,不停的擼代碼,頭禿的那種。

也可以理解為,架構師確定好框架,甚至把架構搭建出來,程序員負責裡面業務功能實現。架構師要求的技能知識要比普通的程序員複雜的多,當然其薪資普遍也比程序員高。


簡單唄


程序員:做編程的底層開發工作,寫代碼,不停的寫代碼軟件設計師:其實這個概念不太清楚,跟架構師類似,就是要分析設計這個軟件的整體概念,就像蓋房子要先畫圖紙,然後分給不同部門的人去建造,其實在現在,一般叫項目經理,或叫開發經理網絡工程師:設計整體的網絡的人,跟軟件設計師差不多,不過做的是網絡工程。網絡管理員:與程序員類似,重複性的技術工種。系統分析師:這個也是個比較模糊的,系統分析類似醫生的,可以通過自己的經驗和從業經驗,對某各軟件或某項工程進行分析,優化,從而幫助架構師或項目經理用最短的時間做出最滿意的東西來。其實你分的這幾個,都是計算機裡的職位,你重新分一下類好了軟件開發裡面分為:程序員,軟件工程師,軟件架構師和系統分析師網絡工程裡面分為:網絡管理員,網絡工程師,網絡架構師和系統分析師如果是工資高,級別高的,就是架構和分析了,但是。。。。強調一下,這兩個職位不是有技術就可以的,需要大量的經驗,一般都是從程序員開始做起的,才有資格。


紅色的音樂


架構師可以是程序員,程序員不一定是架構師。


能省居


簡單點,理解得清楚,說一大堆,越糊塗:

1.有些程序員一輩子就是程序員

2.有些程序員變成了架構師

3.不是所有程序員都能變成架構師

4.架構師也是程序員


濤哥講事


程序員是來完成某項工作的具體實現者,而遊戲程序設計師是一個宏觀調控這項任務的負責者,類似於架構師一樣程序員不用去管這個項目的任務分配的事情,只要完成自己被分配的事情就行了,但是設計師要從項目的性能優化等各方面去考慮這件事情


分享到:


相關文章: