導航:首頁 > 程序命令 > 程序員小才

程序員小才

發布時間:2023-01-31 18:57:56

1. 程序員是吃青春飯的嗎,可以干到多少歲

作為一個技術老兵,在技術行業內混了十幾年了,明顯能感覺到目前國內軟體開發工作,在某些行業就是吃青春飯般的存在,尤其是表現在互聯網公司,而且公司越大加班的瘋狂程度越強,互聯網公司更加喜歡招收一些年輕人畢竟工資相對低一點,沖勁還足最關鍵能不惜體力的加班,國內互聯網公司大部分做的事情跑馬圈地,應用級的開發居多,所以難度不是很高,有了2,3年的工作經驗就可以跟著做了,誰的執行力強能夠加班更加被公司所喜愛,很多老程序員在互聯網公司體驗幾年基本上就回歸傳統軟體企業了。

很多公司在招聘的時候發現年齡超過35歲就開始有意設置門檻了,畢竟這個年齡段的程序員人生閱歷也比較豐富,對於職場上的一些事情也摸得比較透徹,說的不好聽就是職場的老油條了,公司出個什麼政策這幫人看到比較徹底,不容易忽悠,年輕點的更加容易被接受,所以說成是吃青春飯的職業有點誇張,但一定程度上也能說得過去,國外40多歲繼續做研發的環境要不國內還是好很多,但也在一定程度上找工作受到一定的制約,現在過40多歲如果還在寫代碼肯定被周圍的人議論了,都這么大了也沒混上個管理職位之類,現在這個年齡段還在一線寫代碼的數量也不在少數,基本上屬於公司頂樑柱存在,絕大部分做著技術管理,並沒有完全脫離技術崗位,遇到難點還是上陣去解決問題。

老程序員如何在技術生涯找好自己的方向點?

1.盡早向技術管理方向轉移

越是拖到最後完成轉型形式越是被動,管理是一種學問,不像是玩技術你把自己管理好久萬事大吉了,技術類的管理如果在技術能力到位的情況下可以,以技術服人這樣無形之中減少了管理的阻力,更加容易讓底下的人信服,平時多補一些管理方面的基礎。如果有轉的想法今早實施,做什麼事情都要趁早。

2.將技術進行到底

技術類在職場上的分支有兩個主項,一個是管理方向,可以沿著這個路線一直做到副總或者更高的級別;還有一個技術專家方向,對別的事情不感興趣就想著一輩子能研究點技術,也沒有什麼大的追求,在很多公司專門設置某個項目的技術專家稱號,職位基本上和技術經理持平,算是同一個級別,同樣是拿著這個級別的薪水。

技術職位如果技術足夠強,可以考慮直接在這個方向一直走向去,無論國內還是國外對於高級的技術專家永遠都是持開放的程度,金字塔上層的技術人才畢竟是少數,但也是技術領域一直欠缺的,如果喜歡技術並且乾的還不錯就可以考慮在這個方向上一直堅持到底。

3.轉行做別的職業,闖出另一番天地

很多程序員中間轉行挑戰別的行業,只要能把一個職業做好一定能夠把別的方向給弄好,嘗試新的天地未嘗不是一個方向,新的方向新的起點新的挑戰,可能帶來的是新的收獲。

作為一個程序員也有隨著年齡的增長有一種無形的壓力在心頭,能做的就是拚命提升自己的技術能力,擔心年齡大了淘汰,只能是繼續提升技術和管理水平。

希望能幫到你。

很多人都說程序員這個行業就是吃青春飯的,為什麼會有這樣的問題呢,難道程序員真的感到30歲就要退休了嗎,或者必須轉行嗎?程序員難道不就是敲代碼嗎,難道年紀大了敲代碼就不能敲不動了嗎?不是都說程序員靠經驗嗎,經驗越豐富,不就是技術越豐富嗎?作為過來人,今天索性沒啥事,就和大家一起聊聊這個話題吧。

首先、先說說為什麼會有這樣的傳言,為什麼會有這樣的說法吧。

第一個 就是很多人在這個行業干久了,從大學畢業到30歲至少也得6,7年了吧,行業做久了很多人自己也會感到厭煩,也想換換新的行業,嘗試一下新的崗位,當然轉行有風險,所以很多人轉行都是轉比較靠近的,比如做運維、做產品、做教育、當然走管理路線也是,這些都是比較輕松好轉的行業,基本風險不大。

第二個 就是很多做開發公司加班比較多,晚上下班回家比較晚,陪老婆孩子沒時間,況且加班熬夜身體吃不消,搞不好把身體搞垮了,而且大部分程序員都是懶得運動,健身的人,作息時間不規律,最後30歲的人居然熬成了快60歲的大爺,這就是為什麼很多人都說程序員就是禿頂(這里我要澄清一下不適所有程序員都是禿頂呀,至少我還完好的保留著頭發),在這里不得不替這些人傷心3秒鍾。最後連娶老婆都去不到,還有很多連說話都說不通的人,表達能力已經到達到了原始 社會 。

第三個 就是很多那種在公司混日子,技術能力差一點的,以為公司就是可以養老的人,技術干不過別人,工資不見長,可以說非常佛系的,在這個行業混了個6,7年,終於待不下去了,壓力大呀,老婆孩子一家人的希望呀,最後選擇了轉行,最後離開的原因竟然是公司不需要這種人了,但是我們想想哪怕是爭一口氣也不會混到這么差呀。

其實呢,不是說程序員真的就是考吃青春飯,30歲之後就必須的轉行,想想原因還是在這些人自己身上,年輕不願意拼實力,不願意積累點能量,真正有技術的人,想想公司能放走嘛、高薪難道還差嗎,除非那公司真的做的有點過分,虧待功臣,卸磨殺驢呢,自己不爭氣在前,怎能怪別人呢。

當然加班、熬夜這些都是存在,但是其他行業也不好做,那些高管,有錢的職業經理人,哪一位不辛苦呢,而且其他行業也是一樣,老闆雖然壓榨,但是真正想要福利好的,除非公務員,不然工資很低,所謂功高者後祿,這個不會假。

另外當然也有很多願意嘗試新行業的人,願意挑戰,嘗試新的開始這也有很多。總的來說,程序員真的是不是吃青春飯呢,不能一概論之,有經驗,有能力的人,高薪,誰願意走。

絕大多數程序員確實是吃年輕飯。

不管你願意不願意承認,等你到40歲之後就知道了。

這里有個界定,從事研發的排除在外,從事開發的包括在內。要注意研發和開發是兩個不同的概念。

一般研究所,研究生院中的程序員多叫工程師,這類人是越老越值錢。年紀大經驗越多,能力扎實,對做研發突破苦難起到至關重要的意義。

而開發不同,開發更多是面相年輕人來做的,你開發一款軟體給60歲的老大爺們,且不說你開發的好不好,老大爺他也不會用。

一般從事開發的程序員在35-45歲時是個分水嶺,能力強,有水平能熬到領導層,或者能獨當一面,那麼就留下來。如果不能基本就被淘汰了。而這部分留下來的人只是少數。

