偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

如何成為多編程語(yǔ)言人才?這有一份獨(dú)門(mén)訣竅

開(kāi)發(fā) 后端
學(xué)習(xí)一種新的編程語(yǔ)言就像學(xué)一門(mén)新的語(yǔ)言。相信許多學(xué)習(xí)兩門(mén)或多門(mén)語(yǔ)言的朋友都會(huì)認(rèn)同,在雙語(yǔ)或多語(yǔ)言間轉(zhuǎn)換難免令人混淆。

 本文轉(zhuǎn)載自公眾號(hào)“讀芯術(shù)”(ID:AI_Discovery)

學(xué)習(xí)一種新的編程語(yǔ)言就像學(xué)一門(mén)新的語(yǔ)言。相信許多學(xué)習(xí)兩門(mén)或多門(mén)語(yǔ)言的朋友都會(huì)認(rèn)同,在雙語(yǔ)或多語(yǔ)言間轉(zhuǎn)換難免令人混淆。

[[391151]]

例如,我的母語(yǔ)是英語(yǔ),在學(xué)校里參加了沉浸式法語(yǔ)課程。這一方面使我的英法雙語(yǔ)都達(dá)到了十分流利的水平,一方面也對(duì)我英語(yǔ)的使用造成了意想不到的效果。

很長(zhǎng)一段時(shí)間中,我都會(huì)在許多單詞末尾加上“E”,或是在數(shù)字后面加上美元符號(hào)(32$而不是$32),這些要求都只存在于法語(yǔ)當(dāng)中,而非英語(yǔ)。經(jīng)過(guò)一段時(shí)間的練習(xí),我終于不再混淆,現(xiàn)在能夠英法雙語(yǔ)無(wú)縫切換了。

然而,這種情況又一次發(fā)生了——我試圖從C#和Java 轉(zhuǎn)換到Python。大學(xué)時(shí),我所有的課程都圍繞著C#這樣嚴(yán)謹(jǐn)?shù)木幊陶Z(yǔ)言展開(kāi)。如今我準(zhǔn)備進(jìn)軍數(shù)據(jù)科學(xué),現(xiàn)在正在學(xué)習(xí)Python。

