導航:首頁 > 程序命令 > 程序員不走岔路

程序員不走岔路

發布時間:2023-06-05 08:32:55

A. 一個老程序員如何才能度過事業的瓶頸期

增加領導力和決斷力,成為中層以上的幹部,而不是單純的敲代碼。增加副業收入,等到副業收入超過主業,主業就變得可有可無。程序員不創業,不走管理崗,是不會有出路的。

B. 為什麼有人說大部分碼農做不了軟體架構師

從事軟體開發多年,在編程行業真正的架構師比例少的可憐,就目前國內軟體開發環境而言,真正意義的架構師還不是很多,因為大部分的代碼框架幾乎從開源代碼社區裡面拿出來,然後定製成自己公司產品需要的,其中研究框架的時間比較長的,並且能夠深度定製的程序員就算是高手了,因為很多開源的代碼更新速度非常快速,能跟上開源社區的代碼更新速度的企業已經是實力非常強的公司了,國內企業現在真正意義上的從頭開始設計一個框架然後推向市場相對比較少。

經過十幾年的發展,國內編程人才的平均水平已經上來了,雖然在頂級程序員由於在編程底蘊以及生態系統這塊有差距,但基層的程序員水平已經上來了,國內很多互聯網公司做的產品有些已經不弱於歐美等企業,這些都是國內程序員水平提升的結果,而且現在由於培訓行業在國內普及,入門級別的程序員在國內數量巨大,所以很多人喊著國內程序員行業已經飽和了,已經不適合再去從事程序員的工作了。

事實上國內軟體行業內需依然足夠多,特別是現在的三四線城市都陸續出現了軟體公司,而且規模和數量都在提升,國內企業對中高級程序員的需求量還是非常巨大,五六年大小公司對於這類的人才招聘一直沒有停止過,而且薪資水平還維持在非常高的水準,了解這個行業現狀對於規劃自己的職業生涯還是有著非常大的好處。

架構師這種職位可遇不可求,基本上國內架構師都是自己本公司內的優秀的軟體工程師,成為了優秀的程序員並且在公司內部深得公司的信任願意給這種突破的機會,抓住了後邊的就會給與架構師的待遇,不是每個程序員天生就是做架構師的料,關鍵還在於平時的積累,有了機會抓住了,要成為架構師先要自己成為一個優秀的程序員,優秀的程序員需要具備什麼樣子的因素,現在就根據自己技術生涯的一些經歷分享給大家。

基本功扎實。 很多程序員在入門之前由於在學校裡面比較重視基礎,還能看看基礎,在成為了程序員之後就開始放鬆了對這方面的要求,所以導致很多程序員見到有筆試的公司,直接就選擇了放棄走人,不能講這類的程序員水平不行,但起碼不是優秀程序員的范疇, 優秀的程序員是經得住基本功考驗的,是不怕這些所謂的筆試題目的。

演算法扎實。 很多程序員做了很長時間還不覺得演算法挺重要,演算法貫穿整個技術生涯,如果沒有意識到這點說明意識層面還沒理解到,證明需要彌補的東西還是非常多,有些程序員可能是學習了一門編程語言就匆匆去找工作了,運氣還不錯還找到工作了,沒有很好的規劃技術生涯路線,一個標準的程序員需要的一門基礎的編程語言,熟悉數據結構,並且穿插著學習演算法,這三樣也是優秀程序員的標配,學習技術不是由著自己性子去做事,需要有規劃,這其中不能少了演算法的因子。

錘煉編程思想。 很多程序員覺得能夠寫代碼,時間長了經驗到位了慢慢就能熬成資深技術專家了,程序員不是靠著熬日子過的,需要不斷的提煉編程思想,舉個簡單的例子,做網路編程如果懂得了一門編程語言的編程經驗,相信切換到別的語言只需要很短時間內就能搞定,而且積累總結類似的場景以後遇到這種場景都能靈活應對,還能同步遷移到類似的場景,不能只是為了做而作,僅僅就是為了完成任務,那麼提升的空間有限,不能因為工作承擔的東西就這么點,而不去補充其餘的東西,善於總結也是優秀程序員需要具備的一種意識。

成為架構師沒有所謂的模板,而且有些人一輩子也沒有這種機會,但想要達到這種境界就需要先讓自己成為一個優秀的程序員,這樣子遇到有理想的企業抓住機會就上去了,一旦進入這個級別後面的編程生涯就會有根本的變化了,關鍵在於平時一點一滴的積累,讓自己長期處於一種高效的學習狀態,有太多的程序員經歷了幾年的適應期就提前讓自己進入了舒適期,結果隨著年齡的增長技能沒有相應的跟上導致年齡大了競爭力下降,出現了老了被企業淘汰的悲劇,什麼樣子的態度決定什麼樣子的人生,也就決定了什麼樣子的結局,希望能幫到你。