為什麼程序員要年輕化?第一,上面說過,開發主要針對的用戶是年輕人,那麼只有年輕的程序員才知道年輕人喜歡什麼愛好什麼。讓一名60歲的老程序員寫一個 游戲 ,能火起來的概率不大。第二,年輕人無牽掛,肯吃苦,能加班熬夜,工資待遇又相對低。上了年紀的程序員家裡有老婆孩子需要管,還有父母需要照顧,也沒有了年輕時干勁,思想也漸漸和 社會 主流脫鉤,並且工資還極高。這個時候如果這個老程序員不能為企業創收,那麼辭退一名老程序員,省下的薪水可以在招好幾個大學畢業生。

有些話不是空穴來風,也不是無能人的借口,看看各大企業裁員的年齡段就知道了。

只有碼農,靠蠻力,用體力而不是用腦力的程序員才是吃青春飯的人!

大多數程序員都認為程序員是個吃青春飯的職業,編程這個事只能幹到30歲,最多35歲吧。每每聽到這樣的言論,都讓人感到相當的無語……

有研究者用了最近5年內比較流行的技術Tag,然後用了一套比較嚴謹的演算法來查看那些所謂的「老程序員」是否在新技術上跟上不了,所謂跟不上,也就是這些老的程序員在回答這些新技術上並不活躍。所謂老,就是37歲以上的程序員。

老程序員和年輕的程序員對於一些新技術的學習來說也是差不多的,甚至有些項目還超過了年輕的程序員:

1、程序員技術能力上升是可以到50歲或60歲的。

2、老程序員在獲取新技術上的能力並不比年輕的程序員差。

由於如今許多的年輕程序員太浮躁了,才會說30歲是程序員的頂峰。

其實,對於大多數人來說,如果還沒有編程到30歲,還不能成為一個「合格」的程序員。所以,並不是編程編到30歲就玩完了,而是編程編到30歲才剛剛入門。

在我身邊,就有一些年齡在40以上,並且還對技術保持熱衷的「老程序員們」,他們無一不是身懷絕技,在公司身居要職或高管,成為公司最寶貴的技術保障。

工齡超過三十年了,做了一輩子程序員,單位還在不斷招人,所以還有事情做,沒有坐冷板凳,不存在什麼危機。。

公司也很重視加班,但我早就過了干體力活的階段,領導並不管我加不加班。進度慢了領導就會說你需要人嗎。

學新技能么,還好吧,java,c語言這樣的經典可以用一輩子,重要的是有編程思維,學習並使用哪種語言很容易。

做一輩子程序員肯定是可以的,只是很多人不願意而已。可能男人野心大了些吧,編程一輩子覺得很丟臉,總想往上爬。。身為女性就沒那麼多想法,人到中年,有人願意雇我們有口飯吃就滿足了,老老實實幹活的人,老闆不會不要的,換過幾次工作,並沒有遇到年齡障礙,也沒有刻意去經營人脈,你的表現如何,別人都是默默看在眼裡的。。

回顧一下,有幾點經驗,一是不管坐哪個職位,不能丟掉編程這個技能,做了很多項目的負責人,框架自己搭,核心模塊自己寫,技術掌握在自己手裡,項目完成有保障。。項目結束了,就要去當普通程序員,有一手過硬的編程技能,還是挺受歡迎的。二是不能總是生活在一個舒適圈裡,要不斷學習新知識,迎接新的挑戰,每次接受新的項目或任務,一定要有所突破,不能只是單純的重復。

我也算是這個行業的一位老兵了,從13年到現在也快八年了,程序員其實是挺費身體的,熬夜加班家常便飯,所以我覺得程序員是在吃青春飯,互聯網公司基本上都存在一個問題就是看誰下班的晚,不管你在公司有沒有在做事情,只要你下班比其他人晚那麼你的績效就一定不會差。至於我現在的話已經沒有經常加班了,偶爾發一下版,上下班都比較規律,這就是我還在堅持的原因,程序員能幹到多少歲這全看你自己,我身邊三十多歲依然在干程序員,雖然程序員吃青春飯,但是你自己也可以選擇往中層或者其他崗位去轉,肯定不能再像初出校園那樣,不然身體遲早吃不消的,禿頭,脂肪肝,亞 健康 ,近視,腰椎間盤脫出這些都是普遍存在的,大家不要覺得程序員的工資就一定非常的高,這也要看地方,像重慶程序員的工資還真不如有些工種。

大多數程序員認為程序員是吃青春飯的工作。編程只能幹到30歲,最長可達35歲。我經常聽到這樣的話,都讓人感到適當的無語......

今天,我們來談談這個老話題......

