」工欲善其事,必先利其器。「—孔子《論語.錄靈公》
首頁 > 程式設計 > 學習編碼?避免過度使用人工智慧工具

學習編碼?避免過度使用人工智慧工具

發佈於2024-11-19
瀏覽:801

Learning to Code? Avoid Overusing AI Tools

如果您剛開始編碼,使用 AI 產生代碼聽起來可能是成功的捷徑。但實際上,它可能會以你可能沒有意識到的方式阻礙你。事情是這樣的:作為一名新程式設計師,您的主要重點應該是學習基礎知識並打下堅實的基礎。編碼不是魔法,也不是寫優美的詩。它是向電腦提供清晰的逐步指令來完成真正的事情。

以 JavaScript 為例。如果您開始學習它,您可能還沒有看到計算機如何運行程式碼的較低級別方面。沒關係!但幕後發生的許多事情可以讓你有更深入的了解。我從 C 開始,它為我奠定了低階程式設計概念的基礎。在大學裡,我甚至選修了組合語言課程。是的,彙編——人們今天仍在硬體程式設計中使用的恐龍語言,但它教會了我很多關於程式如何運作的知識。

在 Assembly 中加入兩個數字如下所示:

.model small
.stack 100h

.data
    num1 dw 10       ; Define a word (16-bit) with value 10
    num2 dw 20       ; Define a word (16-bit) with value 20

.code
main PROC
    mov ax, num1     ; Load the value of num1 into AX
    mov bx, num2     ; Load the value of num2 into BX
    add ax, bx       ; Add the values in AX and BX

    ; Exit the program
    mov ah, 4Ch      ; DOS interrupt for program termination
    int 21h          ; Call DOS interrupt to exit
main ENDP
END main

但在 JavaScript 中,它只是:

let sum = 5   3;

或在Python中:

sum = 5   3

今天,我們擁有 ChatGPT、Gemini、Claude、Cursor 和 Bolt 等工具,可以在幾秒鐘內為您產生幾行程式碼。這很酷,但這就是你想要的嗎?如果您所做的只是編寫提示並等待不屬於您的程式碼,那麼您就錯過了。真正的快樂來自於自己解決問題——解決問題,找出解決方案,並建立自己的東西。相信我,這更令人滿意。

現在,別誤會我的意思-人工智慧工具可以很棒。它們對於自動化重複性任務、編寫一些 CI/CD 腳本、解釋令人困惑的程式碼部分(只要小心敏感資料!),甚至集思廣益專案想法都非常有幫助。但歸根究底,身為開發人員,你的工作就是解決問題。為現實世界的挑戰制定解決方案或幫助建立公司的下一個大型產品將使您成為更好的開發人員,而不是學習如何編寫完美的提示。

此外,人工智慧產生的程式碼仍然需要人性化。如果你專注於發展自己的技能並向周圍的人學習,你會發現你的成長更有意義、更持久。編碼只是軟體工程的一部分。調試、分析問題、品質保證 (QA)、UI/UX 設計——這個領域有很多內容!早期僅依賴人工智慧意味著錯過培養這些其他基本技能,而這最終可能會阻礙你。

另一個值得關注的大領域?資料結構和演算法。如果對此沒有深入的了解,你怎麼知道人工智慧的解決方案是否有效?您是否會繼續提示它,直到找到更好的答案?這聽起來讓人筋疲力盡,而且這並不是你時間的最佳運用方式。拿起鍵盤,喝杯咖啡,然後親自鑽研代碼。沒有什麼比看到您的解決方案成為現實更令人滿足的了。

歸根結底,人工智慧可以成為一個有用的助手,但不要讓它成為一個拐杖。如果你想成為一名出色的軟體工程師,需要時間、耐​​心和大量的實踐練習。人工智慧只是一個工具。真正的魔力來自於你。

