mirror of
https://github.com/krahets/hello-algo.git
synced 2026-10-28 19:24:21 +08:00
docs: explain why learning algorithms still matters with AI agents (#1977)
Add the AI agents and algorithm learning Q&A to all five language editions. Related to #1928.
This commit is contained in:
@@ -22,3 +22,11 @@
|
||||
- 但如果学过算法,我们就会知道内置排序函数的时间复杂度是 $O(n \log n)$ ;而如果给定的数据是固定位数的整数(例如学号),那么我们就可以用效率更高的“基数排序”来做,将时间复杂度降为 $O(nk)$ ,其中 $k$ 为位数。当数据体量很大时,节省出来的运行时间就能创造较大价值(成本降低、体验变好等)。
|
||||
|
||||
在工程领域中,大量问题是难以达到最优解的,许多问题只是被“差不多”地解决了。问题的难易程度一方面取决于问题本身的性质,另一方面也取决于观测问题的人的知识储备。人的知识越完备、经验越多,分析问题就会越深入,问题就能被解决得更优雅。
|
||||
|
||||
**Q**:现在几乎所有代码都让 AI Agent 写了,我们还有必要学习算法吗?
|
||||
|
||||
引用一下李沐老师的话:“agent 是能力放大器,就是能力 x10,而不是加法器,不是能力 +10。”
|
||||
|
||||
既然 AI 是能力放大器,那么作为基数的“能力”也很重要。我觉得两方面能力尤其值得积累:一是表达能力,尤其是和 AI 协作的能力。讲清目标、补足背景、及时纠偏。向 AI 解释问题,也是在帮自己想清楚问题。二是基础知识。细节可以让 AI 补,但基本概念得自己懂,才能问到点上、判断对错,把它的输出变成有用的成果。
|
||||
|
||||
AI 很特别的一点是,它不像过去的工具那样有清晰的功能边界。它有点像水,到了不同的人手里,会呈现出不同的形状。人的能力越强、taste 越好,AI 的放大效应就越明显。
|
||||
|
||||
@@ -22,3 +22,11 @@ I believe the significance of learning algorithms (and other fundamental subject
|
||||
- But if we have studied algorithms, we would know that the time complexity of the built-in sorting function is $O(n \log n)$. However, if the given data consists of integers with a fixed number of digits (such as student IDs), we can use the more efficient "radix sort", reducing the time complexity to $O(nk)$, where $k$ is the number of digits. When the data volume is very large, the saved running time can create significant value (reduced costs, improved experience, etc.).
|
||||
|
||||
In engineering, many problems are difficult to solve optimally, and many others are only solved "well enough." The difficulty of a problem depends, on the one hand, on the nature of the problem itself and, on the other hand, on the knowledge of the person examining it. The more complete a person's knowledge and the more experience they have, the deeper their analysis will be, and the more elegantly the problem can be solved.
|
||||
|
||||
**Q**: Now that we let AI agents write almost all our code, do we still need to learn algorithms?
|
||||
|
||||
To quote Mu Li: “An agent is an amplifier of ability—it multiplies your ability by 10, rather than adding 10 to it.”
|
||||
|
||||
Since AI amplifies our abilities, the abilities being multiplied matter too. I think two abilities are especially worth developing. The first is communication, particularly the ability to work with AI: making goals clear, providing the necessary context, and correcting course in time. Explaining a problem to AI also helps us think it through ourselves. The second is foundational knowledge. AI can fill in the details, but we need to understand the basic concepts ourselves to ask the right questions, judge whether answers are correct, and turn its output into useful results.
|
||||
|
||||
One distinctive thing about AI is that, unlike earlier tools, it does not have clearly defined functional boundaries. It is a little like water, taking different shapes in different people's hands. The greater a person's abilities and the better their taste, the more pronounced AI's amplifying effect becomes.
|
||||
|
||||
@@ -22,3 +22,11 @@
|
||||
- しかしアルゴリズムを学んでいれば、組み込みのソート関数の時間計算量が $O(n \log n)$ であることを知っています。さらに、与えられたデータが固定桁数の整数(例えば学籍番号)であれば、より効率の高い「基数ソート」を使って、時間計算量を $O(nk)$ に下げることができます。ここで $k$ は桁数です。データ量が非常に大きい場合、節約できた実行時間は大きな価値を生みます(コスト削減、体験向上など)。
|
||||
|
||||
工学分野では、多くの問題で最適解に到達することは難しく、少なくない問題は「だいたい」解決されているにすぎません。問題の難しさは、一方では問題そのものの性質に依存し、他方ではそれを観測する人の知識の蓄積にも依存します。知識が充実し、経験が豊富であるほど、問題分析はより深くなり、問題はより洗練された形で解決できるようになります。
|
||||
|
||||
**Q**:今ではほとんどのコードを AI エージェントに書いてもらっていますが、私たちはまだアルゴリズムを学ぶ必要があるのでしょうか?
|
||||
|
||||
李沐先生の言葉を引用します。「エージェントは能力を増幅するものであり、能力を 10 倍にするものです。能力に 10 を足すものではありません。」
|
||||
|
||||
AI が能力を増幅するものなら、掛け算の元となる「能力」も重要です。私は、特に二つの力を育てる価値があると考えています。一つ目は伝える力、特に AI と協力する力です。目標を明確に伝え、必要な背景を補い、方向がずれたらその都度修正する。AI に問題を説明することは、自分自身の考えを整理することにもつながります。二つ目は基礎知識です。細部は AI に補ってもらえますが、基本的な概念は自分で理解しておく必要があります。そうして初めて、的確に質問し、正誤を判断し、AI の出力を役立つ成果につなげられます。
|
||||
|
||||
AI の特徴の一つは、従来のツールのように機能の範囲が明確に定まっていないことです。水のように、使う人によってさまざまな形を取ります。人の能力が高く、センスがよいほど、AI による増幅効果も大きくなります。
|
||||
|
||||
@@ -22,3 +22,11 @@
|
||||
- Однако если мы изучили алгоритмы, то знаем, что временная сложность встроенной функции сортировки составляет $O(n \log n)$. Если же данные представлены целыми числами фиксированной разрядности, например номерами студентов, то можно использовать более эффективный метод поразрядной сортировки, снизив временную сложность до $O(nk)$ , где $k$ - это количество разрядов, а при больших объемах данных выиграть во времени, затратах и пользовательском опыте.
|
||||
|
||||
В инженерной практике множество задач трудно решить оптимальным образом, и многие из них решаются «как-то». Сложность задачи зависит как от ее природы, так и от уровня знаний и опыта человека, который ее анализирует. Чем более полными знаниями и большим опытом обладает человек, тем глубже он может проанализировать проблему и тем изящнее может быть ее решение.
|
||||
|
||||
**Q**: Теперь, когда мы поручаем ИИ-агентам писать почти весь код, нужно ли нам по-прежнему изучать алгоритмы?
|
||||
|
||||
Приведу слова Ли Му: «Агент — это усилитель способностей, то есть способности ×10, а не способности +10».
|
||||
|
||||
Если ИИ усиливает наши способности, то важны и сами «способности», которые он умножает. На мой взгляд, особенно стоит развивать две из них. Первая — умение выражать свои мысли, прежде всего при работе с ИИ: ясно формулировать цель, давать необходимый контекст и вовремя корректировать направление. Объясняя задачу ИИ, мы и сами лучше в ней разбираемся. Вторая — базовые знания. ИИ может дополнить детали, но основные понятия нужно понимать самому, чтобы задавать вопросы по существу, отличать верное от неверного и превращать его ответы в полезные результаты.
|
||||
|
||||
Одна из особенностей ИИ в том, что, в отличие от прежних инструментов, у него нет чётких границ возможностей. Он немного похож на воду: в руках разных людей он принимает разные формы. Чем выше способности человека и лучше его вкус, тем заметнее усиливающий эффект ИИ.
|
||||
|
||||
@@ -22,3 +22,11 @@
|
||||
- 但如果學過演算法,我們就會知道內建排序函式的時間複雜度是 $O(n \log n)$ ;而如果給定的資料是固定位數的整數(例如學號),那麼我們就可以用效率更高的“基數排序”來做,將時間複雜度降為 $O(nk)$ ,其中 $k$ 為位數。當資料體量很大時,節省出來的執行時間就能創造較大價值(成本降低、體驗變好等)。
|
||||
|
||||
在工程領域中,大量問題是難以達到最優解的,許多問題只是被“差不多”地解決了。問題的難易程度一方面取決於問題本身的性質,另一方面也取決於觀測問題的人的知識儲備。人的知識越完備、經驗越多,分析問題就會越深入,問題就能被解決得更優雅。
|
||||
|
||||
**Q**:現在幾乎所有程式碼都讓 AI Agent 寫了,我們還有必要學習演算法嗎?
|
||||
|
||||
引用一下李沐老師的話:“agent 是能力放大器,就是能力 x10,而不是加法器,不是能力 +10。”
|
||||
|
||||
既然 AI 是能力放大器,那麼作為基數的“能力”也很重要。我覺得兩方面能力尤其值得積累:一是表達能力,尤其是和 AI 協作的能力。講清目標、補足背景、及時糾偏。向 AI 解釋問題,也是在幫自己想清楚問題。二是基礎知識。細節可以讓 AI 補,但基本概念得自己懂,才能問到點上、判斷對錯,把它的輸出變成有用的成果。
|
||||
|
||||
AI 很特別的一點是,它不像過去的工具那樣有清晰的功能邊界。它有點像水,到了不同的人手裡,會呈現出不同的形狀。人的能力越強、taste 越好,AI 的放大效應就越明顯。
|
||||
|
||||
Reference in New Issue
Block a user