首先,我們來看一篇論文《Is Programming Knowledge Related to Age?》(英文版)。本文是來自北卡羅來納州立大學計算機科學系的兩個人,他們在StackOverflow.com上對用戶進行了相關的數據挖掘。一些數據出來了。(StackOverflow.com上的數據被公開,任何人都可以使用它進行分析和核算,所以這篇論文的實際情況還可以。

讓我們來看看他們的年齡分布圖:我們可以看到程序員年齡的正常分布(高點大約是25歲,但中點大約是29歲)然後,計算每個人的月營業額,這樣你就可以找到用戶的真實生動的時刻,這樣便於計算程序員的真正才能。 (總聲望/活潑時刻),我可以得到他每個月均勻得到的Reputation。我們可以看到程序員的才能從25歲開始上升,並且直到50歲才會開始下降。因此,程序員不吃青春飯的。只有碼農,依靠蠻力,使用武力而不是腦力的程序員才是吃青春飯的人。

年齡大可以跟上新技能嗎?該論文的作者使用了過去5年更受歡迎的技能標簽,然後使用更謹慎的演算法來檢查所謂的「老程序員」是否跟上新技能。所謂的跟不上,也就是說,這些老程序員並沒有積極回答這些新技能的問題。所謂的老,就是是37歲以上的程序員。

我可以看到老程序員和年輕程序員在學習一些新技能方面相似,有些甚至超過了年輕的程序員。

論文的結論是:

1、程序員技能可以升至50或60歲。

2、老程序員在獲得新技能方面並不比年輕程序員差。

結論

從上面的數據可以看出,由於現在很多年輕程序員都太浮躁了,據說30歲是程序員的巔峰。事實上,對於大多數人來說,如果你沒有編程到30,你就不能成為「合格的」程序員。因此,並不是編程編到30歲就玩完了,而是編程編到30歲才剛剛入門。

這個問題,我應該比較有發言權,大城市呆過2年然後回了小城市,5年程序員轉行當老師。大部分程序員是吃青春飯的,因為大部分程序員干技術,只是停留在應用層面,沒有足夠的平台,5年後很難再有質的提升。技術有了提升後,還需要有足夠大的平台才能撐的起你的薪資。我離開程序員行業的導火索是見到某公司,辭退唯一的一個45歲架構師。當然如果你可以不要求高薪,放平心態,我相信很多公司還是願意要大齡程序員的。

到35歲還在基層那基本上就是沒希望了,隨著年齡增長,思維能力不如年輕人,如果不能升上去帶團隊,那隻能一直做基層碼農。

程序員三十以後就老了,一是技術更新太快,二是經常性熬夜加班,三十以後轉管理崗,搞技術吃不消了。

2. 一般程序員的工資是多少

一般程序員的工資大概就是1萬~12000左右。如果平時有加班會更高。

3. 一個好的程序員至少應該具備哪些條件

樓上的幾位顯然誤會我的意思了,我並不是說不應當寫文檔加註釋注重團隊精神,看看下面的一篇文章,那位三天就寫出UNIX的他需要寫文檔注釋和團隊精神嗎,他用不著。哪個高手沒有一點傲氣和自信,他之所以敢對用戶說:拿到你想要的,然後滾蛋,你已經很幸運了!是因為他有這個資本。天才本就不循規蹈矩,那樣他就不叫天才了。

MIT BBS上說微軟電話面試的一道題就是「Who do you think is the best coder,
and why?」。我覺得挺有意思的,也來湊個熱鬧。排名不分先後。

Bill Joy, 前任Sun的首席科學家,當年在Berkeley時主持開發了最早版本的BSD。他還
是vi和csh的作者。當然,Csh Programming Considered Harmful 是另一個話題樂。據
說他想看看自己能不能寫個操作系統,就在三天里寫了個自己的Unix, 也就是BSD的前
身。當然是傳說了,但足見他的功力。另一個傳說是,1980年初的時候,DARPA讓BBN在
Berkley Unix里加上BBN開發的TCP/IP代碼。但當時還是研究生的B伯伯怒了,拒絕把BBN
TCP/IP加入BSD,因為他覺得BBN的TCP/IP寫得不好。於是B伯伯出手了,端的是一箭封
喉,很快就寫出了高性能的伯克利版TCP/IP。當時 BBN和DARPA簽了巨額合同開發TCP/IP
Stack,誰知他們的代碼還不如一個研究生的好。於是他們開會。只見當時B伯伯穿
個T-shirt出現在會議室(當時穿T-shirt不象現在,還是相當散漫的哈)。只見BBN問:你
怎麼寫出來的?而B伯伯答:簡單,你讀協議,然後編程就行了。最令偶暈倒的是,B伯
伯碩士畢業後決定到工業界發展,於是就到了當時只有一間辦公室的Sun, 然後他就把
Sparc設計出來樂。。。象這種軟硬通吃的牛人,想不佩服都不行的說。據Bill Joy的同
事說,一般開會的時候B伯伯總是拿一堆雜志漫不經心地讀。但往往在關鍵之處,B伯伯
發言,直切要害,提出漂亮的構想,讓同事們徹底崩潰。對了,他還是Java Spec和JINI
的主要作者之一。

John Carmack,ID Software的founder和Lead Programmer。上個月和一個搞圖形的師兄
聊天,他竟然不知道John Carmack, 也讓偶大大地暈了一把。不過也許搞研究的和搞實
戰的多少有些隔吧。想必喜歡第一人稱射擊游戲的都知道J哥哥。90年代初只要能在PC
上搞個小動畫都能讓人驚嘆一番的時候,J哥哥就推出了石破天驚的Castle Wolfstein,
然後再接再勵,doom, doomII, Quake...每次都把3-D技術推到極限。J哥哥的簡歷上說
自己的專長是"Exhaust 3-D technology",真是牛人之言不我欺的說。做J哥哥這樣的人
是很幸福的,因為各大圖形卡廠家一有了新產品就要向他「進貢"
,不然如果他的游戲不支持哪種卡,哪種卡基本就會夭折樂。當初MS的Direct3D也得聽
取他的意見,修改了不少API。當然,J哥哥在結婚前十數年如一日地每天編程14小時以
上,也是偶們凡人望塵莫及的。對了,J哥哥高中肆業(?),可以說是自學成才。不過
呢,誰要用這個例子來為自己學習不好辯護,就大錯特錯了。那 Leonardo Da Vinci還
是自學成才呢(人是私生子,不能上學)。普通人和天才還是有區別的。對了,其實偶們
叫「達分奇」是相當不對的,因為Vinci是地名,而Da Vinci就是從Vinci來的人的意
思。換句話說,Leonardo Da Vinci就是「從Vinci來的Leonardo」的意思。叫別
人「Da Vinci」就不知所謂樂。嗯,扯遠了,打住。

David Cutler,VMS和Windows NT的首席設計師,去微軟前號稱矽谷最牛的kernel開發
員。當初他和他的手下在微軟一周內把一個具備基本功能的bootable kernel寫出來,然
後說:「who can't write an OS in a week?",也是牛氣沖天的說。順便說一句,D爺
爺到NT3.5時,管理1500名開發員,自己還兼做設計和編程,不改coder本色啊。

D爺爺天生脾氣火爆,和人爭論時喜歡雙手猛擊桌子以壯聲勢。 日常交談fuck不離口。
他面試秘書時必問:"what do you think of the word 'fuck'?" ,讓無數美女剎羽而
歸。終於有一天,一個同樣火爆的女面對這個問題脫口而出:"That's my favorite
word"。於是她被錄取樂,為D爺爺工作到NT3.5發布。

Don Knuth。高爺爺其實用不著偶多說。學編程的不知道他就好像學物理的不知道牛頓,
學數學的不知道歐拉,學音樂的不知道莫扎特,學Delphi的不知到 Anders Hejlsberg,
或者學Linux不知道Linus Torvalds一樣,不可原諒啊。為了讓文章完整,就再羅唆幾句
吧。高爺爺本科時就開始給行行色色的公司寫各種稀奇古怪的編譯器掙外快了。他賣給別
人時收一兩千美元,那些公司拿了code,加工一下賣出去就是上萬上十萬。不過也沒見高
爺爺不爽過,學者本色的說。想想那可是60年代初啊,高爺爺寫編譯器寫多了,順帶就搞
出了個 Attribute Grammar和LR(k),大大地造福後人啊。至於高爺爺在CalTech的編程比
賽(有Alan Kay得眾多高高手參加)總是第一,寫的Tex到86年就code freeze,還附帶2^n
美分獎勵等等都是耳熟能詳的,偶就不饒舌樂。

順便說一下,高老大爺是無可爭議的寫作高手。他給Concrete Mathematics 寫的前言可
謂字字鏗鏘,堪為前言的典範。他的技術文章也是一絕,文風細致,解釋精當,而且沒
有學究氣,不失輕快跳脫。記得幾年前讀Concrete Mathemathics,時不時開懷大笑,讓
老媽極其郁悶,覺得我nerdy到家,不可救葯。其實呢,子非魚,安知魚之樂,更不知那
完全是高爺爺的功勞。說到寫作高手,不能不提Stephen A. Cook。他的文章當年就被我
們的寫作老師極力推薦,號稱典雅文風的樣本。庫爺爺一頭銀發,身材頎長,總是面帶
謙和的微笑,頗有仙風道骨,正好和他的仙文相配的說。

高爺爺其實還是開源運動的先驅。雖然他沒有象Richard Stallman那樣八方奔走,但他
捐獻了好多作品,都可以在網上看到,比如著名的Mathematical Writing,MMIXWare,
The Tex Book等,更不用說足以讓他流芳百世的Tex樂。

Ken Thompson,C語言前身B語言的作者,Unix的發明人之一(另一個是Dennis M. Riche
老大,被尊為DMR),Belle(一個厲害的國際象棋程序)的作者之一, 操作系統Plan 9的主
要作者(另一個是大牛人Rob Pike,
前不久被google挖走了)。Ken爺爺也算是計算機歷史上開天闢地的人物了。1969年還是
計算機史前時代,普通人都認為只有大型機才能運行通用的操作系統,小型機只有高山
仰止的份兒。至於用高級語言來寫操作系統,更是笑談。Ken爺爺自然不是池中物,於是
他和DMR怒了,在1969年到1970間用匯編在PDP-7上寫出了UNIX的第一個版本。他們並不
知道,一場轟轟烈烈的UNIX傳奇由此拉開了序幕。Ken爺爺在1971年又把Unix用C重寫,
於是C在隨後20年成就了不知多少豪傑的夢想和光榮。

Ken爺爺還有段佳話: 裝了UNIX的PDP-11最早被安裝在Bell Lab里供大家日常使用。很
快大家就發現Ken爺爺總能進入他們的帳戶,獲得最高許可權。Bell
Lab里的科學家都心比天高,當然被搞得郁悶無比。於是有高手怒了,跳出來分析了UNIX
代碼,找到後門,修改代碼,然後重新編譯了整個UNIX。就在大家都以為「這個世界清
凈了」的時候,他們發現Ken爺爺還是輕而易舉地拿到他們的帳戶許可權,百思不解後,只
好繼續郁悶。誰知道這一郁悶,就郁悶了14年,直到Ken爺爺道出個中緣由。原來,代碼
里的確有後門,但後門不在Unix代碼里,而在編譯Unix代碼的C編譯器里。每次C編譯器
編譯UNIX的代碼,就自動生成後門代碼。而整個Bell Lab的人,都是用Ken爺爺的C編譯
器。

(6)Rob Pike, AT&T Bell Lab前Member of Technical Staff ,現在google研究操作系
統 。羅伯伯是Unix的先驅,是貝爾實驗室最早和Ken Thompson以及Dennis M. Ritche開
發 Unix的猛人,UTF-8的設計人。他還在美國名嘴David
Letterman的晚間節目上露了一小臉,一臉憨厚地幫一胖子吹牛搞怪。讓偶佩服不已的
是,羅伯伯還是1980年奧運會射箭的銀牌得主。他還是個頗為厲害的業余天文學家,設
計的珈瑪射線望遠鏡差點被NASA用在太空梭上。他還是兩本經典,The Unix
Programming Environment 和 The Practice of Programming 的作者之一。如果初學者
想在編程方面精益求精,實在該好好讀讀這兩本書。它們都有中文版的說。羅伯伯還寫
出了Unix下第一個基於點陣圖的窗口系統,並且是著名的blit終端的作者。當然了,羅伯
伯還是號稱銳意革新的操作系統,Plan9,的主要作者。可惜的是,Plan9並沒有引起多
少人的注意。羅伯伯一怒之下,寫出了振聾發聵的雄文 Systems Software Research is
Irrelevant,痛斥當下系統開發的不思進取,固步自封的弊病。雖然這篇文章是羅伯伯
含忿出手,頗有偏激之詞,但確實道出了系統開發的無奈:開發周期越來越長,代價越
來越大,用戶被統一到少數幾個系統上,結果越來越多的活動是測量和修補,而真正的
革新越來越少。

就在羅伯伯郁悶之極的時候,google登門求賢來樂。如果說現在還有一家大眾公司在不
遺餘力地把系統開發推向極致的話,也就是google樂。隨便看看google的成果就知道
了。具有超強容錯和負載平衡能力的分布式文件系統GFS
(現在能夠用100,000台廉價PC搭起一個巨型分布系統,並且高效便宜地進行管理的系統
也不多哈),大規模機器學習系統(拼寫檢查,廣告匹配,拼音搜尋。。。哪個都很牛的
說),更不用說處理海量並行計算的各式google服務了。Rob在System Software
Research is Irrelevant里蕭瑟地說現在沒有人再關心系統研究的前沿成果了。想不到
他錯了,應為google關心。google網路了大批功成總是試圖吸取系統研究的最新成果。
想必Rob Pike在google很幸福。願他做出更棒的系統。

Dennis M. Ritchie, 既然Ken Thompson是我的偶像,新聞組上人稱DMR的Dennis M.
Ritchie自然也是,畢竟兩人共同締造了UNIX,而Dennis幾乎獨力把C搞大(當然,C的前
身是B,而B是Ken Thompson一手做出來的)。兩人1983年分享圖靈獎,是有史以來少數幾
個因工程項目得獎的工程師(本來是唯一的一對兒,但Alan Kay才因為SmallTalk得獎,
所以就成了唯二的樂) 一個人一生能做出一個卓越的系統已經不易,DMR的C和UNIX長盛
不衰近30年,至今生機勃勃,DMR此生可以無憾的說。

D爺爺也算有家學淵源:他老爸在AT&T貝爾實驗室工作了一輩子,並在電路設計方面卓有
成就,還出了本頗有影響的書The Design of Switching Circuits,據說在交換理論和
邏輯設計方面有獨到的論述。當然,D爺爺和他老爸是不同時代的人:他老爸的研究成
形於晶體管發明之前,而D爺爺的工作離了晶體管就玩兒不轉樂。:-D

不要看D爺爺搞出了C,其實他最愛的編程語言是Alef,在Plan9上運行,支持並行編程。
Alef的語法和C相似,但數據類型和執行方式都和C大大不同。說到語言,D爺爺對後來
人有非常中肯的建議:抱著學習的目的來開發你自己的語言,不要冀望於它被眾人接
受。這個建議不光對語言開發有用,也適用於其它大型系統的開發。別的不說,DMR後來
領導自己的團隊在1995年和1996分別推出了Plan9和Inferno操作系統,又用多少人知道
呢?其實,D爺爺當初也沒想過C會風行世界。他開發C的初衷和Eric S. Raymond
在Cathedral and Bazaar里闡述的一樣,就是要消除自己對現有工具的不爽之處。誰
知D爺爺無心插柳,C竟然受到眾多程序員的狂熱擁戴,連D爺爺自己都大惑不解。在一次
采訪中D爺爺說大概那是因為C的抽象程度碰巧既滿足了程序員的要求, 又容易實現。當
然C一度是Unix上的通用語言也是原因。但不管怎麼說,D爺爺對編程語言出色的審美意
識奠定了C廣為流傳的基礎。

最後八卦一下。D爺爺的業余愛好和NBA大牛Karl Malone一樣:開卡車。不過D爺爺更喜
歡開NASCAR,而KM獨愛巨無霸。J D爺爺自稱心中不供偶像,如果一定要說一個,那就
是Ken Thompson了。現在Ken爺爺退休當飛機教練去了,而D爺爺當了貝爾實驗室系統開
發部的頭,整日忙於開支票。他倆合作20年,屢屢創造歷史。這段令人神往的佳話,也
就長留你我心中樂。

P.S., 很多人都以為Brian W. Kernighan是C的作者。其實BWK只是寫了那本經典K&R C。
據D爺爺說,他,Ken, 和Kernighan三人中,Kernighan最能寫文章,他次之,而Ken寫
得最少;但說到編程,Ken爺爺才是當之無愧的老大。

Edsger Wybe Dijkstra, 對,就是E.W. Dijkstra. 一提到EWD,很多人就會想起找最短
路徑的Dijkstra Algorithm,就好像一提到Sir. Tony Hoare,就想起Quick Sort一樣。
其實這些個演算法不過是兩個牛人在他們職業生涯中最瑣碎的貢獻。比如Dijkstra演算法,
無非是戴爺爺在1956年為了展示新計算機
ARMAC的計算能力,初試身手的成果,屬於他的演算法處女作。據戴爺爺自述,他搞出最
短路徑演算法的時候連紙筆都沒用。當時他和他老婆在阿姆斯特丹一家咖啡廳的陽台上曬
太陽喝咖啡,突然就把這個演算法想出來樂。而且當時的演算法研究還比較原始,牛人們忙
著用計算機搞數值計算,對離散演算法不屑一顧。那時連一個象樣的專注於離散演算法的專
業期刊都沒有。戴爺爺於是推遲發表這個演算法。直到1959年,他才把這個演算法發表
在Numerische Mathematik的創刊號上,權為捧場。:-)
EWD在多個領域牛氣沖天,端的是理論和編程兩手硬的高手。只不過他的很多工作比較
深刻,學校的老先生們覺得本科生接受不了,不給本科生講而已。