對(duì)于喜歡有條理有組織的事物的人來(lái)說(shuō),Python簡(jiǎn)直是一個(gè)噩夢(mèng)。對(duì)我而言,分號(hào)、花括號(hào)和類(lèi)型變量嚴(yán)重不足,就好像我正在學(xué)習(xí)一門(mén)新語(yǔ)言,而它與我的母語(yǔ)(C#)截然不同。

學(xué)習(xí)相似的編程語(yǔ)言(比如C#,Java和JavaScript)就像學(xué)習(xí)幾種相似的語(yǔ)言。比如,因?yàn)槲視?huì)法語(yǔ),所以學(xué)習(xí)意大利語(yǔ)、葡萄牙語(yǔ)、西班牙語(yǔ)這些相似的語(yǔ)言也會(huì)比較容易。但我目前所掌握的語(yǔ)言卻無(wú)助于學(xué)習(xí)編程語(yǔ)言(Python),因?yàn)樗鼈冊(cè)谡Z(yǔ)義上完全不同,就像我會(huì)法語(yǔ)也無(wú)助于我學(xué)習(xí)冰島語(yǔ)或普通話(huà)。

要想熟練掌握多種編程語(yǔ)言,你需要用到一些掌握多種自然語(yǔ)言時(shí)的基本知識(shí)和技巧。

首先學(xué)習(xí)靜態(tài)類(lèi)型和句法特定的語(yǔ)言。

幾乎每篇標(biāo)題為“我應(yīng)該先學(xué)習(xí)哪種編程語(yǔ)言?”的文章都認(rèn)為Python是最適合初學(xué)者的編程語(yǔ)言。我同意Python句法簡(jiǎn)單,結(jié)構(gòu)靈活,適合入門(mén),但卻無(wú)法學(xué)到一些后期必要的編程基礎(chǔ)知識(shí)。因此,我要提的建議似乎聽(tīng)起來(lái)很不合理:首先學(xué)習(xí)靜態(tài)類(lèi)型和句法特定的語(yǔ)言。

與其學(xué)習(xí)溫和的入門(mén)級(jí)編程語(yǔ)言,不如學(xué)容錯(cuò)率極低的編程語(yǔ)言,一旦漏掉分號(hào)就會(huì)立馬出錯(cuò),一旦數(shù)據(jù)類(lèi)型錯(cuò)誤就會(huì)停止運(yùn)行。

  • 靜態(tài)類(lèi)型的語(yǔ)言

靜態(tài)類(lèi)型的語(yǔ)言(例如C#和Java)需要將數(shù)據(jù)類(lèi)型分配給它們的變量。數(shù)據(jù)類(lèi)型包括字符串、整數(shù)和布爾值等等。變量在初始化時(shí)必須與所分配的數(shù)據(jù)類(lèi)型綁定,并且不能更改,否則運(yùn)行前代碼將會(huì)出錯(cuò)。

動(dòng)態(tài)類(lèi)型化的語(yǔ)言(例如Python)則無(wú)需在變量初始化時(shí)分配數(shù)據(jù)類(lèi)型,而是在程序編譯并運(yùn)行后,再檢查變量類(lèi)型是否正確。

通過(guò)學(xué)習(xí)靜態(tài)類(lèi)型變量,學(xué)習(xí)者將對(duì)以后需要使用的數(shù)據(jù)類(lèi)型有一個(gè)基本的了解。例如,JavaScript是一種簡(jiǎn)單易懂的編程語(yǔ)言,能輕松結(jié)合整數(shù)和字符串。

但如果不了解數(shù)據(jù)類(lèi)型,就可能在程序出錯(cuò)時(shí)遇到問(wèn)題。通過(guò)嚴(yán)格的學(xué)習(xí)和對(duì)數(shù)據(jù)類(lèi)型的深入了解,就能在學(xué)習(xí)帶變量的動(dòng)態(tài)類(lèi)型語(yǔ)言時(shí)省去不少麻煩,從而即時(shí)更改數(shù)據(jù)類(lèi)型。此外,先學(xué)靜態(tài)類(lèi)型的語(yǔ)言有助于增強(qiáng)編碼過(guò)程的邏輯性。

  • 語(yǔ)法特定的語(yǔ)言

學(xué)習(xí)新的自然語(yǔ)言時(shí),首先要學(xué)習(xí)字母,然后學(xué)習(xí)單詞、句子結(jié)構(gòu)、標(biāo)點(diǎn)符號(hào)和語(yǔ)法。學(xué)習(xí)編程語(yǔ)言的過(guò)程也是類(lèi)似的,因?yàn)槊糠N語(yǔ)言都有特定的語(yǔ)法,必須使用它才能讓代碼正常工作。換句話(huà)說(shuō),每種編程語(yǔ)言都有特別的遣詞造句、形成段落的方式。

有些語(yǔ)言(例如Java和C#)的語(yǔ)法非常具體,哪怕只少了一個(gè)分號(hào)(通常位于代碼行末尾,類(lèi)似于句子末尾的句號(hào),放在句子的末尾以表示句子結(jié)束),都會(huì)導(dǎo)致無(wú)法運(yùn)行。而有些語(yǔ)言(例如Python)則幾乎沒(méi)有硬性的語(yǔ)法規(guī)則。例如,與C#相比,Python中需要用到的分號(hào)和花括號(hào)都相對(duì)較少。

先學(xué)語(yǔ)法特定的編程語(yǔ)言有助于充分了解寫(xiě)代碼時(shí)需要用到的結(jié)構(gòu),比如縮進(jìn)結(jié)構(gòu)、代碼行必須以分號(hào)結(jié)尾、函數(shù)要加花括號(hào)等。這能使寫(xiě)出的代碼更簡(jiǎn)單易懂,條理清晰,方便維護(hù)調(diào)試。而且,其還可以提供一個(gè)寫(xiě)代碼的模板,方便在學(xué)習(xí)其他語(yǔ)法不那么嚴(yán)謹(jǐn)?shù)木幊陶Z(yǔ)言時(shí)使用。

總之,先掌握嚴(yán)格的規(guī)則,將來(lái)定會(huì)收獲回報(bào)。

熟練掌握第一語(yǔ)言

如果世界上每種語(yǔ)言都懂一點(diǎn),卻沒(méi)有一種能說(shuō)得流利,那你將會(huì)很難生存。既沒(méi)有龐大的詞匯量,也無(wú)法理解別人的話(huà),甚至無(wú)法使用谷歌翻譯與來(lái)自異國(guó)的人交流,最后只會(huì)使雙方困惑不已。

編程語(yǔ)言也是如此。與其蜻蜓點(diǎn)水地學(xué)習(xí)很多種語(yǔ)言,卻全都淺嘗輒止,不如熟練掌握初學(xué)的那門(mén)語(yǔ)言,或是專(zhuān)攻一門(mén)。這并不是說(shuō)任何人都必須先精通一種編程語(yǔ)言,然后才能開(kāi)始學(xué)習(xí)另一種。但在嘗試學(xué)習(xí)新語(yǔ)言之前,要對(duì)先一種語(yǔ)言的編程概念有深刻的了解。

為什么呢?學(xué)習(xí)一種語(yǔ)言的代碼基礎(chǔ)時(shí),可以假設(shè)另一種語(yǔ)言大致相同。例如,每種編程語(yǔ)言中的if/else的作用都相同,唯一的不同就在于怎么表示它。例如,C#中的if / else必須位于花括號(hào)中,而Python中的if / else沒(méi)有花括號(hào),而是用冒號(hào)和縮進(jìn)來(lái)分隔。但根本上說(shuō),if / else的句式在兩種語(yǔ)言中的作用相同。

就像用母語(yǔ)說(shuō)“你好”和“再見(jiàn)”一樣。一旦理解了含義,明白了如何使用,就可以學(xué)會(huì)用多種不同的語(yǔ)言說(shuō)“你好”和“再見(jiàn)”。這幾個(gè)詞在不同的語(yǔ)言中代表相同的含義,唯一的區(qū)別就是寫(xiě)法不同。

通過(guò)了解編程語(yǔ)言是單級(jí)還是多級(jí)、有無(wú)特定的變量命名法,或是否要求目標(biāo)導(dǎo)向型結(jié)構(gòu),學(xué)習(xí)者可以更加熟練地掌握第一語(yǔ)言以及后來(lái)學(xué)習(xí)的其他語(yǔ)言。精通一種語(yǔ)言后,就能夠越來(lái)越快地了解語(yǔ)言之間的細(xì)微差別。

編碼不要帶“口音”

用自然語(yǔ)言交流時(shí),即使別人口音很重,通常我們也能理解。例如,雖然我說(shuō)法語(yǔ)口音很重,但法國(guó)人也能聽(tīng)懂。這是因?yàn)槲易裱朔ㄕZ(yǔ)的慣例,所以即使句子結(jié)構(gòu)彎彎繞繞或單詞念錯(cuò),他們也能理解我想要傳達(dá)的內(nèi)容。

要掌握一門(mén)新的編程語(yǔ)言,不能把它當(dāng)作一門(mén)“已經(jīng)會(huì)了的語(yǔ)言”來(lái)進(jìn)行編碼,否則很可能事與愿違,或者效率極低。

我就曾掉進(jìn)過(guò)這樣的陷阱。大學(xué)時(shí)我最出色的項(xiàng)目以Angular作為系統(tǒng)前端,我當(dāng)時(shí)很熟悉JavaScript,我知道Angular與JavaScript相似,于是嘗試套用JavaScript的方法,用Angular編碼。

糟糕的是,這種“帶口音”的編碼成果欠佳,這可能是不了解Angular的規(guī)則所致。我的代碼全部用Angular編寫(xiě),但卻帶著濃重的JavaScript“口音”。不要和我犯一樣的錯(cuò)——遵循新語(yǔ)言的規(guī)則,不要帶“口音”編碼。

只有使自己沉浸在新語(yǔ)言的環(huán)境中,強(qiáng)迫自己理解所有特殊規(guī)則,才能正確使用新語(yǔ)言進(jìn)行編碼。這樣就能在掌握多種語(yǔ)言的同時(shí)不帶“口音”。

例如,如果一個(gè)英語(yǔ)母語(yǔ)者決定速成五種新語(yǔ)言,最終他也許能說(shuō)俄語(yǔ)、意大利語(yǔ)、斯瓦希里語(yǔ)、意第緒語(yǔ)和阿拉伯語(yǔ),但出口都帶著濃厚的英語(yǔ)口音和習(xí)慣。相反,如果去學(xué)習(xí)俄語(yǔ)講話(huà)的習(xí)慣,那么俄語(yǔ)母語(yǔ)者就能聽(tīng)懂。其他語(yǔ)言也是如此。如果用典型的英語(yǔ)句式說(shuō)斯瓦希里語(yǔ),那肯尼亞人可能會(huì)聽(tīng)不懂。

花些時(shí)間閱讀編程語(yǔ)言的文獻(xiàn),去感受某種語(yǔ)言的習(xí)慣。這不僅有助于掌握這門(mén)語(yǔ)言,也使你在團(tuán)隊(duì)項(xiàng)目中更有價(jià)值,讓其他也會(huì)這門(mén)語(yǔ)言的人對(duì)你抱有期待。

最初你可能不得不強(qiáng)迫自己不帶“口音”地編碼,但當(dāng)你能流暢切換兩種語(yǔ)言之時(shí),就是努力得到回報(bào)之日。

本文概述了我在學(xué)習(xí)多種編程語(yǔ)言過(guò)程中的一些竅門(mén)。這些小訣竅對(duì)我?guī)椭艽螅珵榱吮M善盡美,這里也要提出幾個(gè)更常規(guī)的方法:

  • 閱讀相關(guān)語(yǔ)言的文獻(xiàn)、閱讀源代碼、把用來(lái)做例子的代碼用新語(yǔ)言寫(xiě)出來(lái)、列一份有關(guān)新語(yǔ)言的備忘錄,通過(guò)這些方法讓自己完全沉浸在所學(xué)語(yǔ)言的環(huán)境中。
  • 利用各種資源(例如Youtube、Medium和StackOverflow)學(xué)習(xí)編碼語(yǔ)言的教程。要更勇于嘗試,換句話(huà)說(shuō),學(xué)習(xí)新的編程語(yǔ)言需要主動(dòng)學(xué)習(xí)。
  • 用所學(xué)語(yǔ)言把以前做過(guò)的項(xiàng)目再做一次(哪怕是特別簡(jiǎn)單的項(xiàng)目),并盡可能發(fā)揮它的用處。
  • 參加黑客馬拉松、卡格爾比賽等需要用到所學(xué)語(yǔ)言的編程比賽。
  • 和熟知這門(mén)語(yǔ)言的人合作。我總是在搭檔編程項(xiàng)目中受益匪淺。傾聽(tīng)他們?cè)趯?xiě)代碼時(shí)的思考過(guò)程,為了解編程語(yǔ)言的運(yùn)作方式和原理提供許多啟發(fā)。

