私は旧来の手法を用いて 3 か月もの間、コーディングに費やしています。

2026/04/18 1:19

私は旧来の手法を用いて 3 か月もの間、コーディングに費やしています。

RSS: https://news.ycombinator.com/rss

要約

Japanese Translation:

著者は最近、AI の利用なしにコンピュータサイエンスの基礎を習熟することを主たる目的として、6 週間のコーディングリトリートに参加するためにブロークリンへ移転しました。その場所はrecurse center(RC)です。この実験は、大規模言語モデルへの依存が高まっている現状に挑戦しており、LLM は即時の回答を提供することが多いものの、コードベースに対する深い理解を損なう恐れがあるという点については、著者が Aily Labs で 2 年間勤務して AI エージェント(ウェブ検索エージェントなど)の開発や、オープンソース LLM に関するジャーナルクラブを主導した経験から観察されたものです。身体的な運動と知的な熟練を比較するアナロジーに基づき、著者は真の習熟には困難な問題に直接的に取り組むことが不可欠だと信じています。このアプローチを実証するためには、既に CS336 の課題で 50 ページ分のコードを執筆し、Transformer アーキテクチャ(GPT-2 スタイル)と最適化されたトークナイザーを手動で実装しています。また、OpenWebText などのデータセットに対して、1700 万パラメータのモデルを用いたトレーニング実験も行っています。現在の作業は CS336 の課題 2 に注力しており、GPU プロファイリングと Triton における FlashAttention2 の実装が含まれます。タイトなスケジュールにより、レトロコーディングチャレンジなど多様な活動を通じてコンピューターアーキテクチャの各層を深く理解することといった元来の目標をすべて達成することは不可能でもありますが、著者は厳密な評価に焦点を当てて生産環境で動作するエージェントを発表(シッピング)することを意図しています。究極的には、この旅路は AI ツールが進化する中でも基礎スキルが依然として不可欠であることを示すことを目指しており、エンジニアが発行されたコードの受動的消費者となるのではなく、真なるアーキテクチャ的な理解を維持できるようにすることを目指しています。

本文

ニューヨーク・ブルックリン。2026 年 3 月

コーディングのリトリートのために、私はブルックリンへの移転を決めました。米国へ戻る理由にはいくつかの個人的な事情もありました。しかし、即座に仕事に戻ろうとするのではなく、AI にほとんど依存せず、主にコーディングに集中できる期間を設けたいと考えたところでした。多くの優秀なプログラマが「プログラミングは既に解決された問題である」と主張するまさにその時期です。現在このリトリートは 6 ヶ週間経過しており、これまでの取り組みについて少し解説させていただこうと思います。

過去 2 年間にわたって、バルセロナの Aily Labs では、超有能なエンジニアたちと共に AI エージェントの開発に携わってきました。2024 年初頭の最初のプロジェクトの一つとして、社内利用可能なウェブ検索エージェントを開発しました。これは、Anthropic が「効果的な AI エージェントの構築」を論じた記事を約 6 ヶ月早く、OpenAI の DeepResearch を約 1 年先行して実現したものです。また、Cursor の初期利用や、LLM を活用したナレッジグラフの構築など、常に使用ケースに応じて新しいアプローチを試行錯誤してきました。Aily で勤務していた際の最も素晴らしい体験の一つが、週に一度開催されるジャーナルクラブを主導することでした。私は、オープンソース LLM の構築方法を解説する論文を選び、発表しました(DeepSeek R1、Ai2 の Olmo 3、そして Meta の Llama 3)。これら全ての知識は、モデルの内側でトレーニングするか、最上位水準の閉鎖型モデルを取り巻くワークフローを構築するかという、変化し続けるトレードオフを理解する助けとなりました。

私は 2023 年に初めて LLM を試した時点でその魅力に取り憑かれていましたが、探究心は常にそれら的工作原理や応用方法についての学習へと導いていました。同時に、LLM やエージェントについて学びながら、それらをコーディングにも活用していました。「手書き」でコードを書くときは、実際には「望むことへの記述」と「コードベースの理解深化」という二つの作業を行っていると気づきました。しかし、コーディングエージェントを使うと、プロンプトに記した内容がそのまま反映されます(良い結果でも悪い結果でも)。これはつまり、自分が正確に何を望んでいるか把握できていない場合、コーディングエージェントは喜んで多くの仮定を立ててしまうことを意味します。その結果、学びの機会を失い、コードベースへの理解も浅くなるという事態がほとんど避けられませんでした。