作為一名IT行業的從業者,同時也是一名計算機專業的研究生導師,我來回答一下這個問題。

首先,目前IT行業內大量的程序員確實無法成長為架構師,主要原因集中在三點,其一是自身的知識結構不足以支撐向架構師方向發展;其二是崗位工作任務受限;其三是行業迭代速度太快,學習壓力較大。

早期的架構師主要集中在後端領域,針對於不同的開發領域,對於架構師的要求也不盡相同。總的來說,架構師的任務主要集中在三個方面,其一是整體技術框架設計;其二是技術選型;其三是解決難點問題。所以對於程序員來說,如果想成長為架構師,需要做好以下幾個方面的知識儲備:

第一:豐富的開發經驗。 開發經驗通常是軟體架構師的基本要求,通常軟體架構師都是從初級程序員、主力程序員、研發級程序員等崗位一步一步成長起來的,每一個階段都會積累一定的開發經驗,這些經驗對於架構師的方案設計會起到重要的作用。對於大量的程序員來說,從主力程序員向研發級程序員發展會存在較大的困難,主要原因就是基礎知識結構的問題,不少程序員通過讀研的方式完成這一步升級。

第二:豐富的知識結構。 架構師的知識結構不僅僅局限在技術層面,還需要掌握大量的行業知識,不同行業領域往往有不同的特點,要能夠根據這些特點來完成具體的方案設計。

第三:緊跟技術發展趨勢。 架構師一定要緊跟技術發展趨勢,同時能夠對於未來的發展方向有較強的認知能力,這對於架構師的方案設計會起到重要的作用。對於技術趨勢的認知能力,是判斷一名架構師能力的重要因素。

架構師並不是一個很好玩的升級路線。

相對於架構師的開發工作。研發工作更有趣,更容易得到 社會 的承認,不論是圖形學,還是人工智慧,區塊鏈,甚至黑客(網路安全),憑借你的智慧和努力,可以在短時間內取得成就,並達到一個很漂亮的高度。研發方面是拼年輕,智商和體力的工作,有眾多的天才少年取得漂亮的成果,每年有大量新的技術突破和文獻等著大家研究。你做的每一件事情,都能表現出漂亮的成果,全局光照,計算機視覺。或者很容易賺到很多的錢,自動駕駛或者區塊鏈ico,就算做 游戲 外掛,其收入也大得超乎你的想像。


而架構師不是,架構師拼的只有經驗,正確的方法和項目數量。《C++程序設計新思維》裡面有一句話:「只有天才的程序員沒有天才的構架師。」 在構架師的世界裡不存在天才,只存在重構。一定要有正確的方法(敏捷開發),然後就是無數個項目和時間的鋪墊。然而對一個架構師應該明確,我們的職責是內部質量而不是外部質量,我們要把軟體做的強壯且易易擴展。但你會發現,對於外行麻瓜來說,這根本不吸引人,麻瓜老闆經常說一句話:你功能做不出來我們公司就破產了,別他媽的再花時間重構了。


至於為什麼架構師很少

內部原因是: 架構師太無趣了,相對於圖形學光照演算法,你卻強調測試驅動重構持續集成。研發工程師會得到大量的外部激勵,所有人都去贊揚他們的成果。而構架師需要從自身產生激勵的能量,比如對代碼的潔癖,重構在不改變功能的情況下不斷優化代碼質量,一個分層,一個正確的依賴關系,甚至一個精簡美麗的命名,都需要由衷地感到興奮和刺激。否則很難熬下來。


外部原因是: 浮躁的 社會 容不下一個架構師成長的時間和空間。一個框架師需要大量的項目經驗,超級長的編碼時間。堅持正確的方法和一個融洽配合的團隊。國外的架構師都是大鬍子,而國內程序員到30歲,老婆就催著要去做管理崗位了。和研發工作拼智商不同,架構師就拼的是經驗,沒大鬍子沒五六十歲很難成為xx之父這個級別。


行業原因是: 架構師容不下架構師。架構是藝術不是科學,沒有一個統一的標准,每個成型的架構師心裡都有一套屬於自己的程序結構和原則,你可以看到十個圖形學程序員基於一個演算法合作,但你很難看到兩個架構師做一個項目不打架的。架構師需要有自己的團隊來驗證自己的觀點和共同進步,但就如同食肉動物永遠是食草動物的十分之一,行業也沒那麼多團隊給架構師來糟蹋。


