興奮

我想分享一下我刻意逼自己在不使用 AI 的情況下完成開發時的興奮感。

我會說,自己大概已經斷斷續續學寫程式 3 年左右了。最近,我開始上一門叫做 Java 2 的課程。這門課是在前一門課學到的基礎概念上延伸。我覺得自己可能有點分心,一下子碰一點 Ruby,一下子摸一點 Python,然後週日下午再去 Java 裡晃晃。還好它們共享一些整體概念,不然真的會一團混亂。¯(°_o)/¯

當許多人都在大量依賴 AI,以閃電般的速度打造驚人的作品時,我有意識地決定,在我全力攻克這門課的第一個作業時,連一個 AI 工具都不打開。我對自己說:「不,我要吃點苦頭,因為我想真正理解。」而我可以告訴你,在一直使用 AI 之後,這次經驗讓我重新醒悟:當你不再依賴 AI 時,真正的回報其實是存在的。

我確實有用 Google 搜尋幾件事,但如果你問我,這是被允許的。畢竟,這可是網路啊。

bird is the word

peter griffin bird is the word

<hr>

再次找回那種恍然大悟的感覺

在我寫作業的某個時刻,事情又開始一點一點串起來了。那真是一個超棒的時刻。類別可以有方法,我們可以在 main 函式中呼叫它們,我可以用巢狀的 switch 陳述式來處理巢狀選單,而且我甚至能在資源很有限的情況下,像在現實生活中一樣除錯!我有兩次卡關,也有兩次帶著那種興奮的「**** 太好了,真的能跑!」的感覺走了出來——那種感覺我已經很久沒有體會到了。那種你努力撐過去、靠自己把看起來不可能的事情搞懂的感覺。

下面是我今天用巢狀 switch 陳述式做出來的子選單。

import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;

// 執行一個主控台程式,讓使用者新增並分析文字,
// 然後儲存並列印本次執行期間輸入的文字。
public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        List<String> texts = new ArrayList<>();
        boolean running = true;

        System.out.println(" --------------------------------");
        System.out.println("|      Paragraph Parser         |");
        System.out.println(" --------------------------------");
        System.out.println();

        while (running) {
            System.out.println("1. 一般文字分析");
            System.out.println("2. 執行特定文字分析");
            System.out.println("3. 顯示文字");
            System.out.println("4. 離開");

            int choice = readInt(scanner, "選擇一個選項:");

            switch (choice) {
                case 1:
                    Text analysisResult = displayText(scanner, "新增要分析的文字:\n");
                    System.out.println(analysisResult);
                    break;
                case 2:
                    // 子選單文字分析工具的巢狀 switch
                    Scanner scannerNestedScanner = new Scanner(System.in);
                    boolean extraTestRunning = true;

                    while (extraTestRunning) {
                        System.out.println("1. 字詞頻率查找器");
                        System.out.println("2. 找出特定字元的出現頻率");
                        System.out.println("3. 找出不重複字詞數量");
                        System.out.println("4. 返回主選單");

                        int extraChoice = readInt(scannerNestedScanner, "選擇文字分析工具(輸入數字):");
                    switch (extraChoice) {
                        case 1:
                            WordFrequency wordFrequency = new WordFrequency(displayText(scannerNestedScanner, "輸入要搜尋的文字:\n").content.toLowerCase());
                            String wordToFind = displayText(scannerNestedScanner, "輸入要查找其頻率的字詞:\n").content;
                            wordToFind = wordToFind.replaceAll("\\p{Punct}+", "");
                            // 移除標點符號,避免影響字詞頻率計算
                            System.out.println("字詞頻率分析:" +wordToFind+ " -> " + wordFrequency.findWordFrequency(wordToFind));
                            break;
                        case 2:
                            CharacterFrequency charFrequency = new CharacterFrequency(displayText(scannerNestedScanner, "輸入要分析的文字:\n").content);
                            System.out.println("字元頻率分析:" + charFrequency.getCharacterFrequencyCount(displayText(scannerNestedScanner, "要找的是哪個字元?請輸入一個字元:\n").content.charAt(0)));
                            // 在這裡加入你的額外測試邏輯
                            break;
                        case 3:
                            UniqueWords uniqueWords = new UniqueWords(displayText(scannerNestedScanner, "新增要計算不重複字詞的文字:\n").content);
                            System.out.println("不重複字詞數量:" + uniqueWords.getUniqueWordCount());
                            break;
                        case 4:
                            extraTestRunning = false;
                            break;
                        default:
                            System.out.println("額外測試的選項無效。");
                        }
                    }
                    break; // 加上這個 break,避免 main switch 的 case 2 繼續落入 case 3。

                case 3:
                    System.out.println();
                    displayTexts(texts);
                    break;
                case 4:
                    running = false;
                    break;
                    // 必要時可繼續落入 default。
                default:
                    System.out.println("選項無效。請再試一次。");
            }
        }

        System.out.println("\n最終文字清單:");
        displayTexts(texts);
        scanner.close();
    }

我發現巢狀 switch 陳述式不但做得到,而且很實用。我聽說這常常用在遊戲裡,能理解它要怎麼被整合進去,真的很不錯。

各位,我真心建議你們,先把 AI 放下幾個小時,去跟某件事硬碰硬吧。你原本的自己、那些你以為已經不見的感覺,會回來的!瞬間返老還童,幾乎保證有效。XD

告訴我,你最近挑戰自己在不使用 AI 的情況下做了什麼?


原文出處:https://dev.to/annavi11arrea1/remembering-why-we-code-dropping-ai-for-fundamental-learning-4868


精選技術文章翻譯,幫助開發者持續吸收新知。

共有 0 則留言


精選技術文章翻譯,幫助開發者持續吸收新知。
🏆 本月排行榜
🥇
站長阿川
📝25  
374
🥈
我愛JS
3
🥉
NewsData
2
評分標準:發文×10 + 留言×3 + 獲讚×5 + 點讚×1 + 瀏覽數÷10
本數據每小時更新一次
📢 贊助商廣告 · 我要刊登