他方、コーディングエージェントは開発の反復を劇的に加速させ、(当然のことながら、十分なテストを経てからですが)機能するソフトウェアを実現するのに役立ちました。また、優れた「教師」としても機能していました。科学者・著者のカル・ニューポート氏は『ディープ・ワーク』を含む多数の生産性向上書を執筆しており、最近彼は、このトレードオフについて私の共感を呼ぶような記述を行いました。その中で、彼は「運動と健康の関係」に似て、「思考と技術(craft)の関係」についても言及しています。「自分の文章は自分で書くべきだ」という考えに基づき、明確なメモや報告書を書くために必要な努力こそが、アスリートにとってのジムでのトレーニングと同じく、技術習得における不可欠な要素であり、排除すべき邪魔なものではないと指摘しています。

プログラミングに 있어서는同じことが言えると思います。Aily で働いていた驚嘆すべき才能を持つプログラマたちは、ほとんどが AI を極めて上手に活用する者でもありました。彼らの深い知識こそが、このツールに対してより大きなレバレッジをもたらしたのです。エージェントを本番環境に導入する日々の業務においても、学習は止めることはありませんでした。しかしながら、私が学ぶべきコーディングやコンピュータに関する概念のリストは拡大の一途をたどり、忙しさのために学ぶ時間が取れなくなっていました。そんな折、米国へ戻らなければならない機会を得た際、Recurse Center(以下、RC)という場所でこれに集中する最適なタイミングだと気づきました。

RC はブルックリンで開催される自主型フルタイムのコーディングリトリートです。アプリケーションとコーディング面接を経て合格し、自分がプログラムしたいアイデアを持って RC に入ると、その後 6 ヶ月または 12 ヶ週間にわたってプログラミングに没頭します。RC のハイライトの一つは「協働性」です。あなたは経験数十年を持つプログラマたちや、専門性が大きく異なる他の参加者たちと一緒にグループとなり、一緒に活動します。もう一つのハイライトは「無料」であること!

RC への参加にあたり、私は以下の目標を持っていました:

  • LLM から零々訓練する。 これには事前・事後トレーニングを含み、可能な限りゼロから行うことを目指します。つまり、既存のコードベースをフォークするのではなく、独自に Transformer アーキテクチャを書くことです。
  • 「手書き」による Python プログラミング力を高める。 現在数年以上 Python で働いていますが、まだ学ぶべきことが山ほどあることに気づいています。文書や LLM に依存することを極限まで抑え、さまざまなプロジェクトを適切に設定するための直観を培いたいと思います。
  • コンピュータの仕組みをより深く理解する。 まさに大まかな目標ですが、コンピュータは抽象化レベルが多岐にわたる極めて複雑な機械であることを承知しています。形式的なコンピュータサイエンス教育を受けた経験がないため、これらの層とその相互작용についての Mental Model を構築したいと考えています。具体的な計画はありませんが、RC がこれに最適な場所だと確信しています。

では、進捗はどうでしょうか?スタンフォード大学の「言語モデリングをゼロから構築する(CS336)」コースの最初の課題は LLM のコードなしで完了しました。背景として、この課題は 50 ページにも及んでいますが、別の RC 参加者との協力により、Python を用いた最適化されたトークナイザを開発し、PyTorch で GPT-2 スタイルのアーキテクチャを構築しました。Tiny Stories データセット上でハイパラーパラメータの調整を行った後、これらのパラメータを用いて OpenWebText データセット(約 90 億トークン)においてもトレーニングを行いました。

私自身が開発した 17M パラメータモデルについて、学習率を異なる値でスキャンする実験を行いました。高い学習率では不安定化が生じることを確認しました。これは Tiny Stories データセット上で行われたもので、A100 GPU を用いて約 1 時間でトレーニングできました。また、CS336 の他の課題も達成することを目指しています:言語モデルの最適化、スケーリング則の推定と計算、生テキストデータの事前トレーニングデータへの変換、そして最終的な事後トレーニングです。すでに第二回目の課題(GPU のプロファイリングと Triton による FlashAttention2 の実装)を開始しています。まだ多くの作業があります理想的には、これらの課題の核心部分を通るだけでなく、自らのモデル的事後トレーニングも達成したいと考えています。

Python または PyTorch を用いて多数の小型エージェントやニューラルネットワークを実装してきましたが、特に最も有益だったのは、10 年以上 Python で働いてきた人々とペアプログラミングを行ったことでした。彼らを見て学ぶこともあれば、私が作業する様子を見せることもあります。ペアプログラミングから得た良い例の一つとして、「コードを書いている際に文法や演算を完全に覚えていない場合でも、すぐにターミナルを開き、非常に単純なサンプルを入力して素早く反復する方法」を取り入れました。彼は通常、1 分以内で正しいか確認できましたし、グーグル検索や LLM の問い合わせをする必要もありませんでした。この手法は些細に思えるかもしれませんが、それを筋肉記憶として定着させることで、私が行き詰まった状態から速く脱出しやすくなりました。今後もこのような方向性で進めたいと考えています。ペアプログラミングしながら単純なプロジェクトや「Advent of Code」のような課題に取り組むことです。他者との生きた共同作業は最初は少し緊張しましたが、それが逆に多くの進歩を招いています。

