少妇脱了内裤让我添,久久久久亚洲精品无码网址蜜桃,性色av免费观看,久久人妻av无码中文专区

分享

學什么編程語言比較好?

 心不留意外塵 2016-05-03

http://blog.csdn.net/bo5509/article/details/8200962


我應該學什么語言?這句話被問的很多,但是通常是不會得到答案的。每種語言都有一個相對固定的崇拜者群體,每次在論壇上有人比較一種語言的好壞,就會引發(fā)一場持久的戰(zhàn)爭。之所以發(fā)生這種情況,正是因為各種編譯語言之間的力量是均衡的,沒有哪一種語言是完美的,能夠“終結(jié)”其它的所有語言。即使像Linux下的幾種腳本語言那些看似長的很像的語言,也沒有誰被誰完全替代,大家和平共處了許多年,并且在各自的位置發(fā)揮著自己的長處。

這里就我所了解的幾種語言和自己學習的經(jīng)歷給新人一點建議,如果你有特殊的需求,比如工程或者數(shù)學,那可能需要一些特殊的語言來解決,比如Lisp或者Ada,這在該領域內(nèi)基本上是無可替代的,那你也沒有什么好迷惘的了。如果你只是一個剛剛準備進入編程這一行的學生,或者是一個想業(yè)余時間搞點自己的小東西的業(yè)余開發(fā)者,卻不知道哪種語言比較適合自己,就接著往下看吧。

首先是C語言。幾乎所有的書和計算機專業(yè)都把C語言稱為語言中基礎的基礎,在大學里基本上都屬于必修課程,而且,現(xiàn)在還是我們國家計算機等級考試和程序員水平與資格考試的標準語言。C語言之所以有這樣的地位,是因為它最接近底層,最接近匯編語言和機器語言,最接近機器的思維方式,其它更高級的語言,最終也要按照它的那些基本邏輯來處理問題。所以,學好C語言可以更方便的以機器的模式思考問題。

另外,C語言所涉及到的程序的順序結(jié)構(gòu)循環(huán)結(jié)構(gòu)和分支結(jié)構(gòu),還有整數(shù)字符串數(shù)組等變量,這些都是萬物之源,所有的編程語言都離不了。而且C語言有著嚴格的格式規(guī)范,不符合規(guī)范的寫法或者錯誤的類型定義,都會引起編譯錯誤,還有像if(a=1)這種常見錯誤,都可以讓人在使用C語言的過程中養(yǎng)成良好的編程風格和代碼規(guī)范。這些習慣在以后使用其它更寬松的語言的時候,會大大提高你的代碼質(zhì)量。

還有,因為C最接近底層,其代碼效率只有手工優(yōu)化的匯編可以匹敵,在許多腳本語言里面(比如Python)可以把一些大運算量的關(guān)鍵代碼用C來完成,從而獲得更高的執(zhí)行效率。

綜上所述,如果你真的想學好編程語言,C是一定要好好學的。但是新手學C語言通常會出現(xiàn)一個問題,就是除了寫個排序算法,似乎根本想不出來C語言有什么用。這是因為我們的教科書講C語言的時候,只講這些基本算法,甚至連讀寫文件都不去講,更不用說圖形界面處理了和網(wǎng)絡操作了,沒有這些知識,想寫一個真正的應用那是不可能的。不過,書上沒有不等于學不了,文件操作和網(wǎng)絡操作的講解網(wǎng)絡上有著大把的講解,(現(xiàn)在Windows下用這個人比較少了,但是講解Linux下C語言編程的書還是相當多的。)只要你隨便找?guī)灼恼驴纯矗邆淞诉@些基礎知識,寫一個自己的WEB服務器并不難。在逐步增加功能完善功能的同時,你的C語言基本上就可以達到相當牛人的水平了。

從0開始學習C的成本是比較高的,如果沒有明師(或者一本好書)的指點,某些概念想開竅也有些困難。但是你一旦突破了C語言這個障礙,再學習其它的語言,學習的曲線將會大為平坦。

除了C語言以外的其它流行的高級語言,不管是編譯語言還是腳本語言,基本上都是面向?qū)ο蟮恼Z言了,所以你要搞清楚面向?qū)ο蟮母拍睢U嬲m合理解面向?qū)ο蟮恼Z言,以前是SmallTalk,它是完全面向?qū)ο蟮模沁@個語言在中國很少見,書也很難買,現(xiàn)在,你可以學Ruby。(Ruby的作者是日本人,因此在許多論壇上提到它的時候會被許多憤青跳出來亂罵,這種做法是極其愚蠢的),近年新出來的Linux發(fā)生版里面都自帶了Ruby支持,這已經(jīng)充分說明了它在Linux管理方面的地位。而Ruby On Rails這個名字,更成了Web2.0快速開發(fā)的代名詞。該語言借鑒了其它許多語言的特點,并且寫出了自己的特點。在Ruby里,所有的東西都是對象,包括一個數(shù)字,你可以調(diào)用-1.abs這樣的方法。一切都是對象,才能讓你真正的理解面向?qū)ο蟆?/p>

