九色国产,午夜在线视频,新黄色网址,九九色综合,天天做夜夜做久久做狠狠,天天躁夜夜躁狠狠躁2021a,久久不卡一区二区三区

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
學(xué)什么編程語言比較好?

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


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

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

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

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

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

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

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

除了C語言以外的其它流行的高級語言,不管是編譯語言還是腳本語言,基本上都是面向?qū)ο蟮恼Z言了,所以你要搞清楚面向?qū)ο蟮母拍睢U嬲m合理解面向?qū)ο蟮恼Z言,以前是SmallTalk,它是完全面向?qū)ο蟮?,但是這個語言在中國很少見,書也很難買,現(xiàn)在,你可以學(xué)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(shè)計方法,那么使用Ruby on rails來開發(fā)一個網(wǎng)站將變得極其輕松,因為該框架已經(jīng)包裝了WEB開發(fā)中用到的前后臺的功能,所有的數(shù)據(jù)庫讀寫都通過你的對象自身來完成,前臺HTML的生成有著完整的模板系統(tǒng),只要把美工給你的HTML代碼里面的內(nèi)容換成你的變量就OK了。

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

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

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

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

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

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

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

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

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

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

本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
數(shù)據(jù)中心里常用的腳本語言
代碼藝術(shù):編程語言了解
為什么俺推薦Python[1]:作為腳本語言的Python
小話計算機編程語言及其用武之地(拼湊之作,歡迎大家拍磚)
編程語言介紹
編程語言發(fā)展
更多類似文章 >>
生活服務(wù)
熱點新聞
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服