導航:首頁 > 程序命令 > 市面合格程序員

市面合格程序員

發布時間:2022-05-10 02:08:55

Ⅰ 現在的程序員培訓機構靠譜嗎

外行人看熱鬧,內行人看門道。現在市面的上IT培訓機構魚龍混雜,良莠不齊,再加上有些學員培訓完以後就不了業,有些機構在學員不知情的情況下給他做了學習貸款,所以才給很多人造成了「IT培訓=騙子機構」的認知。可即便這樣,依然不乏有眾多人依然想通過培訓,進入高薪的IT行業。

IT培訓機構的招生套路可謂是一環接一環,無論你如何火眼金睛,都有可能掉進他們設下的陷阱。作為一個身處IT培訓行業數年的老鳥,我建議你別再按照這樣的 SB 邏輯去選擇IT培訓機構了:

1、一定要學當下的熱門技術?

不要盲目去學當前最熱門的專業,前車可鑒,安卓和iOS火的那兩年,多少人去學,可就一兩年功夫,爛大街了。緊接著是Web前端也是一夜之間風靡,目前也是接近飽和。所以建議大家不要盲目跟風,要往長遠看,學一些例如java編程這類發展穩定的技術,這一點你可以通過查看TIOBE編程語言排行榜,以及各招聘網站的崗位需求上來作參考。時下比較熱的大數據、人工智慧之類的,很多培訓機構的講師都沒搞明白,聽聽就好。

2、上市公司出名,大機構質量就好?

我可以明確的告訴你,隨著IT培訓機構規模的增長,要是管理跟不上,教學質量基本只會越來越差。因為市場上沒有那麼多技術合格而又飽含責任心的老師,再加上沒有很好的師資培養和晉升體系作為保障,直接影響的就是教學質量,進而影響就業。再加上一些創始團隊成員慢慢的在利益驅動下喪失本心,最後完全做成了一家只為盈利的商業機構。不過在這其中一定會有一些真正做口碑好的機構,用就業倒推教學,更注重學員的感受,而非一味的關注招生量。建議一定要去實地考察,免費試學一段時間,好壞一試便知。

3、培訓機構的課程越多就越說明有實力?

不知道為什麼,總有些人覺得培訓機構開設的課程越多說明越有實力,就越專業。實際上,課程開太多就很難再專注了。現在很多人一說培訓,就是想著學習大數據、人工智慧、機器學習、雲計算、架構師等等,可是……你真正知道這些技術學完以後是干什麼的嗎?這些崗位的招生學歷要求是如何呢?他們的底層邏輯是怎樣的嗎?另外,你一定要弄清楚點,你來學習,是一個菜鳥,是一個初學者,培訓完成也只是個初級工程師,重點是掌握基礎和常見場景業務,而不是學完去做架構師,資深工程師的,自我定位要准確,別被機構忽悠了。別過度自信和被洗腦,你沒那個天賦!

4、能給你優惠的培訓機構都比較「人性化」?

首先說明一點,培訓費用高的不一定教學質量就好,費用低的也不一定教學質量就差。不要盲目的過分注重培訓價格,適合自己的教學體系和教學模式才是最好的。另外,作為一個全國性公司或者品牌公司,學費根據公司多年發展數據積累定出來的,價格都是全國定價,不能因人而異,如果一個公司價格隨便波動,你一定要警惕公司的正規性。因為價格隨便亂動,就可以判定這是一家注重營銷的公司,目的就是為了賺錢,在師資質量方便不會過多投入,最終影響你的學習效果,進而影響你的就業和最終薪資。最後,你一定要知道,從你交學費的那一刻就已經在開始扣除費用了,所以報班的時候,一定要謹慎,不要頭腦一熱,隨便報了,就算是身邊的朋友說某個機構特別好也一定要自己去現場考察,有自己的判斷和思考。

今天就先分享到這里吧,再有其他培訓相關問題,歡迎私聊交流。作為IT行業不算年長但還算資深的蛋哥,願盡自己最大努力幫助大家更好的入行。祝好!

Ⅱ 如何成為一名合格的程序員

程序員可以分為很多種,像Unix程序員、Windows程序員,或是C++程序員、Delphi程序員,等等。今天我想談的是Web程序員,一名真正的Web程序員應該懂得那些方面的知識,應該注意學習哪些東西。 也許有些朋友會說,我知道Asp、Jsp,會做網站、會做bbs,這應該叫Web程序員了吧。確實,我承認,這些技術是一名Web程序員應該具備的;但是,你如果僅懂得這些,卻只能叫做Asp程序員、Jsp程序員,而不是真正意義上的Web程序員。現在的世界是屬於Internet的,大部分的應用基於Internet,大家可以想想,像Yahoo、Microsoft、Amazon那樣的網站,其訪問量之大、應用之復雜,需要什麼樣的技術才可以支撐,難道僅僅是硬體的功勞么。 我想在Windows平台下來談談Web程序員應該掌握的技術