戴爺爺大概因為最短路徑演算法一戰成名,於是有人請他參加另一台計算機X1的設計工
作,並且把設計實時中斷系統的任務派給了他。現在看來實時中斷也許不算什麼,但要
知到,X1前根本就沒有實時中斷的概念。實現它簡直就是一場豪賭。戴爺爺起初還不情
願,但經不住項目負責人Bram和Carel的輪番 「吹捧」:我們知道實時中斷讓您工作變
得非常困難,但象您這樣的牛人肯定能做出來的說。結果戴爺爺被糖衣炮彈徹底擊穿,
接下了這個燙手山芋。兩三年後,他不僅搞出了實時中斷,還圍繞這個寫出了自己的博
士論文,順利戴上博士帽。

讓戴爺爺真正成名立萬的還是在X1上開發的Algo60,最早的高級語言之一。戴爺爺沒日
沒夜地工作了8個月,就搞出了Algo60,也因此獲得了 1972年的圖靈獎。因為Algo60,
戴爺爺發表了一篇石破天驚的文章:Recursive
Programming,於是人們才知道,原來高級語言也可以高效地實現遞歸,原來從此以後,
所有程序員都不可避免地和戴爺爺發明的一個詞(應該說是概念)打交道:堆棧。
而且Algo60還讓戴爺爺深入地思考多道程序設計的問題,最終發明了每個系統程序員
都繞不開的概念:semaphore。當然,戴爺爺總是把他發明的概念嚴格形式化,極具科
學家本色的說。和這些成就想比,他提出的吃飯的哲學家問題,也就沒什麼好說的了。

