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

VIP免費下載

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

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

溫馨提示

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

評論

0/150

提交評論