以下は、私が「コンピュータの仕組みをより深く理解する」ことに寄与した例です:

  • **1983 年の Apple IIe コンピュータで BASIC ランゲージで经典的なFizzBuzz関数を書いた。**当時のコンピューティングの環境がいかに異なっていたか(例えばコード編集や実行プロセスの手動作業面)を見ていて感慨深かったが、基本的には現代と変わらぬことが分かった。
  • **Apple IIe で実験する。**私が常に少し自意識過剰に感じるのは、Unix/ターミナルスキルに関するものである。そこで「CTF Fridays」という、毎週開催される Bandit などさまざまな「戦争ゲーム」に取り組むセッションに参加した。これらはターミナルを通じて行われる Unix 系およびコンピューターセキュリティに関連する課題で、パスワード収集やレベルアップが目的である。今では Claude Code が私のコンピュータ上で何を試しているかをほぼ予見できるようになった!
  • Vim だけで単一層のパーセプトロンを手動で実装した。 AI 教科書をめくった際に目にした単一層パーセプトロンの例を、完全に Vim でコーディングした。最初は極めて面倒だったが、別の RC 参加者からプロのアドバイスをもらい、いくつかのショートカットを覚えた。現在ではクラウド GPU でトレーニングジョブを実行中に緊急にファイルを修正する際にも非常に有用になっている。
  • Clojure ワークショップに参加した。 Clojure を 15 年以上使用してきた有能な講師によるワークショップである。Clojure は関数型プログラミング言語であり、私はその分野での経験が浅かったため、テーマ自体に興味深かった。教授法も素晴らしかった:短かいイントロダクションの後、モブプログラミングの回を行い、テーブルを囲んで全員で問題を解決し、それぞれ 1〜2 分の時間を与えながら解答を進めていった。
  • **週次技術プレゼンテーションに参加・発表。**これらは 5 分間の短いトークスリーズであり、退屈しない長さでありながら、有意義なことを学べるスピード感がある。タイトル例:「Rust コードの実行」、「GPUs for Dummies」、「Type B の人々向けに Typesafe API を構築する」、「Some Useless Agents(これは私のもの!)」など。これまで 2 回発表しており、一つは単純なエージェントアーキテクチャについて、もう一つは MCP ツールのスケーリング効率化についてであった。今週は GPU の最適化方法に関する別のトピックを発表予定だ。他人のプロジェクトやキャリアの話さえ聞くだけで、コンピュータが解決可能な問題領域全体を理解する上で大きな助けとなっている。

まもなく本番環境にエージェントをデプロイし、新たなスキルとトリックを駆使して評価テストを行うことになるでしょう。しかし、現時点では RC に残された時間はまだ 6 ヶ週間あり、私自身のリストにある全ての目標を達成できるか心配になりつつあります。それは果たせないでしょうが、それが RC が素晴らしい所以なのです:すべてをチェックしきることに主眼をおくのではなく、コーディングの時間を持てることに意義があるからです。

同じ日のほかのニュース

一覧に戻る →

2026/04/18 0:04

クロード・デザイン

## Japanese Translation: Anthropic は今日、研究プレビュー段階で一般公開された新しい AI ツール「Claude Design」を発表しました。このツールは、進化した Claude Opus 4.7 vision モデルを基盤としており、テキストやドキュメントを瞬時に視覚デザインに変換する機能を備えています。以前では 20 つ以上のプロンプトが必要だった作業フローをわずか 2 ステップへと大幅に簡素化することで、プロトタイプ制作を容易にします。ユーザーはテキストで要件を記述するか、DOCX、PPTX、XLSX ファイルをアップロードし、Claude が最初の視覚版を作成して改善の余地を残します。オンボーディング時に既存のコードベースに直接統合され、チーム向けデザインシステムを自動的に構築するほか、デザインファイルを读取して共有標準を策定します。 本ツールにはカスタムスライダーやインラインコメントなど、精密な微調整制御に加え、組織範囲での共有機能、プライベートリンク、編集アクセス権、グループチャットといった新たなコラボレーション機能も提供されます。デザインは Canva への完全編集可能なファイルとしての直接エクスポートが可能で、あるいは PDF、PPTX、HTML、社内 URL へも代替的にエクスポートできます。バンドルは Claude Code のための直接実装用としても保存されます。これは、現実的なインタラクティブプロトタイプやワイヤーフレームからピッチデッキ、マーケティング素材、3D 要素など先端デザインに至るまでの用途をカバーします。 現在、claude.ai/design で利用可能です。本サービスは現在の研究プレビュー段階ですが、一日中急速に拡大しており、Pro、Max、Team、Enterprise サブスクリプションのすべてで利用可能になっています。特に、Enterprise ユーザーではデフォルトで機能がオフになっているものの、管理者が Organization 設定からこれを有効にすることで、アクセス管理を好みに合わせて行うことができます。この進歩により、コードを書かずに複雑な素材を作成することが可能となり、デザインサイクルが加速するとともに、ワイヤーフレームからプロダクションまでの移行プロセスにおいてクリエイティブワークフローと開発者ツールを統合することで、そのプロセスが合理化されます。