我能給出的最好的建議是持之以恒。學(xué)習(xí)一門(mén)新的語(yǔ)言很難,編程語(yǔ)言也不例外。不要因?yàn)橛悬c(diǎn)難學(xué)就放棄這門(mén)語(yǔ)言。所幸網(wǎng)上有很多資源可供使用,能讓學(xué)習(xí)過(guò)程更輕松自然一些。

最重要的是,學(xué)習(xí)新語(yǔ)言時(shí)要盡可能利用手邊的設(shè)備和工具。長(zhǎng)此以往,不僅能幫助你更好地理解這門(mén)語(yǔ)言,也能讓你成為更好的開(kāi)發(fā)人員或數(shù)據(jù)科學(xué)家。

 

責(zé)任編輯:華軒 來(lái)源: 讀芯術(shù)
相關(guān)推薦

2023-03-21 09:44:34

模型AI

2024-03-20 12:44:35

AI訓(xùn)練

2018-02-08 18:48:42

區(qū)塊鏈食品安全

2020-07-28 17:34:42

攜號(hào)轉(zhuǎn)網(wǎng)運(yùn)營(yíng)商套餐

2018-12-27 14:35:25

物聯(lián)網(wǎng)安全物聯(lián)網(wǎng)IOT

2021-04-05 17:11:34

App蘋(píng)果移動(dòng)應(yīng)用

2024-07-10 12:11:30

數(shù)據(jù)經(jīng)營(yíng)分析業(yè)務(wù)

2013-05-23 13:32:30

編程攻誠(chéng)獅工程師

2023-10-19 13:57:00

AI模型

2019-03-24 14:14:40

代碼閱讀源代碼

2015-03-19 15:17:11

2018-07-29 15:33:04

2019-11-25 09:33:48

機(jī)器學(xué)習(xí)人工智能計(jì)算機(jī)

2022-04-29 08:48:25

開(kāi)源

2016-11-16 13:17:29

大數(shù)據(jù)人才流動(dòng)

2017-03-16 14:01:00

2021-12-01 10:01:52

AI 游戲人工智能

2020-12-03 18:07:07

H5主題用戶(hù)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)