① 作為一名優秀的程序員,要具備哪些基本功
程序員(英文Programmer)是從事程序開發、維護的專業人員。
作一個真正合格的程序員,需要具備:
1:團隊精神和協作能力
團隊精神和協作能力是作為一個程序員應具備的最基本的素質。
2:文檔習慣
文檔是一個軟體系統的生命力。作為代碼程序員,必須將30%的工作時間寫用於技術文檔。沒有文檔的程序員勢必會被淘汰。
3:規范化的代碼編寫習慣
知名軟體公司的代碼的變數命名、注釋格式,甚至嵌套中行縮進的長度和函數間的空行數字都有明確規定,良好的編寫習慣,不但有助於代碼的移植和糾錯,也有助於不同技術人員之間的協作。
4:需求理解能力
程序員要能正確理解任務單中描述的需求。
5:模塊化思維能力
作為一個優秀的程序員,其思想不能在局限當前的工作任務裡面,要想想看自己寫的模塊是否可以脫離當前系統存在,通過簡單的封裝在其他系統中或其他模塊中直接使用。
6:測試習慣
測試是軟體工程質量保證的重要環節,但是測試不僅僅是測試工程師的工作,而是每個程序員的一種基本職責。程序員要認識測試不僅是正常的程序調試,而要是要進行有目的有針對性的異常調用測試,這一點要結合需求理解能力。
7:學習和總結的能力
程序員是很容易被淘汰的職業,所以要善於學習總結。
② 編程經典語錄
篇一:程序員9條經典的編程語錄
2013年伊始,告別短暫的小長假,我們又回到了緊張的工作氛圍中,在這篇文章中,我收集了幾條非常有趣的且廣受歡迎的編程術語,為廣發編程愛好者加波助瀾,就像Linus Torvalds說的那樣,我們因為興趣而編程。 2013年伊始,告別短暫的小長假,我們又回到了緊張的工作氛圍中,在這篇文章中,我收集了幾條非常有趣的且廣受歡迎的編程術語,為廣發編程愛好者加波助瀾,就像Linus Torvalds說的那樣,我們因為興趣而編程。
1. 在水裡行走和以一個需求規格進行軟體開發類似,即如果水或需求都被凍結住,那麼行走和軟體開發都會變得很容易。-——Edward V Berard
2. 不要擔心程序異常,如果它總是正確的話你早就失業了。——軟體工程Mosher定律
3. 設計的附加價值高於它所增加的花費。——Thomas C. Gale
4. 沒有好的團隊就開發不出好的軟體,但絕大多數的軟體開發團隊看起來就像不健全的家庭一樣。——Jim McCarthy
5. 我才不關心我的代碼是否能在你的機器上工作!我們不會給你提供機器。——Vidiu Platon
6. 「靠代碼行數來衡量開發進程就好比用重量來衡量飛機製造的進度。」——Bill Gates
7. 「程序員的問題是,不到太晚,你永遠不會知道他在做著些什麼。」——Seymour Cray
8. 「大部分好的程序員編程並不是為了錢或名望,而只是因為純粹的樂趣。」——Linus Torvalds
9. 「有兩種生成一個軟體設計方案的途徑。一個是把它做得如此簡單,以致於明顯不會有漏洞存在;另一個是把它做的如此復雜,以致於不會有明顯的漏洞存在。」——C.A.R. Hoare
篇二:程序員經典語錄
1. 選擇當前科技領域的一個小子集,親近它、擁抱它,並且嘗試推進這個小領域的發展。
2. 理解不同數據結構和演算法的優缺點,不單是內存中,還有磁碟上的表現。
3. 首先深刻理解你所在的領域,然後拋開計算機,像普通用戶那樣觀察和體會。
4. 時刻准備好(包括能力和心理上)向深層探索,不僅僅是一兩層,而是好幾層。要知道,是否能在編程時勢如破竹,與你所能達到的技術深度關聯緊密。
5. 運用你的想像力,總是問這樣的問題「還有更好的辦法嗎?」跳出固有的思維模式,最好的實現方式也許還沒有人嘗試過。
6. 永遠不要過早退出,不要兩次編寫同一段代碼,不要將一個變數命名為另一個變數的子集。如果不理解這些規則,也許你會爭辯,不過一旦你這么做了,它們就能幫助你寫出更好的代碼,否則你將永遠停留在初級程序員的水平。
7. 學習如何進行基準測試,學會的那一天,你會發現世界將變得不同。
8. 學會如何分辨瑣事和細節,只將精力集中於細節。
9. 不要總是向你的用戶和管理者妥協,有時應該讓他們知道,他們自以為的並不是那麼重要。
10. 寫一個框架,無論你是否計劃使用它。這個過程會讓你學到靠其他方式無法學到的東西。
11. 把學到的東西教給別人,無論是口口相授還是文以載道,你都會發現自己也能從這個過程中收獲良多。
12. 找到旁人寫的這樣一些代碼——它們實現了重要的功能,但寫得並不夠聰明。重寫它們,然後告訴自己永遠不要犯相同的錯誤。
13. 在人生的某個時候,運營你自己的事業(服務或產品)。你能從中學到當職員時無法領悟的編程技巧 你認為最具爭議的編程觀點是什麼?
C#專家Jon Skeet曾在StackOverflow上提出這個問題。這里列舉最熱門的前10條討論。
1. 業余時間不以編程為樂者,永遠趕不上那些以此為樂的同行
即使最聰明、最有才華的人,若只是將編程作為工作,就永遠成不了真正優秀的程序員。以編程為樂的人會在業余時搞些小項目,或者擺弄各種編程語言和編程思想。
2. 唯一能放之四海而皆準的最佳實踐,是「用腦子思考」
太多人喜歡追逐眾多時髦技術,想方設法把各種方法、模式、框架用到不適合的地方。新技術和名人大牛的觀點並不等於適用於實際情況。
3. 依賴Google沒什麼錯
這種言論肯定會讓那些學富五車的飽學之士惱火。但重要的是能真正理解,並給出成功的編程解決方案,讓客戶和老闆滿意。
4. 大多數注釋是代碼的糟糕重復
我們大部分時間是在維護其他人(或我們自己)所寫的代碼,而糟糕、錯誤、過時和誤導性的注釋也是代碼中最令人糾結的因素之一。
5. XML被大大高估了
許多隨波逐流的人沒動過腦子就跳上了XML這條黑船。XML用於Web應用不錯,因為它本來就是干這個的。此外的問題定義、設計思路應該盡量不用XML。
6. 程序員生而不平等
經理往往認為「程序員A=程序員B」,因為他們工作的年頭差不多。但實際上,他們的效率可能相差十倍甚至百倍。
7. 將Java作為最適合大學教學的第一門語言令人費解
第一門編程語言應該重在學習控制流和變數,而不是對象和語法。此外沒有調試C/C++內存泄漏經驗的人,根本無法完全理解Java的初衷。
8. 若你只會一門語言,無論多麼精通,仍然不夠優秀
任何人如果只局限於一門語言,都無法充分發揮自己的潛力。而且缺乏求知慾和探索意願,都不符合優秀程序員的特質。
9. 性能真的很重要
盡管可以通過購買更強勁的CPU、硬碟和內存提升性能,但若這樣想的人少一些,我們也許能在1GHz的CPU上運行更多程序。
10. Print語句是有效的調試方式
用System.out.println之類的輸出語句調試代碼的方式挺好。這經常比正式的調試要快,而且可以比較不同運行的輸出結果
篇三:101條經典計算機語錄
1、計算機沒什麼用.他們只會告訴你答案.(巴勃羅畢加索,畫家)
2、計算機就跟比基尼一樣,省去了人們許多的胡思亂想.(薩姆尤因,作家)
3、他們擁有計算機,他們也還可能擁有其他的大規模殺傷性武器.(珍內特雷諾,美國前女司法部長)
4、跟計算機工作酷就酷在這里,它們不會生氣,能記住所有東西,還有,它們不會喝光你的啤酒.(保羅利里,吉他手)
5、如果汽車能趕上計算機的發展周期的話,一輛今天的勞斯萊斯僅值100美元,每加侖要跑100萬英里,每年還得爆炸一次,把裡面的人殺個精光.(Robert X. Cringely,技術作家)
6、計算機總是越來越智能的.科學家告訴我們說不久它們就能跟我們對話了.(這里的它們,我指的是計算機.我懷疑科學家永遠都不能跟我們對話.) (Dave Barry,幽默作家)
7、我最近注意到,在共同文化中,那種對計算機變得智能化並最終掌控世界的妄想恐懼症幾乎徹底消失了.據我所知,這跟MS-DOS的發布基本是同步的.(Larry DeLuca)
8、計算機會不會思考這個問題就像問潛水艇會不會游泳一樣.(Edsger W. Dijkstra,圖靈獎獲得者)
9、活了一百年卻只能記住30M位元組是荒謬的.你知道,這比一張壓縮盤還要少.人類境況正在變得日趨退化.(Marvin Minsky,人工智慧研究的奠基人) 信任
10、這座城市的中央計算機告訴你的?R2D2,你不該相信一台陌生的計算機!(C3PO,星球大戰中的翻譯機器人)
11、永遠不要相信一台不能扔掉一扇窗戶*的計算機(斯蒂夫沃茲尼亞克,蘋果聯合創始人)
12、硬體:計算機系統中可被踢的部分.(Jeff Pesis)
13、今天大部分的軟體都很像上百萬塊磚堆疊在一起組成的埃及金字塔,缺乏結構完整性,只能靠強力和成千上萬的奴隸完成.(阿倫凱,圖靈獎獲得者,面向對象創始人)
14、我終於明白'向上兼容性'是怎麼回事了.這是指我們得保留所有原有錯誤.(Dennie van Tassel)
15、有兩樣重要產品出自伯克利:LSD和BSD*.我們不相信這是個巧合.(Jeremy S. Anderson)
16、2038年1月19日,凌晨3點14分07秒(UNIX中的世界末日*1970年1月1號之後的2^32秒)
17、每個操作系統都差不多 我們都一樣的爛.(微軟的高級副總裁布萊恩瓦倫蒂尼這樣描述操作系統的安全狀況,2003)
18、微軟有出了個新版本,Windows XP,據大家說是'有史以來最穩定的Windows', 對我而言, 這就好像是在說蘆筍是'有史以來發音最清脆的蔬菜一樣' (Dave Barry)
19、互聯網?那個東西還在嗎?(Homer Simpson)
20、網路就像是個母夜叉.我每轉到一處都會看見小個的按鈕命令我提交*.(Nytwind)
21、想想看吧,已經有一百萬只猴子坐在一百萬台打字機旁,可Usenet就是比不上莎士比亞.(Blair Houghton)
22、計算機軟體產業最為驚人的成就,是其持續不斷地放棄硬體產業的驚人成果和穩定性.(Henry Petroski)
23、真正的創新經常來自於那些貼近市場、但無力擁有市場的的小型初創公司.(Timm Martin)
24、人們常說,偉大的科學學科就像是站在其它巨人肩膀上的巨人.人們也說過,軟體產業正如站在其他侏儒腳上的侏儒.(Alan Cooper,交互設計之父)
25、這無關比特、位元組和協議,而關乎利潤和損益.(郭士納,IBM前CEO)
26、我們是微軟.反抗是徒勞的.你會被同化的.(保險杠貼紙)
27、不管演示在綵排的時候有多好,一旦在觀眾面前展示時,演示不出錯的幾率與觀眾人數成反比,與投入的金錢總額成正比.(Mark Gibbs)
28、專利大多數都是垃圾.浪費時間去閱讀這些專利是愚蠢的.只有專利持有人才會這么干,還得強迫自己才會看.(Linus Torvalds,LINUX創始人)
29、控制復雜性是計算機編程的本質.(Brian Kernigan)
30、復雜性殺死一切.它把程序員的生活給搞砸了,它令產品難以規劃、創建和測試,帶來了安全挑戰,並導致最終用戶和管理員沮喪不已.(Ray Ozzie)
31、進行軟體設計有兩種方式.一種是讓它盡量簡單,讓人看不出明顯的不足.另一種是弄得盡量復雜,讓人看不出明顯的缺陷.(C.A.R. Hoare)
32、好的軟體的作用是讓復雜的東西看起來簡單.(Grady Booch,UML創始人之一) 易用性
33、不管那些計算機書籍如何宣稱,只需記住,你並非'傀儡'.真正的傀儡是那些無法設計出易於使用的硬體和軟體的那些人,盡管他們是技術專家,因為這是普通消費者賴以生活的東西.(Walter Mossberg,科技專欄記者)
34、軟體供應商在努力嘗試讓他們的軟體更'易於操作' 迄今為止,他們最好的辦法就是翻出所有的老手冊,然後在封面蓋上'易於操作'這幾個字.(比爾蓋茨)
35、有個老套的故事說有人希望他的計算機能像他的電話機一樣好用.他的願望實現了,因為我已經不知道該如何使用自己的電話了.(BjarneStroustrup,C++之父)
36、任何一個傻瓜都會用電腦.很多都會.(Ted Nelson)
37、只有兩個行業把客戶稱為'用戶'*.(Edward Tufte,信息設計大師)
38、程序員在跟宇宙賽跑,他們在努力開發出更大更好的傻瓜程序,而宇宙則努力培養出更大更好的白痴.到目前為止,宇宙領先.(Rich Cook)
39、你們當中很多人都知道程序員的美德.當然啦,有三種:那就是懶惰、急躁以及傲慢.(Larry Wall,Perl發明者)
40、程序員的問題是你無法預料他在做什麼,直到為時已晚.(Seymour Cray,超級計算機之父)
41、那就是這些自認為痛恨計算機的人的真實面目.他們實際上真正痛恨的是糟糕的程序員.(拉瑞尼文,科幻作家)
42、很長時間以來我一直困惑不已,為什麼一些又貴又先進的東西會一點用都沒有.直到我突然想起,計算機不就是一台愚蠢之至卻擁有難以置信的做聰明事能力 的機器嘛,而程序員不就是聰明絕頂卻擁有難以置信的.干蠢事的能力的人嘛.一句話,他們簡直就是天生絕配.(比爾布萊森,旅遊文學作家)
43、不像學學塗塗畫畫也能讓某人成為專家級畫家,計算機科學教育不會讓任何人成為一名編程大師.(埃里克雷蒙,開源運動領袖)
44、一個程序員是經歷以下事情後仍能證明自己是嚴格的專家的人:他可以歷經數不清的捶打,可取材於無關緊要的文檔,用上面的爭議數據作出模糊假設,並以 此計算出測微精度的無數片面理解的答案,並由一個不可靠、腦袋充滿質疑、公
開宣稱要讓一個倒霉透頂、沒有指望、毫無防備,要求第一時間獲得信息的部門狼狽 不堪、令人生厭的人使用一台准確度有問題的儀器去實施.(IEEE網格新聞雜志)
45、運氣好的黑客能用幾個月的時間 - 生產出一個小規模的開發團體(比如說,7-8人)歷盡艱辛一起工作了一年多才能做出來的東西.IBM經常報告說某些程序員的生產力要比其它工人高百倍,甚至更多.(Peter Seebach,黑客)
46、最好的程序員跟好的程序員相比可不止好那麼一點點.這種好不是一個數量級的,取決於標准怎麼定:概念創造性、速度、設計的獨創性或者解決問題的能力.(蘭德爾E斯特勞斯,科技作家)
47、偉大的車工值得給他幾倍於普通車工的薪水,但一個偉大的軟體代碼作家,其價值則要等同於一個普通的軟體寫手的價格的1萬倍.(比爾蓋茨)
48、就算它工作不正常也別擔心.如果一切正常,你早該失業了.(Mosher的軟體工程定律)
49、靠代碼行數來衡量開發進程就好比用重量來衡量飛機製造的進度.(比爾蓋茨)
50、寫代碼的社會地位比盜墓的高,比管理的低.(傑拉爾德溫伯格,軟體與系統思想家)
51、首先學習計算機科學及理論.接著形成自己編程的風格.然後把這一切都忘掉,盡管改程序就是了.(George Carrette,傑出軟體工程師,開源推廣者)
52、先解決問題再寫代碼.(John Johnson)
53、樂觀主義是編程行業的職業病;用戶反饋則是治療方法.(Kent Beck)
54、迭代者為人,遞歸者為神.(L. Peter Deutsch)
55、布爾值最好的一點是,就算你錯了,也頂多錯了一位而已.(無名氏)
56、數組的下標是從0開始好還是從1開始好呢?我的0.5的折衷方案,以我之見,沒有經過適當考慮就被否決掉了.(Stan Kelly-Bootle)
57、只有兩種編程語言:一種是天天挨罵的,另一種是沒人用的.(BjarneStroustrup,C++之父)
③ 做一個程序員要具備什麼
1:團隊精神和協作能力 ,和基本的操作常識,缺乏這種素質的人就完全不合格了。
2.要有做文檔的習慣,缺乏文檔,一個軟體系統就缺乏生命力,在未來的查錯,升級以及模塊的復用時就都會遇 到極大的麻煩。
3:規范化,標准化的代碼編寫習慣 。
4.代碼具有良好的可讀性,是程序員基本的素質需求。
5.程序員需要理解一個模塊的需求,把性能指標全部歸結到硬體,操作系統和開發環境上。
6.復用性,模塊化思維能力 ,避免大部分重復性工作無謂的浪費了時間和精力。
7. 測試習慣 ,作為一些商業化正規化的開發而言,專職的測試工程師是不可少的
8..程序員是人才很容易被淘汰,很容易落伍的職業,必須不斷跟進新的技術,學習新的技能。
計算機語言的種類非常的多,總的來說可以分成機器語言,匯編語言,高級語言三大類。
電腦每做的一次動作,一個步驟,都是按照以經用計算機語言編好的程序來執行的,程序是計算機要執行的指令的集合,而程序全部都是用我們所掌握的語言來編寫的。所以人們要控制計算機一定要通過計算機語言向計算機發出命令。
計算機所能識別的語言只有機器語言,即由0和1構成的代碼。但通常人們編程時,不採用機器語言,因為它非常難於記憶和識別。
目前通用的編程語言有兩種形式:匯編語言和高級語言。
匯編語言的實質和機器語言是相同的,都是直接對硬體操作,只不過指令採用了英文縮寫的標識符,更容易識別和記憶。它同樣需要編程者將每一步具體的操作用命令的形式寫出來。匯編程序通常由三部分組成:指令、偽指令和宏指令。匯編程序的每一句指令只能對應實際操作過程中的一個很細微的動作,例如移動、自增,因此匯編源程序一般比較冗長、復雜、容易出錯,而且使用匯編語言編程需要有更多的計算機專業知識,但匯編語言的優點也是顯而易見的,用匯編語言所能完成的操作不是一般高級語言所能實現的,而且源程序經匯編生成的可執行文件不僅比較小,而且執行速度很快。
高級語言是目前絕大多數編程者的選擇。和匯編語言相比,它不但將許多相關的機器指令合成為單條指令,並且去掉了與具體操作有關但與完成工作無關的細節,例如使用堆棧、寄存器等,這樣就大大簡化了程序中的指令。同時,由於省略了很多細節,編程者也就不需要有太多的專業知識。
高級語言主要是相對於匯編語言而言,它並不是特指某一種具體的語言,而是包括了很多編程語言,如目前流行的VB、VC、FoxPro、Delphi等,這些語言的語法、命令格式都各不相同。
高級語言所編制的程序不能直接被計算機識別,必須經過轉換才能被執行,按轉換方式可將它們分為兩類:
解釋類:執行方式類似於我們日常生活中的「同聲翻譯」,應用程序源代碼一邊由相應語言的解釋器「翻譯」成目標代碼(機器語言),一邊執行,因此效率比較低,而且不能生成可獨立執行的可執行文件,應用程序不能脫離其解釋器,但這種方式比較靈活,可以動態地調整、修改應用程序。
編譯類:編譯是指在應用源程序執行之前,就將程序源代碼「翻譯」成目標代碼(機器語言),因此其目標程序可以脫離其語言環境獨立執行,使用比較方便、效率較高。但應用程序一旦需要修改,必須先修改源代碼,再重新編譯生成新的目標文件(* .OBJ)才能執行,只有目標文件而沒有源代碼,修改很不方便。現在大多數的編程語言都是編譯型的,例如Visual C++、Visual Foxpro、Delphi等。
[NextPage]
學習編程,從何入手
如果您想學習編程,卻又不知從何入手,那麼您不妨看看下面的幾種學習方案,可能會給您一些啟示吧!
==============================================
方案一 Basic語言 & Visual Basic
優點
(1)Basic 簡單易學,很容易上手。
(2)Visual Basic 提供了強大的可視化編程能力,可以讓你輕松地做出漂亮的程序。
(3)眾多的控制項讓編程變得象壘積木一樣簡單。
(4)Visual Basic 的全部漢化讓我們這些見了English就頭大的人喜不自禁。
缺點
(1)Visual Basic 不是真正的面向對象的開發文具。
(2)Visual Basic 的數據類型太少,而且不支持指針,這使得它的表達能力很有限。
(3)Visual Basic 不是真正的編譯型語言,它產生的最終代碼不是可執行的,是一種偽代碼。它需要一個動態鏈接庫去解釋執行,這使得Visual Basic 的編譯速度大大變慢。
綜述:方案一適合初涉編程的朋友,它對學習者的要求不高,幾乎每個人都可以在一個比較短的時間里學會vB編程,並用VB 做出自己的作品。對於那些把編程當做游戲的朋友來說,VB 是您最佳的選擇。
Basic/Visual Basic簡介
==============================================
方案二 Pascal語言 & Delphi
優點
(1)Pascal語言結構嚴謹,可以很好地培養一個人的編程思想。
(2)Delphi是一門真正的面向對象的開發工具,並且是完全的可視化。
(3)Delphi使用了真編譯,可以讓你的代碼編譯成為可執行的文件,而且編譯速度非常快。
(4)Delphi具有強大的資料庫開發能力,可以讓你輕松地開發資料庫。
缺點
Delphi幾乎可以說是完美的,只是Pascal語言的過於嚴謹讓人感覺有點煩。
綜述: 方案二比較適合那些具有一定編程基礎並且學過Pascal語言的朋友。
Pascal語言簡介
Delphi簡介
==============================================
方案三 C語言 & Visual C++
優點
(1)C語言靈活性好,效率高,可以接觸到軟體開發比較底層的東西。
(2)微軟的MFC庫博大精深,學會它可以讓隨心所欲地進行編程。
(3)VC是微軟製作的產品,與操作系統的結合更加緊密。
缺點
對使用者的要求比較高,既要具備豐富的C語言編程經驗,又要具有一定的WINDOWS編程基礎,它的過於專業使得一般的編程愛好者學習起來會有不小的困難。
綜述: VC是程序員用的東西。如果你是一個永不滿足的人,而且可以在編程上投入很大的精力和時間,那麼學習VC你一定不會後悔的。
C語言簡介
==============================================
方案四 C++語言 & C++ Builder
優點
(1)C++語言的優點全部得以繼承。
(2)完全的可是化。
(3)極強的兼容性,支持OWL、VCL和MFC三大類庫。
(4)編譯速度非常快。
缺點
由於推出的時間太短,關於它的各種資料還不太多。
綜述:我認為C++ Builder 是最好的編程工具。它既保持了C++語言編程的優點,又做到了完全的可視化。
C語言簡介
==============================================
方案五 SQL語言 & Power Builder
對於一些傳統的數據開發人員來說,Foxpro系列也許讓他們感到更加熟悉。但是對於初學者來說,PowerBuilder也許是最好的資料庫開發工具。各種各樣的控制項,功能強大的PowerBuilder語言都會幫助你開發出自己的資料庫應用程序。
[NextPage]
JSP簡介
在Sun正式發布JSP(Java Server Pages)之後,這種新的Web應用開發技術很快引起了人們的關注。JSP為創建高度動態的Web應用提供了一個獨特的開發環境。按照 Sun 的說法,JSP能夠適應市場上包括Apache WebServer 、IIS4.0在內的85%的伺服器產品。
JSP與ASP的簡單比較
JSP與Microsoft的ASP技術非常相似。兩者都提供在HTML代碼中混合某種程序代碼、由語言引擎解釋執行程序代碼的能力。在ASP或JSP環境下,HTML代碼主要負責描述信息的顯示樣式,而程序代碼則用來描述處理邏輯。普通的HTML頁面只依賴於Web伺服器,而ASP和JSP頁面需要附加的語言引擎分析和執行程序代碼。程序代碼的執行結果被重新嵌入到HTML代碼中,然後一起發送給瀏覽器。ASP和JSP都是面向Web伺服器的技術,客戶端瀏覽器不需要任何附加的軟體支持。
ASP的編程語言是VBScript之類的腳本語言,JSP使用的是Java,這是兩者最明顯的區別。
此外,ASP與JSP還有一個更為本質的區別:兩種語言引擎用完全不同的方式處理頁面中嵌入的程序代碼。在ASP下,VBScript代碼被ASP引擎解釋執行;在JSP下,代碼被編譯成Servlet並由Java虛擬機執行,這種編譯操作僅在對JSP頁面的第一次請求時發生。
運行環境
執行 JSP 代碼需要在伺服器上安裝 JSP 引擎。此處我們使用的是 Sun 的 JavaServer Web Development Kit ( JSWDK )。為便於學習,這個軟體包提供了大量可供修改的示例。安裝 JSWDK 之後,只需執行 startserver 命令即可啟動伺服器。在默認配置下伺服器在埠 8080 監聽,使用 http://localhost:8080 即可打開預設頁面。
在運行 JSP 示例頁面之前,請注意一下安裝 JSWDK 的目錄,特別是" work "子目錄下的內容。執行示例頁面時,可以在這里看到 JSP 頁面如何被轉換成 Java 源文件,然後又被編譯成 class 文件(即 Servlet )。 JSWDK 軟體包中的示例頁面分為兩類,它們或者是 JSP 文件,或者是包含一個表單的 HTML 文件,這些表單均由 JSP 代碼處理。與 ASP 一樣, JSP 中的 Java 代碼均在伺服器端執行。因此,在瀏覽器中使用"查看源文件"菜單是無法看到 JSP 源代碼的,只能看到結果 HTML 代碼。所有示例的源代碼均通過一個單獨的" examples "頁面提供。
Java Servlet是一種開發Web應用的理想構架。 JSP以Servlet技術為基礎,又在許多方面作了改進。JSP頁面看起來象普通HTML頁面,但它允許嵌入執行代碼,在這一點上,它和ASP技術非常相似。利用跨平台運行的JavaBean 組件,JSP為分離處理邏輯與顯示樣式提供了卓越的解決方案。JSP必將成為ASP技術的有力競爭者。
[NextPage]
SQL語言簡介
SQL全稱是「結構化查詢語言(Structured Query Language)」,最早的是IBM的聖約瑟研究實驗室為其關系資料庫管理系統SYSTEM R開發的一種查詢語言,它的前身是SQUARE語言。SQL語言結構簡潔,功能強大,簡單易學,所以自從IBM公司1981年推出以來,SQL語言,得到了廣泛的應用。如今無論是像Oracle ,Sybase,Informix,SQL server這些大型的資料庫管理系統,還是像Visual Foxporo,PowerBuilder這些微機上常用的資料庫開發系統,都支持SQL語言作為查詢語言。
Structured Query Language包含4個部分:
數據查詢語言DQL-Data Query Language SELECT
數據操縱語言DQL-Data Manipulation Language INSERT, UPDATE, DELETE
數據定義語言DQL-Data Definition Language CREATE, ALTER, DROP
數據控制語言DQL-Data Control Language COMMIT WORK, ROLLBACK WORK
SQL的歷史
在70年代初,E.E.Codd首先提出了關系模型。70年代中期,IBM公司在研製 SYSTEM R關系資料庫管理系統中研製了SQL語言,最早的SQL語言(叫SEQUEL2)是在1976 年 11 月的IBM Journal of R&D上公布的。
1979年ORACLE公司首先提供商用的SQL,IBM公司在DB2 和SQL/DS資料庫系統中也實現了SQL。
1986年10月,美國ANSI採用SQL作為關系資料庫管理系統的標准語言(ANSI X3. 135-1986),後為國際標准化組織(ISO)採納為國際標准。
1989年,美國ANSI採納在ANSI X3.135-1989報告中定義的關系資料庫管理系統的SQL標准語言,稱為ANSI SQL 89, 該標准替代ANSI X3.135-1986版本。該標准為下列組織所採納:
● 國際標准化組織(ISO),為ISO 9075-1989報告「Database Language SQL With Integrity Enhancement」
● 美國聯邦政府,發布在The Federal Information Processing Standard Publication(FIPS PUB)127
目前,所有主要的關系資料庫管理系統支持某些形式的SQL語言, 大部分資料庫打算遵守ANSI SQL89標准。
SQL的優點
SQL廣泛地被採用正說明了它的優點。它使全部用戶,包括應用程序員、DBA管理員和終端用戶受益非淺。
(1) 非過程化語言
SQL是一個非過程化的語言,因為它一次處理一個記錄,對數據提供自動導航。SQL允許用戶在高層的數據結構上工作,而不對單個記錄進行操作,可操作記錄集。所有SQL 語句接受集合作為輸入,返回集合作為輸出。SQL的集合特性允許一條SQL語句的結果作為另一條SQL語句的輸入。 SQL不要求用戶指定對數據的存放方法。 這種特性使用戶更易集中精力於要得到的結果。所有SQL語句使用查詢優化器,它是RDBMS的一部分,由它決定對指定數據存取的最快速度的手段。查詢優化器知道存在什麼索引,哪兒使用合適,而用戶從不需要知道表是否有索引,表有什麼類型的索引。
(2) 統一的語言
SQL可用於所有用戶的DB活動模型,包括系統管理員、資料庫管理員、 應用程序員、決策支持系統人員及許多其它類型的終端用戶。基本的SQL 命令只需很少時間就能學會,最高級的命令在幾天內便可掌握。 SQL為許多任務提供了命令,包括:
● 查詢數據
● 在表中插入、修改和刪除記錄
● 建立、修改和刪除數據對象
● 控制對數據和數據對象的存取
● 保證資料庫一致性和完整性
以前的資料庫管理系統為上述各類操作提供單獨的語言,而SQL 將全部任務統一在一種語言中。
(3) 是所有關系資料庫的公共語言
由於所有主要的關系資料庫管理系統都支持SQL語言,用戶可將使用SQL的技能從一個RDBMS轉到另一個。所有用SQL編寫的程序都是可以移植的。
[NextPage]
Java語言簡介
一. Java的由來
當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程序被下載到本地的用戶機上,由瀏覽器解釋運行。
[NextPage]
PowerBuilder簡介
PowerBuilder的產生
PowerBuilder是美國著名的資料庫應用開發工具生產廠商PowerSoft推出的成功產品,其第一版於1991年6月正式投入市場。它是完全按照客戶/伺服器體系結構研製設計的,採用面向對象技術,圖形化的應用開發環境,是資料庫的前端開發工具。
PowerBuilder的特點
它支持應用系統同時訪問多種資料庫,其中既包括Oracel,Sybase之類的大型資料庫,又包括FOXPRO之類支持ODBC介面的小型資料庫,PowerBuilder是完全可視化的資料庫開發工具,它提供了大量的控制項,大大加快了項目的開發速度,也使開發者更容易掌握資料庫的開發。
它使用的編程語言叫做工PowerScripr,它也是一種高級的,結構化的編程語言。PowerScript提供了一套完整的嵌入式SQL語句,開發人員可以像使用其它語句一樣自由地使用SQL語言,這樣就大大增強了程序操縱和訪問資料庫的能力。可以說PowerBuilder既適合初學者快速學習資料庫的開發,又可以讓有經驗的開發人員開發出功能強大的資料庫,是一種適用面非常廣的開發工具。
PowerBuilder是一個用來進行客戶/伺服器開發的完全的可視化開發環境。使用PowerBuilder,你可以用一種可視的直觀的方式來創建應用程序的用戶界面和資料庫介面。這是一個總的概念,實際上是開發人員使用PowerBuilder去開發應用程序,由於所開發的各種應用程序充分利用了圖形用戶介面(GUI)的優點,所以PowerBuilder被認為是一個圖形工具。
在客戶/伺服器結構的應用中,PowerBuilder具有描述多個資料庫連接與檢索的能力。特別是PowerBuilder能從大多數流行的RDBMS中存取數據,且不管數據存放在什麽地方;另外,各種應用程序又可以獨立於RDBMS,因為PowerBuilder可以使用資料庫的標准操作語言SQL(結構化查詢語言)進行。
使用PowerBuilder,可以很容易地開發出功能強大的圖形界面的訪問伺服器資料庫的應用程序,PowerBuilder提供了建立符合工業標準的應用程序(例如訂單登記、會計及製造系統)所需的所有工具。
PowerBuilder應用程序由窗口組成,這些窗口包含用戶與之交互的控制項。開發人員可以使用所有標准
如WINDOWS XP \WINDOWS 2000 \WINDOW VIST.等
④ 為什麼提起格子襯衫,想到的是程序員的穿著
傳說,程序員有三大愛好:格子衫、牛仔褲、雙肩包。也不知道這個說法什麼時候開始開始流行起來的,但是據我觀察,穿這種「碼農三件套」的程序員還真不在少數。你要說追流行、尋求身份認同感什麼的我是不太信的:程序員哪有時間整這些洋事兒!要我說,日漸趨向於如此雷同的穿著,只是因為這個群體的職業習慣讓他們對穿衣打扮這件事不太上心,然後,自然而然地,從身邊最方便獲取、最簡單實用的服裝里,選擇了這幾樣。程序員的職業習慣:忙、宅長時間敲電腦,很少出去見客戶。牛仔褲:耐臟耐磨,滿大街都能買到。雙肩包:每日帶著筆記本電腦來去,背包肯定是要比手提的更省力、更方便的。黑色的,最耐臟。至於格子衫,這個我想多說幾句。
千萬不要再」談格色變",只要通過一些配飾和單品,都會讓它更具時尚性,能夠流行多年肯定是有它的原因。同一件衣服不同的搭配,再加上氣質各異的臉,整體效果就會完全不同,我們還是不要給格子襯衣定位為程序猿的標簽,因為大多數程序猿還是有一顆追隨潮流的心,不過,他們精力實在有限,無暇他顧,只好披上戰袍就開始整活了。
⑤ 關於計算機的勵志名言
1、計算機並不解決問題,它們只是執行解決方案。
2、最好的程序員跟好的程序員相比可不止好那麼一點點。這種好不是一個數量級的,取決於標准怎麼定:概念創造性、速度、設計的獨創性或者解決問題的能力。
3、永遠要這樣寫代碼,好像最終維護你代碼的人是個狂暴的、知道你住在哪裡的精神病患者。
4、人的過失會帶來錯誤,但要製造真正的災難還得用計算機。
5、控制復雜性是計算機編程的本質。
6、如果你的計算機說英語,那麼它很可能是日本造的。
7、唯一對免費軟體感到害怕的人,是自己的產品還要不值錢的人。
8、他們擁有計算機,他們也還可能擁有其他的大規模殺傷性武器。
9、要是Java真的有垃圾回收的話,大部分程序在執行的時候就會把自己幹掉了。
10、一個組織若是要以電腦做為溝通工具,必需先破除行之有年、固若金湯的官僚體系。
11、計算機沒有什麼用處。它們唯一能做的就是告訴你答案。
12、首先學習計算機科學及理論。接著形成自己編程的風格。然後把這一切都忘掉,盡管改程序就是了。
13、不管演示在綵排的時候有多好,一旦在觀眾面前展示時,演示不出錯的幾率與觀眾人數成反比,與投入的金錢總額成正比。
14、計算機使很多事情更容易做到,但其中大部分並不是必需。
15、復雜性殺死一切。它把程序員的生活給搞砸了,它令產品難以規劃、創建和測試,帶來了安全挑戰,並導致最終用戶和管理員沮喪不已。
16、好的程序員會用腦,但是好的向導救我們於樣樣都要想到。
17、好的軟體的作用是讓復雜的東西看起來簡單。
18、我最近注意到,在共同文化中,那種對計算機變得智能化並最終掌控世界的妄想恐懼症幾乎徹底消失了。據我所知,這跟MS-DOS的發布基本是同步的。
19、每一個問題都是一把鎖,你要相信世界上一定有一把鑰匙能打開這把鎖,你也能找到這把鑰匙。
20、我才不管它能不能在你的機器上運行呢!我們又沒裝到你的機器上!
21、你們當中很多人都知道程序員的美德。當然啦,有三種:那就是懶惰、急躁以及傲慢。
22、如果麥當勞像軟體公司那樣運作的話,每一百個巨無霸就會有一個令你食物中毒,而他們的回應是,真對不起,這是一張額外附送兩個的贈券。
23、計算機軟體產業最為驚人的成就,是其持續不斷地放棄硬體產業的驚人成果和穩定性。
24、一個人靜靜坐在電腦面前寫代碼的感覺,那是什麼感覺?那是武林高手閉關修煉的感覺。
25、計算機會不會思考這個問題就像問潛水艇會不會游泳一樣。
26、程序員的問題是你無法預料他在做什麼,直到為時已晚。
27、軟體供應商在努力嘗試讓他們的軟體更'易於操作'…迄今為止,他們最好的辦法就是翻出所有的老手冊,然後在封面蓋上'易於操作'這幾個字。
28、要是公司里的員工都像我這么能說,而且光說不幹活,會非常可怕。我不懂電腦,銷售也不在行,但是公司里有人懂就行了。
29、計算機沒什麼用。他們只會告訴你答案。
30、程序員是值得尊敬的,程序員的雙手是魔術師的雙手,他們把枯燥無味的代碼變成了豐富多彩的軟體。
31、每個人應該尋找適合自己的東西,做自己喜歡做的事情;做自己擅長做的事情。
32、靠代碼行數來衡量開發進程就好比用重量來衡量飛機製造的進度。
33、程序員,他們想的是什麼?他們想的永遠都是技術,他們崇尚的也永遠都是技術。
34、計算機就跟比基尼一樣,省去了人們許多的胡思亂想。
35、在軟體裡面,我們鮮有有意義的需求。就算有,衡量成功的唯一尺度也取決於我們的解決方案是否解決了客戶對問題是什麼的觀念的轉變。
36、是人都會犯錯,不過要想把事情徹底搞砸還得請電腦出馬。
37、其實你找不到錯誤不代表錯誤不存在,同樣你看不到技術比你牛的人並不代表世界上沒有技術比你牛的人。
38、各種各樣性格的人都有可能成功,只不過是看你有沒有利用自己的性格優勢來做事情。
39、活了一百年卻只能記住30M位元組是荒謬的。你知道,這比一張壓縮盤還要少。人類境況正在變得日趨退化。
40、有個老套的故事說有人希望他的計算機能像他的電話機一樣好用。他的願望實現了,因為我已經不知道該如何使用自己的電話了。
41、只有兩種編程語言:一種是天天挨罵的,另一種是沒人用的。
42、我們沒有理由讓每一個人在家都擁有一台電腦。
43、在C++里你想搬起石頭砸自己的腳更為困難了,不過一旦你真的做了,整條腿都要報銷。
44、真正的創新經常來自於那些貼近市場、但無力擁有市場的的小型初創公司。
45、想想我們計算機程序的糟糕現狀吧,很顯然軟體開發仍是黑箱藝術,還不能稱之為工程學科。
46、如果汽車能趕上計算機的發展周期的話,一輛今天的勞斯萊斯僅值100美元,每加侖要跑100萬英里,每年還得爆炸一次,把裡面的人殺個精光。
47、在軟體可重用之前先得可使用。
48、我的朋友阿B,非常嚴肅地告訴我,他的電腦通人性,有思想,他的電腦有魂魄。
49、跟計算機工作酷就酷在這里,它們不會生氣,能記住所有東西,還有,它們不會喝光你的啤酒。
50、你自己的代碼如果超過6個月不看,再看的時候也一樣像是別人寫的。
51、把良好的編程風格教給那些之前曾經接觸過BASIC的學生幾乎是不可能的。作為可能的程序員,他們已精神殘廢,無重塑的可能了。
52、對程序員來說大部分的快樂是從解決問題,(next88)特別是獨立解決問題中獲得,而不是從這個CASE有多大,獎金有多少中獲得。
53、前面90%的代碼要佔用開發時間的前90%。剩下的10%的代碼要佔用開發時間的另一90%。
54、偉大的車工值得給他幾倍於普通車工的薪水,但一個偉大的軟體代碼作家,其價值則要等同於一個普通的軟體寫手的價格的1萬倍。
55、說Java好就好在運行於多個操作系統之上,就好像說肛交好就好在不管男女都行。
56、長此以往,除了按鍵的手指外,人類的肢體將全部退化。
⑥ 為什麼說懶惰是程序員的第一美德
人類社會之所以能夠從野蠻時代進化到現代文明,很大程度上都是因為人類有一顆勤勞勇敢的心。經過一代又一代人的不斷拼搏,才有了現在的人類社會。
而與勤勞相反的一個詞就是懶惰,在很多時候,人們對懶惰這個詞都是深惡痛絕的,因為它代表著不勞而獲,代表著不思進取,但是為什麼在一向以勤勞著稱的日本人的書《代碼之髓》中,卻說懶惰是程序員第一美德呢?
其實除了程序員之外,還流傳著一句話,懶人改變世界。其實這與懶惰是程序員第一美德的邏輯是一樣的。通過思維上的勤勞使得肉體上不必那麼勞累的懶惰,對人類進步是具有重大幫助的,你們認為這句話對嗎?