一旦你掌握了Ruby的思想和面向?qū)ο蟮脑O計方法,那么使用Ruby on rails來開發(fā)一個網(wǎng)站將變得極其輕松,因為該框架已經(jīng)包裝了WEB開發(fā)中用到的前后臺的功能,所有的數(shù)據(jù)庫讀寫都通過你的對象自身來完成,前臺HTML的生成有著完整的模板系統(tǒng),只要把美工給你的HTML代碼里面的內(nèi)容換成你的變量就OK了。

如果你擁有了C語言的根本,和面向?qū)ο蟮乃季S方式,那么,如果因為工作需要,要去學習Java或者C#,那都是相當簡單的事情。至于Perl和Python,本身跟Ruby的語法就比較接近(Perl要復雜一些,稍后再說)。但是目前你所學習的C語言和Ruby,都不適合用來開發(fā)Windows桌面程序,如果有這個需求,目前最簡單的語言應該就是C#或者VB.Net了。通過簡單的拖放控件就可以擺出相當專業(yè)的軟件界面,而程序本身要實現(xiàn)的功能也無非就是本地的文件處理和數(shù)據(jù)庫處理,只要了解了該功能所在的命名空間和幾個基本的函數(shù),再查閱一下MSDN,寫程序輕輕松松。(以前使用最廣的是VB6,不過現(xiàn)在Windows已經(jīng)全面遷移到了.Net平臺,已經(jīng)基本沒有必要再去學習VB6了。)

當然,如果你不喜歡.Net平臺,還可以選擇Delphi或者C++。C++通常被認為是更高級的C,但是實際上它們的差別很大。而C++用來寫桌面程序,無非也就是調(diào)用一些已經(jīng)被包裝好的處理窗體的函數(shù)而已。(C也可以調(diào)用,只是比較麻煩一些罷了。)Delphi的語法需要一段時間來適應,但是Delphi的開發(fā)工具跟Visual Studio一樣簡單,大部分操作拖放控件就OK。如果是在Linux下面,也有不錯的C++的IDE和開發(fā)庫用來開發(fā)桌面程序。

C++入門容易升級很難,沒有個三五年的潛心研究,是沒有辦法精通它的精髓的。但是既然你已經(jīng)學到了這一步,那你應該已經(jīng)很明白自己需要學哪些東西了,只要去找書,找好的源代碼來研究就行了。

Java語言的崇拜者很多,不得不單獨拿出來說。Java語言的愛好者喜歡在語言層面把Java和C++相比,而不屑于跟C#來比較,而在企業(yè)開發(fā)架構(gòu)方面(特別是B/S方面),又拿Java和.Net來做比較,因為C++缺乏這方面的應用。Java語言本身是非常干凈的,但是被各種各樣的包搞的比較混亂,新手進來容易摸不著頭腦,而且框架太多,又互不兼容,習慣了Struts開發(fā)方式的人員,很可能在換了一家公司的以后,雖然Java很熟練,但是卻不得不又要花很長的時間來研究學習和適應另一種開發(fā)框架。(.Net也在向這個趨勢發(fā)展了,而像Ruby on Rails這種框架,則保證了框架的統(tǒng)一性,程序員的學習成本降低,企業(yè)的培訓成本和維護也更低了。)

Java通常被認為適合用來開發(fā)超大型的B/S項目,而一般的腳本語言則被認為只適合小型的項目開發(fā),通常,這種問題都是由于開發(fā)工具的限制帶來的。.Net平臺如果不是因為Visual Studio這樣方便而優(yōu)秀的開發(fā)工具,不可能取得今天的成就。而大部分腳本語言則沒有這個優(yōu)勢,缺少大型項目的管控能力,使得代碼量始終保持在一個比較低的水平。但是像Python這樣的代碼,可以憑借良好的代碼設計,模塊間松散耦合,做出極其靈活而且大型的項目(比如YouTube)。

Perl語言在Linux的系統(tǒng)維護方面有著不可動搖的地位,大量的系統(tǒng)維護代碼都是Perl語言寫的(而且PHP流行之前,WEB的CGI基本上也是以Perl語言為主的)。Perl在文本處理方面有著強大的能力,其正則表達式的處理方式更是成了其它語言必須兼容的標準。正則表達式的學習難度比較高,要想達到靈活運用的水平,需要大量的練習。(但是如果只是要達到基本的通用就行的水平,那還是相當簡單的。)

