1. 世界第一黑客
凱文·米特尼克 不解釋
凱文·米特尼克被稱為世界上「頭號電腦黑客」。這位「著名人物」在2012年時49歲。其實他的技術也許並不是黑客中最好的,甚至相當多的黑客們都反感他,認為他是只會用攻擊、不懂技術的攻擊狂,但是其黑客經歷的傳奇性足以讓全世界為之震驚,也使得所有網路安全人員丟盡面子。 凱文米特尼克
在米特尼克很小時候,他的父母就離異了。他跟著母親生活,從小就形成了孤僻倔強的性格。70年代末期,米特尼克還在上小學的時候就迷上了無線電技術,並且很快成為了這方面的高手。後來他很快對社區「小學生俱樂部」里的一台電腦著了迷,並在此處學到了高超的計算機專業知識和操作技能,直到有一天,老師們發現他用本校的計算機闖入其它學校的網路系統,他因此不得不退學了。美國的一些社區里提供電腦網路服務,米特尼克所在的社區網路中,家庭電腦不僅和企業、大學相通,而且和政府部門相通。當然這些電腦領地之門都會有密碼的。這時,一個異乎尋常的大膽的計劃在米特尼克腦中形成了。此後,他以遠遠超出其年齡的耐心和毅力,試圖破解美國高級軍事密碼。不久,只有15歲的米特闖入了「北美空中防護指揮系統」的計算機主機同時另外一些朋友翻遍了美國指向前蘇聯及其盟國的所有核彈頭的數據資料,然後又悄然無息的溜了出來。這成為了黑客歷史上一次經典之作。 在成功闖入「北美空中防護指揮系統」之後,米特尼克又把目標轉向了其它的網站。不久之後,他又進入了美國著名的「太平洋電話公司」的通信網路系統。他更改了這家公司的電腦用戶,包括一些知名人士的號碼和通訊地址。結果,太平洋公司不得不作出賠償。太平洋電腦公司開始以為電腦出現了故障,經過相當長時間,發現電腦本身毫無問題,這使他們終於明白了:自己的系統被入侵了。 這時的米特尼克已經對太平洋公司沒有什麼興趣了。他開始著手攻擊聯邦調查局的網路系統,不久就成功的進入其中。一次米特尼克發現聯邦調查局正在調查一名「黑客「,便翻開看,結果令他大吃一驚——這個「黑客」是他自己。後來,米特尼克就對他們不屑一顧起來,正因如此,一次意外,米特尼克被捕了。由於當時網路犯罪很新鮮,法律也沒有先例,法院只有將米特尼克關進了「少年犯管所」。於是米特尼克成為世界上第一個因網路犯罪而入獄的人。但是沒多久,米特尼克就被保釋出來了。他當然不可能改掉以前的壞毛病。脆弱的網路系統對他具有巨大的挑戰。他把攻擊目標轉向大公司。在很短的時間里,他接連進入了美國5家大公司的網路,不斷破壞其網路系統,並造成這些公司的巨額損失。1988年他因非法入侵他人系統而再次入獄。由於重犯,這次他連保釋的機會都沒有了。米特被處一年徒刑,並且被禁止從事電腦網路的工作。等他出獄後,聯邦調查局又收買了米特尼克的一個最要好的朋友,誘使米特尼克再次攻擊網站,以便再次把他抓進去。結果——米特尼克竟上鉤了,但畢竟身手不凡,在打入了聯邦調查局的內部後,發現了他們設下的圈套,然後在追捕令發出前就逃離了。通過手中高超的技術,米特尼克在逃跑的過程中,還控制了當地的電腦系統,使得以知道關於追蹤他的一切資料。 後來,聯邦調查局請到了被稱為「美國最出色的電腦安全專家」的日裔美籍計算機專家下村勉。下村勉開始了其漫長而艱難的緝拿米特行動。他費盡周折,馬不停蹄,終於在1995年發現了米特尼克的行蹤,並通知聯邦調查局將其捉獲。1995年2月,米特尼克再次被送上法庭。在法庭上,帶著手銬的米特尼克看著第一次見面的下村勉,由衷地說:「你好呀,下村,我很欽佩你的技術。」這一次,米特尼克被處4年處徒刑。在米特尼克入獄期間,全世界黑客都聯合起來,一致要求釋放米特尼克,並通過為不斷的攻擊各大政府網站的行動來表達自己的要求。這群黑客甚至還專門制了一個名為「釋放凱文」的網站。1999年米特尼克終於獲准出獄。出獄後他便不斷地在世界各地進行網路安全方面的演講。 許多世界頂級網站,超級公司一聽到黑客這個名詞,便猶如談虎色變般的恐懼。對於黑客的存在,每個網民都有著不同的看法,有些人喜歡黑客更喜歡做黑客,因為他們認為這樣能體現自己的能力和價值。然而更多的人憎恨黑客,甚至要求國家法律對那些黑客進行嚴懲。就像他一樣當2000年1月21日美國法庭宣布他假釋出獄後,幾乎當今所有依賴電腦和網路的公司、 企業都開始了膽戰心驚的生活,人們害怕他會重操舊業。 那麼此人究竟是誰呢?他就是超級黑客:凱文·米特尼克。 他是第一個被美國聯邦調查局通緝的黑客,走出牢獄之後,他馬上又想插手電筒腦和互聯網。有了他,世界又不平靜了。凱文·米特尼克也許可以算得上迄今為止世界上最厲害的黑客,他的名聲盛極一時,後隨著入獄而逐漸消退。 凱文·米特尼克是一個黑客,而且是一個頂級黑客。
2. 計算機史著名人物及貢獻,要詳細,拜託了。
1、馮·諾依曼(John Von Neumann , 1903-1957)
馮·諾依曼是美籍匈牙利裔科學家、數學家,被譽為「電子計算機之父」。1945年,馮·諾依曼首先提出了「存儲程序」的概念和二進制原理,後來人們把利用這種概念和原理設計的電子計算機系統統稱為「馮.諾曼型結構」計算機。
馮·諾依曼的主要貢獻就是提出並實現了「存儲程序」的概念。由於指令和數據都是二進制碼,指令和操作數的地址又密切相關,因此,,當初選擇這種結構是自然的。但是,這種指令和數據共享同一匯流排的結構,使得信息流的傳輸成為限制計算機性能的瓶頸,影響了數據處理速度的提高。
在這篇論文里,范內瓦提出的諸多理論預測了二戰後到現在幾十年計算機的發展,許多後來的計算機領域先驅們都是受到這篇文章的啟發,後來的滑鼠,超文本等計算機技術的創造都是基於這篇具有理論時代意義的論文。
3. 問道掌門人|何小鵬:程序員改變世界
[汽車之家行業]?廣州亞信是一家「神奇」的公司,「微信之父」張小龍、「UC之父」何小鵬都曾在這里工作。
2004年,程序員何小鵬轉身創業者,UC踩中移動互聯網風口,十年後被阿里收購。一個程序員的「造富」故事到這里終止。
2014年,小鵬汽車誕生;這些過往,由此成為另一篇故事的序章。
顛覆將分為兩個階段。未來5-10年是「第一階段」,自動駕駛是這一階段重點,依靠基礎設施、政策支持、技術改進,高級別輔助駕駛落地,解放用戶雙手;10-15年是「第二階段」,智能座艙將成為重點,交互體驗、應用生態成為產品決定性差異。最終,智能汽車將成為「移動終端、儲能單元、數字空間」。
在顛覆到來之前,車企首要任務,是從體系層面做好准備。很多企業不會做、不敢做,小鵬希望給汽車行業做示範,「有了領頭羊之後,學習者會非常多」。
「我們希望用數據驅動智能汽車變革,最終創造更美好的出行生活」,成為中國汽車「引領者」,是何小鵬的「野心」。
何小鵬最佩服的企業是華為和特斯拉。前者改變了中國高科技產業,後者改變了全球汽車產業。「程序員」何小鵬也想成為一名改變者,擺在他面前的,是改變中國汽車產業的挑戰和機會。
■改變的意義
為什麼要改變?除了那些宏大的意義,何小鵬的答案是為了開心。讓員工開心,何小鵬的辦法給他們發錢;讓自己開心,對他來說創業是最佳答案。「找到讓自己開心的東西很難,但找到了就很重要」。
「創業意味著探索未知,需要很大的勇氣」,張京宇認為,如果不是發自內心熱愛,邁出這一步很難,取得成功更難。小鵬離成功還很遠,想超越特斯拉,何小鵬預計要10-15年。喬布斯說:「過程就是獎賞」,小鵬這段旅程,對何小鵬來說又何嘗不是?(文/汽車之家蔣平平)
4. 求高級語言示例(按數據運算控制傳輸標明)
計算機的高級語言目前流行的有java、vb、vc、foxpro、delphi等
高級語言是目前絕大多數編程者的選擇⊥匯編語言相比,它不但將許多相關的機器指令合成為單條指令,並且去掉了與具體操作有關但與完成工作無關的細節,例如使用堆棧、寄存器等,這樣就大大簡化了程序中的指令。同時,由於省略了很多細節,編程者也就不需要有太多的專業知識。 高級語言主要是相對於匯編語言而言,它並不是特指某一種具體的語言,而是包括了很多編程語言,如目前流行的vb、vc、foxpro、delphi等,這些語言的語法、命令格式都各不相同。 高級語言所編制的程序不能直接被計算機識別,必須經過轉換才能被執行,按轉換方式可將它們分為兩類 解釋類執行方式類似於我們日常生活中的同聲翻譯」,應用程序源代碼一邊由相應語言的解釋器翻譯」成目標代碼(機器語言),一邊執行,因此效率比較低,而且不能生成可獨立執行的可執行文件,應用程序不能脫離其解釋器,但這種方式比較靈活,可以動態地調整、修改應用程序。 編譯類編譯是指在應用源程序執行之前,就將程序源代碼翻譯」成目標代碼(機器語言),因此其目標程序可以脫離其語言環境獨立執行,使用比較方便、效率較高。但應用程序一旦需要修改,必須先修改源代碼,再重新編譯生成新的目標文件(* .obj)才能執行,只有目標文件而沒有源代碼,修改很不方便。現在大多數的編程語言都是編譯型的,例如visual c++、visual foxpro、delphi等。
計算機語言---Java語言之簡介
1。它的由來
當1995年SUN推出Java語言之後,全世界的目光都被這個神奇的語言所吸引。那麼Java到底有何神奇之處呢?
Java語言其實最是誕生於1991年,起初被稱為OAK語言,是SUN公司為一些消費性電子產品而設計的一個通用環境。他們最初的目的只是為了開發一種獨立於平台的軟體技術,而且在網路出現之前,OAK可以說是默默無聞,甚至差點夭折。但是,網路的出現改變了OAK的命運。
在Java出現以前。Internet上的信息內容都是一些乏味死板的HTML文檔。這對於那些迷戀於WEB瀏覽的人們來說簡直不可容忍。他們迫切希望能在WEN中看到一些互動式的內容,開發人員也極希望能夠在WEB上創建一類無需考慮軟硬體平台就可以執行的應用程序,當然這些程序還要有極大的安全保障。對於用戶的這種要求,傳統的編程語言顯得無能為力,面SUN的工程師敏銳地察覺到了這一點,從1994年起,他們開始將OAK技術應用於WEB上,並且開發出了HotJava的第一個版本。當SUN公司1995年正式以Java這個名字推出的時候,幾乎所有的WEB開發人員都想到:噢,這正是我想要的。於是Java成了一顆耀眼的明星,丑小鴨一下了變成了白天鵝。
二. Java的定義
Java是一種簡單的,面象對象的,分布式的,解釋的,鍵壯的安全的,結構的中立的,可移植的,性能很優異的多線程的,動態的語言。
Java的開發環境有不同的版本,如sun公司的Java Developers Kit, 簡稱 JDK。後來微軟公司推出了支持Java規范的Microsoft Visual J++ Java開發環境,簡稱 VJ++。
三. Java的特點
1. 平台無關性
平台無關性是指Java能運行於不同的平台。Java引進虛擬機 原理,並運行於虛擬機,實現不同平台的Java介面之間。使 用Java編寫的程序能在世界范圍內共享。Java的數據類型與 機器無關,Java虛擬機(Java Virtual Machine)是建立在 硬體和操作系統之上,實現Java二進制代碼的解釋執行功能, 提供於不同平台的介面的。
2. 安全性
Java的編程類似C++,學習過C++的讀者將很快掌握Java的精 髓。Java舍棄了C++的指針對存儲器地址的直接操作,程序 運行時,內存由操作系統分配,這樣可以避免病毒通過指 針侵入系統。Java對程序提供了安全管理器,防止程序的 非法訪問。
3. 面向對象
Java 吸取了C++面向對象的概念,將數據封裝於類中,利用類 的優點,實現了程序的簡潔性和便於維護性。類的封裝性、 繼承性等有關對象的特性,使程序代碼只需一次編譯,然後 通過上述特性反復利用。程序員只需把主要精力用在類和接 口的設計和應用上。Java 提供了眾多的一般對象的類,通 過繼承即可使用父類的方法。在 Java 中,類的繼承關系是單一的非多重的,一個子類 只有一個父類,子類的父類又有一個父類。Java 提供的 Object 類及其子類的繼承關系如同一棵倒立的樹形,根類 為 Object 類, Object 類功能強大,經常會使用到它及其 它派生的子類。
4. 分布式
Java建立在擴展TCP/IP網路平台上。庫函數提供了用HTTP和FTP協議傳送和接受信息的方法。這使得程序員使用網路上的文件和使用本機文件一樣容易。
5. 鍵壯性
Java致力於檢查程序在編譯和運行時的錯誤。類型檢查幫助檢查出許多開發早期出現的錯誤。Java自已操縱內存減少了內存出錯的可能性。Java還實現了真數組,避免了覆蓋數據的可能。這些功能特徵大大提高了開發Java應用程序的周期。Java提供: Null指針檢測、 數組邊界檢測、 異常出口、 Byte code校驗。
四. Java與C/C++語言
Java提供了一個功能強大語言的所有功能,但幾乎沒有一點含混特徵。C++安全性不好,但C和C++被大家接受,所以Java設計成C++形式,讓大家很容易學習。
Java去掉了C++語言的許多功能,讓Java的語言功能很精煉,並增加了一些很有用的功能,如自動收集碎片。
Java去掉了以下幾個C和C++功能:
指針運算
結構
typedefs
#define
需要釋放內存
這將減少了平常出錯的50%。而且,Java很小,整個解釋器只需215K的RAM。
面象對象:Java實現了C++的基本面象對象技術並有一些增強,(為了語言簡單,刪除了一些功能)。Java處理數據方式和用對象介面處理對象數據方式一樣。
五. Java與Internet
我們知道,早先的 www 僅可以傳送文本和圖片,Java的出現實現了互動的頁面,是一次偉大的革命。
Java並不是為 Internet,WWW而設計的,它也可以用來編寫獨立的應用程序。Java 是一種面向對象語言。Java 語言類似於 C++ 語言,所以已熟練掌握 C++語言的編程人員,再學習 Java 語言就容易得多!Java 程序需要編譯。實際上有兩種 Java 程序:一種 Java 應用程序是一個完整的程序,如 Web 瀏覽器。一種 Java 小應用程序是運行於 Web 瀏覽器中的一個程序.
Java程序和它的瀏覽器HotJava,提供了可讓你的瀏覽器運行程序的方法。你能從你的瀏覽器里直接播放聲音。你還能播放頁面里的動畫。Java還能告訴你的瀏覽器怎樣處理新的類型文件。當我們能在2400 baud線上傳輸視頻圖象時,HotJava將能顯示這些視頻。
當今Internet的一大發展趨勢是電子商務,而Internet的安全問題是必須解決的問題,通常大的部門應設置防火牆,阻止非法侵入。
電子商務是當今的熱門話題,然而傳統的編程語言難以勝任電子商務系統,電子商務要求程序代碼具有基本的要求:安全、可靠、同時要求能 與運行於不同平台的機器的全世界客戶開展業務。Java以其強安全性、平台無關性、硬體結構無關性、語言簡潔同時面向對象,在網路編程語言中占據無可比擬的優勢,成為實現電子商務系統的首選語言。
Java程序被放置在Internet伺服器上,當用戶訪問伺服器時,Java程序被下載到本地的用戶機上,由瀏覽器解釋運行。
Delphi這個名字源於古希臘的城市名。它集中了第三代語言的優點。以Object Pascal為基礎,擴充了面向對象的能力,並且完美地結合了可視化的開發手段。Delphi自1995年3 月一推出就受到了人們的關注,並在當年一舉奪得了多項大獎。
Delphi的出現打破了V承可視化編程領域一統天下的局面。並且Delphi使用了本地編譯器直接生成技術,使程序的執行性能遠遠高於其它產品生成的程序。它還是真正的面向對象的編程語言。PASCAL語言的嚴謹加上可視化的優勢和強大的資料庫功能使得它有充分的資本和微軟的VB叫板。許多人當時都認為Pascal 是最有前途的程序設計語言,並預測Delphi將會成為可視化編程的主流環境。
Delphi在你編好程序後自動轉換成.EXE文件它運行時速度比VB快,而且編譯後不需要其他的支持庫就能運行。它的資料庫功能也挺強的,是開發中型資料庫軟體理想的編程工具。 Delphi適用於應用軟體、資料庫系統、系統軟體等類型的開發。而且它擁有和VB差不多一樣的功能,而且一樣能應用API函數,這在控制Windows很有用。
Delphi是全新的可視化編程環境,為我們提供了一種方便、快捷的Windows應用程序開發工具。它使用了Microsoft Windows圖形用戶界面的許多先進特性和設計思想,採用了彈性可重復利用的完整的面向對象程序語言(Object-Oriented Language)、當今世界上最快的編輯器、最為領先的資料庫技術。對於廣大的程序開發人員來講,使用Delphi開發應用軟體,無疑會大大地提高編程效率,而且隨著應用的深入,您將會發現編程不再是枯燥無味的工作——Delphi的每一個設計細節,都將帶給您一份欣喜。
Delphi的基本形式
Delphi實際上是Pascal語言的一種版本,但它與傳統的Pascal語言有天壤之別。一個Delphi程序首先是應用程序框架,而這一框架正是應用程序的「骨架」。在骨架上即使沒有附著任何東西,仍可以嚴格地按照設計運行。您的工作只是在「骨架」中加入您的程序。預設的應用程序是一個空白的窗體(Form),您可以運行它,結果得到一個空白的窗口。這個窗口具有Windows窗口的全部性質:可以被放大縮小、移動、最大最小化等,但您卻沒有編寫一行程序。因此,可以說應用程序框架通過提供所有應用程序共有的東西,為用戶應用程序的開發打下了良好的基礎。
Delphi已經為您做好了一切基礎工作——程序框架就是一個已經完成的可運行應用程序,只是不處理任何事情。您所需要做的,只是在程序中加入完成您所需功能的代碼而已。 在空白窗口的背後,應用程序的框架正在等待用戶的輸入。由於您並未告訴它接收到用戶輸入後作何反應,窗口除了響應Windows的基本操作(移動、縮放等)外,它只是接受用戶的輸入,然後再忽略。Delphi把Windows編程的回調、句柄處理等繁復過程都放在一個不可見的Romulam覆蓋物下面,這樣您可以不為它們所困擾,輕松從容地對可視部件進行編程。
面向對象編程的概念
面向對象的程序設計(Object-Oriented Programming,簡記為OOP)是Delphi誕生的基礎。OOP立意於創建軟體重用代碼,具備更好地模擬現實世界環境的能力,這使它被公認為是自上而下編程的優勝者。它通過給程序中加入擴展語句,把函數「封裝」進Windows編程所必需的「對象」中。面向對象的編程語言使得復雜的工作條理清晰、編寫容易。
說它是一場革命,不是對對象本身而言,而是對它們處理工作的能力而言。對象並不與傳統程序設計和編程方法兼容,只是部分面向對象反而會使情形更糟。除非整個開發環境都是面向對象的,否則對象產生的好處還沒有帶來的麻煩多。
而Delphi是完全面向對象的,這就使得Delphi成為一種觸手可及的促進軟體重用的開發工具,從而具有強大的吸引力。
1968年瑞士的N.WIRTH教授設計完成了Pascal語言,1971年正式發表。
1975年,國際標准化組織(ISO)對Pascal語言進行了修改,從而形成了標准Pascal語言。與以往的編程語言相比,Pascal語言是一門結構化的語言,它具有豐富的數據類型和控制結構,簡明易懂,所以特別適合於教學。
Pascal語言還是一種自編譯的語言,這就使它的可靠性大大提高了。在Pascal的各個版本中,尤以Turbo Pascal的功能最為強大。如今,在許多學校的計算機語言課上,學的都是Pascal語言,用的都是Turbo Pascal。
PASCAL語言是一種結構式程序設計語言。它是於70年代在ALGOL基礎上研製出來的。它具有豐富的數據類型並提供了數據類型定義設施,其控制結構體現了結構程序設計原則。
PASCAL語言最初是為系統地教授程序設計而設計的,特點是簡明化和結構化,適合教學,科學計算與系統軟體的研製。
Pascal是最早出現的結構化軟化,具有豐富的數據類型和簡潔靈活的操作語句,適於描述數值和非數值的問題。
BASIC是Beginner's All-purpose symbolic instruction Code(初學者通用符號指令代碼)的縮寫,是國際上廣泛使用的一種計算機高級語言。BASIC簡單、易學,目前仍是計算機入門的主要學習語言之一。
BASIC語言的問世及發展 BASIC語言自其問世經歷了以下四個階段:
第一階段:(1964年~70年代初) 1964年BASIC語言問世。
第二階段:(1975年~80年代中) 微機上固化的BASIC
第三階段:(80年代中~90年代初) 結構化BASIC語言。
第四階段:(1991年以來) Visual BASIC
BASIC是種易學易用的高級語言,非常適合初學者學習運用。常用的編譯軟體有True BASIC,Turbo BASIC Quick BASIC,Visual BASIC,CAREALIZER,GFA BASIC,POWER BASIC,等等......
1991年,微軟推出了Visual Basic1.0版。這在當時引起了很大的轟動。許多專家把VB的出現當做是軟體開發史上的一個具有劃時代意義的事件。其實,以我們現在的目光來看,VB10的功能實在是太弱了。但在當時,它是第一個「可視」的編程軟體。這使得程序員欣喜之極,都嘗試在VB的平台上進行軟體創作。微軟也不失時機地在四年內接連推出VB20,VB30,40三個版本。並且從VB3開始,微軟將ACCESS的資料庫驅動集成到了VB中,這使得VB的資料庫編程能力大大提高。從VB4開始,VB也引入了面向對象的程序設計思想。VB功能強大,學習簡單。而且,VB還引入了「控制項:的概念,使得大量已經編好的VB程序可以被我們直接拿來使用,如今,VB已經有了6.0版。
通過幾年的發展,它已成為一種真真專業化的開發語言和環境。用戶認為可用Visual Basic快速創建Windows程序,在現在還可以編寫企業水平的客戶/伺服器程序及強大的資料庫應用程序,Visual Basic新版中還有更多可用功能。
Visual Basic的編程基礎
什麼是程序
首先需要知道下面這個問題的答案:「程序到底是什麼?」計算機程序是指令集,它告訴計算機如何執行特殊的任務。讀者也許對許多種指令熟悉,如按菜譜烹調特殊的食物或按指定的方向到達不熟悉的目的地。沒有這些特殊的指令,就不能執行預期的任務。
計算機也是一樣,只是它們需要為執行的每一個任務提供指令。甚至對最簡單的任務也需要指令,例如如何取得擊鍵,怎樣在屏幕上放一個字母,怎樣在磁碟中保存訊息。 幸運的是,許多這樣的指令包含在處理器晶元中或內置於操作系統中,因此用戶不必擔心它們。
相反,應集中於為任務提供指令,如計算雇員工資,創建鄰居郵件列表,或設置格式化文本以顯示最近的年度報表信息。 雖然我們用自然語言讀這些指令,但計算機指令必須是二進制代碼,即一系列在計算機內存和處理器中的開或關的狀態。有些語言,如匯編程序,可以允許直接寫這種類型的代碼。但是,以這種方法編程十分困難,因此Visual Basic和其他編程語言使程序員可以用與自然語言有點相近的方式編寫指令。然而,即使是這些指令仍有限,並要遵循高度定義的結構。
事件驅動編程
Visual Basic允許創建反映用戶動作和系統事件的程序。這種編程叫事件驅動編程。要了解事件驅動程序是怎樣工作的,先要了解過去的程序怎樣運行及在Windows環境中有何不同。 在Windows之前(回到往日的DOS和「史前時代」PC之前),程序以順序方式運行。也就是說,一旦程序啟動,它就一條指令一條指令的向前執行,直到程序結束或出現致命錯誤。
面向對象編程
使創建Windows程序較為容易的關鍵技術是面向對象編程,或OOP。這種技術可以創建可重用組建,它是程序的組成模塊。
幾個定義
在討論Visual Basic時,經常可以聽到這些術語,因此對這些術語的基本理解十分有幫助。
控制項 提供程序可見界面的可重用對象。控制項的示例有文本框、標簽和命令按鈕。
事件 由用戶或操作系統引發的動作。事件的示例有擊鍵、單擊滑鼠、一段時間的限制,或從埠接收數據。
方法 嵌入在對象定義中的程序代碼,它定義對象怎樣處理信息並響應某事件。例如,資料庫對象有打開紀錄集並從一個記錄移動到另一個記錄的方法。
對象 程序的基本元素,它含有定義其特徵的屬性,定義其任務和識別它可以響應的事件的方法。控制項和窗體是Visual Basic中所有對象的示例。
過程 為完成任務而編寫的代碼段。過程通常用於響應特定的事件。
屬性 對象的特徵,如尺寸、位置、顏色或文本。屬性決定對象的外觀,有時也決定對象的行為。屬性也用於為對象提供數據和從對象取回信息。
C語言是目前世界上流行、使用最廣泛的高級程序設計語言。
C語言對操作系統和系統使用程序以及需要對硬體進行操作的場合,用C語言明顯優於其它高級語言,許多大型應用軟體都是用C語言編寫的。
C語言具有繪圖能力強,可移植性,並具備很強的數據處理能力,因此適於編寫系統軟體,三維,二維圖形和動畫它是數值計算的高級語言。
常用的編譯軟體有Microsoft Visual C++,Borland C++,Watcom C++ ,Borland C++, Borland C++ Builder,Borland C++ 3.1 for DOS,Watcom C++ 11.0 for DOS,GNU DJGPP C++, Lccwin32 C Compiler 3.1,Microsoft C,High C,等等......
C語言的發展歷史
C語言的發展頗為有趣。它的原型ALGOL 60語言。
1963年,劍橋大學將ALGOL 60語言發展成為CPL(Combined Programming Language)語言。
1967年,劍橋大學的Matin Richards 對CPL語言進行了簡化,於是產生了BCPL語言。
1970年,美國貝爾實驗室的Ken Thompson將BCPL進行了修改,並為它起了一個有趣的名字「B語言」。意思是將CPL語言煮干,提煉出它的精華。並且他用B語言寫了第一個UNIX操作系統。
而在1973年,B語言也給人「煮」了一下,美國貝爾實驗室的D.M.RITCHIE在B語言的基礎上最終設計出了一種新的語言,他取了BGPL的第二個字母作為這種語言的名字,這就是C語言。
為了使UNIX操作系統推廣,1977年Dennis M.Ritchie 發表了不依賴於具體機器系統的C語言編譯文本《可移植的C語言編譯程序》。
1978年Brian W.Kernighian和Dennis M.Ritchie出版了名著《The C Programming Language》,從而使C語言成為目前世界上流行最廣泛的高級程序設計語言。
1988年,隨著微型計算機的日益普及, 出現了許多C語言版本。由於沒有統一的標准,使得這些C語言之間出現了一些不一致的地方。為了改變這種情況,美國國家標准研究所(ANSI)為C語言制定了一套ANSI標准, 成為現行的C語言標准 3.C語言的主要特點 。C語言發展迅速, 而且成為最受歡迎的語言之一, 主要因為它具有強大的功能。許多著名的系統軟體, 如DBASE Ⅲ PLUS、DBASE Ⅳ 都是由C 語言編寫的。用C語言加上一些匯編語言子程序, 就更能顯示C語言的優勢了,象PC- DOS 、WORDSTAR等就是用這種方法編寫的。
C語言的特點
1. 簡潔緊湊、靈活方便
C語言一共只有32個關鍵字,9種控制語句,程序書寫自由,主要用小寫字母表示。它把高級語言的基本結構和語句與低級語言的實用性結合起來。 C 語言可以象匯編語言一樣對位、位元組和地址進行操作, 而這三者是計算機最基本的工作單元。
2. 運算符豐富
C的運算符包含的范圍很廣泛,共有種34個運算符。C語言把括弧、賦值、強制類型轉換等都作為運算符處理。從而使C的運算類型極其豐富表達式類型多樣化,靈活使用各種運算符可以實現在其它高級語言中難以實現的運算。
3. 數據結構豐富
C的數據類型有:整型、實型、字元型、數組類型、指針類型、結構體類型、共用體類型等。能用來實現各種復雜的數據類型的運算。並引入了指針概念,使程序效率更高。另外C語言具有強大的圖形功能, 支持多種顯示器和驅動器。且計算功能、邏輯判斷功能強大。
4. C是結構式語言
結構式語言的顯著特點是代碼及數據的分隔化,即程序的各個部分除了必要的信息交流外彼此獨立。這種結構化方式可使程序層次清晰, 便於使用、維護以及調試。C語言是以函數形式提供給用戶的,這些函數可方便的調用,並具有多種循環、條件語句控製程序流向,從而使程序完全結構化。
5. C語法限制不太嚴格、程序設計自由度大
一般的高級語言語法檢查比較嚴,能夠檢查出幾乎所有的語法錯誤。而C語言允許程序編寫者有較大的自由度。
6. C語言允許直接訪問物理地址,可以直接對硬體進行操作
因此既具有高級語言的功能,又具有低級語言的許多功能,能夠象匯編語言一樣對位、位元組和地址進行操作,而這三者是計算機最基本的工作單元,可以用來寫系統軟體。
7. C語言程序生成代碼質量高,程序執行效率高
一般只比匯編程序生成的目標代碼效率低10へ20%。
8. C語言適用范圍大,可移植性好
C語言有一個突出的優點就是適合於多種操作系統, 如DOS、UNIX,也適用於多種機型。
一些早期的具有OOP性能的程序語言如C++,Pascal,Smalltalk等,雖然具有面向對象的特徵,但不能輕松地畫出可視化對象,與用戶交互能力較差,程序員仍然要編寫大量的代碼。Delphi的推出,填補了這項空白。您不必自己建立對象,只要在提供的程序框架中加入完成功能的代碼,其餘的都交給Delphi去做。欲生成漂亮的界面和結構良好的程序絲毫不必絞盡腦汁,Delphi將幫助您輕松地完成。它允許在一個具有真正OOP擴展的可視化編程環境中,使用它的Object Pascal語言。這種革命性的組合,使得可視化編程與面向對象的開發框架緊密地結合起來。
5. 世界上最頂尖的程序員都有誰
世界上最頂尖的程序員我不知道(別揍我)
但我知道世界上最鬼才,最恐怖的程序員,他就是人稱電子殺手的霍茲。
6. 幫忙找一篇翻譯
作為全球最成功的企業之一,微軟公司在過去的二十多年裡為全世界數以億計的用戶提供了無數傑出的軟體產品,並以自己的實踐經歷揭示了軟體產業內蘊藏的旺盛生命力和巨大商業價值。微軟公司目前的市值是3100億美元。在2005財政年度里,微軟公司的銷售收入將達約400億美元,實現利潤165億美元。去年派發330億美元的股息後,微軟公司仍擁有350億美元的現金儲備。
我認為,微軟不斷走向成功的原因主要有四點:(1)技術:用創新的精神把握技術發展的脈搏,以合理的研發體系保證企業的效率,以執著的態度專注於軟體業的發展;(2) 領導藝術:最高決策者擁有卓越的才識、明確的分工和完美的合作;(3)人才:多渠道發現和聘用人才,有效的人才篩選機制,對人才的持續培養以及知人善用;(4)企業文化:不懼挑戰、自我批評、靈活平等以及對客戶負責的態度已經在微軟形成了一種傳統,並得到了制度化的保證。下面,我將從這四個方面出發,分別介紹微軟公司的運營和管理經驗,希望對中國的高新技術企業有所幫助。
技術:微軟的希望之光
(1)與時俱進、不斷創新
三四百年前,知識是在很長的時間里慢慢積累起來的。但自工業革命以來,科技的進步已經不再是靠歷史的積累,而更重要的是靠不斷的創新。信息革命後,科技的成長呈現出指數增長的趨勢。在信息技術方面,過去十年中人類獲得的知識和經驗毫無疑問已遠遠超過了過去一百年的積累。
微軟公司深深地理解,在這樣的大環境中把握技術方向的重要性。當微軟公司在早期的Basic產品中獲得成功後,開始投入DOS的研發。DOS成功後,微軟立即將資金和人力投入到新技術的研發中,並成功推出了Office系列軟體產品。隨後,微軟又利用Office等軟體獲得的積累,開始了Windows NT、Windows 2000、Windows XP等新一代操作系統的研發。當Internet浪潮到來時,微軟不失時機地躋身網路研發領域,並不斷推出新的產品。今天,微軟又把大量的資源投入到「無縫計算」的核心方向,在發展MSN、移動軟體、數字電視、XBOX、高可信度計算、自然用戶界面等方面不斷創新。
在技術浪潮的推動下,微軟公司總是把技術研發擺在關鍵地位,並將技術看作公司惟一可長期延續的財富和優勢。例如,微軟在2005財政年在研發領域投入大約85億美元,超過其營業額的五分之一,這個比例在「世界財富500強」的企業中居首位。
(2)運籌帷幄的「首席架構師」
要重視技術,企業就必須要有一個最高的技術決策者。現在,微軟公司的這個決策者就是比爾•蓋茨,微軟的「首席架構師」。設立這個特殊職位是因為,無論在微軟還是在其他公司,首席執行官根本沒有時間管技術,而很多所謂的「首席技術官」卻都是沒有實權的科學家,決定不了技術發展方向。但是,在一個技術主導的行業里,一個企業沒有技術方向的最高決策者是不行的。
作為首席架構師,比爾•蓋茨的工作是制定公司的長期技術路線圖,並確認公司每一個行政部門的科研計劃是互補而不是重疊的。因此,他要求公司的每一個產品和技術部門都向他做技術匯報,這些匯報大多是「頭腦風暴」式的討論會議。做這樣的匯報,除了可以得到比爾•蓋茨的回饋之外,每個項目團隊還可以在准備過程中受益匪淺。因為,項目團隊為了准備回答比爾可能問到的各種問題,必須在報告前徹底調研市場、技術、競爭對手等信息,也因此避免了閉門造車的風險。
另外,比爾•蓋茨每年都會抽兩段時間,用「閉關」的方式獨自思考問題,這被稱為比爾•蓋茨的「思考周」。在「思考周」之前,蓋茨會要求各部門精英在他們個人的專長領域給他提供大量閱讀材料和技術建議。在「思考周」里,蓋茨通常的工作方式是埋頭閱讀經過篩選的材料和技術建議,記下自己的想法,靜靜思考,最終做出一些對公司技術戰略有較大影響的重要決定。
(3)不斷完善的研發機制
為了更快、更好地將未來的技術變成現實中的軟體產品,微軟公司不但在技術研發上投入了大量資源,而且建立了完善的技術管理制度。比爾•蓋茨成立了「卓越工程」部門,負責確認公司的研發機制是有活力的,開發過程是最有效率的,開發出的軟體是安全可靠的,並避免不同部門之間的重疊開發。這個部門具有管理公司工程流程的實權,這樣才能帶領整個公司走在軟體業的前端。
微軟公司對技術研發的投入是堅定不移的。微軟很早就創立了它著名的研究機構(例如微軟亞洲研究院),並充分認識到,科學研究和產品開發工作間存在著巨大的差異。研究工作鼓勵冒險不懼怕失敗,鼓勵研究者擁有長遠的目標和規劃,做長期投資;而產品開發工作則更多地考慮眼前的利益,其目的只有一個,就是滿足客戶的需求。研究機構發展科技,生產部門製造產品,研究人員通常都是「思想家」,而產品開發人員更多的是「實踐家」。這兩類工作和兩種技術人員之間的差別非常明顯,如果我們希望更好地促進研究成果向實際產品的轉移,就必須在保持它們各自特色的基礎上,為它們的協作創造良好的環境和條件。
為了促進研究成果的轉移,微軟鼓勵研究人員充當新技術的推銷者,向產品部門推銷科技成果,同時也鼓勵產品部門把用戶需求和產業發展態勢及時反饋給研究部門。比爾•蓋茨最近在一次演講中說,微軟公司要做兩類事情,一類是滿足用戶現在的需求,另外一類是滿足用戶未來的需求。這表明,微軟公司已經將科研和開發視作了公司發展的兩條主線。事實上,微軟既為兩類不同的機構制定了共同的目標,建立了溝通渠道,也嚴格劃清了二者的界限,為不同類型的機構制定了不同的考評制度。同時,微軟也允許並鼓勵人才在兩類機構間轉移和流動。現在,微軟研究院每年都會向產品部門輸出大量科研成果,這些成果大多都被應用到了微軟公司各類成功的軟體產品上。
(4)專注於最擅長的軟體業務
微軟公司是一家專注於軟體技術和軟體產品研發的公司。雖然微軟公司也投資於MSN等內容服務和XBOX等硬體產品,這些產品的最終目的還是推進軟體和軟體平台。微軟公司的主體始終是軟體,微軟絕大部分銷售收入也是由軟體創造的。微軟公司對自己的定位是,在信息產業的整個生態系統中,專注於扮演純粹的軟體提供商的角色,其他的角色由戴爾、HP、Accenture等公司扮演。只有這樣,微軟才能把自己的專長做到最好,以保持在軟體領域的領先地位。
「專注」對公司很重要,因為一個公司的成功也來源於管理者或領導者的注意力。許多公司的領導者可能會因為急於發展,帶領公司向多個不同的方向發展。比如,某些大型IT企業在積累了一定財富後就會把資金投入到硬體、服務,或甚至房地產、傳媒等其他行業中。這么做就分散了公司的注意力,而公司的領導者也不見得有能力或激情來管理這些新開創的企業。但微軟公司的領導層總是把注意力放在七個基礎的商業部門的軟體業務。這七個部門都以開發軟體為己任,以軟體平台為核心,以比爾•蓋茨為總架構師。這樣,七個部門的領導者才能有共同的語言、共同的管理方式、共同的對軟體的專注與熱情,不必分心於自己不擅長或沒興趣的事情,才能如魚得水,在微軟發揮個人的潛力。
領導:微軟的成功之源
微軟公司的成功,在很大程度上得益於微軟公司擁有兩位傑出的領導人:比爾•蓋茨和史蒂夫•鮑爾默。在2000年之前,微軟惟一的領導者是比爾。2000年1月,為了更好地把握技術方向,比爾把首席執行官的工作交給了史蒂夫,自己做「董事長兼首席架構師」。後來,史蒂夫又把公司分為七大商業部門,每一個部門負責一系列的產品和用戶(例如:大企業部門負責Windows、SQL Server等伺服器軟體和工具;家庭娛樂部門負責XBOX、電視軟體平台和游戲軟體等)。從2000年以來,比爾和史蒂夫成為最佳搭檔,兩人帶領七個部門在經濟風暴中穩定成長,實為公司成功最大的原因之一。
(1)首席架構師比爾•蓋茨
比爾•蓋茨是微軟公司的技術帶頭人。他善於通過自己的遠見卓識,在技術上把握公司的發展方向,不斷為公司的新產品研發制定戰略目標。通過前面介紹的「思考周」、「頭腦風暴會議」等形式,比爾•蓋茨在全公司范圍內集思廣益,收集最新的信息,以保證技術決策的正確性和前瞻性。
比爾的另一項工作是協調公司軟體的投資,並避免七大商業部門的重疊投資。他會深入了解每一項重要技術,把開發任務交給某一個部門,並要求該部門把另外六個部門當做重要客戶,同時也要求其他六個部門不要重疊投資。例如,雖然七個部門都需要語音技術,但是比爾卻該技術的開發任務交給了我的部門。這樣的安排讓我不用擔心公司內部的競爭,而且,我所在團隊里的員工也會因為自己的產品能影響到其他各部門的產品而更有成就感。
比爾•蓋茨還要負責決定全公司七大商業部門在各個研發方向上的技術資源分配情況。大多數公司可能會把最多的資源分配在最賺錢的部門里。但微軟並不是這樣做的。例如,微軟公司負責Office產品研發的部門人數並不很多,相反,伺服器和工具部門卻擁有最多的技術員工。這主要是因為,微軟在後台服務領域面臨著更加激烈的市場競爭,需要投入更多的資源,以盡快開發出領先於IBM、Sun 等競爭對手的重量級產品。微軟公司在移動產品部門投入大量資源,也是因為比爾•蓋茨看好移動通信領域的巨大市場前景。因為微軟公司內的七大商業部門並不是完全獨立的,比爾•蓋茨就可以根據自己對技術方向的判斷,把有限的資源調配給最具有發展潛力或競爭最激烈的技術領域。
(2)首席執行官史蒂夫•鮑爾默
史蒂夫•鮑爾默是微軟公司的頭號啦啦隊長。他是一個非常有激情的人,說話聲音很大,非常有力量,而且很感性,很有穿透力。他是一個全能領導者,既有商業頭腦,又有戰略眼光,能鼓舞士氣,還富有激情,精通技術。微軟公司的人常說,史蒂夫給下級做考評的時候,就像在「奧數班」一樣,要求甚高而不允許犯錯。當下級把總結報告提交上去後,史蒂夫只看一眼,就可以從中挑出幾個乃至十幾個不恰當的地方。通過這樣的考評,下級員工可以收獲到非常多的經驗和知識,可以在以後的工作中做得更好。
當微軟把全公司整合成七大商業部門之後,史蒂夫•鮑爾默適時地由前台退到了後台。他不再做具體的管理者,而是轉變成了七大部門主管的背後支持者。他不再做每件大事的最後決定人,而是支持著七個部門主管的成長。他不再做一個最有煽動力的啦啦隊長,而成為一個幕後的教練。史蒂夫支持七大部門的主管放手施展自己的管理才華,而他自己則把更多的時間花在了公司的價值觀和人才建設上。
(3)最佳搭檔
比爾•蓋茨和史蒂夫•鮑爾默是微軟公司最重要的兩個人。在我所經歷過的高科技公司里,員工總是喜愛抱怨公司的最上層領導,但是在微軟,幾乎所有員工都對比爾和史蒂夫無比欽佩。和他們共事多年,我認為他們兩個人都是非常有才華,能夠集謙虛、勇敢和毅力於一身,勇於從失敗中吸取教訓。他們二人最特別的三個優點是:
1. 勇於改變、適應力強:比爾和史蒂夫都是適應能力很強的人,能夠根據情況的變化及時調整自己的工作角色和工作方式。他們兩個人都在不斷地學習,不斷改進自己的工作。例如,比爾在演講失敗後,勇於拜師學習演講技巧;2000年時,為了企業更好地發展,比爾將首席執行官一職交給史蒂夫;設立七大商業部門後,史蒂夫從啦啦隊長轉型成為幕後的教練……這些都是微軟員工津津樂道的例子。
2. 對公司充滿熱愛和激情:比爾和史蒂夫早已不是為了賺錢而工作,而是為了公司,為了用戶,為了享受激情和快樂而工作。他們很多年沒有拿股票和認股權,把上億的財富讓給了員工。正因為他們對公司的熱情感染了所有的員工,微軟才能匯集全公司所有人的智慧,共同為公司創造最大的價值。
3. 彼此信任、相互支持:對微軟來說最難得的是,比爾和史蒂夫兩人百分之百地彼此信任,共同推動微軟公司向前發展,共同完成了2000年到今天完美的職位交接,共同負責創造公司的未來。他們之間從未發生權力斗爭、政治糾紛一類的問題。這在今天這個現實、自私的社會中是最難能可貴的事,也是微軟公司成功路上的佳話。
雖然比爾和史蒂夫都還年輕,精力旺盛,離退休的時間還早,但他們已經開始了接班人的培養工作。這樣,即使他們退休之後,微軟公司也能延續他們的管理風格和管理理念,並不斷取得成功。
人才:微軟的立業之本
微軟公司把重視人才的管理理念視為公司的核心財富。在信息時代里,人才的價值尤為重要。在工業時代里,一個優秀技工和一個普通技工的效率差異可能是30%,但在信息時代里,一個高級程序員和一個普通程序員的效率差異可能高達10倍以上。例如,微軟公司有一位編程高手,一次,他對一位經理說,你們的產品里還缺少一種重要的功能。那位經理說,我也想做這個功能,但至少要50個人半年時間,現在已經來不及了。編程高手什麼也沒說就走了,第二個星期開會時,他對那位經理說,你要的功能我已經幫你做完了。因為這樣一位編程高手可能知道很多其他程序員所不知道的解決問題的捷徑,他在一個星期里就能做完50個人半年的工作。可見,這樣的人才對公司來講是有特殊意義的,公司必須善於追蹤、挖掘、面試、聘請、評估、培養、重視和留住這樣的人才,而且要把人才相關的工作視為公司最重要的任務之一。
(1)求賢若渴:追蹤和挖掘人才
重視人才的一個最直接的體現就是管理者要善於僱傭高水平的人才,而微軟公司的各級管理者都非常善於發現和雇傭人才,無論對方是大師級的人才,還是應屆大學畢業生或已離開公司的人。
例如,微軟公司最重要的領導和大師 Jim Allchin目前在微軟公司負責平台產品研發。當年,比爾•蓋茨想請他加入微軟的時候,通過朋友多次聯系他,Jim Allchin都置之不理。後來,經過比爾再三邀請,Jim終於答應來面試。結果,Jim一見到比爾就直接了當地說,微軟的軟體是世界最爛的,實在不懂比爾請他來做什麼。比爾•蓋茨不但不介意,反而對他說,正是因為微軟的軟體存在各種缺陷,微軟才需要你這樣的人才。比爾•蓋茨的虛懷若谷感動了Jim Allchin,終於把他請到了微軟公司。再例如,IBM著名的深藍計算機的設計者許峰雄博士此前也加盟了微軟公司。許峰雄博士是我的好朋友,我追蹤他至少五年了。逢年過節時,我總會給許峰雄博士打電話,聊一聊他的近況,探聽一下他的想法。年復一年,我終於打動了許峰雄博士,有幸邀請他到微軟來工作。雖然他最後加入的不是我的團隊,但是我一樣引以為豪。在微軟,許多人都像我一樣主動從事發現人才、跟蹤人才和吸引人才的工作。
除了努力挖掘、追蹤許峰雄、Jim Allchin這樣的大師之外,微軟也非常善於直接從學校僱傭剛畢業的大學生。每年我都會去兩三個大學親自面試最優秀的應屆畢業生。我們曾經做過一個統計,直接從學校僱傭的人才,在總體表現上要優於從社會僱傭的更有經驗的人才。我們也發現,今天微軟大部分的副總裁都是在大學畢業後直接進入微軟公司的。直接從學校僱傭和培養人才有很多好處:人才可塑性強,對公司忠誠度更高,最願意全力以赴地辦事,不怕風險,願意積累多部門的經驗。
此外,微軟公司一直追蹤著離開公司的優秀員工。我們並不認為員工跳槽是一件壞事。對於離開公司的優秀員工,微軟會認真分析該員工離開公司的原因,以便進一步改進工作。同時,微軟也會對他們離職後的工作情況進行追蹤,准備在合適的時間再把他們請回微軟。這種鼓勵人才流動的機制可以更好地激發人才的積極性,可以真正得到員工的信任和支持。
(2)任人唯賢:面試和聘請人才
微軟的面試機制是眾所周知的。微軟對於面試採取了嚴謹的態度,採用精心設計的面試流程。每一個申請者的面試都有多位微軟員工參加,每一位參加面試的員工都事先分配好面試時的任務。除了確認專業知識和經驗之外,我們也會出很多題目來測試申請者的獨立思考能力及面對難關時的表現。我們不只要僱傭那些技術上的專家,還應當僱傭聰明、學習能力強、有團隊精神的人。所以,面試時對這些方面也要深入地詢問。每一次面試後,面試者都會把他的意見和下面應該考核的問題交給後續的面試者。最後,只有得到絕大多數參與面試者的同意,並在明察暗訪所得的結果令我們滿意時,微軟才會聘用該申請者。
任人唯賢是微軟公司一貫遵循的用人理念。我們深信兩句話:(1)一流的人僱傭一流的人,二流的人僱傭三流的人。因此,當一個隊伍僱用第一個二流的人的時候,就是它走下坡路的時候。(2)雇傭人才應以提高組織當前的整體素質為標准。我們必須要求每一個新雇員的素質都超過整個團隊的平均水平,以此來提升團隊的平均素質,而不是降低團隊的素質。所以,微軟公司的管理者總是希望僱傭到比自己強的人才。如果你僱傭的人才最終能成為你的上司,你不但不應當感到羞愧,而應該感到無比的自豪。
(3)人盡其才:評估和培養人才
僱用員工之後,公司會定期對人才狀況進行評估和分析。每年,史蒂夫•鮑爾默都會要求七大商業部門的管理者把本部門最傑出的50到150位人才的詳細情況報告上來,史蒂夫把總共約600人的資料裝訂成一本獨特的《人才報告》,然後花上整整兩星期的時間來評估這些人才的發展前景,每天還會邀請這些人中的20位共進晚餐,以進一步了解這些人才。這樣的工作可以為高級人才在公司內的發展設計最好的路徑,也可以在公司有空缺職位的時候迅速找到合適的人選。史蒂夫期望自己認識這600人中的每一位。他把這本書放在他床前,每晚睡前都會認真地讀幾頁這本書。
微軟深信「人盡其才」,所以設計了「雙軌道」機制,既允許優秀員工在管理軌道上發展,也允許他們根據自己的意願,在技術軌道上發展。在每個軌道上,微軟為員工提供的機會是平等的,員工並不一定非要做管理工作才能促進個人事業的發展。在微軟,一個最高級別的工程師可能比副總裁還要資深。這樣的「雙軌道」政策從制度上保證了人才發展道路的多樣性,有利於吸引人才和留住人才。
微軟公司鼓勵公司內部人才的流動和發展。各級管理者都遵循人盡其材的方式給每一個優秀的人才發展的空間。各級管理者也深深理解「最優秀的人不屬於我,而屬於公司」,他們不會把人才據為己有,而是給最優秀的人才更好的發展機會,無論這個機會是不是由自己所管理的機構提供的。在這樣的制度下,優秀的人才大多能找到適合自己的發展道路。
除了培養優秀的人才之外,公司也必須發現並督促那些表現較差的員工,給他們機會改進,否則就只有要求他們離開。為了達到這個目的,微軟公司建立了完善的分級評估體系,並定期對員工的工作表現進行考核。在每一年度的考核中,每一個副總裁必須把他部門所有的員工分成四個等級:(1)超過期望,(2)達到期望,(3)達到大部分期望,(4)沒有達到期望。每一個等級必須有合理的比例,總會有相當一部分員工被評為第三或第四等。其中,拿到第四等(大約是5%左右)的員工等於是拿到了「不改進就得走」的信息。
史蒂夫•鮑爾默深深地理解,這樣的制度如果不是以身作則,就無法得到員工的支持和信服。所以,即便在副總裁或總經理這一級,微軟公司也施行嚴格的淘汰制。有一次,史蒂夫召集了公司最資深的100個人開會,並告訴我們說,「我要求你們找出最差的5%的員工,不論他們資歷如何,都要給他們一個不改進就得走的警告。『不論資歷』的意思是,今天有你們這100位高級經理在這里開會,而明年開會時,就應該只有95個人了。」結果,下一次開會時,果真有不只5位高級經理已經離職。
(4)才盡其用:重視和留住人才
很多人認為,留住人才的關鍵是待遇。的確,每個人都應該得到適當的待遇,但對一個軟體從業人員來說,他更看重的是工作環境如何。與提高員工待遇相比,微軟更注重做到提供一個能夠吸引人、留住人的環境,這包括:
有眾多的產品,能讓員工發揮才華和潛力,做出最大的貢獻;
充分的資源支持,讓每個人都沒有後顧之憂;
最佳的隊伍和開放、平等的環境,讓每個人都有彼此切磋、彼此學習的機會;
7. 為什麼中國的程序員總被稱為碼農
本人並不是一位程序員,但是從事互聯網行業也少不了與程序員朋友打交道,他們經常自嘲為「碼農」、「程序猿」、「代碼工人」、「碼字猴」等等,這些一定程度上是幽默的稱謂,但是站在旁觀者的角度,本人認為還有一些深層次的原因。
第一,中國的程序員是一個龐大的群體,只要是學過計算機,只要懂一門編程語言,都可以吃這碗飯。當你看到中午吃飯時那個浩浩盪盪的場面,你就會覺得程序員真的看起來和農民差不多。
第二,大部分程序員做的都是比較枯燥的工作,一點創新性都沒有。很多新項目都是在很成熟的項目之上進行修改,都有現成的模板可以套用,基本上不用怎麼動腦筋。這和農民種田是多麼的類似。他們年復一年地做著同樣的事情(播種、插秧、收割),也不知道這種日子什麼時候是個頭。IT行業本應該是一個創新性非常強的行業,但到了中國就成了比較死板的東西了,這是什麼原因呢?
第三,大部分程序員的視野都比較的窄,對其他行業懂得很少,這也和農民是多麼的相似啊!我們都說農民階層是沒有多少文化的,但這居然也適用於以高學歷著稱的程序員身上,是多麼具有諷刺意味啊!你隨便問一下身邊的程序員,當今最流行的詞語是什麼,我想沒有幾個人回答得上來。他們成天盯著代碼,想著那26個字母和10個數字,視野如何能變寬廣?
第四,大部分程序員都是靠自己的努力掙錢,沒有強的人際關系,基本上屬於「弱勢」群體。就像農民一樣,他們沒有關系,只能世世代代在自己的土地上耕耘,只求維持生計、終老一生。如果稍微有點關系,幾乎沒有人願意當程序員。在行業發展較為順利的時候,他們能夠保住飯碗,能夠養家糊口;當行業不景氣的時候,他們隨時都有被裁的危險,因為公司要不了那麼多人。程序員的命運並沒有真正地掌握在自己手上。
在一個大的IT公司,程序員都佔了很高的比例,少則成百上千人,多則幾萬人,真的像農民一樣,到處都是。我在和同事聚餐的時候,程序員都在抱怨自己的工作是如何的辛苦、如何的累,都說自己是「碼農」。
8. C#和JAVA發明人是誰
java是由java之父James Gosling
James Gosling
Sun副總裁及Sun研究院院士
40年前,一個寒冷的冬天,在加拿大一個村莊里,Gosling家的第一個男孩哇哇落地了。家人給他起了名字,叫James。誰也沒有想到的是,長大之後,他成為了一個改變計算機語言的天才。
James Gosling從小就喜歡技術,愛鼓搗東西。12歲的時候,他用報廢的電話機和電視機中的部件做了一台電子游戲機。附近農民的康拜因(聯合收割機)出了問題也常常找他修理。14歲的時候,中學組織到附近大學參觀,他記住了大學計算中心的門鎖密碼,從此開始偷偷地溜進計算中心,學習計算機編程。一年後,大學的天文系招他當了一名臨時編程員,編寫計算機程序來分析衛星天文數據。
80年代初,James Gosling獲得博士學位後到IBM工作,設計IBM第一代工作站。當時,IBM的領導層並不看重工作站項目。失望之餘,James Gosling跳槽到了Sun公司。他花了五年功夫領導開發的和OS2很類似的Sun NeWs窗口系統,盡管得到技術界的好評,卻未能變成流行的產品。當時他還第一個用C實現的EMACS的所見即所得文本編輯器COSMACS。
在當今這個競爭激烈的軟體開發時代,軟體設計師一直在試圖預測未來軟體或者技術的發展趨勢。在1990年,Sun公司成立了一個軟體設計團隊,其中除了James Gosling,還有Patrick Naughton和Mike Sheridan等人,他們合作的項目稱為「綠色計劃」。他們認為計算機技術發展的一個趨勢是數字家電之間的通訊。James開始負責為設備和用戶之間的交流創建一種能夠實現網路交互的語言。隨著大量的時間和金錢投入到「綠色計劃」,他們創建了一種語言。這種語言一開始被叫做「Oak」,這個名字得自於Gosling想名字時看到了窗外的一棵橡樹。但後來被改為了「Java」。並於1992年9月3日開始應用於Sun工作站的遠程遙控。
1994年底,James Gosling參加了在矽谷召開的「技術、教育和設計大會」。他報著試一試的心情向與會者演示了Java的功能。他點擊了網頁上的一個靜止的分子結構圖標,一條命令通過互聯網送到了幾百英里外的網站,下載了一段Java小程序,在本地工作站上開始執行。在幾秒鍾時間里,原本靜止的網頁上,一個分子圖像以三維動畫的方式轉了起來。
「哇!」James Gosling聽到了全場觀眾的贊嘆聲。
不久後,矽谷最大的報紙《聖荷西信使報》在頭版刊登了一篇專文,「為什麼Sun認為一杯熱咖啡能讓你鼓足精神」。從文章見報開始,負責Java市場人員的電話響個不停。不久,全美的主要報刊雜志都刊登了Java的報道。
Java出名了!
到了2000年,Java已經成為世界上最流行的電腦語言。綠色小組當初設計Java是為了面向數字家庭,支持各種家電設備。他們沒有想到的是,Java支持的計算模式,實際上就是互聯網的模式。
對於Java語言的巨大成功,沒有人比James Gosling 更加謙遜:「我從來沒有想到Java技術將會這么火。當我的老闆問我它將達到多少次下載時,我說 10,000 次。而他認為我太過樂觀了。」
詹姆斯·戈士林現任Sun公司副總裁及Sun研究院院士。
戈士林先生以「Java 技術之父」而聞名於世。他是Java 技術的創始人,他親手設計了Java語言,並開發了Java編譯器和Java虛擬機,使Java成為了世界上最流行的開發語言。Java支持的計算模式,已經成為了互聯網的標准編程模式以及分布式企業級應用的事實標准。目前,戈士林 先生積極致力於研究軟體開發工具,使它們功能更為強大,更容易為開發人員所使用,能夠快速地開發應用。
戈士林 先生曾創建了衛星數據攔截系統、Unix的多處理器版本、編譯器、郵件系統和視窗管理器等。他還創建了著名的WYSIWYG (「所見即所得」)測試編譯器。在Sun,他的早期活動是領導了NeWS (網路擴展視窗系統)項目,並任該項目的首席工程師。
2000年,安德爾思海斯博格,就是發明pascal語言的那個人,borland的創始人之一,神話般的人物,他一個人做了這些 pascal object pascal delphi vj++ c# .net framework
安德斯·海爾斯伯格 Delphi和.NET之父:安德斯·海爾斯(Anders Hejlsberg)
安德斯·海爾斯伯格(Anders Hejlsberg,1960.11~),丹麥人,Turbo Pascal編譯器的主要作者,Delphi和.NET之父
安德斯·海爾斯伯格曾在丹麥技術大學學習工程,當時他在丹麥擁有個叫Poly Data的公司,他編寫了Pascal編譯器核心,最初叫作Compass Pascal,後來叫Poly Pascal。Anders把該編譯器核心授權給了美國Borland公司。安德斯·海爾斯伯格作為雇員加入Borland公司,並且是後來所有Pascal版本與Delphi前3個版本的架構師。Philippe Kahn為Pascal添加了用戶界面與編輯器。
Anders Hejlsberg曾在丹麥科技大學學習工程學。Anders Hejlsberg第一次登上軟體界歷史舞台是在80年代早期,因為他為MS-DOS和CP/M設計了一個Pascal編譯器。當時,還是一個小公司的Borland很快僱用了他,並買下了他的編譯器,改稱Turbo Pascal。在Borland,Hejlsberg繼續開發Turbo Pascal,並最終帶領他的小組設計了Turbo Pascal的替代品、開發工具史上的奇跡:Delphi語言。
1996年,Anders Hejlsberg在Delphi3發布前離開Borland去了MS。
在此之前,MS曾多次企圖挖走Anders,但都沒有成功。據信anders去MS(主要)不是錢的問題,雖然MS的開價也相當有吸引力: 130萬美元年薪外加股票期權和分紅,總計超過300萬美元。更主要的原因是Anders和Delphi開發組的其他成員在修改編譯器的問題上發生了爭執;還有,據Borland內部人講,Anders認為自己不再是「不可缺少的人」。
Anders在Delphi3中幾乎沒有做什麼工作,Chuck Jazdzewski扮演了一個更重要的角色。(--Anders Ohlsson) Anders在Borland時把所有精力都放在了Pascal產品上,也需要新的挑戰,這時Bill Gates的親自邀請,許諾給與挑戰的機會,Anders加入了Microsoft就勢在必行。
Microsoft 用豐厚的薪水、股票認購權和巨額的加盟獎金雇請了 Hejlsberg 之後,Borland 曾提出通過不正當手段吸收新成員的控告。Borland 還曾聲稱 — 提供了很少的細節來支持指控 — Hejlsberg 正在開發「Delphi for Java」。這場訴訟雖然最終以 Borland 的勝利而收場;但Anders 已經在為Microsoft工作了。
1996年Anders來到微軟後,直接主抓Visual J++的研發工作,並在1999年被授予「distinguished engineer」(卓越工程師),在微軟僅有16人獲得這樣的榮譽。
後來微軟希望通過開發最新的軟體開發語言來贏得軟體開發者的擁戴,在微軟公司把視窗操作系統和軟體向網路遷移的新市場戰略中,C#語言是最重要的環節。微軟動用了最好的資源。Anders擔任了C#語言的首席設計師,同時也是微軟.NET戰略構架的重要參與決策者。考慮一下Anders的經歷,就不會奇怪微軟將此重任交給他了。畢竟C#也不是他對軟體開發方式重大變革的首次。現在經過幾年時間的埋頭苦幹,C#已成為微軟反擊Java語言的最有力武器。
鑒於他為軟體開發做出的巨大貢獻,Anders在《Dr.Dobb's》雜志的2001年西部會議上被授予「Prestigious Excellence in Programming Award」,《Dr.Dobb's》雜志的主編Jonathan Erickson說:「這一榮譽,我們每年只頒給那些在軟體開發領域做出非凡貢獻的人員,Anders開發的C#和他整個職業生涯中為軟體開發所做出的巨大貢獻有目共睹,他無愧於這一榮譽!」
比爾蓋茨也高度評價說:「我們為Anders獲得這一榮譽感到無比自豪,Anders在C#創建中所做的努力將會改變現在的軟體開發方式,並將在以後的十年繼續產生影響。」
「程序員是最好的職業」,Anders說:「每兩年,CPU的速度要加倍,內存容量是原來的四倍,但是我們的大腦還是原來的大小,很顯然,將需要更多的程序原來補充這些。」
註:海爾斯伯格曾在微軟博物館視頻上表明他是1960年生的,但很多其它資料顯示,他是1961年生的。2006年,在巴塞羅那微軟技術教育大會(TechED)上,安德斯再次確認他生於1960年。
9. 軟體開發步驟包括哪些過程
軟體開發一般分為五個階段:
1.問題的定義及規劃
此階段是軟體開發與需求放共同討論,主要確定軟體的開發目標及其可行性。
2.需求分析
在確定軟體開發可行性的情況下,對軟體需要實現的各個功能進行詳細需求分析。需求分析階段是一個很重要的階段,這一階段做的好,將為整個軟體項目的開發打下良好的基礎。「唯一不變的是變化本身」,同樣軟體需求也是在軟體愛你開發過程中不斷變化和深入的,因此,我們必須定製需求變更計劃來應付這種變化,以保護整個項目的正常進行。
3.軟體設計
此階段中偶要根據需求分析的結果,對整個軟體系統進行設計,如系統框架設計、資料庫設計等。軟體設計一般分為總體設計和詳細設計。還的軟體設計將為軟體程序編寫打下良好的基礎。
4.程序編碼
此階段是將軟體設計的結果轉化為計算機可運行的程序代碼。在程序編碼中必定要制定統一、符合標準的編寫規范。以保證程序的可讀性、易維護性。提高程序的運行效率。
5.軟體測試在軟體設計完成之後要進行嚴密的測試,一發現軟體在整個軟體設計過程中存在的問題並加以糾正。整個測試階段分為單元測試、組裝測試、系統測試三個階段進行。測試方法主要有白盒測試和黑盒測試。
10. 女程序員到底有沒有被歧視
畢業一年的玲瓏邪僧曾經在某家娛樂文化為主的大型公司面試前端時,在等候的過程中聽到了隔壁有人說:「看到那個來面試前端的女生了嗎,一看就不會寫代碼。」聽得她喜憂參半。
就像「胸大無腦」這個詞本身存在性別歧視的意味一樣,「長得漂亮的女生一定是花瓶」也成為了大多數人對漂亮女生的直觀印象。
女程序員想在工作能力上得到男性的認可,往往需要經過時間的驗證。
高瑩回憶起剛參加工作時,領導分配給她的都是團隊里難度最低的任務。當時公司里有個男同事無意間瞟了一眼她寫的代碼,評價道:「寫得不咋地,重構沒意義,沒有技術含量」。
幾個月後她的能力得到了領導認可,也開始寫一些有技術含量的代碼,這時這個男同事對她的評價也隨之發生了改變: 「沒想到你的代碼水平不錯,在女生里算寫得比較好的了」。從這句話可以聽出,他並沒有把男女程序員的代碼水平放在同一標准上進行比較,內心深處還是認為女生的代碼能力不如男。
100offer讓幾位男程序員對女程序員的代碼水平和工作能力做出了評價,他們的回答普遍比較正面。
雖然Tim認為女程序員一開始獨立性差點,但是很快就能調整過來,她們的代碼水平普遍和男程序員差不多,工作能力挺強。
徐風則說雖然女程序員調bug的時候也會罵臟話,但工作起來非常仔細認真,很是靠譜。
但當問到是否會對女程序員進行特殊照顧,比如不把難度大的工作交給他們時,大多數男程序員給出的答案都是:會。
男程序員在工作時會盡量不把難度高、工作量大、加班多的工作交給女程序員。一方面出於女性體質比男性弱的考慮,另一方面他們覺得這是對女性的一種出於本能的照顧。
那麼,女程序員們是怎麼看待自己的代碼水平和抗壓能力的呢?
iOS高級工程師張丹荔認為,女程序員里確實有代碼寫得差的,在佔比上比男程序員大,但並不是全部。就像大學里很多計算機系的女生會找男生幫忙做作業一樣,她們不是做不好,而是不感興趣。如果真正喜歡技術的話,她相信女程序員的代碼水平不會比男程序員差。
另一方面,男程序員有時寧願自己加班也不願把工作分配給女程序員,很大一部分原因是他們認為女生抗壓能力差。關於這點,玲瓏邪僧認為這並不是碼農界特有的現象,相反,互聯網圈是一個相對公平的領域,女程序員想要反駁這些說法、證實自己的能力並不難。
她認為相比於外界對女程序員的偏見,女程序員對自己的錯誤定位與消極評價才是更為最致命的。面對偏見,部分人會在潛意識里認同外界的說法,認為自身確實不抗壓、能力弱,久而久之萌生放棄退卻的念頭。
所以,女性程序員應當正確客觀地意識到自己的優勢和不足,一定要拒絕裹足不前。
從采訪可以看出,外貌、性別等外在因素容易被作為評判女程序員代碼水平好壞的標准之一,這種現象在初入職場的新人身上尤為顯著。