經歷過很多項目洗禮,並有自己的想法和能力的架構師,必然是稀有動物。


但看起來無聊的架構師有什麼用呢?

他是輔助英雄,給整個團隊加各種屬性光環:降低代碼中的混亂(熵),讓團隊中初級的程序員做出高級的代碼,提高單位時間效率避免加班,讓團隊更容易進入未知領域,大幅度降低企業成本。


我現在做的混合現實領域,這是一個新的領域,有一個優秀的架構師可以在沒有前人經驗的情況下開疆闢土,並且可以帶起來整個團隊的開發質量,降低成本給客戶更多的獲利空間。

這個問題不知道提出來的緣由是啥,其實問題不是很合適,不過還是一分為二的來回答一下,如下:

架構師不是誰都能做到的,我想說如下幾點:首先,應具備的素質應該是快速的學習能力,需要從平常的任何工作活動中,快速學習,包括從自己的本質工作完成,以及與他人的交流中,而後者又尤其重要,從別人那兒學來,而快速形成自己的理解並超越對方,而這,從自然規律角度上來講,這只有少數人能做到;

其次,需要具有全局的視野,能平衡整系統各子系統之間的解耦與耦合,這個需要積累,需要在各子系統內有實際項目的、比較成功的設計編碼的問題處理能力,而尤其是問題處理能力又尤為重要,這也不是段時間能達到。

第三,在這個行當內,能靜下心來踏踏實實,保持飢渴的學習,保持積極正向的心態,不斷的越挫越勇,始終往設計架構方面努力,在當下整個行業浮躁的環境下,很對都想通過不斷的跳槽來達到漲薪的目的,這又會淘汰一大部分人。

最後,即便具備了素質,你能否當上架構師,取決於客觀因素了。因為一個架構師,決定了他所在領域的發展規劃,以及當前的問題現狀的改進,這個位置至關重要,不是那個人,上一層組織關系是不會讓你做這個位置的,上層組織還會考察你除了技術能力以外的,諸如與人溝通,管理你的上下級,包括你的上級的上一級到連三級的關系,關繫到你的直接老闆的,這些其實就很難說了。

呵呵,當然了,還有其他很多了,靠這個問題是說不清道不全的。

真正的軟體架構師對各方面的職業素養都要求比較高。架構師的工作,不是平時工作的簡單堆疊,除了專業技能要過硬外,還要思維活,想東西細致全面,需要自己去主動去接納工作以外的大量知識。此外,在性格方面也有一定要求,一個軟體架構師往往還需要具備善於溝通的品質。


總而言之就是要技術好、思維活、會交際。大多數程序員做不到架構師的位置主要是因為自身能力達不到,其次是一個公司裡面架構師佔比本來就想小。


一般程序員在公司負責的工作主要是維護日常的需求,在原有的架構上進行修改,所以很少會接觸到架構層面的東西。長期缺少接觸相關的知識及業務的機會,久而久之離架構師的標准也會越來越遠。

年輕的程序員在知識儲備上無法達到成為架構師的標准。

現代的高可用架構一般為:RDS、Cache、MQ、後端服務、監控服務。而隨便拿其中一個點,都有著非常多的技術點知識點需要掌握。


比如在多系統交互中,如何保證MQ中的消息能被對方系統消費,如何設計高可用的服務負載均衡,這些都是需要很多經驗才可以解決,但是一般的程序員又不容易接觸到架構設計。

而年紀大點的程序員要麼是後期缺少折騰的的動力,要麼在職業發展途徑走到不同的分岔路口,最終走上架構師這個樹枝上的寥寥無幾。


小富即安的心理。很多程序員滿足於現狀,缺少堅持不斷學習不斷提高的動力,每個月拿著萬把塊錢的工資,心安理得,懶得去折騰。


一個公司架構師在廣大碼農裡面佔比還不到10%,能成為架構師的一般都在公司里擔任研發和管理的角色,想像一下公司團隊的人員金字塔你就知道競爭力有多大了。

平常,開發的團隊一般都是10多人組成。幾個團隊間一般會存在一個技術面最廣、技術經驗較充足的人,叫做架構師或者說是TL。而架構師的存在,一般在眾多的碼農中占的比例少之又少,可能連碼農總人數的10% 都達不到。軟體架構師也存在初中高級。

碼農都會寫代碼,對計算機編程語言都有自身的理解。但是很多時候,程序員或者說是碼農只是機械的完成自身的編碼工作。為了完成任務,成長有限。

