プログラミングを学んでいるつもりが、構造化を学んでいた
ここ数か月、AIを活用しながら個人開発を続ける中で、自分自身でも少し意外な気付きがありました。
Python、JavaScript、TypeScriptなどのプログラミング言語を学んできましたが、振り返ってみると、細かな文法や制御構造よりも、MarkdownやJSONのような「情報を構造化する考え方」の方が強く印象に残っています。もちろん、プログラミング言語の理解は重要です。しかしAI時代の開発では、単純にコードを書く能力だけではなく、「何をデータとして表現するのか」
「その情報をどのような構造で管理するのか」という能力の重要性が高まっているのではないかと感じています。
老舗ソフトウェア・デザインハウスを経営するMasaoとAlfredは、美味しいワインとディナーを楽しみながら語り合っていました。

Alfred、ここまで学習してきて実はプログラミングの細かなロジックや制御構造については、あまり頭に残ってないんだよねww
でも、MarkdownやJSONとか、データを表現する構造の部分が強く印象に残って覚えてるんだよ。
昔なら、プログラミング学習といえば文法を習うことだったけど、データ=コンテンツをどのように構成するか、という部分の方が重要になっているのかな?

Masaoさん、これはかなり本質的な気付きだと思います。
AI時代のソフトウェア開発では、「コードを書く能力」だけではなく、**「情報をどのように構造化するか」**という能力の比重が大きくなっています。
※本記事は、AI時代のエンジニアリング全体像を整理した「AI時代のプログラミング学習ロードマップ」の深掘りテーマ(Data Driven設計)の位置づけとなります。
Code DrivenからData Drivenへ JSONが象徴するソフトウェア設計の変化
昔のソフトウェア開発では、画面表示、処理内容、データ操作などをプログラムコードとして一つずつ記述していました。
条件分岐、繰り返し処理、関数、クラスなどを組み合わせて、コンピューターへ具体的な手順を教える世界です。もちろん現在でも、この考え方は重要ですが、とくに最近のアプリケーション開発では、データを定義し、そのデータを汎用的な仕組みで処理するData Drivenな考え方が中心になっています。
例えば商品情報を表示するアプリケーションの場合、昔なら商品ごとに画面や処理を書く必要がありました。
しかし現在では、
- Product Data
- Renderer
- UI
というように、データと表示処理を分離します。
商品情報そのものをデータとして管理することで、同じ仕組みを利用して多くの商品やサービスへ展開できます。
この考え方は、現在開発しているAlfred関連のプロダクトでも非常に重要になっていて、例えばアフィリエイト用WordPress Blockを作る場合、商品ごとにHTMLを書くのではなく、Product Dataを定義する → 共通処理で生成する → Rendererが表示する、という構造にすることで、再利用可能な部品になります。
これは単なるプログラミング技術ではなく、Software Designそのものです。
MarkdownはAI時代の知識フォーマットになる
Human ReadableとMachine Readableの中間

でも考えてみると、Markdownも同じじゃね?
Markdownは基本文章を書くための形式だけど実際には見出しや箇条書きなんかの「構造」を持ってるよね?

その通りです。
Markdownは単なる文章形式ではありません。
人間が理解しやすい形で情報構造を表現でき、同時に機械でも扱いやすい形式です。
例えば、
# Product
## Features
- AI
- Search
- Translation
これは人間には文章として読めます。
しかし機械側から見ると、Productという項目があり、その下にFeaturesという属性があるという構造として理解できます。Markdownの特徴は、まず人間が読めてGitで管理できる、AIも理解できて他の形式へも変換できるということです。
つまり、Human ReadableとMachine Readableの中間に存在しています。
英語の構造そのものがデータ構造だった
KeyとValueで考える情報整理

でもさ、Markdown以前に、英語の文章構造そのものがデータ構造なんじゃない?
例えば、こないだのブログ記事に無意識に書いた:
- Windows: C++, Win32 API, MFC
- Mac: Objective-C, Cocoa, Swift
も単なる文章ではなくて、WindowsがKeyになっていて、C++以下がValueになってるよね? 次の行のMacも同様だよね?

まさにその通りです。
実はMarkdownやJSONの前にあるのは、人間自身の情報整理能力です。
人間は昔から、
- 分類する
- 関係付ける
- 階層化する
- 名前をつける
ことで情報を整理してきました。
MarkdownやJSONは、その思考をコンピューターが扱える形式へ変換したものと言えます。
XMLはどこへ行ったのか
消えたのではなく、思想が形を変えた

ちょっと気になるんだけども、、
昔はXMLが非常に重要だったと認識されてたよね、最近のAIやWeb開発ではあまり話題に出てこないんだけど。
XMLが本命だと思ってたんだよね。

これは面白い視点ですね。
XMLは「意味を持ったデータ構造」という考え方では非常に先進的でした。
単なるデータ交換形式ではなく、データ自身に意味を持たせるという思想がありました。

だよね。
当時は企業システム連携などで非常に重要な技術だった記憶が。。

そうですね。
ただ、Webの世界では状況が変わりました。
JSONは、軽量、JavaScriptとの相性が良い、APIで扱いやすい
という特徴から広く利用されるようになりました。

では、XMLは負けて消えちゃったの?

そこが面白いところです。
XMLという形式が使われる場面は変化しましたが、XMLが目指していた
「意味を持つデータ構造」という思想は消えていません。
- JSON Schema
- Structured Output
- Function Calling
- Knowledge Graph
などをみると、むしろAI時代になって再び重要になっています。
『作る能力』が民主化される中で、なぜこうした構造化や設計能力が人間の強みになるのかについては、プログラマーの価値はどこへ行く? で詳しく考察しています。
AI時代に必要なのは構造化する力
コードを書く人から、意味を設計する人へ
今回の気付きは、MarkdownやJSONという個別技術の話ではありません。
本質は、人間の考えを整理し、それをコンピューターやAIが扱える形へ変換する能力のことなのです。
AI時代になり、コードを書く作業そのものは大きく変化していますが、情報を整理、意味を定義、データモデルを設計、再利用可能な構造を作る、などの人間的な創造力の価値は、むしろ高まっています。

失礼します。
今回の議論を記録係として整理すると、重要なのは形式そのものではありません。
Markdownは人間が理解できる構造
JSONはコンピューターが扱いやすい構造
Schemaは意味を定義する構造
そして、それらを組み合わせることで、未来のAIが利用できる知識資産になります。

最後にWinstonが一番きれいにまとめたね(笑)
さすが Chief Archivist !!

確かに、このテーマの締めくくりには最適ですね。
Winston、美味しいとこ持っていきますねww
まとめ
Markdown、JSON、そしてAI時代の開発で重要になるのは、単なる技術知識ではありません。
本質は、「情報を構造化する力」です。
そしてプログラミング言語は、その構造を動かすための道具です。
これからの開発者に求められるのは、コードを書く速度だけではなく、何をどのような構造で表現するかを考える能力なのだと思います。
Programming Languages are tools.
Data and design are the foundation.
データを軸にした設計思想を学びつつ、具体的にどんな技術スタック(React/TypeScript等)を組み合わせてロードマップを描くべきかは、下記でまとめています。
🔗 あわせて読みたい:AI時代のプログラミング学習法|言語選択より「何を作るか」から始める個人開発ロードマップ


コメント