Markdownは、プログラムのソースコードのように記号を組み合わせて文章を装飾できる軽量マークアップ言語です。
複雑なHTMLタグを覚えなくても、テキストだけで見出しやリスト、表、コードなどを読みやすく整えられます。
この記事では、プログラミング初心者がMarkdownを基礎から一気に理解できるように、概念、メリット、基本記法、そして便利なツールまで段階的に詳しく解説します。
Markdownとは?プログラミング初心者のための基礎知識
Markdownとは何かをわかりやすく解説

Markdownとは、テキストにシンプルな記号を加えるだけで、見出しやリスト、リンクなどの構造を表現できる記法です。
プレーンテキストとしてそのまま読めることが特徴で、HTMLのようなタグを多用せずに、自然な文章に近い形で書ける点が魅力です。
例えば、見出しを作りたい場合は# 見出しと書くだけで、変換後には大きなタイトルとして表示されます。
太字にしたいときは重要と記述するだけです。
このように、「書いたままでも読めるテキスト」と「整形された見た目」の両方を両立できるのが、Markdownの最大の特徴です。
エンジニアがMarkdownを使う主な場面

エンジニアは日常的にMarkdownを利用します。
代表的な場面として、GitHubのREADME.mdファイルがあります。
プロジェクトの使い方やインストール手順を、見出しやリスト、コードブロックを用いてわかりやすく説明します。
また、チームで共有する簡易的な設計メモや仕様メモ、タスクのメモなどもMarkdownで書かれることが多いです。
オンラインの技術ブログサービス(例: Qiita、Zenn など)もMarkdownベースの入力を採用しているため、技術記事を書くときにMarkdownが標準スキルになりつつあります。
さらに、プログラミング学習のノートやコードのメモ、エラーログの記録などもMarkdownで残しておくと、後から読み返しやすくなります。
シンプルな記法なので、学習を始めた早い段階から取り入れやすい点もメリットです。
HTMLとの違いとMarkdownの位置づけ

MarkdownとHTMLは、どちらも文書を構造化して表現するためのマークアップ言語です。
ただし、目的と性質に違いがあります。
HTMLはWebページの見た目と構造を厳密に定義するための標準言語であり、タグを使って細かくレイアウトやスタイルを指定します。
一方でMarkdownは、人間にとって読みやすく書きやすいことを最優先にした簡易的な記法です。
典型的な違いを表にまとめます。
| 観点 | Markdown | HTML |
|---|---|---|
| 目的 | シンプルに構造を表現 | Webページを詳細に定義 |
| 学習コスト | 低い | 高め |
| 可読性(生テキスト) | 高い | タグが多く読みにくい |
| 表現力 | 基本的な構造に限定 | ほぼ無制限 |
| よく使う場面 | ドキュメント、README、ノート | Webサイト、Webアプリ |
Markdownは、最終的にはHTMLへ変換されてWebブラウザに表示されることが多いです。
そのため、「人間がMarkdownを書く → ツールがHTMLに変換 → ブラウザで表示」という流れをイメージすると位置づけが理解しやすくなります。
Markdownを使うメリットとデメリット
プログラミング学習でMarkdownを使うメリット

プログラミング学習では、情報量が多く、用語やコード例も頻繁に登場します。
Markdownを使うと、学習ノートの「構造化」が簡単にできるため、後から見返したときの理解が格段に楽になります。
例えば、学習したトピックごとに# 見出しで区切り、コード例を```で囲むことで、どこに何が書いてあるかが一目でわかるようになります。
エラーの原因と対策を- 箇条書きにしておけば、同じミスを繰り返しにくくなります。
また、Markdownはプレーンテキストなので、Gitなどのバージョン管理と相性が良く、「1週間前のノートと今のノートを見比べる」といったことも容易です。
検索も簡単で、ファイル全体を高速に全文検索できます。
チーム開発(GitHub)で役立つMarkdownの利点

チーム開発では、情報共有のしやすさがプロジェクトの生産性に直結します。
GitHubでは、Markdownが標準でサポートされており、以下のような場面で活用されています。
READMEファイルでは、プロジェクトの概要やインストール方法、実行方法をMarkdownで記述することで、初めてリポジトリを開いた人でも素早く必要な情報にたどり着けます。
IssueやPull Requestの説明文もMarkdownで書けるため、箇条書きでタスクを整理したり、コードブロックで変更点の抜粋を示したりすることで、レビューの効率が大きく向上します。
Markdownは、どのエディタでも編集できるテキスト形式なので、メンバー全員が同じフォーマットでドキュメントを作成しやすく、レビューしやすいという利点もあります。
初心者がつまずきやすいMarkdownの注意点

