一区二区三区日韩精品-日韩经典一区二区三区-五月激情综合丁香婷婷-欧美精品中文字幕专区

分享

如何掌握所有的編程語(yǔ)言?

 烏商匯富 2018-05-28

關(guān)鍵時(shí)刻,第一時(shí)間送達(dá)!

還在討論哪種編程語(yǔ)言最具價(jià)值?還在頭疼怎么快速掌握新的語(yǔ)言?本文給出了一勞永逸的辦法:掌握所有編程語(yǔ)言不是夢(mèng)。

以下為譯文:

我想在這里討論的不是如何掌握一門(mén)編程語(yǔ)言,而是掌握所有的編程語(yǔ)言。

許多初學(xué)者會(huì)寫(xiě)信給我,問(wèn)我應(yīng)該學(xué)習(xí)哪種編程語(yǔ)言,以及如何學(xué)習(xí)編程語(yǔ)言。起初我總覺(jué)得這個(gè)問(wèn)題太低級(jí)。但是漸漸地,我發(fā)現(xiàn)不僅是初學(xué)者,即便是許多知名科技公司的高級(jí)工程師實(shí)際上也對(duì)這個(gè)問(wèn)題頗為不解。

今天,我打算花點(diǎn)時(shí)間回答這個(gè)擱置了很久的“低級(jí)”問(wèn)題。我也希望與更多開(kāi)發(fā)者分享我的想法。

如果你有以下幾種困惑,那么本文會(huì)對(duì)您所有幫助:

你是初學(xué)者,不知道選擇哪門(mén)語(yǔ)言入門(mén)。

你是高級(jí)程序員或團(tuán)隊(duì)負(fù)責(zé)人,但你對(duì)新興語(yǔ)言感到困惑,不知道該投資哪門(mén)語(yǔ)言。

你的團(tuán)隊(duì)針對(duì)使用哪門(mén)語(yǔ)言爭(zhēng)論不休,甚至發(fā)生了一些不必要的沖突。

你選用了一些時(shí)尚的編程語(yǔ)言,但是兩個(gè)月后發(fā)現(xiàn)它們都很坑。

就我個(gè)人而言,如果遇到?jīng)]見(jiàn)過(guò)的語(yǔ)言,我會(huì)直接使用,而不會(huì)花很長(zhǎng)時(shí)間學(xué)習(xí)。閱讀本文后,也許你會(huì)明白為什么我可以做到這一點(diǎn)。通過(guò)了解語(yǔ)言的特征,每個(gè)程序員都可以像我一樣實(shí)現(xiàn)這個(gè)目標(biāo)。至少我希望如此。


關(guān)注語(yǔ)言的特征,而非語(yǔ)言本身


許多開(kāi)發(fā)人員很在意他們或別人是否可以熟練使用某種語(yǔ)言,他們常常會(huì)對(duì)不同語(yǔ)言的優(yōu)點(diǎn)和缺點(diǎn)爭(zhēng)論不休。然而,對(duì)于我來(lái)說(shuō)這些問(wèn)題都不存在。盡管我撰寫(xiě)了很多批評(píng)語(yǔ)言的文章,但我很少在實(shí)際工作中爭(zhēng)論語(yǔ)言本身。我發(fā)現(xiàn)最根本的原因是相對(duì)于語(yǔ)言本身,我更加重視語(yǔ)言的特征。我可以用任何語(yǔ)言甚至很糟糕的語(yǔ)言寫(xiě)出優(yōu)秀的代碼。

任何語(yǔ)言都是各種語(yǔ)言特征的集合。例如,編程語(yǔ)言就像一臺(tái)計(jì)算機(jī)。其品牌可能是IBM、戴爾或蘋(píng)果。但是,你能說(shuō)蘋(píng)果的電腦就一定比IBM好嗎?不能。首先你必須了解計(jì)算機(jī)的配置,例如處理器型號(hào)、內(nèi)核數(shù)量、CPU的時(shí)鐘頻率、一級(jí)緩存、二級(jí)緩存……,內(nèi)存和硬盤(pán),顯示分辨率,還有顯卡、網(wǎng)卡等等。有時(shí)你還需了解每個(gè)硬件的兼容性。

對(duì)于編程語(yǔ)言來(lái)說(shuō),這些計(jì)算機(jī)的配置則等同于語(yǔ)言特征。以下是語(yǔ)言特征的一些例子:

  • 變量定義

  • 數(shù)學(xué)運(yùn)算

  • for循環(huán)語(yǔ)句,while循環(huán)語(yǔ)句

  • 函數(shù)定義,函數(shù)調(diào)用

  • 遞歸

  • 靜態(tài)類(lèi)型系統(tǒng)

  • 類(lèi)型推斷

  • Lambda表達(dá)式

  • 面向?qū)ο?/span>

  • 垃圾收集

  • 指針運(yùn)算

  • Goto語(yǔ)句

