自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

如何使用AI學(xué)習(xí)一門(mén)編程語(yǔ)言? 原創(chuàng)

發(fā)布于 2024-6-26 19:49
瀏覽
0收藏

譯者 | 布加迪

審校 | 重樓

無(wú)論你是軟件開(kāi)發(fā)新手還是擁有幾十年的豐富經(jīng)驗(yàn),總是需要學(xué)習(xí)新知識(shí)。TIOBE Index追蹤50種最受歡迎的編程語(yǔ)言,許多生態(tài)系統(tǒng)為職業(yè)發(fā)展和橫向轉(zhuǎn)型提供了機(jī)會(huì)。鑒于現(xiàn)有技術(shù)具有的廣度,抽空學(xué)習(xí)一項(xiàng)新技能并有效運(yùn)用技能可能困難重重。

如何使用AI學(xué)習(xí)一門(mén)編程語(yǔ)言?-AI.x社區(qū)

最近我一直在嘗試學(xué)習(xí)Rust語(yǔ)言,這是一種注重性能、可靠性和生產(chǎn)力的類(lèi)型安全語(yǔ)言。我在此過(guò)程中學(xué)到了使用AI編程助手的若干技巧,想與你分享,以改善你的學(xué)習(xí)體驗(yàn)。

文章最后列有幾項(xiàng)基于AI的新技能,你可以在學(xué)習(xí)過(guò)程中運(yùn)用起來(lái),加快實(shí)現(xiàn)目標(biāo)。我在本文所說(shuō)的AI是指基于大語(yǔ)言模型(LLM)的AI驅(qū)動(dòng)的編程助手,比如Amazon Q Developer(前身是CodeWhisperer)、GitHub Copilot和JetBrains AI Assistant。你可以將下面所有技巧運(yùn)用到所選擇的工具上。

對(duì)參數(shù)化知識(shí)持懷疑態(tài)度

“參數(shù)化知識(shí)”是訓(xùn)練過(guò)程中存儲(chǔ)在模型中的信息。編碼數(shù)據(jù)是AI通常能夠快速響應(yīng)、提供準(zhǔn)確信息的原因。不過(guò),AI有時(shí)候也會(huì)給出嚴(yán)重錯(cuò)誤的答案。

這對(duì)我們用戶(hù)來(lái)說(shuō)意味著什么?雖然這些系統(tǒng)可能大有幫助,但它們受到收集數(shù)據(jù)和訓(xùn)練模型所需的時(shí)間和資源的限制。比如說(shuō),OpenAI使用截至2023年12月的信息訓(xùn)練ChatGPT 4 Turbo模型,數(shù)據(jù)集的內(nèi)容是未知的。從用戶(hù)的角度來(lái)看,任何特定的模型中是否存在“完整”的知識(shí)、為什么有時(shí)我們可能對(duì)其響應(yīng)不感興趣都是不確定的。

留意數(shù)據(jù)集的截止日期可以幫助你更好地理解和處理來(lái)自AI聊天會(huì)話的響應(yīng)。作為一名物色和購(gòu)買(mǎi)服務(wù)的消費(fèi)者,研究提供商的數(shù)據(jù)收集實(shí)踐和訓(xùn)練過(guò)程可以帶來(lái)更令人滿意的體驗(yàn)。

雖然AI通常會(huì)有所幫助,但在任何學(xué)習(xí)過(guò)程中,經(jīng)過(guò)驗(yàn)證的人類(lèi)知識(shí)來(lái)源仍將是最有價(jià)值的。這倒不是說(shuō)AI系始終是錯(cuò)的,但你需要養(yǎng)成質(zhì)疑自己使用的信息是否正確的習(xí)慣。另一個(gè)需要謹(jǐn)慎的原因是,這些系統(tǒng)的創(chuàng)建者將它們訓(xùn)練成樂(lè)于助人的助手。有時(shí)它們可能“太樂(lè)于助人”了,生成可能不存在的想法和概念,即幻覺(jué)現(xiàn)象。

總而言之,只有“真正的智能”才能理解AI何時(shí)犯錯(cuò)。

閱讀代碼和提示以解釋

開(kāi)源軟件運(yùn)動(dòng)為每個(gè)學(xué)習(xí)編程的程序員提供了輕松訪問(wèn)生產(chǎn)級(jí)代碼的途徑。開(kāi)源代碼庫(kù)提供了一個(gè)很好的機(jī)會(huì),可以了解專(zhuān)業(yè)人員如何編寫(xiě)代碼,并學(xué)習(xí)語(yǔ)言習(xí)慣用法和技巧等。但是如果沒(méi)有基本的參考框架或基本的理解,閱讀一門(mén)不熟悉的語(yǔ)言可能令人生畏、一頭霧水。

我一直在使用的一種技術(shù)是在流行的代碼共享網(wǎng)站GitHub上查找特定語(yǔ)言的代碼,并將其粘貼到AI聊天會(huì)話中,一并粘貼的還有提示“請(qǐng)解釋該代碼”和“請(qǐng)列出該代碼塊中出現(xiàn)的重要語(yǔ)言概念”。