而在WEB開發(fā)方面還有一個重要的語言不可不提,那就是PHP。PHP出現(xiàn)的目標就是提供更方便的網(wǎng)站開發(fā)的能力,它的語法跟其它的腳本語言比如Perl/Python/Ruby都很接近,而且提供原生的MySQL數(shù)據(jù)庫支持,讀寫數(shù)據(jù)庫即簡單又高效,而且因為Apache的良好支持,才使得LAMP平臺能夠與Java和.Net平臺相抗衡,而且成為了小型項目首選的解決方案。

至于SQL,我并沒有拿它當一門語言來算,它只是你在做數(shù)據(jù)庫編程的時候所需要的一種工具罷了,就跟調(diào)用其它的系統(tǒng)函數(shù)沒有什么區(qū)別。簡單的SQL語法無非就是插入刪除選擇更新四種操作。處于同樣地位的還有HTML/CSS/JavaScript,如果做WEB開發(fā),這三種東西是必須要了解的,當然,前兩種你可以不必精通,因為有美工來負責,而JavaScript屬于完整的編程語言范疇,通常的美工是沒有辦法熟練掌握的,還是需要程序人員的搞定。但是Javascript的難度,在這個階段大概只有學習Ruby的十分之一了,想學,很快就可以掌握。(PS:Javascript也是一門易學難精的語言,好的JS框架全世界也就那么幾個人能寫的出來,比如prototype,jQuery,extjs)。

程序語言多種多樣,但是編程的思想?yún)s是不變的,而像設計模式、程序架構(gòu)這種東西,都是語言無關(guān)的。一個開發(fā)項目,前階段的需求分析,項目分析,直到概要設計階段都是語言無關(guān)的,而項目設計期間使用的UML圖也做到了盡量抽象,和具體的實現(xiàn)語言無關(guān)。直到詳細設計和編碼的時候,才需要針對不同的語言的特點做些調(diào)整,而它們提供的功能則是完全一致的。作為一個好的程序員,需要的不是編碼的能力,而是需求分析和項目設計的能力,用哪種語言來實現(xiàn)則是可以隨機應變的,只要掌握了具體語言的學習方法,熟練掌握一門語言并不需要太長的時間。

因此,在經(jīng)過了最初的語言學習的階段之后,程序設計人員需要盡快的向下一個階段演變,對設計模式的學習和理解是一個長期的過程,需要大量經(jīng)驗的積累,并經(jīng)常的總結(jié)經(jīng)驗,從經(jīng)驗中歸納出自己常用的模式。作為程序員,還要有精益求精的態(tài)度,在時間允許的情況下,時常反思自己的作品,尋找更好的解決方案,在瀏覽網(wǎng)站學習的過程中,時刻以自己的項目為思考的對象,當發(fā)現(xiàn)更好的方法的時候,使用恰當?shù)墓ぞ吆头椒▉碇貥?gòu)自己的項目。在這樣不斷進步的過程中,你就已經(jīng)不再局限于一個普通的程序員了。

    本站是提供個人知識管理的網(wǎng)絡存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多

    主站蜘蛛池模板: 久久精品久久电影免费| 亚洲欧美黑人猛交群| аⅴ天堂中文在线网| 国产成人精品免费视频app软件| 蜜桃视频无码区在线观看| 天天躁狠狠躁狠狠躁夜夜躁| 十八禁视频网站| 国产午夜免费高清久久影院| 水蜜桃av无码| 亚洲人成网站在线播放无码| 国产熟妇另类久久久久| 亚洲精品久久久久久久久久吃药| 久久成人国产精品一区二区| 久久精品国产第一区二区三区| 国产成人精品午夜福利不卡| 国产精品一区理论片| 精品久久久久久无码人妻热| 国产专区一线二线三线码| 国产乱沈阳女人高潮乱叫老| 中国国语毛片免费观看视频| 欧美刺激性大交| 国产免费人成网站x8x8| 欧洲美女熟乱av| 7m精品福利视频导航| 欧美日韩一区二区综合| 国产suv精品一区二区6| 天堂√在线中文官网在线| 特级毛片a级毛片在线播放www| 亚洲av福利无码无一区二区| 14萝自慰专用网站| 男女无遮挡猛进猛出免费视频国产| 亚洲色大成网站www久久| 日本黄页网站免费观看| 少妇被粗大猛进进出出s小说| 秋霞鲁丝无码一区二区三区| 大地资源中文第三页| 国产成av人片在线观看无码| 精品亚洲aⅴ在线观看| a片免费视频在线观看| 黑人巨大精品oideo| 国产新婚夫妇叫床声不断|