語(yǔ)言特征與計(jì)算機(jī)配置類(lèi)似。在選擇計(jì)算機(jī)的時(shí)候,沒(méi)人會(huì)說(shuō)戴爾的計(jì)算機(jī)就一定是最好的,他們會(huì)說(shuō)這臺(tái)計(jì)算機(jī)的CPU是Intel i7處理器,比i5好,DDR3的內(nèi)存比DDR2快很多,SSD硬盤(pán)的讀寫(xiě)速度比普通硬盤(pán)快很多,ATI的顯卡性能很差,等等。

編程語(yǔ)言也是如此。每種語(yǔ)言都有一組通用的特征,例如變量、函數(shù)、條件語(yǔ)句和循環(huán)語(yǔ)句。只要你學(xué)習(xí)一種編程語(yǔ)言,并掌握基本概念,就可以將這些知識(shí)應(yīng)用到其他語(yǔ)言中。因此,我們可以掌握語(yǔ)言的特征,而不用浪費(fèi)時(shí)間來(lái)選擇語(yǔ)言。

當(dāng)一個(gè)聰明的程序員開(kāi)始接觸一種新的編程語(yǔ)言時(shí),他們通常不會(huì)花費(fèi)很多時(shí)間閱讀語(yǔ)言的手冊(cè)或書(shū)籍,而是選擇直接使用該語(yǔ)言來(lái)解決實(shí)際問(wèn)題。例如,我用R語(yǔ)言執(zhí)行一些復(fù)雜計(jì)算時(shí)遇到了一個(gè)問(wèn)題。首先我會(huì)花幾分鐘瀏覽R語(yǔ)言手冊(cè),了解該語(yǔ)言的特征。然后我會(huì)從網(wǎng)上找到與該問(wèn)題相關(guān)的R語(yǔ)言的程序,并對(duì)其進(jìn)行修改,直到解決問(wèn)題。在解決問(wèn)題的過(guò)程中,你可以很快掌握該語(yǔ)言。


選擇一門(mén)合適的入門(mén)語(yǔ)言


作為初學(xué)者,你應(yīng)該選擇一門(mén)沒(méi)有明顯缺陷的合適的編程語(yǔ)言。首先你應(yīng)該掌握這門(mén)語(yǔ)言的特征,然后將這些語(yǔ)言特征應(yīng)用到其他編程語(yǔ)言上。哪種語(yǔ)言作為入門(mén)最合適呢?我個(gè)人認(rèn)為可以從下列語(yǔ)言著手:

  • Scheme

  • C

  • Java

  • Python

  • JavaScript

相反,我不推薦用下列語(yǔ)言作為入門(mén):

  • Shell

  • PowerShell

  • AWK

  • Perl

  • PHP

  • Basic

  • Go

一般來(lái)說(shuō),不應(yīng)該使用腳本語(yǔ)言作為入門(mén)語(yǔ)言,尤其是那些源自早期的Unix系統(tǒng)的語(yǔ)言。雖然與Unix shell相比,PowerShell有所改進(jìn),但它依然沒(méi)有擺脫腳本語(yǔ)言的根本問(wèn)題——他們的設(shè)計(jì)者不知道自己在干什么。

初學(xué)者利用腳本語(yǔ)言學(xué)習(xí)編程時(shí)無(wú)法掌握到關(guān)鍵點(diǎn),這是一個(gè)非常嚴(yán)重的問(wèn)題。腳本語(yǔ)言經(jīng)常會(huì)將一些系統(tǒng)工具的知識(shí)(例如正則表達(dá)式、互聯(lián)網(wǎng)等)添加到語(yǔ)法中,這不僅浪費(fèi)了初學(xué)者的很多時(shí)間,而且導(dǎo)致他們無(wú)法真正掌握編程最關(guān)鍵的概念:變量、函數(shù)、遞歸、類(lèi)型等等。


掌握關(guān)鍵特征,忽略次要特征


初學(xué)者應(yīng)該關(guān)注編程語(yǔ)言最關(guān)鍵的特征,而不要為次要內(nèi)容分神。我發(fā)現(xiàn)在許多編程課的開(kāi)頭,經(jīng)常有學(xué)生在學(xué)習(xí)用“printf”函數(shù)輸出“Hello World!”時(shí),老師要求他們記住“printf”函數(shù)的諸多復(fù)雜的輸出格式,例如%d、%F、 %. 2f等等。

然而,眾所周知,輸入和輸出操作根本不是語(yǔ)言的主要部分。與核心的特征相比,這都是次要的。一些初學(xué)者在學(xué)習(xí)了幾周的Java后,仍然對(duì)“printf”功能感到惱火。雖然他們寫(xiě)了幾百行“printf”函數(shù),但仍然不明白變量和函數(shù)是什么,甚至不知道如何使用算數(shù)語(yǔ)句和循環(huán)語(yǔ)句!