版本聲明 本文轉載於:https://dev.to/riz007/learning-to-code-avoid-overusing-ai-tools-49np?1如有侵犯,請聯絡[email protected]刪除
最新教學 更多>
  • MySQL 中的貨幣值是否應該將 DOUBLE 轉換為 DECIMAL?
    MySQL 中的貨幣值是否應該將 DOUBLE 轉換為 DECIMAL?
    MySQL 中的DOUBLE 與DECIMAL:重新審視精度之爭在MySQL 資料庫中儲存貨幣值時應避免使用DOUBLE,這是一種常見的做法由於潛在的精度問題。然而,實際場景提出了關於此建議有效性的問題。 平衡精度問題與實際考慮給定的場景涉及一個遺留系統,其中有許多 DOUBLE 列,用於貨幣存儲。...
    程式設計 發佈於2024-11-19
  • 如何使用 CSS 過渡創建中心擴展 DIV?
    如何使用 CSS 過渡創建中心擴展 DIV?
    使用CSS 從中間擴展DIV在這個CSS 中間擴展問題中,我們的目標是將DIV 元素從中心向外轉換,實現與典型的從左上角展開的效果不同。利用CSS過渡,我們試圖控制擴展的寬度、高度和位置,以給人從中間開始增長的印象。 擴展的關鍵秘密在於操縱邊距屬性通過精確的公式。透過過渡邊距,我們可以指定圍繞 DI...
    程式設計 發佈於2024-11-19
  • 如何將資料分組到有意義的容器中以在 SQL 中進行直方圖視覺化?
    如何將資料分組到有意義的容器中以在 SQL 中進行直方圖視覺化?
    確定最佳直方圖箱大小在資料分析中,直方圖是直觀地表示資料分佈的重要工具。雖然可以使用腳本語言來產生直方圖,但這個過程可以直接在 SQL 中完成嗎?答案是肯定的,以下的問題將深入探討這個主題。 主要挑戰在於定義直方圖箱的大小。在大多數情況下,目標是將資料分組到預先定義的範圍中以獲得更豐富的資訊和更全面...
    程式設計 發佈於2024-11-19
  • Django 中的 Slug 是什麼以及為什麼要使用它們?
    Django 中的 Slug 是什麼以及為什麼要使用它們?
    揭開Django中「Slugs」的概念在廣闊的Django中,經常出現一種被稱為「slug」的神秘實體出現在模型中。它神秘的本質可能會讓您感到困惑,並提出一個問題:slug 到底是什麼? slug 的起源在於使用者友善的 URL 領域。想像網路上一篇文章的標題是「46 歲的處女」。要根據該標題建構一...
    程式設計 發佈於2024-11-19
  • 在 Go 中使用 WebSocket 進行即時通信
    在 Go 中使用 WebSocket 進行即時通信
    构建需要实时更新的应用程序(例如聊天应用程序、实时通知或协作工具)需要比传统 HTTP 更快、更具交互性的通信方法。这就是 WebSockets 发挥作用的地方!今天,我们将探讨如何在 Go 中使用 WebSocket,以便您可以向应用程序添加实时功能。 在这篇文章中,我们将介绍: WebSocke...
    程式設計 發佈於2024-11-19
  • 如何用Java播放WAV檔?
    如何用Java播放WAV檔?
    使用Java播放WAV檔案開發Java應用程式時,播放音訊檔案是一個常見的需求。本教學提供了播放 *.wav 檔案的全面解決方案,使您能夠將音效和音訊合併到 Java 程式中。 首先,建立一個類別來處理音訊播放。在下面的範例中,我們建立一個 MakeSound 類,其中包含播放音訊檔案的方法:pub...
    程式設計 發佈於2024-11-19
  • 為什麼 Java 中可以使用空物件參考來呼叫靜態方法?
    為什麼 Java 中可以使用空物件參考來呼叫靜態方法?
    使用空引用存取靜態方法在 Java 中,在空引用上呼叫方法通常會觸發 NullPointerException。然而,靜態方法的行為有所不同。 靜態方法與實例方法在 Java 中,方法可以是靜態的,也可以是實例的。靜態方法屬於類別本身,可以直接使用類別名稱調用,而實例方法與物件關聯,需要物件引用才能...
    程式設計 發佈於2024-11-19
  • 如何使用 g++ 建立和使用靜態函式庫?
    如何使用 g++ 建立和使用靜態函式庫?
    使用 g 建立並使用靜態函式庫 在軟體開發中,通常需要將可重複使用程式碼打包到稱為函式庫的模組化單元中。靜態函式庫是一種在編譯時與可執行檔連結的函式庫。本文將引導您完成使用 GNU 編譯器集合 g 建立和使用靜態函式庫的過程。 建立靜態函式庫建立靜態函式庫從header.cpp 和header.hp...
    程式設計 發佈於2024-11-19
  • 如何將 MySQL DATE 資料型別轉換為人類可讀的格式?
    如何將 MySQL DATE 資料型別轉換為人類可讀的格式?
    MySQL DATE 資料類型的格式轉換使用MySQL 時,在DATE 資料類型中儲存日期可能會導致意外值,例如“ 0000-00-00」。這種格式對於視覺化和資料處理來說可能會令人困惑。要解決這個問題,了解 MySQL 如何表示日期以及如何將它們轉換為所需的格式至關重要。 MySQL DATE 的...
    程式設計 發佈於2024-11-19
  • 大批
    大批
    方法是可以在物件上呼叫的 fns 數組是對象,因此它們在 JS 中也有方法。 slice(begin):將陣列的一部分提取到新數組中,而不改變原始數組。 let arr = ['a','b','c','d','e']; // Usecase: Extract till index ...
    程式設計 發佈於2024-11-19
  • 如何在 PHP 中組合兩個關聯數組,同時保留唯一 ID 並處理重複名稱?
    如何在 PHP 中組合兩個關聯數組,同時保留唯一 ID 並處理重複名稱?
    在 PHP 中組合關聯數組在 PHP 中,將兩個關聯數組組合成一個數組是常見任務。考慮以下請求:問題描述:提供的代碼定義了兩個關聯數組,$array1 和 $array2。目標是建立一個新陣列 $array3,它合併兩個陣列中的所有鍵值對。 此外,提供的陣列具有唯一的 ID,而名稱可能重疊。要求是建...
    程式設計 發佈於2024-11-19
  • Bootstrap 4 Beta 中的列偏移發生了什麼事?
    Bootstrap 4 Beta 中的列偏移發生了什麼事?
    Bootstrap 4 Beta:列偏移的刪除和恢復Bootstrap 4 在其Beta 1 版本中引入了重大更改柱子偏移了。然而,隨著 Beta 2 的後續發布,這些變化已經逆轉。 從 offset-md-* 到 ml-auto在 Bootstrap 4 Beta 1 中, offset-md-*...
    程式設計 發佈於2024-11-19
  • 儘管程式碼有效,為什麼 POST 請求無法擷取 PHP 中的輸入?
    儘管程式碼有效,為什麼 POST 請求無法擷取 PHP 中的輸入?
    解決PHP 中的POST 請求故障在提供的程式碼片段:action=''而非:action="<?php echo $_SERVER['PHP_SELF'];?>";?>"檢查$_POST陣列:表單提交後使用 var_dump 檢查 $_POST 陣列的內容...
    程式設計 發佈於2024-11-19
  • 為什麼 GCC 無法使用初始化清單初始化 std::array?
    為什麼 GCC 無法使用初始化清單初始化 std::array?
    初始化清單和std::array:GCC BugC 標準庫中的std::array 類別提供了一個固定的-大小數組容器。人們普遍認為此類支援初始化列表。 但是,使用GCC 4.6.1,嘗試使用以下語法初始化std::array 實例會失敗:std::array<std::string, 2&g...
    程式設計 發佈於2024-11-19
  • 為什麼實體框架精靈在整合 MySQL 時崩潰?
    為什麼實體框架精靈在整合 MySQL 時崩潰?
    Entity Framework 精靈在MySQL 資料庫整合中遇到錯誤Entity Framework (EF) 提供資料庫優先的建模功能,允許與各種SQL Server 和MySQL 等資料庫。但是,在針對 MySQL 資料庫更新模型時,使用者在 EF 精靈期間可能會遇到崩潰。 其中一個場景是當...
    程式設計 發佈於2024-11-19

免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。

Copyright© 2022 湘ICP备2022001581号-3