說來好笑,當時的大學(忘了哪所了)還是覺得戴爺爺沒有受過正統的數學訓練,也不是
專門搞數值分析的,所以最後不太情願地給了他一個教職。這種小挫折並不能妨礙象戴
爺爺這樣的牛人創造歷史。他一邊教數值分析(:-D) ,一邊開始開發一個新的操作系
統,並培養計算機科學家。幾年後,THE Multiprogramming
System橫空出世。THE是第一個支持鬆散耦合,顯式同步的進程並由此使得嚴格證明系統
沒有死鎖變得容易的操作系統。可惜戴爺爺任職的系不識貨,還強行解散了他的研究小
組(1972年戴爺爺給他的系主任說他得了圖靈獎,系主任的第一反應是你們搞計算機就
喜歡亂發獎)。這讓戴爺爺相當郁悶,得了抑鬱症。在極度郁悶之中,戴爺爺決定用寫作
來治療自己的抑鬱症。於是經典就誕生樂:Notes on Structured Programming。戴爺爺
從此被尊為結構化編程的奠基人,而且他的抑鬱症也被治好樂。

EWD太牛,結果他的故事也太多。先到這里吧。1973起,他的故事就在美國發生了。

Anders Hejlsberg,微軟.NET的首席架構師,編程語言設計和實現的頂尖高手。他一手
做出了 Turbo Pascal, 也是Delphi, J++(尤其是WFC),C#, 和.NET的主要作者。這些作
品的名字足以為他立傳。作為一個程序員,我在這樣的大師面前實在無語。生子當
如Anders的說。李維的<>里已詳細講述了Anders的傳奇故事,我就不用費舌了:

http: //java.mblogger.cn/iexploiter/posts/1505.aspx

Artima上有Anders談C#的系列訪談。MSDN上有一段Anders導游的錄像 。有興趣可以去看
看牛人的豐采。

4. 程序員到底能幹到多少歲35歲真的是程序員的分水嶺嗎

我個人認為程序員可以干到退休;35歲的確是大部分程序員的分水嶺。

總的來說,只要你身體允許,程序員干到多少歲都可以。至於分水嶺問題,只有在大公司才有,中小公司沒有35歲分水嶺這一說法。

5. 做程序員需要什麼學歷

程序員因為是從事程序開發、程序維護的專業人員,所以通常需要大專學歷及以上的學歷。

一般將程序員分為程序設計人員和程序編碼人員,但兩者的界限並不非常清楚。軟體從業人員分為初級程序員、中級程序員、高級程序員(現為軟體設計師)、系統分析員,系統架構師,測試工程師六大類。

(5)程序員小才擴展閱讀:

程序員通常要求熟悉並熟練掌握交付軟體部開發的軟體項目的相關軟體技術;負責向項目經理及時反饋軟體開發中的情況,並根據實際情況提出改進建議。

參與軟體開發和維護過程中重大技術問題的解決,參與軟體首次安裝調試、數據割接、用戶培訓和項目推廣;負責對業務領域內的技術發展動態進行分析研究。

6. 如何辨別一個程序員水平的高低

1.自己介紹項目,看對項目的提煉總結能力(也是抽象能力);
2.自己印象最深的bug,可以知道大概技術深度;
3.設計模式提問,看有沒有學習方法;
4.語法基礎問題,多線,分布,安全等問題,看知識面廣度;
5.智力問題,看反應能力,分析問題思路等
上述五步基本可知是否是一個好程序猿

計科專業從事軟體開發十幾年了,主要在瀏覽器內核領域研究的比較多,最近在研究伺服器後台方向,辨別程序員水平高低主要看做出了什麼產品,如同現在的程序員主要是項目經驗,簡歷上寫的一堆項目經驗都是面試的時候主要提及的問題。經常在面試中會問兩個關鍵點:一個是做過什麼項目;一個是在項目組中承擔什麼職務,畢竟參與過和做的多少程度是不一樣的,這些都是可以通過一些具體的細節檢測出來,問題越具體越是容易看出水準,具體的東西不是能夠編造出來的。

有很多技術公司直接不通過筆試,僅僅通過簡單的面試就確定工資水準了,最簡單的測試程序員水平的直接用筆試的方式,筆試可以把一些細節量化,盡量的細節化也是能測試出程序員基本功的,但這種基本用來測試初級程序員的,很多高級的程序員看到有筆試直接就抬腿走人了,因為有些程序員在一個方向做的時間太長了,很多基本功都忘得差不多了,所以筆試可能不過關,現實中很多程序員筆試不過關,面試還可以,也一樣可以做項目說的就是這類人,起碼這算是非常優秀的程序員。

