程序員成功之路?——The?road?ahead?for?programmer(演講稿)
一、我很羨慕在座的各位同學,因為你們是中國未來的程序員,而我不是,我一直很遺憾。
比爾蓋茨曾經寫過一本書叫做《未來之路》The?road?ahead,?那么今天我選擇這樣一個題目,the?road?ahead?for?programmer,?程序員的未來之路,也就是程序員的成功之路,希望大家未來也能夠擁有像比爾蓋茨一樣的智慧的頭腦和開一家像微軟一樣的公司。俗話說:心有多大,人生的舞臺就有多大!
二、最近看了幾篇csdn上的漫漫人生路專輯,很有感觸,這里摘抄了幾句,非常愿意和大家分享,?優秀程序員的心里話:
編程的原因是喜歡,不是為了別的。?
從摸上電腦的那一刻,我就知道,這才是我的世界。
我一心一意地想作個程序員,盡管知道很累。
人真的不能輕言放棄,否則,失去的永遠無法挽回!
生命是一種長期而持續的累積過程?
所有成功的人都有一個不變的黃金法則:?積累!與?堅持!
大家聽了這些話,不知道是怎樣的想法呢?
提問,(1)你以前有沒有讀過這樣的文章或有沒有程序員跟你說過這樣的感受?
(2)你怎樣看待程序員這個職業?你有這種感覺嗎?
上面的話其實都在說明一個道理,只有全身心地投入,寫程序才會有意思,才會體會到其中的樂趣。
電腦的世界其實很大,程序員是活在自己想象的王國里。你可以想象到電腦里細微到每一個字節、每一個比特位的東西。通過電腦可以實現你的設想,解決你的問題。電腦遠沒有人那么復雜,如果程序寫得好,你就可以和電腦處好關系,就可以指揮電腦干你想干的事。每每你坐在電腦面前,這個時候你是十足的主宰。
理想和夢想,比爾蓋茨自從見到了計算機這個東西,就想象有一天個人計算機將是每一部辦公桌面系統以及每一家庭的必備的工具,并為這一信念所指引,開始為個人計算機開發軟件。
三、程序人生:可以把程序作為你的人生,也可以把你的人生當作程序來設計。
你的父母把你生下來,你的身體就是一臺計算機,而上面運行的軟件就是你的思想,這個軟件版本高低功能的強弱,就看你的思想境界。思想軟件需要你自己慢慢地去編寫,可能父母教給了你最基本的語言,但是其他的高級語言和技能需要你長大以后要自己去學習,你能精通幾門語言是你的本事。?
第一步,隨著你漸漸的長大,你開始有了需求,各種各樣的需求,一開始你只是想要一塊巧克力糖,一個新書包,一件新衣服,一輛嶄新的自行車;后來你可能就想要一棟房子、一輛好車,你開始追求高質量的的物質生活、精神生活,你追求成功與快樂、還要求更好的發展,希望得到別人的尊敬,過一份有尊嚴的生活。需求很多很多,仔細分析你的需求,想想你最想要什么?怎樣去實現它。
第二步,是很關鍵的一步,你要設計自己的人生程序。你首先要概要設計,你希望將來成為一個怎樣的人,分幾大步實現這個目標,少年、青年、成年、中年、老年。可能有求學程序、出國程序、戀愛程序、求職程序、事業程序、升職程序、結婚程序等等。概要設計后還要進行詳細設計,你每個月每個星期做些什么,每個小模塊里面有每個階段的小的目標,小程序,這個星期讀完一本書,下個月參加考試,然后寫一篇論文等等,雖然說人生不可能完全規劃出來,但是經過設計的人生遠遠比沒有設計過的人有更有意義,好好的設計你的人生吧。
第三步,是編碼和測試,你大多數時間都在不停的編碼,同時還要不停的測試,編碼的過程十分的辛苦,需要耐心和思考,你會覺得苦悶、煩躁不安、寂寞、痛苦、迷茫與無奈,但有些時候又十分開心、興奮虛榮、驕傲和滿足。編碼的過程充分體現了人生瑣碎與不如意和艱難,bug永遠存在,人生也在不斷的犯錯誤和不斷地總結。就像一個程序不能編寫得完美一樣,人生也是不完美的,你不可能處處要求完美,很多地方需要同別人交流和互相借鑒。測試可以分為內部測試和外部測試,經過測試,你發現自己的錯誤,并想方設法改正它,然后成長起來。
第五步是集成和軟件發版,你的設計的人生軟件要拿到市場上去賣,能不能賣上好價錢,要看軟件的功能和特色,性價比、看軟件的包裝,你有沒有高人一等的杰出才能,你有沒有于其它軟件相比的競爭力,軟件的價值,也就是你人生的價值。當然你可能是一個很高尚的人,編一些免費的軟件,不做比爾蓋茨,做linus?torvols也挺好的,在自由的空氣在互聯網上空飄蕩。看你自己的選擇!不過這個世界好像更歡迎前者,linus住在擁擠的民用公寓里。而比爾蓋茨住在自己像皇宮一樣的豪宅里面當帝王,你首先要解決生存的問題,然后再去考慮其他得東東。
好好的譜寫你的人生程序,人這一輩子真是要追求點什么才有意義!在譜寫你的人生程序之前,首先看一看你的前輩們是怎樣譜寫他們的成功人生的!(慢一點兒)
四、國外著名程序員
馮•諾伊曼和阿蘭•圖靈計算機之父,圖靈機是現代通用計算機的原型
小托馬斯•沃森,藍色巨人IBM創始人,迅速發展起來,40%的利潤率?
史蒂夫•喬布斯,蘋果公司的總裁?
肖克利博士因將其一生獻給其鐘愛的晶體管事業而名垂計算機史。
蒂姆•貝納斯-李的最大貢獻當屬發明了WWW(Word?Wide?Web,萬維網)。他也因此而以“Web之父”及大多數瀏覽器標準的監護人而聞名于世
最早干起計算機軟件編程的不是蓋茨,而是他的朋友和競爭對手加里•基爾代爾。?作為最偉大的程序設計員和設計家之一,他搞程序主要是出于縝密思維的雅興,而不是為了賺錢。當時他開發了一個CP/M操作系統,比爾蓋茨也自己寫了一個dos操作系統,但是很不好用,遠遠比不上cp/m,所以ibm公司就想把基爾的操作系統買下來,比爾蓋茨這個時后表現出極大的熱情,主動代表基爾去談,于是談來談去就把基爾的操作系統談成了自己的東西,人們都說,使用操作系統的是人都欠基爾一份情,而蓋茨欠得最多。?
比如蓋茨賴以揚名立身并最終發家致富的Basic語言,是60年代達特默斯學院的兩位教授創造的。而微軟起飛的翅膀DOS,更是基爾代爾的“臨摹品”?。Windows用的是蘋果的技術,Excel其實是Lotus1-2-3的復制品,Web瀏覽器也是借助網景的創意開發的,Word純粹是WordStar、WordPerfect的跟風......?
微軟屢屢實施“吸功大法”,博采眾家之長,將許多其他公司創造的新技術新功能納入自己的產品?
但是,
不管蓋茨使用了什么卑劣和霸道的經營手法,不管微軟是不是違反了壟斷法,不管法院將對它做出什么樣的裁決,我們都應當感謝微軟,感謝蓋茨,是他們改變了我們的工作、學習和生活方式,是他們增加了我們對這個世界的更新、更深刻的認識,是他們讓人類向科技和文明的高峰又邁進了一步。蓋茨和微軟,是工業經濟時代向信息經濟時代轉軌過程中永遠屹立的豐碑!
五、國內著名程序員:
求伯君?王江民?嚴援朝?吳曉軍?
鮑岳橋?劉 旭?王志東?朱崇君?
王永民?史玉柱?劉積仁?周志農?
丁 磊?王文京?劉迎建?池宇峰?
王志東?周 奕?郭?為?劉 虎
六、中國有千千萬萬的程序員,從求伯軍到王江民,從嚴援朝到王志東,從丁磊到雷軍;世界上也有千千萬萬的程序員,從Linus到Andersen,從比爾.蓋茨到楊致遠,我一直在研究這些優秀的程序員所走過的道路。發現他們共同的特點是把軟件開發當成自己的嗜好,并且把這種嗜好變成自己的事業,永遠保持著好奇心、思考、執著(韌性)和耐心!市場需求決定著軟件產業的發展方向。軟件工程師不能就技術論技術,而是要就市場論技術。因為如果沒有市場需求,沒有地方可應用,即便是“天衣無縫”的技術也只能“孤芳自賞”。?
好奇心:樂趣始終是工作的源動力。視工作的成就為人生最大享受,可能是這一代新富翁共同的特點。做自己喜歡做的事,而不是賺錢,才是他們的主要動力。對他們而言,在計算機屏幕前編寫著一句句看似枯燥的程序代碼,干得不分晝夜,是最大的樂趣。
思考:基爾代爾,作為最偉大的程序設計員和設計家之一。他搞程序主要是出于縝密思維的雅興,而不是為了賺錢。在開發的過程中學會思考和遠望,學會做創造性的工作。有思想的程序員生命力才能長久。給大家出兩道思考題:軟件的本質是什么?軟件高手怎樣定義?日后有機會大家一起討論!
執著:執著是一切天才的“通病”,?王文京執著于財務軟件,于是有了今天的用友軟件。蘇啟強執著于軟件服務,于是有了今天的連邦軟件。我們也要執著于我的執著!阿甘的例子,只有偏執狂才能生存IBM(安迪•葛洛夫)
耐心:值得你一生去學習的東西!高手往往都是寂寞的,寂寞的人是走得最快的人。
一個人只要有韌性,剛開始寫程序的時候,學得多的人寫得好,到了后來,大家都上了一個層次,誰寫的好只取決于這個人是否細心、有韌性、有靈性。關鍵是你是否能夠出想法出產品,你的勞動是否能被社會承認,能為社會創造財富。
我要告訴大家的是,不論你今后是選擇繼續學習還是選擇工作,都要始終把終身學習的觀念樹立起來,永遠保持對新事物的好奇心,執著的去追求自己做鐘愛的軟件事業,學會思考,去除浮躁,有耐心的去寫好每一行代碼,那么不管今后你發展的怎么樣,至少現在,你已經具備了一個優秀程序員所具備的基本素質,你的思想已經能夠得到別人的尊重。
“專注與超越——這是人生每日的主題”
七、如何做一個成功的程序員?
下面是我和一些朋友談過之后的小結,希望對于各位有所幫助。?
1.?培養對軟件開發的興趣。
因為不喜歡,所以才感覺的痛苦,因為痛苦,所以很難有大的發展,因為一直沒有大的進步,所以,更加不喜歡。如此惡性循環。而正確的應該是,先做到對于軟件開發感興趣,如何做呢?首先你要產生對于軟件本身的好奇心,做這項生活的人,多數有這方面的愛好,也能感受到其中的樂趣,否則就會成天痛苦不堪。
2.?第二步,其實更簡單,給自己進入軟件行業一個理由!
然后,寫下來,放在一個適當的地方,不要隨便看到,但是,永遠不要忘掉。?
為什么需要這個理由?原因很簡單。當我聽一些朋友聊他的苦悶時,總覺得對于自己選擇軟件行業是一個錯誤,如何的不好。我就問他,你當初為什么選擇軟件這一行?想了半天,他才回答我。我說,你在猶豫?,就證明你已經淡忘了當初你為什么決定入行了。關于選擇,應該說人生無處不在抉擇,一旦選擇了就不會放棄。既然選擇了就不要輕易后悔,執著的走下去,因為你一后悔,任何選擇和決定都是錯誤的。永遠不要把時間浪費到對往事后悔的追憶上。
如果你一直記得入行的理由,那么,在做軟件開發這份寂寞的路上,你永遠不會被寂寞擊倒。成功就在你堅持的那一刻來臨。
3.?一切從dos開始。
也許你覺得奇怪,為什么要從dos開始,因為這里我是說你要成為一個成功的軟件程序員,而不是僅僅是一個程序員,既然你要成功,所以,你要厚積薄發,所以,從dos開始是有道理的。因為從dos開始,你就知道,要想刪除一個文件不是右鍵點一下,然后,選擇刪除菜單,可能還要點一個確定,就一切OK了,你可以要執行一下del指令,然后,還要輸入一些參數如文件名,可能還需要路徑,知道這兩個區別有什么用呢?當然有用,你不會被漂亮的窗口界面(所見即所得的精美畫面)所迷惑。?當你現在才開始學習的時候,擋住窗口界面的引誘,或許你會更容易成功。?
你可以猜測出它們大概處理的過程是什么。
4.?開始你選擇的工具決定了你將來的發展水平
世界上流行的程序語言有許多種,這種情況將來也不會改變,因為這是由我們所面臨的需要解決的計算問題的五彩繽紛所決定的。任何語言都不可能是最完美的工具,不可能在處理任何問題時都是最銳利的寶劍。“為完成目的而不擇工具”;?一個計算機工作者需要理解掌握多種程序設計語言,只有這樣,在遇到具體問題時才可能做出更合理的選擇。
目前流行的:.net;?Java;?VB;?VC等等。
各種開發工具各有千秋,應根據具體應用來采用不同的工具。例如寫MIS用PB/VB就很好,界面設計用VB/Delphi很不錯,寫系統軟件,用C是最好的。對于初學者來說,先用一種可視化強的工具(如VFP/VB/DELPHI)比較好,容易掌握,上手也快。但如果你想做一名真正的程序員,我建議你還是很有必要去精通C。
單從一個很功利的角度來說說。Delphi/?VB對于一般人來說學上幾個月就可以上手了。易學的東西學的人肯定多。而對于C來說,由于它難掌握,學的人不火,但一旦你真正掌握了,你的競爭實力就比其他人強。現實中,C程序員的工資普遍高于其他程序員就是一個證明。
Vb/delphi?寫界面的4000元
vc?寫通訊DLL的5000到6000元
linux?c/c++?寫服務器的7000到9000元
知道C/C++有前途了吧?
5.?編譯原理
如果你有足夠的好奇的話,你現在應該想知道編譯工具背后的故事,寫代碼時,你也許會奇怪,不同的程序語言為什么會有不同的語法,語義,語用;變量名為什么不能數字開頭?計算機如何識別這些定義,運算,名字空間等等。這個時候看看《編譯原理》多少能夠給你一些解釋。學習一點理論知識,加強你的理論功底,很多人都說科班出身的程序員比參加社會認證培訓出來的程序員強的地方,就是理論功底強,系統思考能力強,時間長了就會體現出其優勢。學習編譯原理的另一個好處在于將來你學習其它開發工具時,?特別是學習不同底層語言的開發工具時,雖然它們的底層語言相關非常大,但是,除去這些語言的外衣,用編譯原理層面來看它們,原來它們是如此相似。
6.?操作系統原理
你要知道,任何你做出來的軟件都是運行在操作系統環境中的,操作系統為你的作品提供了什么樣的環境呢??這很重要,如果是DOS,它是以軟中斷的方式提供的,而Windows則是以一系列的API提供的。然后,你還可以知道,如何判斷系統當前路徑,內存管理機制、進程/線程調度、信號、內核對象管理、系統調用等,操作系統中如何處理死鎖的?。?
7.?現在讓我們進入windows時代,windows下的開發工具
畢竟在微軟統治的時代,大家還是識時務者為俊杰比較好,windows下的開發工具一定要重點掌握。?面向過程編程向面向對象轉變,現在流行的開發工具VC,VB都差不多。
8.?數據庫原理和開始數據庫編程
現在做軟件一個最基本的應用類型就是數據庫編程,這是可能使你可以勝任很大一部分工作了。也就是說,如果你掌握了數據庫之后,你就可以出去找工作了。很多應用程序都是以數據庫的數據為中心,而數據庫的產品也有不少,其中關系型數據庫仍是主流形式,用SQL?server作為起點吧,因為這東西使用起來挺方便的。寫一個簡單的單表輸入程序,簡單一點容易掌握。比如寫一個客戶資料錄入程序。?
10?英語
統計表明,全世界45個國家的官方語言是英語,1/3的人講英語,75%的電視節目用英語播出,80%以上的科技信息用英文表達,幾乎100%的軟件源代碼用英文寫成。
學習英語真得很重要,且不說它是程序世界的主導語言,且不說它是計算機專業本科畢業生四年的必修課,且不說它是全世界程序高手們互相切磋尋求幫助的主要工具,它還是現在大多數用人單位的敲門磚,在這樣一個開放性的社會里,如果你不懂英文,你是不是很難稱得上是一個人才啊!
多讀英文書。信息技術發展太快,而大部分的技術最先出現的時候都是英文版本的,要幾個月以后才有中文版本的書出來,因此要想跟上步伐,一定要努力提高自己的英文水平,這樣才能同步跟上信息技術。你可能擔心自己的英語水平不行,沒關系,剛開始多查字典。
很多東西看中文的譯版不如原版的清晰,中文的可能越看越糊涂,可是英文卻可以一目了然。再說對于一些最新的技術和動態文章,你哪里有時間去等到別人給你翻譯出來再看啊,等你看到了,也快過時了。不懂英語,你真得很難算得上是一個人才!
到了這里,你沒有發現你在和別人聊軟件開發時,別人對你的態度有變化呢??
八、從現在開始,你要注意和別人交流了,因為從現在開始的很多東西,都是別人一指點就可以,而你自己看需要很久的。可以經常去一些論壇交流,都是很不錯的,沒有不上網的程序員,也沒有不在網上取長補短的程序員。不過在問問題之前,自己一定要先努力嘗試過,再給出自己的想法。動不動就問別人,自己水平得不到提高,別人也不再會回答你的問題。
九、程序員最喜歡的網站:
http://www.microsoft.com/china/msdn/default.asp ?微軟社區
(IBM?SUN?Borland?orACLE?BEA?CISCO?GOOGLE)
http://www.csdn.net ?中國軟件
www.china-pub.com?互動出版社
www.codestudy.net?程序員聯盟
http://www.codeproject.com
www.soft.net?印度
msdn.microsoft.com/msdnmag
十、程序員的七種武器
第一種武器:開發工具
至少熟練掌握兩到三種開發工具的使用,這是程序員的立身之本,其中C/C++和JAVA是我重點推薦的開發工具,C/C++以其高效率和高度的靈活性成為開發工具中的利器,很多系統級的軟件還是用C/C++編寫。而JAVA的跨平臺和與WEB很好的結合是JAVA的優勢所在,而本人對SUN公司的“網絡即計算機”的概念相當欣賞,并相信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(object?Management?group)支持的規范。程序員需要做的不僅僅是利用商業的開發平臺來開發軟件,而是要理解這些技術的初衷,即為什么需要這項技術,如果你能理解了這一點,再回頭看這些技術的具體實現,就如庖丁解牛,迎刃而解。XML/WebServices重要性不言而喻,XML以其結構化的表示方法和超強的表達能力被喻為互聯網上的“世界語”,是分布計算的基石之一。?
第六種武器:軟件工程與CMM
現代大型軟件系統的開發中,工程化的開發控制取代個人英雄主義,成為軟件系統成功的保證,一個編程高手并不一定是一個優秀的程序員,一個優秀的程序員是將出色的編程能力和開發技巧同嚴格的軟件工程思想有機結合,編程只是軟件生命周期中的其中一環,優秀的程序員應該掌握軟件開發各個階段的基本技能,如市場分析,可行性分析,需求分析,結構設計,詳細設計,軟件測試等。一句話可以概括我的看法:“創意無限,流程保證”。?
第七種武器:強烈的好奇心
什么才是一個程序員的終極武器呢,那就是強烈的好奇心和學習精神。沒有比強烈的好奇心和學習精神更好的武器了,它是程序員們永攀高峰的源泉和動力所在。?
養成良好的習慣
現在很流行的一句話是“性格決定命運”,實際上可以這樣理解,你的性格決定你的習慣,而習慣決定你的命運!中國有一句古話叫做:習慣成自然。同時,西方古希臘哲學家亞里士多德也說過:“優秀是一種習慣”,比如你每天早上堅持起來讀書,就養成了讀書的好習慣。那么懶惰也是一種習慣,不知道在座的各位又沒有感覺到,當你睡覺越來越多的時候,你每天都想睡覺,越睡越懶,越坐越癱。你習慣于10點睡覺7點起床,那就比習慣于11點睡覺6點起床的人少擁有兩個小時,而據我所知很多好學習的人都是12點睡覺5點起床的,那你就又比他們每天少擁有4個小時了。
在一次次沉重的洗禮后,痛苦地改掉不利于自己發展的不良習慣,從而又一次超越自己。
一、適當背誦的習慣
新東方有個學員上中學的時候英語特別的差,總是倒數第一名,于是為了提高自己的英文水平他就決定開始背誦新概念英語,結果背到一半2冊的時候,他成績就明顯提高了。高考后上了大學,他考上了一所比較著名的大學,他本來不想再背誦了,但是當他背給同學聽的時候,其他同學都露出了羨慕的眼光,于是為了這種虛榮心,他就堅持背誦第三冊第四冊,背得滾瓜爛熟,你說上一句,他就能聯出下一句,而且語音非常標準,因為他是模仿磁帶背誦的。后來他去了美國的duke大學,第一個星期寫文章,教授就把他叫過來說你的文章是剽竊的,他說:“我教了20年的書也沒教出這么漂亮的文章來”,這個學生說我沒辦法證明我能寫出這么漂亮的文章,但我告訴你我能背誦108篇文章,你想不想聽,于是他就開始背誦,結果他沒背完兩篇,教授就哭了起來,為什么?這個教授想我教了20年書,居然一篇文章也沒有背過,被中國學生背掉了,所以很難過。小時候背誦兒歌的故事,好的算法和好的代碼可以重點看一看。?
二、好為人師的習慣?
把你認為你懂的東西講出來吧,將給別人聽,你會記憶得更加深刻。成就感是一點一點積累起來的,你考考別人bluetooth、ASP、PDA、CDMA是什么?如果他不懂,你就講給他聽,同時你自己的記憶也在加深。在現代這樣一個向開放型過渡的社會里,你要想成功必須要善于表達自己,善于表達自己的觀點和思想,并想辦法說服別人,做市場作營銷當老師當領導者,你要想證明自己有能力,那你就必須學會說出來呀、表達自己,塑造你個人的影響力,人與人之間的交往,就是意志力與意志力的較量,不是我影響你,就是你影響我。?現在最流行的職業:口力勞動者,教師、主持人、歌星、領導、美國總統、市場營銷人員等等。
三、五官齊用的習慣?
如果說你看到的東西,你會記住30%,那么你同時看和聽就會記住50%,如果你既看又聽,手里還在寫、嘴里還在念念有詞,你就會記住100%,如果日后有時間再復習兩至三遍,你就永遠不會忘記了。不在于你一次看了多長時間,重要的是你重復了多少次!?
四、學習他人的習慣?
給自己樹立一個目標人物,最好從身邊找到一個這樣的榜樣,你可以跟他交流,這樣當你遇到困難的時候想一想你做敬佩的人會怎樣做,你就有力量去征服它了。我常以為,這輩子如果能遇到一位好的指導老師講是一件很幸運的事情。如果身邊沒有,我上面舉了那么多的明星人物,從里面找一個你的努力目標吧!周奕的例子,mp3到光盤刻錄、注冊碼、匯款方式。小的目標大的目標,向他看齊,現在時代,不是個人英雄主義的時代,你要學會從別人身上學習好的東西,拿為己用,你的任務只是在他的基礎上能夠提升。?
五、見縫插針的習慣?
時間像海綿里的水,看你怎樣擠出來用,最有效的記憶規律不是你一次記憶多長時間,二是你多長時間重復記憶多少次。把你最喜歡的書隨時帶在身邊,有空就看,不要讓大腦閑置太久不用。背單詞。
六、設立特定的目標并規定期限?
把你的人生當成程序來設計,制定計劃,并限制完成的日期,否則你總會被各種原因而耽誤的。比如說參加gre考試,你永遠也不敢肯定自己是否已經準備到最充分了,那么是不是就一直不考呢?一直在準備準備、復習復習,直到你筋疲力盡沒有力氣去考試了,一鼓作氣、再而衰、三而竭,再說時間有限,你有多少時間可以浪費呢??
七、注重實踐的習慣?
無論你的書本知識掌握得多么牢固,你多么的清晰地理解你所學到的知識,你一到實踐中去用,你會發現遠遠不是那么一回事。就像學習游泳,我學游泳的時候,請教了無數的游泳專家,模仿最標準的姿勢,練氣和技巧,我在陸地上不停的練習、練習、再練習,可是一下水,全完了,還是不會。?做程序員,那得練、不停的練習。最好的學習方法,就是自己寫一段小程序。學習開車,我跟我男朋友學開車,每次他開車的時候都告訴我,怎樣啟動發動機,然后踩離合器,掛檔,給油,剎車停車,我對開車的理論和技巧無比熟悉了,自信一定可以開車了,于是就嘗試了一下,怎么樣,結果不是不堪設想啊,動用了手剎。學員活動調查結果,最短時間內、最快學會編程、成為像你們一樣的程序員!
?一點學習經驗
勤奮練習?
把書上的例子輸進電腦實踐一遍,然后進行各種試驗,再聯想出各種相關的程序,自己寫出來,并驗證自己的結果。
讀高手寫的程序
有了一定的基礎的時候,可以嘗試去讀高手寫的程序,解讀他們的程序的設計理念、風格、解決問題的思路等。我的程序就和英語一樣,一個變量名就是一個句子!寫程序很少加注釋!
GNU/Linux為我們提供了一個巨大的源程序寶庫,里面有各種各樣的程序源代碼,詳細研究一套你感興趣的系統,你的水平會得到大幅度提高。
不斷提高?
除了多加練習,你還需要多讀書,特別是英文書。要適時的選擇自己的主攻方向。
記筆記的習慣
隨時拿著你的筆和筆記本,一接收到有用的信息或字急又好的想法就迅速記下來,抓住瞬息即逝的靈感。自己大腦里蹦出來的東西,才是自己的價值和驕傲。
學習它是個長期的過程,要不斷的總結經驗,我們學習就怕不能持之以恒。關于這點大家比我更清楚。一旦你學會了它,其他的語言就可以觸類旁通了,例如:C++,C#,JAVA,VB,DELPHI......這些學起來就會比那些C語言基礎不扎實的人要輕松得許多!學習的過程是一個不斷積累的過程,只有學習的時間積累到一定的程度,才能發生質的提高。經過ACCP接近兩年時間學習培養出來的軟件工程師才是當前市場上亟需的專業軟件人才,才意味著高薪和價值。
程序員的分類
第一種是初級,這種人數量最多,水平最低。喜歡看報紙上的編程小知識,秘籍和技巧大全之類的東西,這給了他廣博的半瓶子醋的學問。這種程序員往往把編程這種腦力勞動變成敲鍵盤的體力勞動。把軟件白領變成了軟件藍領。一些軟件公司的Fans們往往拿著嚇人的工資、做著嚇人的項目,他們做出來的結果也往往很嚇人。這些人組成了軟件人才市場上的流動大軍。?
第二種是通常意義上的高手,他們有時候覺得自己十分了不起,有時候又覺得自己什么也不是。大部分時候,他沒感覺,沒激情,沒愛,相當于一個血肉機器、曰之為“感情木頭”。對于他們來說沒有比coding更加有意義的事情了。?
第三種是大師級的人物。在平凡的外表下,是一個無所不能的人。沒有一個人和一條狗不尊敬他。他吐痰的樣子也有人模仿。微軟公司首席“建筑師”西蒙尼就是一個這樣的人物。不過,他說“合作比天才更重要”
為什么軟件市場上人才缺口這么大,每年20萬之多,最缺乏的是熟練的程序員,而成千上萬的畢業生又找不到工作。大家應該好好想一想:
軟件人才是多了,但多的是沒有實際工作經驗、技術掌握的層次低的開發人員。這批人頻繁地跳槽形成的求職大軍營造出中國軟件人才一大把的現象。?
軟件人才是少了,少的是具有豐富工作經驗,技術扎實精深的工程師一類的開發人員。他們在哪里都是炙手可熱的人物,求職大軍里自然少有這樣的人才。?
勸每一個學員克服浮躁,踏踏實實地走好每一步!既然要學,就得耐心,你要告訴自己,要用一生的時間去學習它,你就不會急功近利了。
俞敏洪總結的成功的四種能力
一、忍受孤獨的能力是成功者的必經之路
不管有多少人在你身邊,父母督促你、朋友鼓勵你,你要想達到成功最終都要靠你自己,God?helps?those?who?help?themselves.?如果你想走出平凡,那么請你走進孤獨!孤獨的人是走得最快的人!去除浮躁,不要總想著你將來會怎樣怎樣,重要的是現在,自信心是一點一滴積累起來的。
二、忍受失敗的能力是重新振作的源泉
生活中的失敗實在是太多了,整個社會的競爭體系是一個金字塔式的結構,你可以說我與世無爭,我知足者長樂,當然你可以這樣做。可是社會不允許你這樣做,因為他不會讓你樂太久的,不進則退、優勝劣汰的市場機制會淘汰你,你會被社會拋在金字塔的最底層,你會感到整個金字塔的重量都壓在了你的身上,你見不到陽光,你欣賞不到美麗的風景,你感到絕望。所以為了更好的活著,你就要振作、努力。好在機遇是平等的,在機會來臨的時候,如果你有能力就會抓住它。
三、忍受屈辱的能力是成就大業的基礎?
你去新東安燕莎買東西,如果你沒有錢,你會不會感受到售貨員對你的態度不一樣了呢?你去找工作,被人才市場上的人流擠得東倒西歪,北大清華的請到前面來,男生請到前面來,碩士博士請到前面來……,?你租房子被各種各樣的房東趕著跑,一年到頭不停的搬家,與小商販為了幾塊錢討價還價,你為了一點點的錢為老板四處奔波。這些都是屈辱,在你成功之前你必須忍受屈辱。?
四、生理承受能力是成就大業的前提?
做一件事情,你付出了別人所沒有付出的,那你得到的也是別人所沒有得到的。當我們已經開始做了某一件事情之后,我們則不宜由于我們現在認為另一件事更理想、更值得做而輕易改變我們的行動。?已經開始做了這件事,已經為此付出了心力;而且,究竟我們現在的認識正確還是過去的認識正確也還有待于檢驗;因為我們每一個人的生命和精力都是有限的!
對待學習的態度
沒有壓力就沒有動力,要想辦法給自己施加壓力,平時多看書,多接觸相關的知識,保持永遠能夠學習的慣性,當然專業知識要不斷的研究和深入探索;當真正的壓力到來時,你的學習效率才是最高的。用任務去學習,沒有任務制造任務。
我們每天的工作就是接受問題,解決問題,只能就事而論了。主要態度如下:接受它、分析它、解決它、放下它;
克服學習中的冷熱病,有了刺激就去學習,刺激過去了就放松,考試來了就緊張,考試過了就全忘。聽了一場講座或報告就意氣風發,苦學三天三夜,然后就又找借口放松。
今天想干這個,明天想干那個,結果一事無成。
書到用時方恨少,事非經過不知難,書有未曾經我,讀事無不可對人言
微?軟:李開復的一封信
李開復是微軟中國研究院的院長,是微軟公司的副總裁,他在中國的各大高校里做演講,他十分了解中國學生的心理,所以語重心長的給中國學生寫了一封信:
中國的軟件也還不很發達,我們每天耳濡目染的都是一些國外的名牌,MS/IBM/SONY/HP/CANNON/SUN/CISCO/INTEL/DELL/PHILIP/TOSHIBA/PENASONIC/EPSON,日本的產品現在已經打遍了全世界,他們非常地團結,他們叫做大和民族,同為亞洲東海岸的中華民族,為什么相差得這樣懸殊,不要過多地去找歷史的原因,想一想自己,你有沒有把你自己的理想和目標同國家聯系起來呢?
人生最重要的東西,進取、熱情,信任,堅持,努力,自律,思考,感動,耐心,韌性、珍惜
……?……
奔跑人生:在靜謐的非洲大草原上,夕陽西下,一頭獅子在沉思,明天當太陽升起的時候,我要奔跑,以追得上跑得最快的羚羊,此時,一只羚羊也在思考,明天當太陽升起的時候,我要奔跑,以躲過跑得最快的獅子的捕獲,是的,無論你是獅子或者羚羊,明天,當太陽升起的時候你所要做的就是:毫不猶豫地向前奔跑!
一、我很羨慕在座的各位同學,因為你們是中國未來的程序員,而我不是,我一直很遺憾。
比爾蓋茨曾經寫過一本書叫做《未來之路》The?road?ahead,?那么今天我選擇這樣一個題目,the?road?ahead?for?programmer,?程序員的未來之路,也就是程序員的成功之路,希望大家未來也能夠擁有像比爾蓋茨一樣的智慧的頭腦和開一家像微軟一樣的公司。俗話說:心有多大,人生的舞臺就有多大!
二、最近看了幾篇csdn上的漫漫人生路專輯,很有感觸,這里摘抄了幾句,非常愿意和大家分享,?優秀程序員的心里話:
編程的原因是喜歡,不是為了別的。?
從摸上電腦的那一刻,我就知道,這才是我的世界。
我一心一意地想作個程序員,盡管知道很累。
人真的不能輕言放棄,否則,失去的永遠無法挽回!
生命是一種長期而持續的累積過程?
所有成功的人都有一個不變的黃金法則:?積累!與?堅持!
大家聽了這些話,不知道是怎樣的想法呢?
提問,(1)你以前有沒有讀過這樣的文章或有沒有程序員跟你說過這樣的感受?
(2)你怎樣看待程序員這個職業?你有這種感覺嗎?
上面的話其實都在說明一個道理,只有全身心地投入,寫程序才會有意思,才會體會到其中的樂趣。
電腦的世界其實很大,程序員是活在自己想象的王國里。你可以想象到電腦里細微到每一個字節、每一個比特位的東西。通過電腦可以實現你的設想,解決你的問題。電腦遠沒有人那么復雜,如果程序寫得好,你就可以和電腦處好關系,就可以指揮電腦干你想干的事。每每你坐在電腦面前,這個時候你是十足的主宰。
理想和夢想,比爾蓋茨自從見到了計算機這個東西,就想象有一天個人計算機將是每一部辦公桌面系統以及每一家庭的必備的工具,并為這一信念所指引,開始為個人計算機開發軟件。
三、程序人生:可以把程序作為你的人生,也可以把你的人生當作程序來設計。
你的父母把你生下來,你的身體就是一臺計算機,而上面運行的軟件就是你的思想,這個軟件版本高低功能的強弱,就看你的思想境界。思想軟件需要你自己慢慢地去編寫,可能父母教給了你最基本的語言,但是其他的高級語言和技能需要你長大以后要自己去學習,你能精通幾門語言是你的本事。?
第一步,隨著你漸漸的長大,你開始有了需求,各種各樣的需求,一開始你只是想要一塊巧克力糖,一個新書包,一件新衣服,一輛嶄新的自行車;后來你可能就想要一棟房子、一輛好車,你開始追求高質量的的物質生活、精神生活,你追求成功與快樂、還要求更好的發展,希望得到別人的尊敬,過一份有尊嚴的生活。需求很多很多,仔細分析你的需求,想想你最想要什么?怎樣去實現它。
第二步,是很關鍵的一步,你要設計自己的人生程序。你首先要概要設計,你希望將來成為一個怎樣的人,分幾大步實現這個目標,少年、青年、成年、中年、老年。可能有求學程序、出國程序、戀愛程序、求職程序、事業程序、升職程序、結婚程序等等。概要設計后還要進行詳細設計,你每個月每個星期做些什么,每個小模塊里面有每個階段的小的目標,小程序,這個星期讀完一本書,下個月參加考試,然后寫一篇論文等等,雖然說人生不可能完全規劃出來,但是經過設計的人生遠遠比沒有設計過的人有更有意義,好好的設計你的人生吧。
第三步,是編碼和測試,你大多數時間都在不停的編碼,同時還要不停的測試,編碼的過程十分的辛苦,需要耐心和思考,你會覺得苦悶、煩躁不安、寂寞、痛苦、迷茫與無奈,但有些時候又十分開心、興奮虛榮、驕傲和滿足。編碼的過程充分體現了人生瑣碎與不如意和艱難,bug永遠存在,人生也在不斷的犯錯誤和不斷地總結。就像一個程序不能編寫得完美一樣,人生也是不完美的,你不可能處處要求完美,很多地方需要同別人交流和互相借鑒。測試可以分為內部測試和外部測試,經過測試,你發現自己的錯誤,并想方設法改正它,然后成長起來。
第五步是集成和軟件發版,你的設計的人生軟件要拿到市場上去賣,能不能賣上好價錢,要看軟件的功能和特色,性價比、看軟件的包裝,你有沒有高人一等的杰出才能,你有沒有于其它軟件相比的競爭力,軟件的價值,也就是你人生的價值。當然你可能是一個很高尚的人,編一些免費的軟件,不做比爾蓋茨,做linus?torvols也挺好的,在自由的空氣在互聯網上空飄蕩。看你自己的選擇!不過這個世界好像更歡迎前者,linus住在擁擠的民用公寓里。而比爾蓋茨住在自己像皇宮一樣的豪宅里面當帝王,你首先要解決生存的問題,然后再去考慮其他得東東。
好好的譜寫你的人生程序,人這一輩子真是要追求點什么才有意義!在譜寫你的人生程序之前,首先看一看你的前輩們是怎樣譜寫他們的成功人生的!(慢一點兒)
四、國外著名程序員
馮•諾伊曼和阿蘭•圖靈計算機之父,圖靈機是現代通用計算機的原型
小托馬斯•沃森,藍色巨人IBM創始人,迅速發展起來,40%的利潤率?
史蒂夫•喬布斯,蘋果公司的總裁?
肖克利博士因將其一生獻給其鐘愛的晶體管事業而名垂計算機史。
蒂姆•貝納斯-李的最大貢獻當屬發明了WWW(Word?Wide?Web,萬維網)。他也因此而以“Web之父”及大多數瀏覽器標準的監護人而聞名于世
最早干起計算機軟件編程的不是蓋茨,而是他的朋友和競爭對手加里•基爾代爾。?作為最偉大的程序設計員和設計家之一,他搞程序主要是出于縝密思維的雅興,而不是為了賺錢。當時他開發了一個CP/M操作系統,比爾蓋茨也自己寫了一個dos操作系統,但是很不好用,遠遠比不上cp/m,所以ibm公司就想把基爾的操作系統買下來,比爾蓋茨這個時后表現出極大的熱情,主動代表基爾去談,于是談來談去就把基爾的操作系統談成了自己的東西,人們都說,使用操作系統的是人都欠基爾一份情,而蓋茨欠得最多。?
比如蓋茨賴以揚名立身并最終發家致富的Basic語言,是60年代達特默斯學院的兩位教授創造的。而微軟起飛的翅膀DOS,更是基爾代爾的“臨摹品”?。Windows用的是蘋果的技術,Excel其實是Lotus1-2-3的復制品,Web瀏覽器也是借助網景的創意開發的,Word純粹是WordStar、WordPerfect的跟風......?
微軟屢屢實施“吸功大法”,博采眾家之長,將許多其他公司創造的新技術新功能納入自己的產品?
但是,
不管蓋茨使用了什么卑劣和霸道的經營手法,不管微軟是不是違反了壟斷法,不管法院將對它做出什么樣的裁決,我們都應當感謝微軟,感謝蓋茨,是他們改變了我們的工作、學習和生活方式,是他們增加了我們對這個世界的更新、更深刻的認識,是他們讓人類向科技和文明的高峰又邁進了一步。蓋茨和微軟,是工業經濟時代向信息經濟時代轉軌過程中永遠屹立的豐碑!
五、國內著名程序員:
求伯君?王江民?嚴援朝?吳曉軍?
鮑岳橋?劉 旭?王志東?朱崇君?
王永民?史玉柱?劉積仁?周志農?
丁 磊?王文京?劉迎建?池宇峰?
王志東?周 奕?郭?為?劉 虎
六、中國有千千萬萬的程序員,從求伯軍到王江民,從嚴援朝到王志東,從丁磊到雷軍;世界上也有千千萬萬的程序員,從Linus到Andersen,從比爾.蓋茨到楊致遠,我一直在研究這些優秀的程序員所走過的道路。發現他們共同的特點是把軟件開發當成自己的嗜好,并且把這種嗜好變成自己的事業,永遠保持著好奇心、思考、執著(韌性)和耐心!市場需求決定著軟件產業的發展方向。軟件工程師不能就技術論技術,而是要就市場論技術。因為如果沒有市場需求,沒有地方可應用,即便是“天衣無縫”的技術也只能“孤芳自賞”。?
好奇心:樂趣始終是工作的源動力。視工作的成就為人生最大享受,可能是這一代新富翁共同的特點。做自己喜歡做的事,而不是賺錢,才是他們的主要動力。對他們而言,在計算機屏幕前編寫著一句句看似枯燥的程序代碼,干得不分晝夜,是最大的樂趣。
思考:基爾代爾,作為最偉大的程序設計員和設計家之一。他搞程序主要是出于縝密思維的雅興,而不是為了賺錢。在開發的過程中學會思考和遠望,學會做創造性的工作。有思想的程序員生命力才能長久。給大家出兩道思考題:軟件的本質是什么?軟件高手怎樣定義?日后有機會大家一起討論!
執著:執著是一切天才的“通病”,?王文京執著于財務軟件,于是有了今天的用友軟件。蘇啟強執著于軟件服務,于是有了今天的連邦軟件。我們也要執著于我的執著!阿甘的例子,只有偏執狂才能生存IBM(安迪•葛洛夫)
耐心:值得你一生去學習的東西!高手往往都是寂寞的,寂寞的人是走得最快的人。
一個人只要有韌性,剛開始寫程序的時候,學得多的人寫得好,到了后來,大家都上了一個層次,誰寫的好只取決于這個人是否細心、有韌性、有靈性。關鍵是你是否能夠出想法出產品,你的勞動是否能被社會承認,能為社會創造財富。
我要告訴大家的是,不論你今后是選擇繼續學習還是選擇工作,都要始終把終身學習的觀念樹立起來,永遠保持對新事物的好奇心,執著的去追求自己做鐘愛的軟件事業,學會思考,去除浮躁,有耐心的去寫好每一行代碼,那么不管今后你發展的怎么樣,至少現在,你已經具備了一個優秀程序員所具備的基本素質,你的思想已經能夠得到別人的尊重。
“專注與超越——這是人生每日的主題”
七、如何做一個成功的程序員?
下面是我和一些朋友談過之后的小結,希望對于各位有所幫助。?
1.?培養對軟件開發的興趣。
因為不喜歡,所以才感覺的痛苦,因為痛苦,所以很難有大的發展,因為一直沒有大的進步,所以,更加不喜歡。如此惡性循環。而正確的應該是,先做到對于軟件開發感興趣,如何做呢?首先你要產生對于軟件本身的好奇心,做這項生活的人,多數有這方面的愛好,也能感受到其中的樂趣,否則就會成天痛苦不堪。
2.?第二步,其實更簡單,給自己進入軟件行業一個理由!
然后,寫下來,放在一個適當的地方,不要隨便看到,但是,永遠不要忘掉。?
為什么需要這個理由?原因很簡單。當我聽一些朋友聊他的苦悶時,總覺得對于自己選擇軟件行業是一個錯誤,如何的不好。我就問他,你當初為什么選擇軟件這一行?想了半天,他才回答我。我說,你在猶豫?,就證明你已經淡忘了當初你為什么決定入行了。關于選擇,應該說人生無處不在抉擇,一旦選擇了就不會放棄。既然選擇了就不要輕易后悔,執著的走下去,因為你一后悔,任何選擇和決定都是錯誤的。永遠不要把時間浪費到對往事后悔的追憶上。
如果你一直記得入行的理由,那么,在做軟件開發這份寂寞的路上,你永遠不會被寂寞擊倒。成功就在你堅持的那一刻來臨。
3.?一切從dos開始。
也許你覺得奇怪,為什么要從dos開始,因為這里我是說你要成為一個成功的軟件程序員,而不是僅僅是一個程序員,既然你要成功,所以,你要厚積薄發,所以,從dos開始是有道理的。因為從dos開始,你就知道,要想刪除一個文件不是右鍵點一下,然后,選擇刪除菜單,可能還要點一個確定,就一切OK了,你可以要執行一下del指令,然后,還要輸入一些參數如文件名,可能還需要路徑,知道這兩個區別有什么用呢?當然有用,你不會被漂亮的窗口界面(所見即所得的精美畫面)所迷惑。?當你現在才開始學習的時候,擋住窗口界面的引誘,或許你會更容易成功。?
你可以猜測出它們大概處理的過程是什么。
4.?開始你選擇的工具決定了你將來的發展水平
世界上流行的程序語言有許多種,這種情況將來也不會改變,因為這是由我們所面臨的需要解決的計算問題的五彩繽紛所決定的。任何語言都不可能是最完美的工具,不可能在處理任何問題時都是最銳利的寶劍。“為完成目的而不擇工具”;?一個計算機工作者需要理解掌握多種程序設計語言,只有這樣,在遇到具體問題時才可能做出更合理的選擇。
目前流行的:.net;?Java;?VB;?VC等等。
各種開發工具各有千秋,應根據具體應用來采用不同的工具。例如寫MIS用PB/VB就很好,界面設計用VB/Delphi很不錯,寫系統軟件,用C是最好的。對于初學者來說,先用一種可視化強的工具(如VFP/VB/DELPHI)比較好,容易掌握,上手也快。但如果你想做一名真正的程序員,我建議你還是很有必要去精通C。
單從一個很功利的角度來說說。Delphi/?VB對于一般人來說學上幾個月就可以上手了。易學的東西學的人肯定多。而對于C來說,由于它難掌握,學的人不火,但一旦你真正掌握了,你的競爭實力就比其他人強。現實中,C程序員的工資普遍高于其他程序員就是一個證明。
Vb/delphi?寫界面的4000元
vc?寫通訊DLL的5000到6000元
linux?c/c++?寫服務器的7000到9000元
知道C/C++有前途了吧?
5.?編譯原理
如果你有足夠的好奇的話,你現在應該想知道編譯工具背后的故事,寫代碼時,你也許會奇怪,不同的程序語言為什么會有不同的語法,語義,語用;變量名為什么不能數字開頭?計算機如何識別這些定義,運算,名字空間等等。這個時候看看《編譯原理》多少能夠給你一些解釋。學習一點理論知識,加強你的理論功底,很多人都說科班出身的程序員比參加社會認證培訓出來的程序員強的地方,就是理論功底強,系統思考能力強,時間長了就會體現出其優勢。學習編譯原理的另一個好處在于將來你學習其它開發工具時,?特別是學習不同底層語言的開發工具時,雖然它們的底層語言相關非常大,但是,除去這些語言的外衣,用編譯原理層面來看它們,原來它們是如此相似。
6.?操作系統原理
你要知道,任何你做出來的軟件都是運行在操作系統環境中的,操作系統為你的作品提供了什么樣的環境呢??這很重要,如果是DOS,它是以軟中斷的方式提供的,而Windows則是以一系列的API提供的。然后,你還可以知道,如何判斷系統當前路徑,內存管理機制、進程/線程調度、信號、內核對象管理、系統調用等,操作系統中如何處理死鎖的?。?
7.?現在讓我們進入windows時代,windows下的開發工具
畢竟在微軟統治的時代,大家還是識時務者為俊杰比較好,windows下的開發工具一定要重點掌握。?面向過程編程向面向對象轉變,現在流行的開發工具VC,VB都差不多。
8.?數據庫原理和開始數據庫編程
現在做軟件一個最基本的應用類型就是數據庫編程,這是可能使你可以勝任很大一部分工作了。也就是說,如果你掌握了數據庫之后,你就可以出去找工作了。很多應用程序都是以數據庫的數據為中心,而數據庫的產品也有不少,其中關系型數據庫仍是主流形式,用SQL?server作為起點吧,因為這東西使用起來挺方便的。寫一個簡單的單表輸入程序,簡單一點容易掌握。比如寫一個客戶資料錄入程序。?
10?英語
統計表明,全世界45個國家的官方語言是英語,1/3的人講英語,75%的電視節目用英語播出,80%以上的科技信息用英文表達,幾乎100%的軟件源代碼用英文寫成。
學習英語真得很重要,且不說它是程序世界的主導語言,且不說它是計算機專業本科畢業生四年的必修課,且不說它是全世界程序高手們互相切磋尋求幫助的主要工具,它還是現在大多數用人單位的敲門磚,在這樣一個開放性的社會里,如果你不懂英文,你是不是很難稱得上是一個人才啊!
多讀英文書。信息技術發展太快,而大部分的技術最先出現的時候都是英文版本的,要幾個月以后才有中文版本的書出來,因此要想跟上步伐,一定要努力提高自己的英文水平,這樣才能同步跟上信息技術。你可能擔心自己的英語水平不行,沒關系,剛開始多查字典。
很多東西看中文的譯版不如原版的清晰,中文的可能越看越糊涂,可是英文卻可以一目了然。再說對于一些最新的技術和動態文章,你哪里有時間去等到別人給你翻譯出來再看啊,等你看到了,也快過時了。不懂英語,你真得很難算得上是一個人才!
到了這里,你沒有發現你在和別人聊軟件開發時,別人對你的態度有變化呢??
八、從現在開始,你要注意和別人交流了,因為從現在開始的很多東西,都是別人一指點就可以,而你自己看需要很久的。可以經常去一些論壇交流,都是很不錯的,沒有不上網的程序員,也沒有不在網上取長補短的程序員。不過在問問題之前,自己一定要先努力嘗試過,再給出自己的想法。動不動就問別人,自己水平得不到提高,別人也不再會回答你的問題。
九、程序員最喜歡的網站:

