很多學(xué)員都會(huì)認(rèn)為,要想拓寬自己未來(lái)的就業(yè)道路,就要學(xué)習(xí)很多種語(yǔ)言,F(xiàn)在北京北大青鳥校區(qū)老師告訴你,這種想法其實(shí)是不正確的。現(xiàn)在IT領(lǐng)域有600多種語(yǔ)言,全部學(xué)會(huì)是不現(xiàn)實(shí)的,他們之間有差異,但其實(shí)也有很多相似之處,例如那些面向?qū)ο蟮恼Z(yǔ)言:C++,Java,Ruby,Python等。所以我們只要對(duì)它們歸納分類,就能夠舉一反三,大大提高學(xué)習(xí)效果。
北京北大青鳥校區(qū)老師介紹面向?qū)ο缶幊陶Z(yǔ)言的基礎(chǔ)理論要點(diǎn):
學(xué)習(xí)基礎(chǔ)理論要點(diǎn),例如設(shè)計(jì)模式/范式,這樣你就知道了在所有面向?qū)ο蟮木幊陶Z(yǔ)言中共同的知識(shí),而不是只提高了一種語(yǔ)言水平。這是學(xué)習(xí)編程語(yǔ)言最有效的方法。
編程語(yǔ)言的類型有很多種,例如函數(shù)式語(yǔ)言,面向?qū)ο笳Z(yǔ)言,面向數(shù)據(jù)語(yǔ)言(更多)。通過把各種語(yǔ)言歸納分類,這600種語(yǔ)言大概可以分成50類。通過學(xué)習(xí)每種分類的基礎(chǔ)理論要點(diǎn),再學(xué)習(xí)分類中的不同語(yǔ)言就變得容易多了。這里我給出一個(gè)例子。
對(duì)于面向?qū)ο缶幊陶Z(yǔ)言,有5個(gè)基本原則能幫助你寫出整潔優(yōu)秀的代碼。這些原則是:
一個(gè)對(duì)象只承擔(dān)一種責(zé)任,所有服務(wù)接口只通過它來(lái)執(zhí)行這種任務(wù)。
程序?qū)嶓w,比如類和對(duì)象,向擴(kuò)展行為開放,向修改行為關(guān)閉。
子類應(yīng)該可以用來(lái)替代它所繼承的類。
一個(gè)類對(duì)另一個(gè)類的依賴應(yīng)該限制在最小化的接口上。
依賴抽象層(接口),而不是具體類。
通過學(xué)習(xí)這些原則,你可以在所有面向?qū)ο笳Z(yǔ)言里更有效的進(jìn)行編程。當(dāng)然,你需要學(xué)會(huì)一門這種類型的語(yǔ)言來(lái)練習(xí)這些原則,但這是完全值得的。
各種面向?qū)ο笳Z(yǔ)言間的不同之處:
同屬于面向?qū)ο笳Z(yǔ)言,它們之間存在大量不同之處:
語(yǔ)法:了解各種語(yǔ)言在語(yǔ)法句式上的差異有很多好處,其中之一能幫助優(yōu)化你的編碼。通過讓一個(gè)方法或類跟它的行為在特征是保持相似,這能讓程序更容易懂。
獨(dú)特性:每種編程語(yǔ)言跟其它種比起來(lái)都有自己的獨(dú)特之處。Java有私有方法和數(shù)據(jù)自定義上的特點(diǎn),Ruby在Web應(yīng)用上有很強(qiáng)的優(yōu)勢(shì)。
總之,學(xué)習(xí)各種語(yǔ)言之間的區(qū)別很重要。這種語(yǔ)言可能比那種語(yǔ)言中某些方面更容易使用或更強(qiáng)大。
北京北大青鳥老師總結(jié):學(xué)習(xí)編程語(yǔ)言最有效的方法是學(xué)習(xí)它們的基礎(chǔ)性的模式/范式,這比單獨(dú)學(xué)習(xí)每種語(yǔ)言更高效。通過學(xué)習(xí)這些基礎(chǔ)原理,你可以把它們應(yīng)用到很多其它類似的語(yǔ)言里。學(xué)習(xí)各種語(yǔ)言之間的差異,這能幫助我們?cè)诿鎸?duì)各種情況時(shí)選擇更合適的語(yǔ)言。