編程并不是一件太難的事.doc_第1頁
編程并不是一件太難的事.doc_第2頁
編程并不是一件太難的事.doc_第3頁
編程并不是一件太難的事.doc_第4頁
全文預覽已結束

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

編程并不是一件太難的事之(二) . 今天與大家談談如何成為一個程序員。如果你沒有開發過正式項目也沒有在軟件公司工作過。你一定想問:我們與真正的程序員有多大距離?他們懂得的是否一定比我們多?他們是怎樣工作的 在回答上述問題之前,先測試一下大家是否是一個合格的程序員。大家先花一分鐘看以下幾句代碼,看看有沒有錯誤: (已知 a、b、c均為整數) if( a != 0 ) c = b-10; b = b/a; 如果編程是為了玩玩,應付一些Excel表格計算,上面程序問題不大。如果應用在真正的編程項目中,上面的程序可能會令你的系統崩潰一百次。 如果你現在還崇拜著那些病毒或惡意代碼制造者,那么你編程的方向一定走錯了。這并不是道德的問題。發現別人程序漏洞并攻擊它不難,這是比寫一個沒有漏洞的程序容易一千倍事。有一次我在某移動通訊公司測試一個短號集群網之類的系統。發現稍微升格一下權限、做一些小手腳就可以查看別的用戶檔案及所發信息。如果這被居心不良的人利用,是非常危險的。我想為此問題找個解決方法。然而想來想去,就是沒有合適的。因為解決了舊問題,又會引發新的問題 好,現在回到上面的程序,大家可能會說出很多模棱兩可的錯誤,比a,b,c有可能超出取值有范圍啦,或者多線程運行時會怎么怎么樣啦很遺憾告訴你,這不是一個程序員的判斷!我并不是說你說錯了,只是想說你很混亂。因為嚴格來說,沒有一句代碼是可證明絕對安全的,我們經常是在安全與現實情況中取舍。初級程序員的特點是思路很不清晰,反應常常書上曾經告訴過我什么,書上要我怎么做,只求運行通過。這有點象政府人員寫年度考核,上交也不知道到底誰看了,有沒有看,但是不敢不寫。程序員特點是象會計師,必須要思路清晰、理性,因為他要對程序負責。 程序員對除0的操作很敏感,他會覺得上面程序編寫代碼的風格不對。分析結果如下。 雖然已知 a、b、c均為整數,但還不知它是怎樣定義的,如果定義成如下這樣,錯誤就來了。 int a,b; int& c = a; / c是a的引用,即a與c總是同一個值 b = 10; if( a != 0 ) /雖然在此a不等于零 c = b-10; /但因執行了此一句 b = b/a; /a變為了0,程序崩潰 真正編程的時候,就不會象上面那么容易找到錯誤了。面對數萬行的代碼,每一行都可能有錯誤,程序員應該怎么做,大家心中應有數了。 我有個準程序員朋友,或者說是個想成為程序員的朋友。一天到晚看書,堅持了很長時間。我開玩笑地說幫他接個項目,他回答說:“不行,還有很多書未看呢?唉,這么多書,究竟何時才算完?”堅持是一個偉大的品質,但要正確的堅持才會成功。也許我的朋友有一天僥幸進入軟件公司才發覺,所做的事情,與看多少書是無關的。公司一般有很多現在代碼、庫、架構等等。初進公司,你可能面對的是一個全新的培訓,學習一個全新編程方式。 很多準備步入編程界的朋友,總自以為是地認為編程界是這樣或那樣子,以為進入軟件公司就是埋頭寫代碼、寫代碼其實不然,我所認識的幾個“程序員”,一直做的都只是測試和搜索資料的工作。 編程并不是一件太難的事,因為我們和真正的程序員距離不大。那么,我們應該如何學習,為成為正式程序員做準備呢? 我覺得是在關鍵的知識點,原理性的問題上要有高層面和理性的認識。 所謂高層面,就是在紛繁復雜的應用中找到共通,比如去某個地方旅游,我們不是記住坐什么車,走哪一條路,轉多少個彎,而是學會看地圖。這樣,日后我們要去更多地方,也胸有成竹。 所謂理性,就是對問題有一個明明白白的認識。比如大家爭論先有編譯器還是先有操作系統的時候,你要的結論不是查探第一個編譯器比第一個操作系統遲或早;也不是雞生蛋、蛋生雞的問題沒法討論。你要的結論是沒有操作系統也可以有編譯器,同樣沒有編譯器也可以有操作系統。雖然他們相輔相成,但不能歸為父子關系,理論上它們最終都只是一段程序代碼。 當然,更好的方法,就是看一個項目從立項到完成的全過程。你就會發覺什么東西是主要的,什么東西是次了。什么錯誤可以犯,什么錯誤絕對不能犯 為什么我想用最近編寫“名捷排課王3.0”做案例。因為網上能見到的排課程序成百上千,有些還價格不菲,但差不多都是很爛很爛的程序。我測試了市面上知名的排課程序,覺得大多數都有些玩票的特征,可有可無的功能一大堆,必須要有的功能卻實現不了。有些排課軟件,幾十個工具按鈕,以功能多為榮。有的排課還搞個口令登錄框,難道課程表要防止被教師發現?“名捷排課王3.0”做案例,對過比較,很容易讓大伙明白怎么構造一個有用的軟件。 大伙可能認為我是出于個人狹隘,自己寫了排課軟件就踩其他的。事實我對自己寫的也不太滿意,但至少能解決實實際際的問題。一次我去某教育部門推銷自己的排課軟件,被轟了出來,原因是“從來沒見過一款排課軟件不是害人的”。但我還是堅持回頭演示了自己的排課軟件,最后得到他們的認可采用,并說這是他見到的唯一一款實用的排課軟件。同樣,我對某些地方的交警也很有意見,也不是我個人狹隘。有一次,我要從東莞托運一臺摩托車回茂名。臨行前,我開摩托車到市場買菜,打算煮一頓飯吃后才回家。途中被交警攔截查證件。其時,我的證件就在離我500米不到的宿舍內。我馬上回宿舍拿了證件,但交警們看也不看,堅決扣留了兩天。幾乎罰光了我身上的錢。因沒夠錢托運,我只能自己避開幾乎所有的收費站,連續開了20個小時摩托車,行程770公里,才回到茂名老家當很多類似的事件發生在你身上的時候,你才發覺,他們不是維持交通,而是維護錢袋,對一班這樣的人,你能不狹隘嗎? 昨天我曾經說過,想花點時間,用

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論