(IBM?SUN?Borland?orACLE?BEA?CISCO?GOOGLE)

www.china-pub.com?互動出版社
www.codestudy.net?程序員聯盟

www.soft.net?印度
msdn.microsoft.com/msdnmag
十、程序員的七種武器
第一種武器:開發工具
至少熟練掌握兩到三種開發工具的使用,這是程序員的立身之本,其中C/C++和JAVA是我重點推薦的開發工具,C/C++以其高效率和高度的靈活性成為開發工具中的利器,很多系統級的軟件還是用C/C++編寫。而JAVA的跨平臺和與WEB很好的結合是JAVA的優勢所在,而本人對SUN公司的“網絡即計算機”的概念相當欣賞,并相信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(object?Management?group)支持的規范。程序員需要做的不僅僅是利用商業的開發平臺來開發軟件,而是要理解這些技術的初衷,即為什么需要這項技術,如果你能理解了這一點,再回頭看這些技術的具體實現,就如庖丁解牛,迎刃而解。XML/WebServices重要性不言而喻,XML以其結構化的表示方法和超強的表達能力被喻為互聯網上的“世界語”,是分布計算的基石之一。?
第六種武器:軟件工程與CMM
現代大型軟件系統的開發中,工程化的開發控制取代個人英雄主義,成為軟件系統成功的保證,一個編程高手并不一定是一個優秀的程序員,一個優秀的程序員是將出色的編程能力和開發技巧同嚴格的軟件工程思想有機結合,編程只是軟件生命周期中的其中一環,優秀的程序員應該掌握軟件開發各個階段的基本技能,如市場分析,可行性分析,需求分析,結構設計,詳細設計,軟件測試等。一句話可以概括我的看法:“創意無限,流程保證”。?
第七種武器:強烈的好奇心
什么才是一個程序員的終極武器呢,那就是強烈的好奇心和學習精神。沒有比強烈的好奇心和學習精神更好的武器了,它是程序員們永攀高峰的源泉和動力所在。?
養成良好的習慣
現在很流行的一句話是“性格決定命運”,實際上可以這樣理解,你的性格決定你的習慣,而習慣決定你的命運!中國有一句古話叫做:習慣成自然。同時,西方古希臘哲學家亞里士多德也說過:“優秀是一種習慣”,比如你每天早上堅持起來讀書,就養成了讀書的好習慣。那么懶惰也是一種習慣,不知道在座的各位又沒有感覺到,當你睡覺越來越多的時候,你每天都想睡覺,越睡越懶,越坐越癱。你習慣于10點睡覺7點起床,那就比習慣于11點睡覺6點起床的人少擁有兩個小時,而據我所知很多好學習的人都是12點睡覺5點起床的,那你就又比他們每天少擁有4個小時了。
在一次次沉重的洗禮后,痛苦地改掉不利于自己發展的不良習慣,從而又一次超越自己。
一、適當背誦的習慣
新東方有個學員上中學的時候英語特別的差,總是倒數第一名,于是為了提高自己的英文水平他就決定開始背誦新概念英語,結果背到一半2冊的時候,他成績就明顯提高了。高考后上了大學,他考上了一所比較著名的大學,他本來不想再背誦了,但是當他背給同學聽的時候,其他同學都露出了羨慕的眼光,于是為了這種虛榮心,他就堅持背誦第三冊第四冊,背得滾瓜爛熟,你說上一句,他就能聯出下一句,而且語音非常標準,因為他是模仿磁帶背誦的。后來他去了美國的duke大學,第一個星期寫文章,教授就把他叫過來說你的文章是剽竊的,他說:“我教了20年的書也沒教出這么漂亮的文章來”,這個學生說我沒辦法證明我能寫出這么漂亮的文章,但我告訴你我能背誦108篇文章,你想不想聽,于是他就開始背誦,結果他沒背完兩篇,教授就哭了起來,為什么?這個教授想我教了20年書,居然一篇文章也沒有背過,被中國學生背掉了,所以很難過。小時候背誦兒歌的故事,好的算法和好的代碼可以重點看一看。?
二、好為人師的習慣?
把你認為你懂的東西講出來吧,將給別人聽,你會記憶得更加深刻。成就感是一點一點積累起來的,你考考別人bluetooth、ASP、PDA、CDMA是什么?如果他不懂,你就講給他聽,同時你自己的記憶也在加深。在現代這樣一個向開放型過渡的社會里,你要想成功必須要善于表達自己,善于表達自己的觀點和思想,并想辦法說服別人,做市場作營銷當老師當領導者,你要想證明自己有能力,那你就必須學會說出來呀、表達自己,塑造你個人的影響力,人與人之間的交往,就是意志力與意志力的較量,不是我影響你,就是你影響我。?現在最流行的職業:口力勞動者,教師、主持人、歌星、領導、美國總統、市場營銷人員等等。
三、五官齊用的習慣?
如果說你看到的東西,你會記住30%,那么你同時看和聽就會記住50%,如果你既看又聽,手里還在寫、嘴里還在念念有詞,你就會記住100%,如果日后有時間再復習兩至三遍,你就永遠不會忘記了。不在于你一次看了多長時間,重要的是你重復了多少次!?
四、學習他人的習慣?
給自己樹立一個目標人物,最好從身邊找到一個這樣的榜樣,你可以跟他交流,這樣當你遇到困難的時候想一想你做敬佩的人會怎樣做,你就有力量去征服它了。我常以為,這輩子如果能遇到一位好的指導老師講是一件很幸運的事情。如果身邊沒有,我上面舉了那么多的明星人物,從里面找一個你的努力目標吧!周奕的例子,mp3到光盤刻錄、注冊碼、匯款方式。小的目標大的目標,向他看齊,現在時代,不是個人英雄主義的時代,你要學會從別人身上學習好的東西,拿為己用,你的任務只是在他的基礎上能夠提升。?
五、見縫插針的習慣?
時間像海綿里的水,看你怎樣擠出來用,最有效的記憶規律不是你一次記憶多長時間,二是你多長時間重復記憶多少次。把你最喜歡的書隨時帶在身邊,有空就看,不要讓大腦閑置太久不用。背單詞。
六、設立特定的目標并規定期限?
把你的人生當成程序來設計,制定計劃,并限制完成的日期,否則你總會被各種原因而耽誤的。比如說參加gre考試,你永遠也不敢肯定自己是否已經準備到最充分了,那么是不是就一直不考呢?一直在準備準備、復習復習,直到你筋疲力盡沒有力氣去考試了,一鼓作氣、再而衰、三而竭,再說時間有限,你有多少時間可以浪費呢??
七、注重實踐的習慣?
無論你的書本知識掌握得多么牢固,你多么的清晰地理解你所學到的知識,你一到實踐中去用,你會發現遠遠不是那么一回事。就像學習游泳,我學游泳的時候,請教了無數的游泳專家,模仿最標準的姿勢,練氣和技巧,我在陸地上不停的練習、練習、再練習,可是一下水,全完了,還是不會。?做程序員,那得練、不停的練習。最好的學習方法,就是自己寫一段小程序。學習開車,我跟我男朋友學開車,每次他開車的時候都告訴我,怎樣啟動發動機,然后踩離合器,掛檔,給油,剎車停車,我對開車的理論和技巧無比熟悉了,自信一定可以開車了,于是就嘗試了一下,怎么樣,結果不是不堪設想啊,動用了手剎。學員活動調查結果,最短時間內、最快學會編程、成為像你們一樣的程序員!
?一點學習經驗
勤奮練習?
把書上的例子輸進電腦實踐一遍,然后進行各種試驗,再聯想出各種相關的程序,自己寫出來,并驗證自己的結果。
讀高手寫的程序
有了一定的基礎的時候,可以嘗試去讀高手寫的程序,解讀他們的程序的設計理念、風格、解決問題的思路等。我的程序就和英語一樣,一個變量名就是一個句子!寫程序很少加注釋!
GNU/Linux為我們提供了一個巨大的源程序寶庫,里面有各種各樣的程序源代碼,詳細研究一套你感興趣的系統,你的水平會得到大幅度提高。
不斷提高?
除了多加練習,你還需要多讀書,特別是英文書。要適時的選擇自己的主攻方向。
記筆記的習慣
隨時拿著你的筆和筆記本,一接收到有用的信息或字急又好的想法就迅速記下來,抓住瞬息即逝的靈感。自己大腦里蹦出來的東西,才是自己的價值和驕傲。
學習它是個長期的過程,要不斷的總結經驗,我們學習就怕不能持之以恒。關于這點大家比我更清楚。一旦你學會了它,其他的語言就可以觸類旁通了,例如:C++,C#,JAVA,VB,DELPHI......這些學起來就會比那些C語言基礎不扎實的人要輕松得許多!學習的過程是一個不斷積累的過程,只有學習的時間積累到一定的程度,才能發生質的提高。經過ACCP接近兩年時間學習培養出來的軟件工程師才是當前市場上亟需的專業軟件人才,才意味著高薪和價值。
程序員的分類
第一種是初級,這種人數量最多,水平最低。喜歡看報紙上的編程小知識,秘籍和技巧大全之類的東西,這給了他廣博的半瓶子醋的學問。這種程序員往往把編程這種腦力勞動變成敲鍵盤的體力勞動。把軟件白領變成了軟件藍領。一些軟件公司的Fans們往往拿著嚇人的工資、做著嚇人的項目,他們做出來的結果也往往很嚇人。這些人組成了軟件人才市場上的流動大軍。?
第二種是通常意義上的高手,他們有時候覺得自己十分了不起,有時候又覺得自己什么也不是。大部分時候,他沒感覺,沒激情,沒愛,相當于一個血肉機器、曰之為“感情木頭”。對于他們來說沒有比coding更加有意義的事情了。?
第三種是大師級的人物。在平凡的外表下,是一個無所不能的人。沒有一個人和一條狗不尊敬他。他吐痰的樣子也有人模仿。微軟公司首席“建筑師”西蒙尼就是一個這樣的人物。不過,他說“合作比天才更重要”
為什么軟件市場上人才缺口這么大,每年20萬之多,最缺乏的是熟練的程序員,而成千上萬的畢業生又找不到工作。大家應該好好想一想:
軟件人才是多了,但多的是沒有實際工作經驗、技術掌握的層次低的開發人員。這批人頻繁地跳槽形成的求職大軍營造出中國軟件人才一大把的現象。?
軟件人才是少了,少的是具有豐富工作經驗,技術扎實精深的工程師一類的開發人員。他們在哪里都是炙手可熱的人物,求職大軍里自然少有這樣的人才。?
勸每一個學員克服浮躁,踏踏實實地走好每一步!既然要學,就得耐心,你要告訴自己,要用一生的時間去學習它,你就不會急功近利了。
俞敏洪總結的成功的四種能力
一、忍受孤獨的能力是成功者的必經之路
不管有多少人在你身邊,父母督促你、朋友鼓勵你,你要想達到成功最終都要靠你自己,God?helps?those?who?help?themselves.?如果你想走出平凡,那么請你走進孤獨!孤獨的人是走得最快的人!去除浮躁,不要總想著你將來會怎樣怎樣,重要的是現在,自信心是一點一滴積累起來的。
二、忍受失敗的能力是重新振作的源泉
生活中的失敗實在是太多了,整個社會的競爭體系是一個金字塔式的結構,你可以說我與世無爭,我知足者長樂,當然你可以這樣做。可是社會不允許你這樣做,因為他不會讓你樂太久的,不進則退、優勝劣汰的市場機制會淘汰你,你會被社會拋在金字塔的最底層,你會感到整個金字塔的重量都壓在了你的身上,你見不到陽光,你欣賞不到美麗的風景,你感到絕望。所以為了更好的活著,你就要振作、努力。好在機遇是平等的,在機會來臨的時候,如果你有能力就會抓住它。
三、忍受屈辱的能力是成就大業的基礎?
你去新東安燕莎買東西,如果你沒有錢,你會不會感受到售貨員對你的態度不一樣了呢?你去找工作,被人才市場上的人流擠得東倒西歪,北大清華的請到前面來,男生請到前面來,碩士博士請到前面來……,?你租房子被各種各樣的房東趕著跑,一年到頭不停的搬家,與小商販為了幾塊錢討價還價,你為了一點點的錢為老板四處奔波。這些都是屈辱,在你成功之前你必須忍受屈辱。?
四、生理承受能力是成就大業的前提?
做一件事情,你付出了別人所沒有付出的,那你得到的也是別人所沒有得到的。當我們已經開始做了某一件事情之后,我們則不宜由于我們現在認為另一件事更理想、更值得做而輕易改變我們的行動。?已經開始做了這件事,已經為此付出了心力;而且,究竟我們現在的認識正確還是過去的認識正確也還有待于檢驗;因為我們每一個人的生命和精力都是有限的!
對待學習的態度
沒有壓力就沒有動力,要想辦法給自己施加壓力,平時多看書,多接觸相關的知識,保持永遠能夠學習的慣性,當然專業知識要不斷的研究和深入探索;當真正的壓力到來時,你的學習效率才是最高的。用任務去學習,沒有任務制造任務。
我們每天的工作就是接受問題,解決問題,只能就事而論了。主要態度如下:接受它、分析它、解決它、放下它;
克服學習中的冷熱病,有了刺激就去學習,刺激過去了就放松,考試來了就緊張,考試過了就全忘。聽了一場講座或報告就意氣風發,苦學三天三夜,然后就又找借口放松。
今天想干這個,明天想干那個,結果一事無成。
書到用時方恨少,事非經過不知難,書有未曾經我,讀事無不可對人言
微?軟:李開復的一封信
李開復是微軟中國研究院的院長,是微軟公司的副總裁,他在中國的各大高校里做演講,他十分了解中國學生的心理,所以語重心長的給中國學生寫了一封信:
中國的軟件也還不很發達,我們每天耳濡目染的都是一些國外的名牌,MS/IBM/SONY/HP/CANNON/SUN/CISCO/INTEL/DELL/PHILIP/TOSHIBA/PENASONIC/EPSON,日本的產品現在已經打遍了全世界,他們非常地團結,他們叫做大和民族,同為亞洲東海岸的中華民族,為什么相差得這樣懸殊,不要過多地去找歷史的原因,想一想自己,你有沒有把你自己的理想和目標同國家聯系起來呢?
人生最重要的東西,進取、熱情,信任,堅持,努力,自律,思考,感動,耐心,韌性、珍惜
……?……
奔跑人生:在靜謐的非洲大草原上,夕陽西下,一頭獅子在沉思,明天當太陽升起的時候,我要奔跑,以追得上跑得最快的羚羊,此時,一只羚羊也在思考,明天當太陽升起的時候,我要奔跑,以躲過跑得最快的獅子的捕獲,是的,無論你是獅子或者羚羊,明天,當太陽升起的時候你所要做的就是:毫不猶豫地向前奔跑!