1. 首先,就是上面提到的各種腳本,asp、jsp、php等等,這些東西大同小異,基本可以舉一反三。

2. 資料庫, 相信做Web的人肯定用過,像Access、Sql Server、Oracle。很多人會用各種資料庫,但是僅限於寫一些sql,select、update、insert,用ADO來操作,如果這樣,就算會用100種資料庫又有什麼用呢? 你應該考慮用戶量、訪問速度、內存消耗,這些東西和你的sql密切相關,我經常見到很多分頁程序根本不去考慮資料庫中有多少條數據,統統select出來,很明顯,當你從資料庫中查出1萬條數據和100條數據,佔用的內存是不同的。 另外,資料庫連接池和事務機制是非常重要的,應該知道資料庫用什麼來保證事務,連接池如何實現,這些都是商務應用的關鍵。譬如,目前很多的應用服務,像weblogic、MTS,都包含事務處理,可以說好的事務處理決定了他們的競爭力。

3. 組件技術 我想是現在的Web應用推動了組件技術的發展。以前,從老式的靜態庫、動態庫(dll),到現在的COM/DCOM,再到正在興起中的Web Service;從單機調用,到基於內部網的分布式調用,到現在基於Internet的分布式計算。現在的應用都是基於組件的n層結構,最明顯的就是COM和JavaBean。 這些東西體現了軟體架構的發展,以前是基於單機的應用,然後是C/S結構,到現在的B/S結構。我記得李維曾經說過,程序員一定要注意軟體技術的發展趨勢,只有這樣,才不至於被淹沒在技術的洪流中。我想,作為Web程序員,一定要明白COM的原理,如何實現這種調用、如何進行分布式調用。說實話,我覺得COM還是比較復雜的,否則微軟為什麼要提供ATL和VB呢,要搞明白,應該學學C++,因為VC中提供的ATL庫可以很明顯的說明COM的內部運行機制。

4. 網路技術 這可以說是Web程序員最應該懂得東西。起碼,應該知道Web伺服器的機制,要明白Http協議。就拿IIS來說,要懂得web應用程序運行的進程安全和IIS的關系,懂得ISApi的作用。 如果有時間,就看看TCP/IP,看看winsock,這些都是底層的網路的東西。 我所說的這些都是基於微軟技術下的東西,其他的像Java方面的東西都可以對照參考,就不多說了,這也是我這幾年來的一些心得。總之,學海無涯,每當接觸一些新的東西,就會發現自己的不足,同時也就覺得基礎知識的重要。說實話,像我們做應用開發,用別人的東西,在現在這種情況下,新的技術層出不窮,稍不注意就會被甩開,這也是沒有辦法的事情。

Ⅲ 一個四年的程序員,一般工資在多少證明自己合格

程序員都很誠懇,薪水沒達到預期,會反思是不是自己的技術水平不夠。但事實上,技術能力並不是決定薪酬的唯一因素,供需關系對薪酬的影響非常大。很多時候,兩個能力差不多的程序員卻在薪水上有較大的差異。並不鼓勵輕易跳槽,但了解市場行情是很有必要的。

2、真正的技術高人

雖然前面說技術水平不是決定薪水的唯一因素,但如果技術牛到一定程度,高薪 offer 也是探囊取物。

最後,說一個我十分崇拜的技術大神:傳說網路安全大神在面試阿里的時候,面試官提出這樣一個問題:你怎麼證明自己的技術水平?然後大神接過電腦,當著面試官的面關掉了阿里的內網。如果技術水平牛到這種境界,沒有理由會不拿高薪啊。生命不息,學習不止,每天「逼」自己進步一點點,假以時日,成就必然天壤之別。