Markdownはシンプルですが、細かなルールを知らないと「思ったように表示されない」ことがあります。
特につまずきやすいのは、段落と改行の扱いです。
多くのMarkdown環境では、単にEnterキーで改行しただけでは、ブラウザ上では同じ段落として表示されてしまいます。
また、リストの直前や直後に空行を入れないと、リストとして認識されない場合もあります。
表(Table)も、|や-の数が揃っていないとレイアウトが崩れることがあります。
これらは慣れの問題ですが、「なぜそうなるのか」を理解したうえでルールを覚えると、つまずきが減ります。
次の章で、基本記法をステップ順に整理していきます。
Markdownの基本記法をステップ順に解説
見出し(Heading)の書き方

Markdownでは、見出しは#の数でレベルを表現します。
行の先頭に#を1つから6つまで付けることで、レベル1からレベル6までの見出しを作れます。
基本的には、記事タイトルに#、章のタイトルに##、その中の節に###を使うと覚えるとよいです。
例として、よくある構造を示します。
# タイトル(レベル1)
## 1. はじめに(レベル2)
### 1-1. 背景(レベル3)
ここに本文を書きます。
## 2. 使い方(レベル2)
### 2-1. インストール方法(レベル3)
ここにインストール手順を書きます。
このように、見出しレベルを意識して階層的に文書を整理すると、目次の自動生成やスクロールナビゲーションにも対応しやすくなります。
段落と改行のルール

Markdownでは、「空行」か「行末の半角スペース2つ」が重要です。
段落を分けたい場合は、段落と段落の間に1行以上の空行を入れます。
単にEnterで改行しただけでは、多くのレンダラーでは同じ段落として扱われ、ブラウザ上では1つのまとまった文章として表示されます。
強制的に1行改行したい場合は、行末に半角スペースを2つ入力してから改行します。
これは1つ目の段落です。
ここまでが同じ段落になります。
ここから2つ目の段落です。
ここは強制的に改行されます。
この行は同じ段落内ですが、改行されません。
上の例では、最初の2行が同じ段落、空行を挟んで新しい段落が始まり、さらに2つのスペース + 改行によって途中に改行が入る挙動になります。
太字・斜体(強調表現)の基本記法

Markdownの強調表現は、か_を使って囲みます。
一般的にはがよく使われます。
- 斜体: 単語やフレーズを
*で1重に囲む - 太字:
*で2重に囲む - 太字+斜体:
*で3重に囲む
これは *斜体* の例です。
これは **太字** の例です。
これは ***太字かつ斜体*** の例です。
文章中で重要度に応じて使い分けると、情報のメリハリが生まれます。
ただし、多用しすぎると読みづらくなるため、本当に強調したい箇所に限定することがポイントです。
箇条書き(リスト)の書き方

箇条書き(順序なしリスト)は、行頭に-、*、または+を付けて半角スペースを1つ入れるだけで作成できます。
記号の種類による意味の違いはありませんが、プロジェクト内では記号を統一すると読みやすくなります。
- りんご
- みかん
- ぶどう
入れ子のリスト(ネスト)を作りたい場合は、タブや半角スペース2〜4個でインデントします。
- フルーツ
- りんご
- みかん
- 野菜
- にんじん
- たまねぎ
リストの前後に空行を入れておくと、Markdownレンダラーに正しく認識されやすくなります。
番号付きリスト(手順書)の書き方

手順書やステップを説明したいときは、番号付きリスト(順序ありリスト)を使います。
行頭に1.、2.のように数字+ドット+スペースで記述します。
1. プロジェクトをクローンする
2. 依存パッケージをインストールする
3. アプリケーションを起動する
多くのMarkdownレンダラーでは、実際の数字は自動で連番にしてくれるため、1.を繰り返し書いてもかまいません。
1. 手順その1
1. 手順その2
1. 手順その3
上記のように書いても、表示上は1, 2, 3と連番になります。
行の挿入・削除が多い手順書では、すべて1.にしておくと番号修正の手間が減るので便利です。
リンク(URL)の貼り方