該提示的模板可能如下所示。

Please explain the following code


```rust

// rust code goes here

```
Also, list the important language concepts from the description in a bulleted list so I may do more research.

因此生成的主題列表是一種很好的方式,可以讓我把學(xué)習(xí)的重點(diǎn)放在當(dāng)下最重要的事項(xiàng)上,而不是試圖一次吸收整個(gè)圖書(shū)館的信息。

JetBrains AI Assistant將允許你存儲(chǔ)提示模板供重復(fù)使用,你在不同的項(xiàng)目之間跳轉(zhuǎn)時(shí)這非常有用。

詳細(xì)內(nèi)嵌注釋的提示

當(dāng)你還沒(méi)有完全掌握一門(mén)語(yǔ)言的語(yǔ)法或語(yǔ)義時(shí),一大堆代碼可能讓人望而生畏。使用提示“為每行注釋”是一種快速而簡(jiǎn)單的方法,可以大致了解應(yīng)用程序可能在做什么。

如何使用AI學(xué)習(xí)一門(mén)編程語(yǔ)言?-AI.x社區(qū)

借助JetBrains AI Assistant,你還可以在并排或統(tǒng)一視圖中獲得變更的Diff視圖。視圖允許你快速查看變更,并選擇接受或拒絕變更。

嘗試不同的選項(xiàng)

學(xué)習(xí)任何主題都涉及試驗(yàn),更重要的是,涉及運(yùn)用學(xué)到的概念。這對(duì)于找到一種切實(shí)有效的解決方案并理解何時(shí)嘗試不同的方法至關(guān)重要。有了AI,嘗試不同的實(shí)現(xiàn)方法從未像現(xiàn)在這樣直觀簡(jiǎn)單。

下面是我用來(lái)發(fā)現(xiàn)Rust語(yǔ)言中便于進(jìn)行后續(xù)研究的功能特性的提示。

Given the following API, show me three different implementations


```rust

fn add(x: i32, y:i3) -> i:32 {

 // implementation goes here

}

```

記住,這事關(guān)學(xué)習(xí),所以API不一定特別復(fù)雜。嘗試想法讓你得以發(fā)現(xiàn)AI聊天會(huì)話之外的不同學(xué)習(xí)路徑。這種技術(shù)非常出色,特別是與傳統(tǒng)的主題搜索相比;傳統(tǒng)的主題搜索可能因你對(duì)特定主題的理解而受到限制。

Amazon Q Developer等一些工具提供內(nèi)聯(lián)選項(xiàng),允許你在不離開(kāi)編輯器上下文的情況下循環(huán)處理示例。按左右方向鍵可以讓你在諸選項(xiàng)之間移動(dòng),直至找到一個(gè)你喜歡的選項(xiàng)。

如何使用AI學(xué)習(xí)一門(mén)編程語(yǔ)言?-AI.x社區(qū)

更多的上下文始終更好

我在上面提到了LLM的嵌入信息限制。請(qǐng)記住,在這些服務(wù)可能缺乏信息的地方,能提供信息再好不過(guò)了,但你需要用正確的方式來(lái)提供。

在現(xiàn)代互聯(lián)網(wǎng)搜索體驗(yàn)的訓(xùn)練下,我們已學(xué)會(huì)在文本框中提出基于關(guān)鍵字的問(wèn)題。搜索式查詢(xún)是我看到許多AI新手常犯的一個(gè)錯(cuò)誤,這可能會(huì)讓他們對(duì)結(jié)果感到失望。在使用AI助手時(shí),將AI聊天會(huì)話視為“搜索”是一個(gè)壞習(xí)慣,因?yàn)長(zhǎng)LM的創(chuàng)建者構(gòu)建它們是為了預(yù)測(cè)用戶(hù)可能想要什么。

進(jìn)行更準(zhǔn)確預(yù)測(cè)的最好方法是盡可能地詳細(xì)和明確。

一個(gè)很有效的方法是基于示例的提示。你提供的示例越多,結(jié)果就越準(zhǔn)確。這里有一個(gè)模板提示,可以幫助你在學(xué)習(xí)過(guò)程中發(fā)現(xiàn)新的想法。

Given the following three examples, what would an implementation for <X> look like?


example 1:

```

```

example 2:

```

```

example 3:

```

```

你在聊天會(huì)話中輸入的數(shù)據(jù)提供了實(shí)現(xiàn)預(yù)期結(jié)果所需的上下文。別害怕糾正或添加更多的上下文。越多越好,因?yàn)槟P陀懈嗟男畔⒆鳛轫憫?yīng)的基礎(chǔ)。

為了保持對(duì)話進(jìn)行、增添聊天會(huì)話的上下文,Amazon Q Developer為你提供了一組自然的后續(xù)問(wèn)題,確保你在學(xué)習(xí)過(guò)程中有積極性。