Ⅳ 一個程序員要具備的基本素質是什麼

  1. 團隊精神和協作能力 :

    把它作為基本素質,並不是不重要,恰恰相反,這是程序員應該具備的最基本的,也是最重要的安身立命之本。

  2. 文檔習慣:

    作為代碼程序員,30%的工作時間寫技術文檔是很正常的,而作為高級程序員和系統分析員,這個比例還要高很多。缺乏文檔,一個軟體系統就缺乏生命力,在未來的查錯,升級以及模塊的復用時就都會遇到極大的麻煩。

  3. 規范化,標准化的代碼編寫習慣:

    作為一些外國知名軟體公司的規矩,代碼的變數命名,代碼內注釋格式,甚至嵌套中行縮進的長度和函數間的空行數字都有明確規定,良好的編寫習慣,不但有助於代碼的移植和糾錯,也有助於不同技術人員之間的協作。

  4. 需求理解能力:

    作為程序員需要評估該模塊在系統運營中所處的環境,將要受到的負荷壓力以及各種潛在的危險和惡意攻擊的可能性。就這一點,一個成熟的程序員至少需要2到3年的項目研發和跟蹤經驗才有可能有心得。

  5. 復用性,模塊化思維能力:

    復用性設計,模塊化思維就是要程序員在完成任何一個功能模塊或函數的時候,要多想一些,不要局限在完成當前任務的簡單思路上,想想看該模塊是否可以脫離這個系統存在,是否可以通過簡單的修改參數的方式在其他系統和應用環境下直接引用,這樣就能極大避免重復性的開發工作。

  6. 測試習慣:

    軟體研發作為一項工程而言,一個很重要的特點就是問題發現的越早,解決的代價就越低,程序員在每段代碼,每個子模塊完成後進行認真的測試,就可以盡量將一些潛在的問題最早的發現和解決,這樣對整體系統建設的效率和可靠性就有了最大的保證。

  7. 學習和總結的能力:

    善於學習,對於任何職業而言,都是前進所必需的動力,對於程序員,這種要求就更加高了。但是學習也要找對目標,一些小coding fans們,他們也津津樂道於他們的學習能力,一會學會了asp,一會兒學會了php,一會兒學會了jsp,他們把這個作為炫耀的資本,盲目的追逐一些膚淺的,表面的東西和名詞,做網路程序不懂通訊傳輸協議,做應用程序不懂中斷向量處理,這樣的技術人員,不管掌握了多少所謂的新語言,永遠不會有質的提高。

Ⅳ 怎麼才能算是一個合格的程序員要求要懂些什麼東西,到什麼程度

如何成為一個合格的程序員

確定目標
做什麼事都要有明確的目標,因此,你首先要為自己確定一個可測量的目標,並把這個大目標分解為幾個分階段的小目標。比如,要在一年內開發出一套倉庫管理軟體:第一月的目標是學會一種計算機語言;第二個月的目標是熟悉倉庫管理業務;第三個月學會資料庫;第四個月寫出原型……然後按計劃去做,每完成一步你的信心就會增加一些,並會感受到成功的快樂。
選擇工具
當你開始著手的時候,會發現市面上有太多的計算機語言和工具供你選擇了。具體選擇某種語言和環境與你的目標直接相關,比如要開發單片機系統和要開發管理系統,所選擇的語言會有天壤之別。下面是一些參考意見(純屬個人意見):
1、腳本類:特點是簡單、易學、易用。比較常用的有:Unix/ Linux的Shell語言,網頁里用的VBScript/JavaScript,MS-Office里用的VBA,動態主頁用的JSP、ASP、PHP等,通用語言Perl、Python等。當然像Python/Perl語言的功能已非常強大,有用它們寫出的資料庫、系統管理等大型系統,如Zope、WebMin等。
2、RAD類:這類以快速開發著稱的語言及工具比較流行,常用的有VB、Delphi、Powerbuilder、Visual FoxPro等,這類工具常用來開發管理信息系統,如用友、金碟等,也用來開發通用軟體。
3、專業類:最常用的是C/C++,Java等,如果你想成為專業的程序員,就要學習這些內容。它們通常用來開發系統級程序,比如操作系統(MS-Windows、Unix/Linux等)、資料庫(Oracle、SQL-Server等)、開發語言(C/C++、Python等)、工具軟體(WPS、KV3000等),在大型系統里基本都有它們的身影。
4、專用類:這類語言種類最多,它們一般設計用來完成一項特殊的工作。例如現在最流行的Flash,它內含Action Script語言;AutoCAD內帶VBA和AutoLisp;每一種單片機都帶有自己的ASM語言;許多系統如MatLab、Spss、Intouch、Modsoft等都有自己的專用語言。
總的來說,當選擇語言的時候,一定要與自己的目標相結合,另外,入門的時候,可先選擇容易一些的,入門後,再選擇專業些的。一開始就選擇C++可能會讓你知難而退,但如果選用Python,你就可能會覺得計算機語言原來也挺容易。
勤奮練習
除了多寫程序,沒有別的辦法去更快地提高你的程序水平了。看書的時候,最好把書上的例子自己輸進電腦實踐一遍,然後進行各種試驗,再聯想出各種相關的程序,自己寫出來,並驗證自己的結果。如果有好的想法,就嘗試把它寫出來,很快你會發現你的水平在快速上升。
當你有了一定的基礎的時候,可以嘗試去讀高手寫的程序,解讀他們的程序的設計理念、風格、解決問題的思路等。在這方面,GNU/Linux為我們提供了一個巨大的源程序寶庫,裡面有各種各樣的程序源代碼,詳細研究一套你感興趣的系統,你的水平會得到大幅度提高。
不斷提高
除了多加練習,你還需要多讀書,特別是英文書。讀書可以在理論上提高你的水平。信息技術發展太快,而大部分的技術最先出現的時候都是英文版本的,要幾個月以後才有中文版本的書出來,因此要想跟上步伐,一定要努力提高自己的英文水平,這樣才能同步跟上信息技術。你可能擔心自己的英語水平不行,沒關系,剛開始多查字典,很多就會發現計算機英語其實很容易。當然,這里的書是泛指,包括網路上的各種文章,電子書等。
另外,多與他人交流經驗也有助於自己水平的提高。互聯網為我們提供了一個巨大的交流平台,各種BBS和新聞組上都有熱心的高手回答你的問題。不過在問問題之前,自己一定要先努力嘗試過,再給出自己的想法。動不動就問別人,自己水平得不到提高,別人也不再會回答你的問題。
繼續深造
當你覺得自己成了程序員的時候,你就會發覺還有很多東西要學,你可以繼續深入學習來提升你的水平。
1、向下深入:了解操作系統的機制,了解底層的API,這對開發系統級程序非常有用。
2、向上延伸:學習項目管理,軟體工程,設計模式,分析設計等,這對你開發大型系統非常有幫助,特別是一個團隊去開發一個大型項目的時候。
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導游的錄像 。有興趣可以去看
看牛人的豐采。