リンクは、表示テキストという形式で記述します。
角かっこ[]にリンクテキスト、丸かっこ()にURLを書きます。
公式ドキュメントは [こちら](https://example.com/docs) を参照してください。
URLをそのまま書くと https://example.com のように表示されます。
GitHubや多くのエディタでは、URLをそのまま書くだけでも自動的にリンクとして扱われますが、「何のリンクなのか」がわかるテキストを付けることで、読み手にとって親切なドキュメントになります。
画像の挿入方法

画像は、リンク記法の先頭に!を付けた形で記述します。

このとき、角かっこ[]の中は代替テキスト(altテキスト)と呼ばれ、画像が読み込めない場合やスクリーンリーダー利用時に使用されます。
内容を簡潔に表した文言を入れておくとアクセシビリティの面でも有利です。
ローカルの画像ファイルを使う場合は、Markdownファイルからの相対パスで指定します。

GitHubリポジトリでは、README.mdと同じ階層やimages/フォルダに画像を置いて相対パスで指定するのが一般的です。
コード・コードブロックの書き方

プログラミングでは、コード片をそのまま文書中に示したい場面が多くあります。
Markdownでは、インラインコードとコードブロックの2つの表現方法があります。
インラインコードは、`(バッククォート)で囲みます。
変数名は `totalCount` にします。
コードブロックは、行をまたぐコードを表現するのに使います。
3つのバッククォート```で囲み、1行目に言語名を書いておくとシンタックスハイライト(色分け)が有効になります。
ここでは、C言語の簡単なサンプルをMarkdownで記述した例を示します。
```c
#include <stdio.h>
int main(void) {
// 画面にメッセージを表示する
printf("Hello, Markdown and C!\n");
return 0;
}
```
実際にCコードとして実行すると、次のようになります。
#include <stdio.h>
int main(void) {
// 画面にメッセージを表示する
printf("Hello, Markdown and C!\n");
return 0;
}
Hello, Markdown and C!
このように、「説明文」と「コード」をはっきり分けて見せられるのがMarkdownの大きな利点です。
引用ブロックの書き方

引用ブロックは、他の文章やドキュメント、公式ドキュメントの一部などを引用するときに使います。
行頭に>を付けます。
> これは引用された文章です。
> 複数行にわたる引用も可能です。
入れ子にする場合は>>のように>を重ねます。
> 一段目の引用です。
>> 二段目の引用です。
引用は、注意書きや補足情報を目立たせる用途にもよく使われます。
表(Table)の基本的な作り方

表は、|と-を組み合わせて作ります。
最低限必要なのは、ヘッダ行と区切り行、データ行です。
| 言語 | 用途 | 習得難易度 |
|--------|--------------|------------|
| C | システム開発 | 高め |
| Python | データ分析 | やや低め |
| Java | Web開発 | 中程度 |
整列(左寄せ・中央・右寄せ)は、区切り行に:を追加することで指定できます。
| 列名 | 左寄せ | 中央寄せ | 右寄せ |
|----------|:----------|:----------:|----------:|
| サンプル | left | center | right |
表は記法がやや複雑に感じるかもしれませんが、最初は簡単な2〜3列の表から練習するとよいです。
行や列を増やすときは、|の数を揃えることを意識してください。
よく使うMarkdown記法の組み合わせ例

ここまで説明した記法を組み合わせると、典型的な学習ノートやREADMEの1セクションを簡単に構成できます。
## 配列の基本
配列は **同じ型の値** をまとめて扱うための仕組みです。
### 配列の宣言
C言語では、次のように宣言します。
```c
int scores[3] = { 80, 90, 75 };
```
上のコードでは、次の3つの整数を1つの配列として扱っています。
- 80
- 90
- 75
より詳しい説明は [公式ドキュメント](https://example.com/array-docs) を参照してください。
このように、「見出し → 説明 → コード → 箇条書き → 参考リンク」という流れをテンプレートとして覚えておくと、どんなトピックでも整理して書けるようになります。
Markdownがもっと便利になるツールと活用法
ブラウザで使えるMarkdownエディタ

Markdownを学び始めたら、「書いたらすぐプレビューが見える」環境があると理解が早く進みます。ブラウザだけで使えるオンラインMarkdownエディタは、インストール不要で手軽に試せるのでおすすめです。
代表的なものとして、次のようなサービスがあります。
| サービス例 | 特徴 |
|---|---|
| StackEdit | ブラウザ上で高機能なエディタ、Google Drive 連携など |
| Dillinger | シンプルなUI、HTMLやPDFへのエクスポート機能 |
| HackMD / CodiMD | 複数人でリアルタイム編集が可能、資料共有に便利 |
これらを使うと、左側にMarkdownを入力すると右側に即座に整形済みのプレビューが表示されます。「どの記法がどう表示されるか」を体で覚えられるため、初心者の練習に最適です。
VSCodeでMarkdownを書く設定と拡張機能

Visual Studio Code(VSCode)は、多くのエンジニアが利用しているエディタで、Markdownの編集にも適しています。標準でMarkdownプレビュー機能が搭載されており、Ctrl + Shift + V(macOSではCmd + Shift + V)でプレビューを開けます。
さらに、拡張機能を入れることでMarkdown編集をより快適にできます。
| 拡張機能名 | 主な機能 |
|---|---|
| Markdown All in One | ショートカット、目次自動生成、プレビュー強化 |
| Markdownlint | Markdown文書のスタイルチェック、ルール違反の指摘 |
| Markdown PDF | MarkdownをPDFに変換 |
例えば、Markdown All in Oneを入れると、見出しレベルの変更やリストの整形などをショートカットで素早く行えるようになります。プログラミングと同じエディタでMarkdownも書けるようになると、学習環境が統一されて作業効率が上がります。
GitHubでのREADME作成にMarkdownを活用する方法

GitHubリポジトリのREADME.mdは、プロジェクトの「顔」とも言える重要なファイルです。ここにMarkdownを活用すると、初めて訪れた人にプロジェクトの概要を的確に伝えられます。
READMEには、次のような要素をMarkdownで記述することが多いです。
- プロジェクト名(見出し)
- 説明文(目的、概要)
- インストール方法(番号付きリストやコードブロック)
- 使い方(コマンド例のコードブロック)
- スクリーンショット(画像挿入)
- ライセンスや著者情報(リンク)
簡単な構成例を示します。
# Sample Project
このプロジェクトは、MarkdownのREADMEサンプルとして作成されています。
## インストール
1. リポジトリをクローンします。
```bash
git clone https://github.com/your-name/sample-project.git
cd sample-project
```
2. 依存パッケージをインストールします。
## 使い方
```bash
./run.sh
```
## スクリーンショット

このように、コードブロックとリストを組み合わせて手順を明確に書くことで、他の開発者がプロジェクトを試しやすくなります。
MarkdownからHTMLやPDFに変換するツール
Markdownは、そのままでも十分便利ですが、HTMLやPDFに変換することで、配布しやすいドキュメントとして活用できます。
代表的な変換ツールには、次のようなものがあります。
| ツール名 | 概要 |
|---|---|
| pandoc | 多機能ドキュメント変換ツール(Markdown → HTML/PDF/Word など多数対応) |
| VSCode + Markdown PDF拡張 | VSCodeから直接PDF出力 |
| 各種Webサービス | ブラウザで.mdをアップロードし、HTMLやPDFをダウンロード |
例えばpandocを使うと、コマンドラインから次のように簡単に変換できます。
pandoc input.md -o output.html # HTMLに変換
pandoc input.md -o output.pdf # PDFに変換
このように、Markdownを「中間フォーマット」として書き、用途に応じて必要な形式に変換する運用は、技術文書の世界でよく採用されています。
プログラミング学習ノートをMarkdownで整理するコツ
最後に、Markdownをプログラミング学習ノートに活用する具体的なコツを紹介します。
まず、ファイルをトピックごとまたは日付ごとに分けると、あとから探しやすくなります。
例えば、01_variables.md、02_conditions.mdのように、学習順に番号を付ける方法があります。
次に、ノートのテンプレートを決めておくと、毎回迷わずに書き始められます。
# 2025-01-01 変数の基礎
## 今日の学び
- 変数とは何か
- 型(int, char など)
## サンプルコード
```c
#include <stdio.h>
int main(void) {
int x = 10;
printf("%d\n", x);
return 0;
}
```
## メモ・気づき
- `int` は整数用の型。
- 宣言時に初期化しておくとバグを減らせる。
このように、見出し構成を固定しておくと、復習するときに「どのファイルのどこを見れば何が書いてあるか」がすぐにわかるようになります。また、Gitでバージョン管理しておけば、学習の履歴を時系列で追うことも簡単です。
まとめ
Markdownは、「テキストだけで読みやすい文書を作れる軽量マークアップ言語」です。
HTMLよりも手軽で、見出し・リスト・コード・表などプログラミング学習や開発ドキュメントに必要な要素をほぼすべてカバーできます。
GitHubのREADMEや学習ノート、チームの共有メモなど、エンジニアのあらゆる場面で活躍するので、早い段階で基本記法に慣れておくと大きな武器になります。
ブラウザエディタやVSCode、変換ツールをうまく活用しながら、まずは自分用の学習ノートからMarkdownを実戦投入してみてください。
