Ⅰ 在計算機行業,除去敲代碼,還有哪些崗位可以選擇
1、售前工程師程序員懂技術,也會當然售前工程師的角色,說白了就是,銷售在賣軟體的時候,客戶提出了一個需求,銷售不知道能不能做,能不實現這個功能,這個時候就需要帶著程序員和客戶溝通了,能實現的話,銷售在去和客戶談價錢。
4、雲計算相關工作當前在雲計算、人工智慧等技術平台的推動下,低代碼甚至是無代碼的開發方式也是一個重要的發展趨勢,所以未來計算機行業的從業者,如果能夠掌握技術平台的運用,則會在很大程度上避免編寫代碼。當然,要想真正脫離代碼並不現實,實際上隨著人工智慧技術的運用,掌握編程知識也能夠在一定程度上提升自身的工作能力和工作邊界。
如果想在IT行業內走得更遠,而且想盡量避免編程任務,那麼應該從行業和工具兩個方面入手。在產業互聯網階段,豐富的行業知識和對於技術平台(雲計算等)的熟練運用能夠在很大程度上避免編碼。
Ⅱ 你絕對想不到40歲的程序員有多牛X
程序員雖然不需要青春的容顏,但是卻需要健康的體魄,吃青春飯到底對不對,相信沒人能下定論,但是吃過了青春飯的這些人該如何面對未來的職業生涯,卻是我們應該考慮的問題。
面對我國數以百萬計吃青春飯的程序員,40歲後他們又該怎麼辦呢?隨北大青鳥web前端培訓專家一探究竟!
說程序員是一碗青春飯,大多是因為這是一個需要高強度腦力勞動的工種,而超過40歲的程序員身體機能逐漸弱化,家庭瑣事纏身,往往面臨繼續做技術還是轉做管理的局面。
有人考慮轉型,當然也有人選擇對這份職業矢志不渝。
平凡的程序員雖然有很多人鄙視平凡,但也有人享受其中。做一名平凡的程序員,每天按時上班,按時下班,做著自己喜歡的工作,用自己碼下的代碼改變世界,是無數熱愛編程的程序員的夢想。
程序員也可以「耀眼」
可以說,大多數選擇將程序員作為終身職業的人都是熱愛這份職業的,他們來到這個行業不是為了高薪,更不是為了每天把自己搞得滿眼黑眼圈。
對於這些人來說,一行行代碼並不僅僅是實現某種用途的命令,而是一篇優美的長詩。
盡管在國內浮躁的IT環境中,這樣的程序員可能並不多見,這不能全怪程序員,而是企業對程序員的定位不夠准確。而在程序員屆一直流傳著這樣的傳說:一個七十多歲的程序員,一輩子是一名程序員,卻讓比爾蓋茨敬佩有加。這個人叫做戴夫·卡特勒(Dave
Cutler)。
戴夫·卡特勒
戴夫·卡特勒今年已經七十四歲了,卻依然是一名程序員。他沒有隊伍,不做經理,但是他在公司的職位比大部分副總裁還要高。
據說,有一次某一個隊伍預測一項工程要數月完成,他看不過去,兩天,一個人就完成了...
自主創業有人願意因為熱愛,而選擇做一輩子的程序員,也有人選擇做程序員只是由於「曲線救國」,進而實現自主創業的夢想。自李克強總理提出"大眾創業、萬眾創新"雙引擎的口號後,中關村創業大街成立,
無數青年人投入到了自主創業的熱潮之中。
李彥宏與周鴻_
而在互聯網剛剛興起之時,也有無數懷揣技術理想的年輕人回國創業。為了實現通過技術改變世界的理想,創業似乎成了他們最快捷的一條道路,盡管,他們知道這條道路並不平坦,盡管無數年輕人在這里摔倒,但是無論國內國外,
程序員通過自主創業成立商業帝國的例子不在少數。
比如:蘋果喬教主喬布斯、微軟創始人比爾蓋茨、Facbook創始人扎克伯格、網路李彥宏、360創始人周鴻_、小米雷軍等等。
Facbook創始人扎克伯格
需要指出的是,程序員一般都比較聰明,但是聰明和創業成功之間的聯系並不是絕對的。
對於程序員這個群體,他們信奉著技術改變世界;帶著一點執著和一份自信走上創業之路,但這樣的人往往會面臨和別人相處時過於自負的問題。而創業的成功一定是一個團隊努力的結果,這里不僅需要技術,還需要運營、推廣等一系列動作。所以,
程序員如果想成為一個好的創業者,就必須要學會和人打交道,學會適時的收斂自己的鋒芒。
以梅姨為榜樣·進軍管理層為了避免程序員隨著年齡增加而導致身體機能弱化,避免精力弱於年輕人的程序員與其他年輕人在同一平台上競爭,同時,保證自己的手藝不會丟失,
很多程序員都希望自己進軍管理者行列,最好的選擇當然還是公司的CEO、CTO和CIO。
但是,無論在一個社會還是公司,管理者永遠都只是少數人,大多數公司也只有一個CEO、CTO和CIO。少數就意味著激烈的競爭,盡管如此,最終達成個人目標,贏得社會贊譽的人也有很多。比如4月初接任王堅的阿里現任CTO張劍鋒,還有雅虎美女CEO瑪麗莎·梅耶爾。
瑪麗莎·梅耶爾
以瑪麗莎·梅耶爾為例,今年41歲的瑪麗莎·梅耶爾1999年入職谷歌,曾經是谷歌的第一位產品經理和首位女工程師,如今是雅虎的首席執行官。從斯坦福大學計算機系畢業的梅姨正式從程序員進軍管理層,如今已然擔任雅虎CEO一職四年。
《程序員跳槽全攻略》
可以說,作為一名管理者,你不僅需要精湛的技術水平,同時也要求背負團隊進度和效率,也要求任職者擁有良好的溝通能力和卓越的領導力。
從一名普通的"碼農"晉升為公司的CTO或者CEO,整個晉升之路就像是一個漏斗,很少有人能沉澱下來。但是,
這仍然是程序員尋求一條專業化最理想的道路。
自由職業者當國內對於自由職業者的定義還停留在無業遊民或藝術工作者的時候,很多國家的
程序員已經實現在家掙錢的夢想。很多國家成熟的IT環境讓程序員成為IT自由職業者似乎並沒有那麼難,方式主要可以分為線上和線下兩種。
如何成為自由職業者?
程序員應該都知道或者接過一點兒"
私活兒",少則三五百,多則成千上萬。其實這也是成為程序員自由職業者線下盈利的最重要的一種方式。只是,這需要程序員認識一幫能夠給你私活兒的朋友,還需要擅長和對方談業務。
相比線下利用人情關系接私活兒的方式,在線眾包業務似乎更適合自由職業者。
類似於freelancer的網站在國外已經出現很久,目前國內也出現一些相似的網站。程序員可以通過在線"承包"的方式,憑自己出眾的業務能力和好運氣來搶工作。
freelancer主頁
除此之外,也有一些通過做topcoder來賺錢的,這種方式雖然對業務能力要求不高,但是對技術及規范化要求較高、英文溝通能力要求較高和也需要良好的身體素質(因為你要晨昏顛倒以適應時差)。
年輕程序員
請你早做准備筆者認為,如果說40歲的程序員會面對職業選擇的困惑,不如說,這個困惑在入行那一刻就已註定要面對。國內IT環境的現實,讓更多的程序員不得不早早規劃好自己的職業發展方向,這樣才不至於到不惑之年而倍感困惑。
從整個采訪中我們可以發現,不同的年齡、不同的性別,對於程序員是否是一碗青春飯有著完全不同的看法。
有人說程序員是很有情懷的一群人,也有人說程序員是很寂寞的一群人,無論你屬於哪種,一旦踏上程序員這艘船,都很難靠岸。所以,年長的程序員,希望你能得到你想要的;
年輕的程序員,請你早做准備。
Ⅲ 百戰程序員的課程和卓越班的是一樣的嗎
不一樣,卓越班是針對有基礎者想要在一定時間內成長為高水平架構師程序員所創辦的。
百戰程序員的課程內容全面系統,包含范圍廣,零基礎或者在職工作者都可以報名。
Ⅳ 卓越程序員和優秀程序員有哪些區別
卓越的程序員編寫代碼,優秀的程序員修改代碼。
這是卓越程序和優秀程序員最大的區別。正所謂站在巨人的肩上才能走的更遠。
Ⅳ 如何從普通程序員晉升為架構師
程序員晉升架構師的十項必備技能
1、卓越的程序員 Fred George先生說:「不編程的架構師的職業生涯是短暫的」。他說這句話的背景主要是針對有些架構師的設計與實現有斷層的問題而言的,因為如果架構師不去 實踐,只是想當然的認為「沒問題,這個想法能實現」,那麼對於項目的落實而言是個很大的隱患。支付寶架構師馮大輝也表示過,架構師是一個比較「虛」的崗 位,主要的問題都在「落地」的過程中。--ITJOB--
2、抽象思維 很多優秀的架構師們都一致的表示,邏輯思維和抽象思維能力是一個架構師最重要的素質。eBay的 Randy Shoup先生稱擁有條理清晰的邏輯思維能力的人「就像稀有動物那樣難找」。Fred George則表示「駕馭概念的技能,在我看來是每一個人最高的潛力」,並表示自己不太介意這樣一個苗子在其他方面的技能和經驗的匱乏,因為在他看來除了 思維之外的其他因素都是可以培養的。 --ITJOB--
3、技術前瞻性 有人談到技術高手與架構師的區別就在於,架構師不光是著眼於現在,不僅僅局限於開發細節,比如如何調用,如何並發等等。而是跳出三界外,考慮一下面向未來問題和潛在風險的應對之道。--ITJOB--
4、問題解決大師 只是,架構師之所以為架構師,是在於他們在面對龐大系統之時,仍然能夠敏銳的發現其底層之真實。這不僅需要此哲學層面的「內功」,還需要架構師具有多領域知識和經驗的積淀。--ITJOB--
5、多領域知識 架構師身為一名技術領袖,需要通過發散知識的光芒來統御開發團隊的。如果只是對本行業知識做到爛熟於心,那還僅僅是一名熟練工的水平。要想晉升更高的層次,還需要跳出「只緣身在此山中」的困惑。--ITJOB--
6、溝通能力 做到人性化的溝通,需要我們在平時就進行培養。寫出大部頭的架構書,有的時候並沒有用VISIO畫出的簡單架構圖好理解。人對圖形理解遠遠大於對文字的理解,直觀簡單的UML圖可以極大的方便程序員理解架構師的意圖。--ITJOB--
7、內力 很多人理解的內力就是開發技術,包括語言的掌握、對框架的掌握、資料庫管理能力、安全管理能力等等。但是我們看到,架構更多的內力體現在對技術的綜合運用上,光會編程的程序員,最多就能做到高級程序員,也就是技術實現上的高手。 --ITJOB--
8、權衡取捨 Fred George先生提出了「短期濫用」的說法,即在系統能夠承受的范圍內做出一些妥協。在ATAM方法中,分析的思路是基於「情景」的:你需要提出各種可能 的情景,然後來證明在每一個用戶使用場景中,系統的哪一些內容是必要的、不可丟棄的——從而確定哪些部分是暫時可以不予考慮的。--ITJOB--
9、管控能力 架構師在管理和控制的能力上,需要有自己獨到的見解,而不是簡單的認為這是項目經理或者財務部門 的事情。身為技術專家的架構師,隨不需要處理那些煩雜的日常管理。奇虎架構師李釗在一次接受采訪時道出過架構師們的心聲,技術人才轉向管理就是莫大的浪 費。對,如果架構師只是一味的去進行項目管理,那就和其他市場人員沒有任何區別了。在這里架構師所需要的管理與控制,其實是從技術的角度,對一些問題的控 制,特別是開發過程中的監控,而不是普通意義上的純粹管理。--ITJOB--
10、藝術氣質 一個優美的系統則是可以像有機的生命一樣成長的,這是因為從系統開始架構的那一刻起,架構師就考 慮到這個系統以後將會面臨的挑戰,為系統的成長預留好空間。項目經理經常會對這位架構師提出的看似理想化的要求不置可否——項目經理只想著能夠盡快以比較 低的成本實現客戶的需求,然而這些充滿藝術美感的想法其實是打造健康——因而優美——的系統的根本因素。--ITJOB--
Ⅵ 在西安,新卓越與朱洪培訓的程序員哪個更好一點
這個不好說,因人而異的,有的人習慣朱洪的講課模式,有人習慣新卓越的,不過新卓越上課時間是不確定的,都是隨時通知的,這個比較麻煩。
Ⅶ 對於一個程序員來說什麼才是最重要的東西呢中軟卓越培訓的程序員怎麼樣
當然是職業發展啦。對於軟體開發人員來說,通常,他們職業發展有幾個選擇:專注於技術,成為技術專家;轉型到技術型銷售、技術支持等;所以要想走得遠一點,必須有一項本領是過人的。 隨著技術成長,從技術性管理到高級管理。這是大家都看得清楚的方向,也都在向這些方向的金字塔尖努力。但是無論那個方向都要學會多讀書。
程序員要根據本身的基本素質、技術能力選擇開發層次,由低到高,逐步發展。 也是一名程序員本身具備相應素質的循序漸進的發展軌跡,包括很強的技術背景和綜合管理才能等素養,這也就是所謂『兩條腿走路』的職業規劃發展路線。」如果這樣的話,我相信你總有一天能達到自己的理想標准。
希望可以幫到你,謝謝!
Ⅷ 一個好的程序員至少應該具備哪些條件
樓上的幾位顯然誤會我的意思了,我並不是說不應當寫文檔加註釋注重團隊精神,看看下面的一篇文章,那位三天就寫出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導游的錄像 。有興趣可以去看
看牛人的豐采。