首頁 考試吧論壇 Exam8視線 考試商城 網(wǎng)絡(luò)課程 面授課程 模擬考試 實用文檔 繽紛校園 英語學習 | ||
2010考研 | 自學考試 | 成人高考 | 專 升 本 | 法律碩士 | MBA/MPA | 中 科 院 | ||
四六級 | 商務英語 | 公共英語 | 職稱日語 | 職稱英語 | 博思 | 口譯筆譯 | GRE GMAT | 日語 | 托福 | ||
雅思 | 專四專八 | 新概念 | 自考英語 | 零起點英、法、德、日、韓語 | 在職申碩英語 | ||
在職攻碩英語 | 成人英語三級 | ||
等級考試 | 水平考試 | 微軟認證 | 思科認證 | Oracle認證 | Linux認證 | ||
公務員 | 報關(guān)員 | 報檢員 | 外銷員 | 司法考試 | 導游考試 | 教師資格 | 國際商務師 | 跟單員 | ||
單證員 | 物流師 | 價格鑒證師 | 銀行從業(yè)資格 | 證券從業(yè)資格 | 人力資源管理師 | 管理咨詢師 | ||
期貨從業(yè)資格 | 社會工作者 | ||
會計職稱 | 注會CPA | 經(jīng)濟師 | 統(tǒng)計師 | 注冊稅務師 | 評估師 | 精算師 | 高會 | ACCA | 審計師 | ||
法律顧問 | 會計證 | ||
建造師(一級、二級) | 造價師 | 監(jiān)理師 | 安全師 | 咨詢師 | 結(jié)構(gòu)師 | 建筑師 | 安全評價師 | ||
估價師(房地產(chǎn)估價、土地估價) | 設(shè)備監(jiān)理師 | 巖土工程師 | 質(zhì)量資格 | 房地產(chǎn)經(jīng)紀人 | 造價員 | ||
投資項目管理 | 土地代理人 | 環(huán)保師 | 環(huán)境影響評價 | 物業(yè)管理師 | 城市規(guī)劃師 | 公路監(jiān)理師 | ||
公路造價工程師 | 招標師 | ||
執(zhí)業(yè)護士 | 執(zhí)業(yè)醫(yī)師 | 執(zhí)業(yè)藥師 | 衛(wèi)生資格 |
這些在IT業(yè)內(nèi)被無數(shù)人津津樂道的名字。在這里,筆者從一個職業(yè)程序員的角度,想和大家談談自己的感受。
為什么要做一個程序員
提到這個問題似乎會讓人覺得太簡單、太幼稚?纯船F(xiàn)在程序員舒適的工作環(huán)境、豐厚的薪水、過著“快樂”的白領(lǐng)生活,一切仿佛都不言自明。其實這是只看到了程序員的一面。我們的另一面則不為大眾關(guān)注:沒日沒夜的工作,通宵加班是家常便飯;整天和鍵盤打交道,把自己的這些枯燥的生活又有多少人能切身體會?沒有對軟件事業(yè)本身的執(zhí)著、對源代碼近乎朝圣般的癡迷,這一切都是普通人不能忍受的。但是當你的程序完全通過了測試,成為一個合格的產(chǎn)品。這個時候的喜悅,又是如此?
有規(guī)矩,成方圓
程序開發(fā)是一件靈活性很強的工作。例如:變量I增加1,在C語言里面可以有:I++、++I、I+=1、I=I+1等多種寫法。但是,這并不說明編程就可以隨心所欲,天馬行空。良好的編程習慣可以提高工作效率,減少不必要的失誤。尤其是對初學者來說更是要注意的是:
第一點:編程的時候,首先要建立好的數(shù)據(jù)結(jié)構(gòu)。編程序的時候,如果在開
始數(shù)據(jù)結(jié)構(gòu)設(shè)計錯誤,那么在后來你不得不花大代價來修改程序。筆者自己就曾
有過這樣的慘痛教訓:一個程序?qū)懥?500多行,突然發(fā)現(xiàn)基本數(shù)據(jù)結(jié)構(gòu)不合理,
結(jié)果全部推翻重寫。“磨刀不誤砍柴工”
第二點:代碼盡可能重用與模塊化。無論是面向過程還是面向?qū)ο螅a重
用都是基本原則之一。例如:如果要畫一個青蘋果和一個紅蘋果,就寫一個函數(shù)
來畫蘋果,把顏色作為參數(shù)傳進去。這樣只要調(diào)用同一個函數(shù)傳遞不同參數(shù)就可
以畫出不同顏色的蘋果。這樣做的好處一是程序?!---->
第三點:良好的編寫風格。一個程序,不可能是絕對完美,以后永不用修改的。既然要修改,就必然要重讀和理解原來的代碼。而良好的編程風格,可以使人更方便和迅速理解程序的結(jié) 構(gòu),從而可以最大限度地提高修改的效率。在這里,筆者舉出一些比較好編程的風格要求:1.統(tǒng)一Count明顯比叫iii更容易被理解其真實的邏輯含義和數(shù)據(jù)類型。所以變量和函數(shù)名多起幾個字母,讓它有意義一點,將來理解也比較方便。2.代碼的逐層縮進格式。這幾乎已經(jīng)成為一種標準,這種格式使得代碼之間的層次關(guān)系非常明顯,對于程序的邏輯理?代碼位置的有條理性。把相關(guān)功能的代碼集中起來,放在一起,這樣在以后閱讀代碼時候,可以盡量避免在不同文件模塊之間頻繁切換。由于要考不利于理解。如果循環(huán)的確太多、代碼太長,就應該考慮重新再劃分出更細的子函數(shù)。好的編程風格當然不止這些,這也需要在學習過程中慢慢體會。
第四點:注重程序測試,注意異常處理。這往往是業(yè)余編程愛好者和職業(yè)程序員的一個明顯的差別。業(yè)余編程愛好者往往只注重程序可以正常運行,而職業(yè)程序員除此之外還必須關(guān)注程序在異常情況下也可正常運行,至少可以正常終止。而這是建立在對程序充份理解和測試基礎(chǔ)上的?
千里之行始于足下。做程序員有更多的曲折和困難。但是只要真心熱愛軟件開發(fā),愿意為之而付出,最后將使你體會到個中樂趣。來吧,還猶豫什么,踏上這條程序員之路,昂首向前走吧!
學編程是先學什么?
對于廣大編程初學者來說,存在著這樣普遍的認識:學習程序設(shè)計選擇編程語言很重要,開口閉口就是VisualBasic、Visual C++、Delphi、Power Builder等一些現(xiàn)在比較流行的開發(fā)工具。經(jīng)常看見有初學者問:我學C/C++,究竟是學VisualC++好,還是學Borland C++ Builder好呢?或者就是要求在Visual Basic和Delphi之間作出選擇。學習程序設(shè)計和學習程序設(shè)計語言究竟是怎么一個關(guān)系?初學者究竟應該如何取舍呢?就此我們打個簡單的比方:學習程序設(shè)計就好比學習射擊,而程序設(shè)計語言就對應射擊中的氣槍、手槍、步槍等各種槍械。學習射擊必須要選擇一種槍械,不可能沒有槍還能學好射擊的,也不可能同時學會使用所有的槍械。但是,如果掌握一種槍械的射擊,再學別的也就觸類旁通了。因為在熟悉一種槍械的同時,也學習了射擊技術(shù)本身。再學其他的,自然事半功倍。學習程序設(shè)計也是一樣,必然要從學習一門程序設(shè)計語言開始入手。同時在學習的過程中?
建議:學習程序設(shè)計不必苛求一定要從某一種語言入手,可以在Visual Basic、Delphi、Borland C++ Builder或者DOS下的Pascal、Turbo C(或Borland C)中間選擇自己比較容易接受的一種進行學習。從中主要學習的是編程本身的思想,學習的是用程序設(shè)計的眼光來看待問題;蛟S,學習的效果不能馬上看到,但是可以學到扎實的基本功,而這對于將來的進一步發(fā)展是有很大好處的。這些基本功包括:
一、強化邏輯分析和建立數(shù)學模型的能力
編程的目的是什么?是要解決現(xiàn)實中的問題。而現(xiàn)實中的問題是用自然語言描述的,目前的計算機對其無法理解。我們要做的就是必須用計算機能理解的方式將問題“告訴”計算機。也就需要我們對現(xiàn)實問題進行邏輯分析,建立合理的數(shù)學模型,然后以程序和數(shù)據(jù)的形式輸入計算機,R、G、B三色份量來各表示一種顏色,對于顏色的處理被轉(zhuǎn)化為對R、G、B三個整數(shù)的處理。我們只要改變這三個整數(shù),就可以將其改變成另外一種顏色。對于其它的現(xiàn)實問題,我們也要像這樣使其可以被計算。
二、數(shù)據(jù)結(jié)構(gòu)和算法知識
程序設(shè)計發(fā)展到現(xiàn)在,已經(jīng)有了一套比較普遍、完整的數(shù)學模型(我們稱之為數(shù)據(jù)結(jié)構(gòu))和對應這些數(shù)學模型的處理方法(也就是算法)。目前的程序就是以此為基礎(chǔ)的。在程序員中間流傳著一句經(jīng)驗之談:“好的數(shù)據(jù)結(jié)構(gòu)是程序的一半!逼渲匾钥梢娨话摺
三、豐富的實踐經(jīng)驗
程序設(shè)計本身就是一門實踐性很強的學科。一個只存在于紙上的程序如同沒有翅膀的鳥永遠不能飛翔在現(xiàn)實的天空。任由代碼寫得再巧妙,風格再優(yōu)美,也只是一張紙上的一連串字符而已。就好比是一份作文練習,或許寫得很好,但是不交給老師去批閱,和一張白紙又有什么區(qū)別呢?!最后,作為一個程序員還有一點小要求:那就是身體素質(zhì)要好,能熬夜才行。
Top of Form 1
選其器與善其事──縱談編程工具的選擇選其器相同主題的文章
“工欲善其事,必先利其器”──《論語》。很多人在學習軟件編程時,都希望選擇一款優(yōu)秀的編程工具。到書店逛逛,可以看到各種琳瑯滿目的編程書籍,可是你還沒有想好選擇學習什么編程語言,也就無所適從,不知道該買什么書看。
要想學好編程,必須認真了解各種語言的特點,找準自己的學習方向。那么你首先必須明確你想要做什么,你所感興趣的是什么?進一步說就是:你現(xiàn)在想要完成哪一方面的程序設(shè)計,你的程序主要完成的功能是什么?由此在眾多軟件中,選擇出適合自己的開發(fā)工具。
一、基礎(chǔ)語言開發(fā)工具
諸如Delphi、VC++、VB等語言都是一種面向?qū)ο蟮某绦蛟O(shè)計語言,雖然每種語言在對面向?qū)ο蟮闹С植槐M相同,但它們始終貫穿整個程序設(shè)計的思維方式的主線。因此,要學好這些語言最開始不應該將重點放在某種語言的具體語法格式上,而應該注重學習面向?qū)ο蟮幕纠碚撟钊菀椎娜腴T語言──Visual Basic
在掌握面向?qū)ο缶幊痰幕靖拍畹幕A(chǔ)上,相對來講,VB是比較容易入門的一門語言。在學習VB時,應該注意抓住對象的精髓,避免凌亂和繁雜,注意掌握對象和控件的屬性和事件以及它們的功能和用法、主要函數(shù)的簡單功能。最有效的方法就是自己組織一個由簡到繁的學習步驟,比如:在學習VB簡單繪圖功能時,學著自己繪制正弦曲線;學習使用picturecl控件來制作一個液晶效果顯示時間;在學習API函數(shù)時,制作自己的任務欄圖標。這種方法能夠很好的幫助你掌握VB中常用對象、事件的使用。
最靈活的語言──Delphi
對于Delphi來講,如果你曾經(jīng)學過PASCAL的話,你會發(fā)現(xiàn)很多東西都是“似曾相識”的。確實如此,Delphi本身就是由和PASCAL結(jié)構(gòu)類似的Object Pascal編寫而成。如果你有一定的PASCAL基礎(chǔ),學習起來當然更輕松一些。另外,還應注意對Delphi中包的理解和應用。比如,對運行期包、設(shè)計期包以及自己建立包應該注意的事項。在熟練掌握Object Pascal語言的基礎(chǔ)上,可以把學習Delphi時的重點放到如何使用Delphi編寫Windows應用程序,Delphi數(shù)據(jù)庫編程和創(chuàng)建控件以及程序開發(fā)上面。
最強大的語言──Visual C++
VC++中由于有較完整的微軟基本類庫,使開發(fā)Windows應用程序變得簡單而高效。它提供的復雜的資源編輯器,可以很方便地編輯對話框、菜單、工具欄以及其他組成元素,因此它的功能強大,使用方便,但是和VB、Delphi相比,入門較難、不容易掌握。學習VC++,應該首先把重點方在基本數(shù)據(jù)類型、輸入/輸出、循環(huán)和數(shù)組、模板以及如何創(chuàng)建C++應用程序上面。在此之后,才應該進一步學習VC++中資源編輯器的使用、ActiveX控件的使用以及編輯器優(yōu)化等內(nèi)容。目前很多關(guān)于VC++的書籍中大部份都是對使用VC++各個版本開發(fā)應用程序的介紹,而忽略了C++的基本知識,實際上,對于初學者來講,直接從具體應用程序設(shè)計入手而忽略基本知識,反而會在很大程度上加大學習難度,很容易喪失學習的信心?!---->
當然在上述這些語言中,都提供有自己的數(shù)據(jù)庫編程和Internet編□'7b。在對程序本身熟練掌握的基礎(chǔ)上,你還可根據(jù)自己的需要選擇學習。當你已具有一定程序設(shè)計能力時,不妨自己設(shè)計一個現(xiàn)實、有興趣的課題,自行開發(fā)、自行設(shè)計。這樣可以幫你很好地熟練
二、數(shù)據(jù)庫編程
如果你主要是想完成數(shù)據(jù)庫方面的設(shè)計,那么應該選擇專門的數(shù)據(jù)庫開發(fā)工具,常見的有:SQLServer、PowerBulider等。假如只是需要完成相對簡單的數(shù)據(jù)庫功能,那就仔細看看Access吧;ú欢嗟臅r間,也能讓你有很大的收獲,另外,還有一些專門用于大型數(shù)據(jù)庫開發(fā)的工具如:DB2、Sysbase以及Oracle,這一類的軟件一般都需要有較扎實的數(shù)據(jù)庫基礎(chǔ)知識和一定的軟件開發(fā)能力。如果你是從頭開始的話,建議不要一開始就去學習這一類軟件。PB和SQLServer主要是用于完成數(shù)據(jù)處理和數(shù)據(jù)庫的訪問。由于SQLServer和操作系統(tǒng)兼容性較好以及在網(wǎng)絡(luò)中的廣泛應用,目前很多業(yè)余愛好者都選擇學習它,在學習SQLServer時,應把重點放在SQL語言的組成、SQL的事務管理以及SQL的查詢和優(yōu)化上面。而PB則一直都是很多從事數(shù)人來講,在學習數(shù)據(jù)庫基本使用技巧的同時,還應注意到在PB中,對于需要訪問Windows特殊功能的應用程序需要調(diào)用API函數(shù),比如:控制鼠標、創(chuàng)建目錄以及閃□'7b窗口等。
在學習數(shù)據(jù)庫編程時,可以嘗試著完成一個完整的軟件開發(fā)周期。從需求分析隍7d始,親身經(jīng)歷設(shè)計數(shù)據(jù)庫、創(chuàng)建數(shù)據(jù)庫前端、創(chuàng)建表格、完成常見查詢以及輸出報表等全部過程。
三、網(wǎng)絡(luò)編程
目前較為流行的網(wǎng)絡(luò)編程工具可謂“風格迥異,百花齊放”。每一種工具都有其獨特的特點,在互聯(lián)網(wǎng)實現(xiàn)上都有各自的優(yōu)勢。
在學習Java時,應該明確其中對象、繼承等面向?qū)ο蟮幕纠碚摚瑥母旧险莆認ava的運行機制。在學習中應把重點放在其語言基礎(chǔ)、Java與ActiveX以及JavaBeans等組件之間的編程技術(shù)以及應用上來。你可以自己編一些較為經(jīng)典的小程序來加深基本技能的掌握:用Java的圖形處理能力編寫紙牌游戲,用AWT編寫掃雷或者俄羅斯方塊、用Java的網(wǎng)絡(luò)功能編寫網(wǎng)絡(luò)聊天室等等。
相對來講,ASP編輯方式簡單、容易上手、功能強大,早已被廣泛采用。在學習ASP時,應該首先對ASP相關(guān)的網(wǎng)絡(luò)知識、Web Server設(shè)置、HTML語言等方面有一定了解,在此基礎(chǔ)上,注重ASP的主要編程語言VBScript、ASP的常用對象和組件的學習。如果想對ASP有較深入的了解的話,還必須對其常用的數(shù)據(jù)庫
SQLServer、Acess等具有基本的使用技能。你可以自己嘗試編一個簡單的網(wǎng)上投票、網(wǎng)上超市等程序來加深對上述知識的掌握。
另外,值得一提的還有網(wǎng)絡(luò)編程語言的“新秀”──PHP。它□'5c脫了ASP只能使用NT或者Windows 2000為服務器操作系統(tǒng)的限制,對于數(shù)據(jù)庫的訪問較ASP更快、更直接。但是目前對于初學者來講,其語言比較難理解,安裝相對復雜、可供參考和學習的資料遠不及ASP。同時在Windows中使用PHP,并不能夠很好地體現(xiàn)其優(yōu)越性。因此,我們建議對于沒有Linux/Uninx基礎(chǔ)的初學者,最好不要從PHP學起。
網(wǎng)絡(luò)編程還有一個很大的特點:處處留心皆學問。時常留意互聯(lián)網(wǎng)上各個網(wǎng)站的設(shè)計,留心他人的設(shè)計思想和創(chuàng)意,會使你的網(wǎng)絡(luò)編程技巧進步很快?偟膩碇v,網(wǎng)絡(luò)編答7b本身難度并不大,但是由于其在具體項目設(shè)計上涉及范圍較廣,比如涉及到與各種各樣的數(shù)據(jù)庫直接的接口、 學習語言的過程,是自己創(chuàng)造、自己編程的過程,也是逐漸掌握、逐漸應用的過程。在學習過程中逐漸培養(yǎng)起良好的編程思維、經(jīng)驗,逐步提高程序設(shè)計能力、找到更好的設(shè)計方案才是編程開發(fā)的真正精髓和樂趣所在!
懂數(shù)據(jù)結(jié)構(gòu)怕不行,我說的高手,不是在會不會的界限上,而是在能不能的界限上.