国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

在學習編程的過程中,應該注意什么

2019-11-18 13:35:04
字體:
來源:轉載
供稿:網友

  在學習編程的過程中,應該注重什么

在當你學會了一門語言的時候(也就是說,你記住了該語言的語法,詞法,還有一些常用的函數),就意味著你已經把握了編寫程序的基本工具。無論你用的是啥語言,都差不多。只是工具之間有長有短。比如說,Delphi,VB之類做windows環境的應用程序很方便;用java開發基于網絡的程序很輕松;C,C++適合開發系統級軟件。假如我們用C(C++)寫一個記事本,估計要寫數百行代碼,而且不能保證沒有大錯誤,而用delphi,,或VC來做,就只要鼠標點點控件,幾下就完成了,可謂方便。這就是說工具各有特點,各個方面都有各個方面的最適合的工具。不過工具只是工具,光靠工具是寫不出好的程序的。就好比我要寫一篇文章出來,首先確定用啥語言來寫(漢,英,俄還是其他?很顯然,假如我是寫給中國人看,自然用中文,寫給美國人看,當然用英文。)好,確定了語言之后呢?我就能寫文章了嗎?文章結構如何設計?寫文章的方法技巧和注重事項是什么?這些我都不知道,自然寫不出好文章。可見,要寫一篇好文章,會語言是遠遠不夠的。同樣,要寫出好的程序(程序運行結果正確,時間,空間效率高,健壯性好,可讀性強等等),光會一門語言也是遠遠不夠的。學習編程方法才是我們應該做的。
大學計算機教育也是先從教授一門語言開始(一般是C語言),然后,緊接著就開始數據結構和算法的學習。數據結構和算法設計分析是整個編程方法的基礎,重中之重,也是考研專業課必考科目。以前流行過一句話:數據結構+算法=程序。這是不無道理的。數據在計算機中的表示和存儲不是無組織的,是有規律,有結構的。因此,當我們對這些數據操作的時候,理論上存在一種與某結構相比配的最優(或近式最優)算法,以次來確保操作數據的時空效率。打個比方,現有一排數據:a,b,c,d,e,假如經常要對其進行查找操作,順序排列存儲該數列能降低操作的時間。同樣假如經常要對其進行插入或刪除操作,采用鏈接存儲則能降低該操作的時間復雜度。由此可見,合理的數據結構,高效的算法對程序質量有著多么重要的影響!又比如,我們要編寫程序能對中國所有公民的身份證號進行排序。這是極其龐大的一組數據,如此多數據采取什么結構來表示和存儲,以及應用什么算法來對其排序,使該程序在排序時盡量的快,占用的空間盡量的少。這都是學問,編程的學問!所以,我覺得,程序員對數據結構和算法的領悟程度直接決定了他的編程水平的高低。那么如何提高自己的水平呢?我們可以學習研究像C(C++)函數庫(API)里的函數,或JFC(JAVA類庫)中的函數,這些函數實現都是非常有經驗的程序員編寫的,有著很好的運行效率。再者,就是數學的重要,我認為數學對程序的重要性體現在對算法的支持上。像微積分思想,為計算機數值計算提供了理論指導;而數據結構和算法來源與離散數學,線性代數和概率統計中的思想和方法。另外,像計算機密碼學,計算機圖形學,計算機多媒體都離不開數學。好的算法需要數學工具來理論驗證,也需要數學來改進,來完善!
那么,面向對象又扮演什么角色呢?說到底,我覺得面向對象思想的宗旨就是代碼重用。面向對象里的三大概念:封裝,繼續,多態都是為了代碼重用。重用質量高的代碼,不但可以節省人力,而且極大提高了本身原程序的質量。比如,我要編寫一多功能計算器,我依據自己喜好設計了界面,在具體功能實現上我繼續了別人已經寫好的正確功能類,不但省去了自己寫的麻煩,而且也保證了該計算器的正確性,一舉兩得。面向對象思想在寫小程序時或許體現不出優越,但在中大型軟件開發時,它的無比威力便會體現出來。沒有作過中大型項目的人是不會感覺到面向對象思想的偉大。在這里,我還是要強調一點,面向對象思想是極好的思想,極好的編程方法。但是假如沒有質量好的代碼可以值得被重用,面向對象方法就沒有用武之地!可見,擁有良好數據結構和算法的功能代碼塊是保證整個程序質量的奠基石。(再次強調數據結構和算法的重要!)
軟件質量好壞還有一個很重要的因素:軟件體系結構。
我再打個比方,我要建房子。軟件體系結構就好比房子的結構,采用哪種樣式(歐式?中式?)決定了房子的結構,
軟件體系結構的規劃設計也就決定了軟件本身的結構(軟件的環境,功能模塊的安排,位置,互相聯系關系等等)。那么,房子的結構設計好了,就要解決建筑材料的問題。顯而易見,牢固的磚頭和橫梁是房子牢固的根本保證。同樣,擁有良好數據結構和算法的功能函數或函數塊也是整個軟件質量的根本保證!有了質量過硬的磚頭和橫梁,只要結構合理,房子的壽命是完全可以保證的。一樣道理,我們手頭有了大批信的過的功能函數或函數塊,在編程的時候合理運用
面向對象方法,按照科學的體系結構要求,就能在經濟的條件下,開發出優良(準確,健壯,時空效率高,易修改補充,美觀,易使用)的軟件。
現在社會上多的是基本工不扎實的程序員,盲目追風,今天C#,明天JAVA。而開發工具又層出不窮,許多軟件公司上半年在.net平臺上做項目,下半年又在j2ee上開發,導致許多寫代碼的人來都來不及學。要應付這種現象,只有牢牢的打實基本功,以不變應萬變。不管用什么語言,在什么平臺上,有扎實功底的程序員都可以很快適應新環境,用極短的時間就可以產生效益,這也是軟件公司所愿意看到的。所以,我想對剛剛步入編程領域的人們說,不要被書店里眼花燎亂的編程書迷惑。很多都是語言工具書,商業書,沒有內涵,沒有研究價值的。真正想深入的,還是先把理論基礎打扎實為妙。說的大一點,中國軟件的發展不需要知道幾門語言,會用幾個工具,卻寫不出優質代碼的程序員。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 禄劝| 房山区| 芜湖市| 维西| 佛学| 镇坪县| 汉寿县| 五常市| 石棉县| 客服| 呈贡县| 中宁县| 合川市| 阜南县| 平武县| 黄大仙区| 乃东县| 林口县| 东海县| 巴彦县| 静乐县| 保康县| 伊通| 彩票| 浦江县| 陆川县| 宾阳县| 琼结县| 龙里县| 枣强县| 和田县| 丹棱县| 连平县| 内黄县| 连云港市| 庄浪县| 南召县| 甘洛县| 蛟河市| 北宁市| 邮箱|