有很多公司採用谷歌的方式,直接採用上機寫代碼的方式檢驗程序員水平,這種方式比較直接,但在現實中可能消耗的時間以及面試官的精力,目前只有極少數的公司用這種方式,國外的公司用這種方式比較多,這種看基本功非常有效。通過代碼可以看到編碼習慣以及演算法的設計上,都能直接看的出來。

普通的程序員直接看項目的經驗,高級的直接看做過的產品,特別是產品主要設計人員,這就是程序員內心的自豪感,畢竟作為一個程序員起碼要有自己設計開發的產品,也算是不白做一個程序員,在程序員的職業經歷中如果能經歷過一個產品從開始設計的初稿到最後推向市場,如果是完整的經歷,將是一種巨大的財富,只要經歷過一次都會對產品設計有一個比較層次的認識,這種能力需要靠直接的面試語言表達來展示出來,談下對產品的認識以及產品穩定性性能等方面的總結,能到這個層面起碼是高級軟體工程師的級別。

當然有些程序員內在的東西不是靠語言或者寫代碼看出來的,因為一個優秀的程序員不僅僅是代碼能力以及框架能力,還有幾個非常重要的能力

程序員的能力表面是可以直接展示出來,但很多內在需要是需要時間的磨合才能了解,人就才能見人心,而且很多優秀的程序員是培養出來的,能夠長時間在一起的隊友都是時間長了磨練出來的。

希望能夠幫到你。

自認為不是一個好的面試官,因為我認為在這么短的時間內,准確地衡量出來程序員水平的高低是有比較大的難度的,並且我有多次看走眼的時候,面試的時候覺得能力還不錯,但是入職工作了一段時間之後,編程能力不忍直視。

工作之後接觸一段時間,我會從這么幾個方面觀察他們,以判斷技術能力的高低和發展潛力。


能不能出活兒、能不能debug

能不能把開發任務按時按質量地完成,當然是最主要的衡量標准了:

解決問題的方法

在開發過程中,難免會遇到沒有見過的問題,有些程序員遇到問題無從下手,而優秀的程序員,自有一套解決問題的方法。

分析問題、流程設計的思路

有人會認為,程序員的主要工作就是敲代碼,上班大部分時候都是在敲代碼,其實並不是這樣:

總結問題和改進問題的能力

好的程序員,相同的問題不會犯第二次,差的程序員,總會在一個問題上栽跟頭:

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

不請自來,一介碼農路過,留下些看法。

程序員主要是有四種綜合能力,也就是debug 能力、 performance分析、 保護性編程和 投入產出比。

僅僅獨立完成日後必然成高手?

在這里不能說一棒子打死,至少對於很多人來說,能獨立完成是沒什麼問題的,有的是因為對業務熟悉,有的是真的基礎扎實。但怎麼說呢,程序員和瀏覽器打交道是最多的,現在這個互聯網時代,遇到的大部分問題網路都是可以解決的,也就是普通程序員 + 網路 = 超級程序員。 但很多人也沒明白具體的原理,甚至都是這個項目抄抄那個項目抄抄的,久而久之雖然解決了平時的業務,但進步的空間卻很少,甚至止步不前,寫出來的代碼也可能存在很多坑,所以,僅僅能獨立完成任務的話,離高手還有比較遠的一段距離。

如何辨別高手程序員?

也就是結合我們一開始列舉的那四個能力進行判斷。不同級別的程序員,在那綜合能力面前,強弱也是不同的。例如在奔潰的或者其他性能調優問題上,即使是面對大量復雜的代碼,在信息不全的時候也會一步步的分析,抽絲剝繭縮小范圍,最終定位根本原因

,並且最終給出一個好的方案。

如何成為高手程序員?

當然還有看他摘了帽子是否禿頂這樣的笑話,就再不贅述了。

第一階段(黃金):會用編程語言實現需求,比如現在的業務系統,都會找一些會搬代碼的人來拼工作量,也就是能自己獨立基於搭好的框架實現crud常規操作。

第二階段(鉑金):除了crud,還會有一些自己踩過坑的經驗,知道如何處理一些常見問題,或者可以基於搜索引擎快速解決一些異常情況。

第三階段(鑽石):能解決一些疑難雜症和會通過debug部分源碼類庫查看到這些疑難雜症是如何引發的,並通過編碼解決這些問題,還能進行一些局部的性能優化,類似某個系統介面緩慢可以單獨去優化。

第四階段(星耀):會基於整個系統進行設計和規劃,根據業務特性選擇合適的框架,從源頭控制開發遇到問題的頻率,可以自主的搭建框架並完善機制,了解各個組件工作原理。

第五階段(王者):小說裡面總是說練武功的永遠比不過創造武功的,同樣的道理,用框架的也往往不如寫框架的,所以寫框架的這類人單獨分層。

第六階段(榮耀):其實這個階段不應該列入進來,因為這類人往往不編碼的,只是給出思想;像Hadoop這種框架就是基於人家發表的一些論文(bigdata)進行編碼實現的,這類人注重的是思想和演算法,區塊鏈,大數據,雲計算等等概念的創造和理論的支撐是這類人提出來的,這些人才是真正影響行業走向的人。

程序員的水平高低,不是靠語言或外在表現就能看出來的,不是看他會多少技術、參加過多少項目、寫了多少博客,而是看他在實際業務場景中解決問題的能力,尤其是面對一些特別復雜的問題,或在高強度、高壓工作狀態下解決問題的能力與態度。


技術可以通過學習掌握,但是解決問題、定位問題的能力卻不是一蹴而就。大家可能會說,「解決問題的能力」這個太寬泛了吧,可以更具象化嗎,有具體的測量方法嗎?簡單整理了以下幾點供參考。


優秀的代碼能力

會寫出滿足需求的代碼,早就不是評判程序員水平的標准了。代碼編寫既要滿足業務需求,同時還要考慮後續的軟體維護,說得通俗些,既要自己爽,也要別人爽。一個優秀的程序員,會致力於寫出更簡單、更效率、可讀性強、擴展性強的程序代碼。


邏輯思維

程序員在日常工作中,需要理解各式各樣的業務需求,所以這就需要程序員具備一定的邏輯思維能力。可以說,邏輯思維是程序員的靈魂,因為每一行代碼都是程序員邏輯的體現。


debug能力

項目著急上線,發布時出現問題?

業務高峰時段,系統宕機了?

業務催、運營催、用戶催、老闆催!

各種形態的bug,各種著急的心情,背後無數支眼睛盯得內心慌慌......

這些都是一位合格程序員所需要面對的日常。不同的程序員,在解決問題的方法、效率、質量等方面,都各有千秋。一個經驗豐富的程序員,能夠扛住各方壓力,在復雜條件下找到核心問題,通過抽絲剝繭的分析來找到產生問題的原因,並快速進行應對處理,事後及時復盤總結,減少同類問題出現的概率。


學習能力