看到這里,很多人都會說:編碼時間長了,經驗積累的足夠,自身也就逐漸成為了資深技術專家。想法其實不能說是不正確,在一個人見多識廣後,自然自身的內涵也就足夠的豐富。從碼農的角度出發。除了架構師,很少有35歲以上的人士會在互聯網做程序開發。而一個人想要通過機械性質的編碼積累經驗。需要多少年成長才能見多識廣呢?是否會有碼農堅持到那一時刻呢?一個值得商榷的問題?

碼農是一份年輕人為主的職業。平均從業者的年齡都是20多歲。慢慢熬、慢慢積累在碼農中也不能說錯。但是很多人在軟體開發領域積累一定的經驗後就會轉型不做開發。

所以說,長久時間的碼農很少。而在短暫的碼農開發軟體的工作中,脫穎而出,成長起來的人更少。

些許拙見,供您參考。

從事互聯網開發多年,歡迎大家騷擾

小團隊一般 10 人左右,其中常常是技術最牛的人做架構師(或TL)。所以,架構師在廣大碼農中的佔比大概平均不到 10%。而架構師也可以分為初級、中級、高級三檔,江湖上真正高水平的軟體架構師就更少了。

所以,大部分(超過九成的)碼農幹上許多年,還是做不了架構師,這是什麼原因造成的呢?

1:碼農分為真的能寫代碼的,以及自認為能寫代碼的。

2:真的能寫代碼的碼農又分為自認為寫的不錯的,以及真的還不錯的。

3:真的能寫不錯代碼的碼農又分為會鑽研會不斷優化的,以及安於現狀的。

4:會鑽研的碼農又分為喜歡廣度了解新技術蜻蜓點水的,以及深入鑽研用到知識的。

了解廣度的碼農又有少部分願意深入某些技術,喜歡深入研究的又往往缺乏廣度知識。

6:為業務而技術的深度廣度都了解的碼農,又需要有良好的溝通能力。

7:而溝通好的,又有一部分當PM去了。

8:然後剩下的,又有一部分慢慢脫離實際開發(不再做任何實現)或者開始依靠拿各種中間件搭積木來作為「架構」手段。

9:除去這些,剩下對業務有一定了解,對技術廣度上有多種涉獵,深度上對部分技術研究徹底,還有很重要的一點,考慮問題足夠細致全面。

10:細致全面善於溝通,技術上深度廣度都沒問題, 又喜歡這個工作,還會不時做底層實現,從業務和開發兩個角度出發,搭出「架構」來是為了開發效率,為了運行效率,為了開發質量,為了業務靈活和運行穩定,為了維護方便等等這樣的人,個人認為可以稱為「架構師」。

而真能滿足這種需求的,別說題主的10%的比例,1%能不能達到我也持懷疑態度。其實現在的「架構師」大多數都停留在8這個層次,甚至很多在5這個層次就當上title上的架構師了。

總之,成為架構師,不僅僅是工作上的簡單積累,更需要主動接納工作外的大量知識,同時,對性格上對於非技術能力上也有一定的要求,不僅如此連思維方式都很重要,外加職業發展中又有很多岔路,最後走到架構師這根樹枝上的就寥寥可數了。

如果你想要往架構師的方向發展的話,那或許你可以看一下我分享給你的這份進階路線圖,主要針對2到5年及以上工作經驗的Java開發人員,裡面的技術包涵了Java高並發、分布式、微服務、源碼分析、高性能等技術,這些也是目前互聯網企業比較常用的技術,那麼來詳細看看。(圖片可以保存)

一:常見模式與工具

學習Java技術體系,設計模式,流行的框架與組件

常見的設計模式,編碼必備

Spring5,做應用必不可少的最新框架

MyBatis,玩資料庫必不可少的組件

二:工程化與工具

工欲善其事必先利其器,不管是小白,還是資深開發,玩Java技術體系,選擇好的工具,提升開發效率和團隊協作效率,是必不可少的:

Maven,項目管理

Jenkins,持續集成

Sonar,代碼質量管理

Git,版本管理

三:分布式架構

高並發,高可用,海量數據,沒有分布式的架構知識肯定是玩不轉的:

分布式架構原理

分布式架構策略

分布式中間件

分布式架構實戰

四:微服務架構

業務越來越復雜,服務分層,微服務架構是架構升級的必由之路,Java技術體系,和微服務相關的技術有哪些呢?

微服務框架

Spring Cloud

Docker與虛擬化

微服務架構

五:性能優化

