歡迎來到軟體技術部落格,這裡是 React、JavaScript 及技術技能的知識文章頁面。無論是在尋找關於monorepo 的技術、zustand 的狀態管理技巧,還是希望加強對前端開發的理解,這裡都有豐富的資源。每篇文章都精心撰寫,旨在提供清晰、易於理解的內容,幫助大家快速找到所需資訊。從基本概念到進階技巧,無論是初學或是進階,這裡都有適合大家的內容。如果對於圖文式內容有興趣,也可以參考我們 Instagram。
AI 2027:距離通用智慧 (AGI) 還有多遠?一篇文全面解析支持者與懷疑者論點
前言:為什麼「2027」會成為一個被放大的 AI 節點?
2023 年以來,生成式 AI 工具的進步速度震撼全球。從 ChatGPT 的爆紅到 GPTs、Claude、Gemini 的功能疊加,AI 已經從「寫文案」進化到「能幫你做決策」。許多人開始提出更激進的假設:會不會到了 2027,我們就能看到真正的 AGI?
AGI,Artificial General Intelligence,即人工通用智慧,意味著 AI 將不再只是回答問題,而能像人類一樣學習、推理、理解與規劃。Anthropic、OpenAI 等公司的創辦人近來公開表示,這樣的目標可能在 2027 年前後達成。這類言論既令人興奮,也蠻讓人害怕的…
身為 AI 的重度使用者,每天都與這些工具共處、觀察產業動態的同時,也深刻感受到需要多用更全面的研究去平衡不同觀點,不然真的會被每天新的 AI 研究搞得很焦慮!
因此,今天的文章不試圖預言未來,而是回到一個更理性客觀的角度:從支持 / 反對 AI 2027雙方的論點出發,理解為何「AI 2027」成為聚光燈焦點,以及我們到底該用什麼心態去看待它!一起看下去吧!
「AI Agent」是下一個 ChatGPT?一篇文章帶你搞懂 AI Agent !
當你第一次使用 ChatGPT,你可能會驚訝於它的反應速度、語言能力和資料量。它就像一位全知全能的線上百科助理,能寫文章、改履歷、生成行銷文案、甚至寫出一段程式碼。對許多人來說,這樣的工具已經足以改變工作習慣與生活方式。
但如果你是一位創業者、PM 或是自由接案者,很快你就會發現:ChatGPT 雖然能幫你「做出東西」,但無法「完成任務」。你得親自指揮每一步,像在跟一位很聰明但沒有主動性的助理工作。這時,AI Agent 的概念就浮現了。
AI Agent(AI 代理人)不是單純的聊天機器人,而是能主動理解目標、規劃任務流程、執行多步驟行動的智能系統。你只需要告訴它「我想讓網站轉換率提升」,它會自動幫你從分析網站問題、提出文案建議、執行 A/B 測試,到最後回報結果。這樣的能力不僅顛覆我們對 AI 的期待,也開啟了下一波 AI 革命的起點。
今天這篇文章,將帶你從最基礎的定義出發,深入了解 AI Agent 究竟是什麼、能做什麼、有哪些代表性工具與框架,又為什麼它是 ChatGPT 之後最值得你關注的新趨勢,一起看下去吧!
🤖 你敢用 AI 員工嗎?一場由 Google Gemini 主演的企業實習體驗
當一家中小企業開始擴張,第一個難題通常不是市場或產品,而是人手不夠。想像今天你就是這間企業的負責人,你可能需要身兼三職:回覆客戶、寫文案、同時處理顧客評論。
而在這些繁瑣但重要的任務中,你開始聽到一種可能改變你工作方式的新幫手:AI 人工智慧,或更具體地說:大型語言模型(Large Language Model, LLM)。
[Leetcode] 1804. Implement Trie II
A trie (pronounced as “try”) or prefix tree is a tree data structure used to efficiently store and retrieve keys in a dataset of strings. There are various applications of this data structure, such as autocomplete and spellchecker.
Implement the Trie class:
Trie() Initializes the trie object.
void insert(String word) Inserts the string word into the trie.
int countWordsEqualTo(String word) Returns the number of instances of the string word in the trie.
int countWordsStartingWith(String prefix) Returns the number of strings in the trie that have the string prefix as a prefix.
void erase(String word) Erases the string word from the trie.
[LeetCode] 0020. Valid Parentheses
Given a string s containing just the characters ‘(‘, ‘)’, ‘{‘, ‘}’, ‘[‘ and ‘]’, determine if the input string is valid.
An input string is valid if:
Open brackets must be closed by the same type of brackets.
Open brackets must be closed in the correct order.
Every close bracket has a corresponding open bracket of the same type.
當 AI 寫程式比你還快,工程師該如何找到自己的新定位?
試想一下這樣的場景:你坐在電腦前,描述出你心中所想的功能,幾秒後,人工智慧便為你產出一段可以運行的程式碼,甚至整個應用程式就此誕生。聽起來是不是有些魔法感?
這個場景早已不是天方夜譚,而是正在發生的現實。近幾年 AI coding 技術快速崛起,逐漸從技術新聞中的新奇話題,轉變成日常開發工作的重要工具。從 GitHub Copilot 到 DeepSeek R1,人工智慧不僅改變了程式設計的方式,更可能顛覆整個軟體產業的發展方向。
那麼 AI coding 技術究竟發展到了什麼程度?它會不會取代工程師的工作?身為科技從業人員,我們又該如何面對這波科技浪潮?本文將從 AI coding 的起源、現況、實際應用、對產業影響、未來發展,以及科技業人員應對之道,逐步深入解析。
[Leetcode] 0212. Word Search II
Given an m x n board of characters and a list of strings words, return all words on the board.
Each word must be constructed from letters of sequentially adjacent cells, where adjacent cells are horizontally or vertically neighboring. The same letter cell may not be used more than once in a word.
[Leetcode] 0211. Design Add and Search Words Data Structure
Design a data structure that supports adding new words and finding if a string matches any previously added string.
Implement the WordDictionary class:
WordDictionary() Initializes the object.
void addWord(word) Adds word to the data structure, it can be matched later.
bool search(word) Returns true if there is any string in the data structure that matches word or false otherwise. word may contain dots ‘.’ where dots can be matched with any letter.
[Leetcode] 0208. Implement Trie
A trie (pronounced as “try”) or prefix tree is a tree data structure used to efficiently store and retrieve keys in a dataset of strings. There are various applications of this data structure, such as autocomplete and spellchecker.
Implement the Trie class:
Trie() Initializes the trie object.
void insert(String word) Inserts the string word into the trie.
boolean search(String word) Returns true if the string word is in the trie (i.e., was inserted before), and false otherwise.
boolean startsWith(String prefix) Returns true if there is a previously inserted string word that has the prefix prefix, and false otherwise.
[Leetcode] 0235. Lowest Common Ancestor of a Binary Search Tree
Given a binary search tree (BST), find the lowest common ancestor (LCA) node of two given nodes in the BST.
According to the definition of LCA on Wikipedia: “The lowest common ancestor is defined between two nodes p and q as the lowest node in T that has both p and q as descendants (where we allow a node to be a descendant of itself).”
[Leetcode] 0230. Kth Smallest Element in a BST
Given the root of a binary search tree, and an integer k, return the kth smallest value (1-indexed) of all the values of the nodes in the tree.
[Leetcode] 0098. Validate Binary Search Tree
Given the root of a binary tree, determine if it is a valid binary search tree (BST).
A valid BST is defined as follows:
The left subtree of a node contains only nodes with keys less than the node’s key.
The right subtree of a node contains only nodes with keys greater than the node’s key.
Both the left and right subtrees must also be binary search trees.
[Leetcode] 0105. Construct Binary Tree from Preorder and Inorder Traversal
Given two integer arrays preorder and inorder where preorder is the preorder traversal of a binary tree and inorder is the inorder traversal of the same tree, construct and return the binary tree.
[Leetcode] 0572. Subtree of Another Tree
Given the roots of two binary trees root and subRoot, return true if there is a subtree of root with the same structure and node values of subRoot and false otherwise.
A subtree of a binary tree tree is a tree that consists of a node in tree and all of this node’s descendants. The tree tree could also be considered as a subtree of itself.
[Leetcode] 0297. Serialize and Deserialize Binary Tree
Serialization is the process of converting a data structure or object into a sequence of bits so that it can be stored in a file or memory buffer, or transmitted across a network connection link to be reconstructed later in the same or another computer environment.
Design an algorithm to serialize and deserialize a binary tree. There is no restriction on how your serialization/deserialization algorithm should work. You just need to ensure that a binary tree can be serialized to a string and this string can be deserialized to the original tree structure.
Clarification: The input/output format is the same as how LeetCode serializes a binary tree. You do not necessarily need to follow this format, so please be creative and come up with different approaches yourself.
美國半導體戰略大轉變!台積電 1650 億美元投資會如何改寫晶片市場?
台灣積體電路製造公司(TSMC,以下稱台積電)近日宣布將在美國設立第三座晶圓廠,並計劃投資 1650 億美元,在亞利桑那州建設先進封裝工廠及研發中心。這項重大投資不僅是台積電的商業擴展策略之一,更與國際政策和經濟發展息息相關。
這項投資將對全球晶片市場產生何種影響?台積電加碼美國到底有什麼利弊?對台灣的經濟與區域安全會帶來哪些衝擊?今天就來深入分析這項重大決策,並聊聊這個策略會對科技業產生什麼樣的改變!
[Leetcode] 0102. Binary Tree Level Order Traversal
Given the root of a binary tree, return the level order traversal of its nodes’ values. (i.e., from left to right, level by level).
[Leetcode] 0124. Binary Tree Maximum Path Sum
A path in a binary tree is a sequence of nodes where each pair of adjacent nodes in the sequence has an edge connecting them. A node can only appear in the sequence at most once. Note that the path does not need to pass through the root.
The path sum of a path is the sum of the node’s values in the path.
Given the root of a binary tree, return the maximum path sum of any non-empty path.
[Leetcode] 0951. Flip Equivalent Binary Trees
For a binary tree T, we can define a flip operation as follows: choose any node, and swap the left and right child subtrees.
A binary tree X is flip equivalent to a binary tree Y if and only if we can make X equal to Y after some number of flip operations.
Given the roots of two binary trees root1 and root2, return true if the two trees are flip equivalent or false otherwise.