隨之互聯網的發展,越來越多的人湧入程序員這個賽道,競爭日益激烈,加之新技術層出不窮,更新迭代快,程序員所使用的語言、框架、模式都會發生天翻地覆的變化。如果不主動學習,你很快就會被落伍淘汰。



溝通能力

這種其實在面試過程中能體現出來,溝通主要是技術溝通,以及和客戶之間的溝通,所有技術都不是閉門造車就能搞定的,溝通能讓事情推進起來更加順暢,包括和產品經理之間的流暢的溝通也顯得非常重要。程序員的能力表面是可以直接展示出來,但很多內在需要是需要時間的磨合才能了解,人就才能見人心,而且很多優秀的程序員是培養出來的,能夠長時間在一起的隊友都是時間長了磨練出來的。


責任心

線上出bug了,第一時間響應、處理;

團隊項目進度緊張、人手緊缺,主動補位;

又或者,在項目推進過程中如果只是關心自己模塊內容,對於整個項目置之不理,只守著自己的一畝三分地。

隨著時間軸的拉長,你會發現,有此f技術能力不是最好的,甚至不如你的小夥伴,最後做到了技術主管或經理、甚至更高職位,這裡面除了技術實力,還有一個叫「責任心」的東西。


結束語

判斷一個程序員的水平高低,核心是其解決問題的能力,而解決問題的能力養成,需要扎實的底層基礎來支撐,要綜合其代碼質量、項目經驗、框架能力、邏輯思維等等多方面,不能單看某一方面。


而對於1-6歲的程序員來說,想要成為一個高級程序員,變得越來越優秀,唯有持之以恆去學習、積累、實踐、修煉。



----end----


一:50歲的時候,頭發還是黑色的濃密的。

二:賺到的錢能保證家人快樂的生活。

三:當公司不要你的時候能成功轉型。

其他的例如編程經驗、寫代碼厲害啊什麼的根本不值一提。

這就是程序員的面試嘛 :-)

(1)是否能熟練使用所用編程語言的主要功能;

(2)是否知道用合適的數據結構解決問題;

(3)是否知道基本的演算法,並且用這些演算法解決問題;

(4)只看少量代碼的話,從變數命名和程序結構一般能夠判斷是否是新手;

(5)給出具體問題,能夠用程序解決,能考慮到所有的邊界條件;

(6)考慮程序的可擴展性,可維護性;

再往高一點走,就需要

(7)面對模糊的問題能夠分析並且找到細節和具體的需求;

(8)知道利用已有的庫,架構和工具等來解決新的問題,而不是什麼都自己實現;

(9)能發現並改進已有程序中的瓶頸;

(10)對整個大項目的程序架構有很清晰的了解,知道相互之間的依賴,以及知道為什麼採用這樣就架構;

(11)給一個大的項目,能夠對整個項目的程序架構和組件進行合理的設計,考慮並行性,低延遲,大數據量等各種需求和應對方式。

帶領團隊已多年,項目數十個,對判別程序員水平的高低,我有自己的看法,歡迎大家一起交流。



1.代碼質量。

優質的代碼,首先是經得起考驗。靜態分析工具過一遍,無錯誤,無警告。當然警告部分需要人工重審,因為靜態分析工具不一定完全正確。過了這一關,重要的還須過測試關,少Bug或無Bug的代碼,才是好代碼。優質的代碼帶有技術氣質和藝術氣質。閱讀起來,有一種賞心悅目的快感,即工整美觀,干凈利落,又蘊含著理論常識,運用技巧,精準到位。



2.表達能力。



3.文檔能力。

文檔形式包括但不限於PPT,文字,圖表,音視頻。文檔內容包括但不限於API說明,工具手冊,項目事項,技術論述,陷阱總結,方案展示,指導手冊。文檔要求必須是滿足公司或部門的規范和格式,否則五花八門的,不利於交流和傳承。



以上3點,是我量化判斷程序員水平的標准,僅供參考。相比水平,其實我更看重程序員的態度,執行力,時間觀念,自學力等等,也是很重要的團隊作戰能力,也可以說是程序員水平的考量吧。

謝謝大家。

7. IT培訓分享剛入行的程序員小白如何才能快速成長

每個大牛都是從小白成長過來的,對於剛剛步入職場的程序員來講,面對身份的轉變和還未熟悉的工作,都難免會有不適應,對自己未來的成長也會比較迷茫。

No.1

大部分的程序員從小白到大牛都是要經歷一個循序漸進的過程,沒有一蹴而就的成功,程序員的成長也是分階段的,而每個階段的側重點又都不一樣。

很多人總想一口吃成胖子,可往往就是這種急躁的心理,反而使得自己更難靜下心來夯實基本功,適得其反。

要知道,成長從來就不是一件簡單的事情。那麼對於IT小白來說,IT培訓http://www.kmbdqn.com/介紹怎樣才能在更短的時間內成長為一名優秀的程序員呢?


No.2

首先,要制定詳細而明確的階段性目標。工作時如果有一個目標,會幫助你找到努力的方向,對自己的事業發展也很有幫助。而越詳細、越明確的目標,其可實施性就越高,這也能使你找到短期奮斗的動力。

其次,要利用空閑時間多學習。技術實力始終是一個程序員能否往前走的關鍵,沒事的時候多看代碼,保持對代碼的敏感度。只有看的多了,琢磨的多了,才能培養出好的代碼審美感。

除了要保持對代碼的敏感度以外,還要讓這種敏感度成為你寫代碼中的利器。因此,你需要勤寫代碼,多做總結,不斷優化自己寫的代碼。

最重要的是,要注重在項目中去鍛煉自己。項目開發是幫助程序員快速成長的一個有效途徑。實踐出真知,只有多實踐,才能發現自己在實際的項目開發中存在的缺點和不足,找出來並及時改正,將為自己積累下十分寶貴的經驗。

No.3

不知道大家有沒有聽說過「空杯心態」?

「空杯心態」簡單來說就是:如果你的杯子是空的,新東西就比較容易進去;反之,如果你的杯子已經滿了,新東西就進不去。

舉例來說,可能會有一小部分自以為是的同學,他們在剛從學校出來時思維較為固化,自己的東西太多,頑固又不肯放棄,新東西自然難以學進去,成長自然就慢。而具有空杯心態的同學,他們會適時清空自己,甚至有意識清除腦中頑固區域,虛心主動學習,渴望更多知識,學到的自然就會多。

因此,要想快速成長為一名優秀的程序員,就要學會保持空杯心態。

隨著技術更迭速度的不斷加快,IT行業對程序員的學習能力要求也變得更高。只有時刻保持對學習的熱忱,保持空杯心態,才能早日成長為一名優秀的程序員。同時,要堅持自律,懂得自我約束。越是在特殊時期,保持學習的自律能力就越重要!


8. 程序員未來前景如何大齡程序員出路在哪裡