任何脫離細節的ppt架構師都是耍流氓,向上能運籌帷幄,向下能解決一線性能問題,Java技術體系,需要了解:

性能指標體系

JVM調優

Web調優

DB調優

如何一起學習,有沒有免費資料? 有需要的滴滴滴哦

軟體架構師?似乎是個明確的職位或者崗位了。然而,他在軟體產品開發過程中,充當什麼角色?起什麼作用?確眾說紛紜,缺乏共識。成為一名架構師,碼農根本沒有明確的努力目標。這是問題的關鍵,架構師,是上級領導、老闆對某些軟體開發人員的「認同」,是某種管理理念的體現,不是軟體產品生產活動中某個具體的崗位、角色。

C. 赴日程序員的JAVA之路

你什麼專業

去日本建議先學Cobol

學JAVA,除了學習最基礎的程序的語法,還要學

數據結構,演算法,離散數學,概率論,這都是基礎沒這些編不出像樣的程序.
還有學習JAVA前,最好有相當的C語言和C++基礎
JAVA要看的書,除了最基礎的之外,起碼還要看 <JAVA編程思想>

如果做BS開發還要學HTML JSP AJAX和框架(框架精通一兩種就OK)

資料庫起碼要會基礎的SQL語言,甲骨文資料庫和MSSQL資料庫最好都會.

另外關鍵是思想要活,還要有優化的思想,現在學生的編程基本都不考慮效率,就是實現了功能就OK,這到公司里是要挨罵的....

另不建議赴日工作,國內搞對日外包就OK了,何必到日本受氣去?

D. 現在程序員到了40歲以後都什麼出路啊

現在似乎流行販賣焦慮,還沒到40歲呢,就在擔心40歲以後的事兒了。其實除了醫生和老師,不少行業都有「青春飯」之說。比如記者(年紀大了跑不動了)、旅遊(年紀大了跑不動了)、主持人(年紀大了不好看了)、銷售、演員……等等,乍一看都很有道理。
不得不說,程序員需要青春、體力,還是有一定道理的,但「青春飯」這一說,我完全不同意。
35歲之後,你可能身為人夫、人父,同時還有老人要照顧。技術行業不斷變化、更新,隨著年齡增長,你的編程靈活性會下降,接受新技術的能力確實不如年輕人,這些都可能發生,都很正常。
但如果你如果從現在開始努力,35歲的時候,你已經擁有10年的行業從業經驗,無論是在IT行業繼續發展,還是像李開復一樣進行投資,轉戰其他行業,都有很多選擇。
在行業內,那時的你可以管理崗位,或者轉做軟體構架師、軟體項目經理或新程序員指導人。但還有一些涉及硬體底層匯編、C語言、驅動程序、協議等和計算機底層相關人員可以繼續深入的開發,不受年齡限制,而且越老越有經驗,
轉戰其他行業,試想比如投資,懂技術的你,看投資項目的時候,能看懂項目技術的實力、是否解決行業痛點,是不是會天生比其他人有「護城河」?
當然,也一定會有概率,有一部分人被時代所淘汰,或者沒有青春的時候那麼「吃香」,這種情況就是這部分人,像流水線上的工人,完全沒有思考和成長,隨時可能會被替代,但這種情況每個行業都有,我反而認為,程序員行業會是概率很低的。
有沒有「青春飯」這個概念,關鍵在於,你是不是在吃「青春"這碗飯!只要你從現在開始努力提升自己的技能,自然有路一直給你走下去。

閱讀全文

與程序員不走岔路相關的資料

熱點內容
java修改ip 瀏覽:149
php不需要編譯嗎 瀏覽:134
特斯拉新車如何用app控制 瀏覽:185
文檔拖到文件夾就不見了 瀏覽:814
標致308壓縮比是多少 瀏覽:749
伺服器和備用伺服器地址 瀏覽:926
程序員加班跳槽 瀏覽:706
青年員工在工作中如何化解壓力 瀏覽:602
包子解壓神器怎麼玩才爽 瀏覽:733
聯想加密電腦怎麼做系統 瀏覽:881
解壓最近的壓力 瀏覽:709
如何知道王牌戰爭新出來的伺服器 瀏覽:591
程序員建的房子 瀏覽:419
navicatlinux破解版 瀏覽:454
找個輔警或者程序員 瀏覽:452
軍團td預言命令 瀏覽:114
營指揮員下達作戰命令 瀏覽:258
exe打開指定文件夾 瀏覽:265
pdf裡面怎麼去水印 瀏覽:845
appleid賬號加密碼 瀏覽:221