許多初學(xué)者認(rèn)為編程很難學(xué)的最大的一個(gè)原因是,他們以為記不住%d、%F、 %. 2f就不可能深入學(xué)習(xí)!


自己動(dòng)手實(shí)現(xiàn)語(yǔ)言的特征


在學(xué)習(xí)了基本的語(yǔ)言特征并使用它們編寫(xiě)代碼之后,下一步就是實(shí)現(xiàn)這些特征。只有你動(dòng)手實(shí)現(xiàn)不同的語(yǔ)言特征,才能算是完全掌握了它們。

一位編程大師曾經(jīng)說(shuō)過(guò),理解一門(mén)編程語(yǔ)言的最佳方式是自己動(dòng)手實(shí)現(xiàn)它,這意味著你需要編寫(xiě)一個(gè)解釋器來(lái)實(shí)現(xiàn)它的語(yǔ)義。但是我認(rèn)為可以對(duì)這句話做略微的改動(dòng):完全掌握語(yǔ)言的一個(gè)特征的最佳方式是自己動(dòng)手實(shí)現(xiàn)它。你不需要實(shí)現(xiàn)整個(gè)語(yǔ)言,因?yàn)闅w根結(jié)底我們要使用是語(yǔ)言的特征。只要你自己動(dòng)手實(shí)現(xiàn)了語(yǔ)言的一個(gè)特征,那么你就可以掌握所有語(yǔ)言中這個(gè)特征的實(shí)現(xiàn)與使用。

例如,在學(xué)習(xí)SICP時(shí),很多人可能會(huì)選擇使用Scheme來(lái)實(shí)現(xiàn)一個(gè)面向?qū)ο笙到y(tǒng)。面向?qū)ο笙到y(tǒng)的Scheme的語(yǔ)法與其他語(yǔ)言(如Java、C ++、Python等)有很大的不同。但是,它可以幫助你理解所有面向?qū)ο螅∣OP)語(yǔ)言中面向?qū)ο蟮母拍睢K踔量梢詭椭憷斫飧鞣N面向?qū)ο髮?shí)現(xiàn)方法之間的差異。

直接學(xué)習(xí)面向?qū)ο缶幊陶Z(yǔ)言無(wú)法掌握這一點(diǎn),因?yàn)樵谀銓W(xué)習(xí)Java、C ++、Python等語(yǔ)言時(shí),你只是一個(gè)用戶,在使用Scheme親自動(dòng)手實(shí)現(xiàn)面向?qū)ο笙到y(tǒng)之后,你就成為了創(chuàng)造者。


總結(jié)


無(wú)論是初學(xué)者還是高級(jí)程序員,你都應(yīng)該更加關(guān)注語(yǔ)言的特征,而不是使用哪種語(yǔ)言。只有這樣,你才能快速掌握新語(yǔ)言并編寫(xiě)高質(zhì)量的代碼。

原文:https://www./article/how-to-master-all-languages.html

譯者:彎月,責(zé)編:言則

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

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類(lèi)似文章 更多

    天堂热东京热男人天堂| 少妇在线一区二区三区| 日本不卡视频在线观看| 国产亚洲午夜高清国产拍精品| 欧美激情中文字幕综合八区| 国产亚洲精品久久99| 国产不卡在线免费观看视频| 亚洲精选91福利在线观看| 亚洲男人天堂网在线视频| 一二区不卡不卡在线观看| 午夜福利视频偷拍91| 欧美做爰猛烈叫床大尺度| 欧美亚洲国产日韩一区二区| 成人午夜视频在线播放| 免费观看在线午夜视频| 欧美黑人暴力猛交精品| 91久久精品中文内射| 欧美日韩精品久久亚洲区熟妇人| 美女露小粉嫩91精品久久久| 亚洲精品成人午夜久久| 国产高清一区二区不卡| 精品少妇一区二区视频| 高清国产日韩欧美熟女| 91蜜臀精品一区二区三区| 色哟哟精品一区二区三区| 国产精品第一香蕉视频| 日韩精品视频免费观看| 日本欧美在线一区二区三区| 老司机激情五月天在线不卡| 高跟丝袜av在线一区二区三区| 亚洲精品一区三区三区| 久久中文字人妻熟女小妇| 日本不卡一本二本三区| 国产亚洲欧美自拍中文自拍| 免费观看一级欧美大片| 美女被草的视频在线观看| 厕所偷拍一区二区三区视频| 国产91麻豆精品成人区| 成人午夜激情在线免费观看 | 国产老熟女乱子人伦视频| 亚洲一区二区三区熟女少妇|