2026/04/18 6:38

FIL-C の簡略化モデル

## Japanese Translation: Fil-C は、既存の不安全な C/C++ コードベースをメモリ安全性を備えた実装に改修することを目的とした革命的ツールであり、手動による書き換えを必要としません。それは、簡略化されたモデルではソースコード、または生産環境版では LLVM IR を自動的に変換することで達成され、各関数内のポインターにメタデータレコード(`AllocationRecord*` 変数)を付与します。これらのレコードは、可視データ、境界アラインメント用の非公開バイト、および長さ情報を追跡し、参照解除やポインター算術といった標準的な操作を自動的に境界チェックを備えた操作へと書き換えることを可能にします。 このシステムは、標準ライブラリ呼び出しを Fil-C 版(例:`filc_malloc`)で置き換えにより配列を明示的に処理し、かつ廃棄された非公開メタデータオブジェクトの解放にはガバージコレータが担当するというハイブリッドアプローチによってメモリライフサイクルを管理します。これは `AllocationRecord` インスタンス自体が直接子配列を解放しないためです。スタック操作によるエラーを防ぎつつ安全性を保証するため、ローカルスコープからアドレスが流出する変数は自動的にヒープ割り当てに昇進されます。 未確認のレガシーコードベースに対する安全な橋渡しとしての位置づけを持つ Fil-C は、 unsafe ポインター交換を関数呼び出しを超えて防止するというユニークなポインター所有性の性質を持ち、積極的な最適化および並行型ガバージコレータを通じて典型的なメモリ安全性ペナルティを軽減します。最終的に、AddressSanitizer による強力なコンパイル時の安全性保証を提供すると同時に、産業界が既存の大規模コードベースを安全にし、Zig などにおける安全なコンパイル時評価を活用することを可能にします。

2026/04/18 3:17

『全ての 12 人の月面歩行者は、火薬のような匂いのする塵から「月じんかぜ」に苦しんだ(2018 年)』

## 日本語訳: 月面の塵は宇宙探査にとって二重の現実をもたらします:それはアストロノーツにとって即座に命を脅かす危険であると同時に、将来的な植民地にとっては貴重な資源でもあります。主な危険性は、その独自の物理的特性に由来します。やわらかい地球の塵とは異なり、月面の粒子は鋭く研摩性のあるケイ酸塩粒であり、太陽放射と大気による侵食の欠如のため静電的に帯電したままです。これらの小さな棘状の粒子(人間の髪の毛の約 50 倍小さいもの)は、地球重力の 1/6 の環境でも数ヶ月間浮遊し、表面より高く漂浮しながら装備に侵入し、さらに人間肺の奥深くまで到達します。史上 12 人の月面を歩いた宇宙飛行士すべて(其中包括アポロ 17 号のハリーソン・シミュット)によって記録されているように、露出は「月の枯草熱」と呼ばれる症状——喉の痛み、涙目、くしゃみ、鼻閉塞(時に数日続くものも含まれる)——および肺細胞や脳細胞に損傷をもたらす可能性のある長期的毒性を引き起こしました。また、この塵は宇宙船内部で独特な火薬のような燃えた臭いを放ちます。 これらのリスクを安全に研究するために、研究者らはドイツで粉砕された丸みを帯びた火山岩シミュラントを使用して、鋭く有毒な月面粒子への曝露なしに機器故障をモデル化しています。カリフォルニア大学の NASA アストロノート・キム・プリスクを含む 12 人の科学者による野心的なプログラムで、月面塵の毒性リスクが推定されています。生物学者のエリン・トランフィールドは、火山岩を粉砕することで鋭い縁を取り除き、より安全なシミュレーションが可能になると指摘しています。科学顧問のアイドアン・カウリーは有望な応用として、月面土壌を加熱して居住用のレンガを生産したり、レゴリットから酸素を抽出して有人ミッションを維持したりすることを挙げています。同時に、ESA アストロノート・アレクサンダー・ゲーストは減重力下での肺の健康を追跡するための「気道モニタリング」実験を行い、将来の持続可能な月面帰還を支えています。並行して、ESA はオランダのエウレカ研究所内で月面資源に関するワークショップを開催し、これらの機会への研究を推進するとともに、この独自の環境がもたらす重大な健康リスクを軽減することを目指しています。