年齡大的普通程序員,將來的出路無非就是以下三個:
1、穩定地待在一家公司,有一定產出效率,成為一顆螺絲釘,不出彩也不出醜,就像之前棉紡廠的工人那樣,直到這家公司不行了,找另一家,繼續做個普通一兵。其實這事兒和幾十年前的工人一樣,只是時代不一樣,職業的名字變了。
2、尋找相對優勢,到稀缺你技術、能力、經驗的地方,找到存在感。比如一線城市回退到二線、三線;比如互聯網頂級公司的普通程序員進入小公司;比如互聯網行業的普通程序員進入傳統行業有軟體部門的公司。
3、轉行,想干什麼干什麼去,很多人認為,一個 35 歲以上的程序員相比較一個 20來歲的畢業生,精神狀況、身體狀況必定是不如剛剛大學畢業的年輕人,所以要盡早轉行。那麼問題來了,程序員是吃青春飯的嗎?程序員的職業發展到底如何呢?
首先,我覺得時至今日,相比其他職業,程序員仍然是一個投入產出比比較高的職業。程序員不是一個「吃青春飯」的職業,而是一個常青的職業。程序員其實也並沒有我們想像中那麼累,很多互聯網公司的工作環境、工作氛圍、員工福利都是非常不錯的:彈性工作,定期團建,免費健身;一日三餐、零食飲料應有盡有。對於頭腦靈活、思維敏捷,但還沒有明確職業目標的理工科畢業生而言,把程序員作為職業生涯的起點,應該會是一個不錯的選擇。以北京為例,應屆畢業起薪在 8000-10000 元,比其他職業高出不少。程序員現在小蜜蜂雲工作了解很多遠程可辦公的,全職兼職都是有的,可供的選擇還是比較多的。
程序員在職業生涯第一個階段,通常是 3-5 年。這個階段要以職業探索為主,腳踏實地寫好每一行代碼。只有快速學習和成長,掌握過硬的專業技能,這樣才能在職場立足,走好未來的路。現在程序員的職業領域已經細分到了令人發指的地步,比如:大數據工程師、雲計算工程師、某某語言工程師、系統架構師、web 前端工程師、嵌入式軟體工程師、資料庫開發工程師等等。

9. 程序員要具備什麼技能

一名合格的程序員需要掌握哪些技能呢?

熟練掌握開發工具

做為一名程序員至少熟練掌握兩到三種開發工具的使用,這是程序員的立身之本,其中C/C++和JAVA是重點推薦的開發工具,C/C++以其高效率和高度的靈活性成為開發工具中的利器,很多系統級的軟體還是用C/C編寫。而JAVA的跨平台和與WEB很好的結合是JAVA的優勢所在,而JAVA即其相關的技術集JAVA One很可能會成為未來的主流開發工具之一。其次,能掌握一種簡便的可視化開發工具,如VB,PowerBuilder,Delphi,C Builder,則更好,這些開發工具減小了開發難度,並能夠強化程序員對象模型的概念。另外,需要掌握基本的腳本語言,如shell,perl等,至少能讀懂這些腳本代碼。

熟知資料庫

為什麼資料庫是如此重要?作為程序員,他們自然有自己的理由:很多應用程序都是以資料庫的數據為中心,而資料庫的產品也有不少,其中關系型資料庫仍是主流形式,所以程序員至少熟練掌握一兩種資料庫,對關系型資料庫的關鍵元素要非常清楚,要熟練掌握SQL的基本語法。雖然很多資料庫產品提供了可視化的資料庫管理工具,但SQL是基礎,是通用的資料庫操作方法。如果沒有機會接觸商業資料庫系統,可以使用免費的資料庫產品是一個不錯的選擇,如mySQL, Postgres等。

對操作系統有一定的了解

當前主流的操作系統是Windows,Linux/Unix,熟練地使用這些操作系統是必須的,但只有這些還遠遠不夠。要想成為一個真正的編程高手,需要深入了解操作系統,了解它的內存管理機制、進程/線程調度、信號、內核對象、系統調用、協議棧實現等。Linux作為開發源碼的操作系統,是一個很好的學習平台,Linux幾乎具備了所有現代操作系統的特徵。雖然Windows系統的內核實現機制的資料較少,但通過互聯網還是能獲取不少資料。只有對操作系統有一定的了解後,你會發現自己上了一個新的台階。

懂得網路協議TCP/IP

在互聯網如此普及的今天,如果您還沒有對互聯網的支撐協議TCP/IP協議棧有很好的掌握,就需要迅速補上這一課,網路技術已改變了軟體運行的模式,從最早的客戶/伺服器結構,到今天的WEB Services,再到未來的網格計算,這一切都離不開以TCP/IP協議棧為基礎的網路協議支持,所以,深入掌握TCP/IP協議是非常必要的。至少,你需要了解ISO七層協議模型,IP/UDP/TCP/HTTP等常用協議的原理和三次握手機制。

明白DCOM/CORBA/XML/WEB Services存在的意義

隨著技術的發展,軟體與網路的無縫結合是必然趨勢,軟體系統的位置無關性是未來計算模式的重要特徵之一,DCOM/CORBA是當前兩大主流的分布計算的中間平台,DCOM是微軟COM(組件對象模型)的擴展,而CORBA是OMG支持的規范。程序員需要做的不僅僅是利用商業的開發平台來開發軟體,而是要理解這些技術的初衷,即為什麼需要這項技術,如果你能理解了這一點,再回頭看這些技術的具體實現,就如庖丁解牛,迎刃而解。XML/WebServices重要性不言而喻,XML以其結構化的表示方法和超強的表達能力被喻為互聯網上的「世界語」,是分布計算的基石之一。

不要將軟體工程與CMM分開

現代大型軟體系統的開發中,工程化的開發控製取代個人英雄主義,成為軟體系統成功的保證,一個編程高手並不一定是一個優秀的程序員,一個優秀的程序員是將出色的編程能力和開發技巧同嚴格的軟體工程思想有機結合,編程只是軟體生命周期中的其中一環,優秀的程序員應該掌握軟體開發各個階段的基本技能,如市場分析,可行性分析,需求分析,結構設計,詳細設計,軟體測試等。一句話可以概括我的看法:「創意無限,流程保證」。

擁有強烈的好奇心

什麼才是一個程序員的終極武器呢,那就是強烈的好奇心和學習精神。沒有比強烈的好奇心和學習精神更好的武器了,它是程序員們永攀高峰的源泉和動力所在。

閱讀全文

與程序員小才相關的資料

熱點內容
項目經理叫醒程序員 瀏覽:342
autocad旋轉命令 瀏覽:660
手機版wpsoffice怎麼打包文件夾 瀏覽:579
在成都學車用什麼app 瀏覽:818
grep命令管道 瀏覽:426
java修改重啟 瀏覽:567
單片機供電方案 瀏覽:770
airpodspro一代怎麼連接安卓 瀏覽:218
豌豆莢app上有什麼游戲 瀏覽:283
公路商店app標簽選什麼 瀏覽:338
linuxoracle命令行登錄 瀏覽:227
android深度休眠 瀏覽:172
php微信開發例子 瀏覽:845
醫得app登錄密碼是什麼 瀏覽:142
spring開發伺服器地址 瀏覽:411
伺服器上如何查看伺服器的埠 瀏覽:678
單片機伺服器編譯 瀏覽:770
單口usb列印機伺服器是什麼 瀏覽:859
戰地五開伺服器要什麼條件 瀏覽:956
在word中壓縮圖片大小 瀏覽:255