Ⅶ 一名合格的程序員應該具備那些硬性條件

  1. 能力出眾,項目能夠如期完成;

  2. 程序員這一個行業,是一個不停更新技術,需要學習能力強;

  3. 一個項目完成包括前端、後端、設計、產品,需要有良好的溝通能力;

Ⅷ 要成為一名計算機編程員需要什麼條件

【怎麼樣】隨著計算機對於社會各個領域的不斷滲透,客戶對於一些專門的應用軟體需求量大增,所以對於程序員的需求也在不斷增加,雖然現在中國的程序員數量已經相當可觀,但是還是處於求大於供的狀態,尤其對於一些技術熟練、有很好的編程習慣的優秀程序員,市場需求量還是很大的。而且程序員的發展空間很大,可以經過努力升級為軟體設計師、系統分析員、項目經理等。不過程序員有事工作相對繁瑣,有時需要經常加班,技術更新快,所以壓力也很大。
【誰能做】①
大專以上計算機相關專業學歷,至少熟練掌握兩到三種開發工具的使用,同時對於資料庫和操作系統有很深入的了解,有一定的英語水平,有相關的數據結構等方面的知識;

通過初級或者高級程序員考試或者拿到一些國際、國內認證的證書,有一年以上相關經驗;

軟體結構設計/分析能力,出色的編程能力,掌握了幾種軟體的開發技巧,同時需要有嚴格的軟體工程思想;

較強的邏輯思維能力,團隊精神和協作能力,強烈的好奇心和學習精神,具有永攀高峰的精神。

閱讀全文

與市面合格程序員相關的資料

熱點內容
pdf改順序 瀏覽:974
linuxmint的軟體源 瀏覽:988
江蘇的lol伺服器地址 瀏覽:549
ghdownload是什麼文件夾 瀏覽:153
sd卡解壓板成品 瀏覽:524
365app哪個好 瀏覽:818
演算法對於中學生的影響 瀏覽:787
linux如何看編譯器c庫 瀏覽:430
dnf為什麼選擇伺服器沒有了 瀏覽:866
馬鞍山加密軟體有哪些 瀏覽:173
linux命令用不了 瀏覽:109
單片機不同輸入輸出口 瀏覽:965
單擊右鍵沒有壓縮 瀏覽:729
榮耀魔方2方舟編譯器 瀏覽:431
伺服器如何訪問區域網電腦 瀏覽:754
倒角命令快捷鍵 瀏覽:28
梯形圖編程abs是什麼意思 瀏覽:834
狂浪小說app在哪裡下載 瀏覽:537
python爬蟲頁面跳轉 瀏覽:534
led數碼管編譯器 瀏覽:245