如何使用AI學(xué)習(xí)一門(mén)編程語(yǔ)言?-AI.x社區(qū)

查看代碼補(bǔ)全

大多數(shù)AI服務(wù)提供多行代碼補(bǔ)全功能。雖然我忍不住會(huì)接受編輯器中呈現(xiàn)的所有選項(xiàng),但這通常會(huì)阻礙我的學(xué)習(xí)過(guò)程。相反,我喜歡從創(chuàng)建表明目標(biāo)的代碼注釋入手。

// TODO: create a match expression to process the different message variants

在下圖中,我們看到GitHub Copilot主動(dòng)表示可以補(bǔ)全我的語(yǔ)句。乍一看很不錯(cuò),但我必須停下來(lái)細(xì)想這個(gè)選項(xiàng),看看它是否符合我的意圖。在按Tab鍵之前,我要停下來(lái)。想想為什么?

如何使用AI學(xué)習(xí)一門(mén)編程語(yǔ)言?-AI.x社區(qū)

這么做的原因是為了檢查我目前的技能是否能夠閱讀和處理代碼。如果是,那我取得進(jìn)展。如果不是,那么我應(yīng)該花時(shí)間去了解我的知識(shí)短板在哪里。永遠(yuǎn)不要接受你并沒(méi)有完全理解的代碼、添加到代碼庫(kù)中。

注意,你可以配置該功能以減少干擾,只按需顯示補(bǔ)全,以減輕在編寫(xiě)代碼和讀取代碼之間切換的認(rèn)知負(fù)擔(dān)。

解釋錯(cuò)誤,找到解決辦法

面對(duì)每個(gè)編程堆棧,你都會(huì)遇到編譯和運(yùn)行時(shí)錯(cuò)誤,其中一些錯(cuò)誤可能很隱晦。如果你在設(shè)法理解為什么你的應(yīng)用程序失敗,不妨使用AI助手聊天會(huì)話來(lái)解釋這個(gè)問(wèn)題,找到出現(xiàn)問(wèn)題的地方,并提出解決方案。

What exactly is the problem here in my Rust backtrace? Reduce the response to the file and line and explanation of the error and propose a solution.


```

```

下面這個(gè)例子表明了使用這個(gè)提示來(lái)理解Rust回溯中發(fā)生了什么事情。

如何使用AI學(xué)習(xí)一門(mén)編程語(yǔ)言?-AI.x社區(qū)

分享想法

雖然使用AI聊天從一個(gè)話題切換到另一個(gè)話題可能感覺(jué)很自然,但放緩節(jié)奏、將你新發(fā)現(xiàn)的知識(shí)與其他知識(shí)重新聯(lián)系起來(lái)總是好事。一旦我學(xué)到了新概念,并創(chuàng)建了切實(shí)可用的示例,我會(huì)與其他學(xué)習(xí)者和專(zhuān)家分享,以獲得寶貴的反饋。記住,AI只能對(duì)你的要求有所幫助,而其他人會(huì)用他們的實(shí)際經(jīng)驗(yàn)加以豐富,預(yù)測(cè)你可能忽略的潛在陷阱。

社交媒體平臺(tái)是分享截圖、代碼示例和想法并獲得寶貴反饋的好地方,你可以將這些反饋納入到未來(lái)的AI聊天會(huì)話中。

總結(jié)聊天

這里有一個(gè)建議送給那些不擅長(zhǎng)記筆記,但可能想要回憶前一天工作的那些人。在長(zhǎng)時(shí)間的學(xué)習(xí)結(jié)束后,不妨讓當(dāng)前的聊天會(huì)話總結(jié)你的所有問(wèn)題,并為每個(gè)問(wèn)題列出一句話的答案。

Given what we’ve chatted about, list all the questions and a single-sentence summary of each answer.

響應(yīng)是出色的快速參考指南,供你的下一次學(xué)習(xí)會(huì)話參考。這也是一篇很好的博文,你可以練習(xí)與他人分享你的想法和學(xué)習(xí)經(jīng)驗(yàn)。

用AI學(xué)得更快

我希望當(dāng)你使用AI工具更快速、更有效地學(xué)習(xí)時(shí),這些技巧對(duì)你有所幫助。這些工具旨在幫你實(shí)現(xiàn)為自己設(shè)定的目標(biāo)。我發(fā)覺(jué)它們?cè)谛纬尚孪敕ê吞剿魑也恢赖南敕ǚ矫娲笥袔椭?/p>

最重要的是,它們讓我與社區(qū)里的其他人建立了聯(lián)系,這些人拓寬了我的知識(shí)面。

原文標(biāo)題:How to learn a programming language using AI,作者:Khalid Abuhakmeh

?鏈接: https://www.infoworld.com/article/3715411/learn-a-programming-language-using-ai.html


?著作權(quán)歸作者所有,如需轉(zhuǎn)載,請(qǐng)注明出處,否則將追究法律責(zé)任
收藏
回復(fù)
舉報(bào)
回復(fù)
相關(guān)推薦