🏠 ホーム › 第3部 抽象化された学び › なぜ 42 はこの課題を出す?
なぜ 42 はこの課題を出すのか?
このページは何?
NetPractice の出題意図を憶測する ページ。 なぜ 10 個のブラウザパズルを 42 は新卒カリキュラムに入れたのか、何を学んで欲しいのかを考察します。
💡 最重要メッセージ
42 が伝えたいこと
「ネットワークは魔法ではない」。
あなたが普段 ssh、ping、curl を実行するとき、裏で起きていることは
極めて単純な「町内の住所を見て、同じなら直送、違えば郵便局へ」というルール の積み重ねに過ぎない。
その「単純さ」を体で覚えてほしい。
🎯 憶測される出題の狙い(5 つ)
狙い 1: 「ネットワーク = 魔法」という思い込みを壊す
入学前の多くの人のイメージ
42 が学生に身につけてほしい感覚
脱・謎技術
「Wi-Fi が繋がらない」を 「DHCP でアドレスが取れてない」「デフォルトゲートウェイが違う」 と 分解できる人は、エンジニアとして一段強い。それを身につけるのが NetPractice。
狙い 2: 抽象概念を「触れる」形で理解させる
本で読むだけ だと「/24 は 254 アドレス」のような知識はすぐ忘れる。 自分で設定して、goal が赤→緑 に変わる体験 をすると身体感覚として残る。
flowchart LR
A[教科書を読む] --> B[頭で理解したつもり]
B -.->|1ヶ月後| C[忘れる]
D[NetPractice で手を動かす] --> E[失敗する]
E --> F[なぜ?と考える]
F --> G[修正して goal 緑]
G -.->|半年後でも| H[覚えている]
style A fill:#FFCDD2
style C fill:#FFCDD2
style D fill:#E3F2FD
style G fill:#C8E6C9
style H fill:#C8E6C9
これは心理学で言う 「能動的想起 (active recall)」 と 「手続き記憶」 の組み合わせ。 42 はこれを全課題で徹底している。NetPractice はその ネットワーク版。
狙い 3: 「双方向性」という普遍概念を叩き込む
狙われる誤解
「通信は一方通行で成立する」 という素朴な誤解。
たとえば: - 「メッセージを送った」→ 届いたはず? - 「API を叩いた」→ 処理されたはず? - 「認証情報を送った」→ ログインできたはず?
全て、レスポンスが返って来なければ成立していない。 NetPractice Level 6 以降で Internet 側の戻り route を手で書かされる のは、 この感覚を徹底的に叩き込むため。
将来どこで効いてくるか
| 場面 | 双方向性の問題 |
|---|---|
| API 設計 | request だけでなく response も設計する |
| DB レプリケーション | primary → replica だけでなく health check の戻り |
| メッセージキュー | enqueue と ack の両方 |
| 分散システム | RPC の往復 + retry + timeout |
「return path を意識するか否か」 は、シニアエンジニアと新卒の判別ポイントですらある。
狙い 4: 制約の中での設計力を鍛える
NetPractice の各レベルは 「何かが固定されている」 問題。 完全に自由な設計問題ではない。
なぜ制約が多い方が良い訓練になるか
制約は学びの加速装置
完全な自由度で「好きに設計してください」と言われると、 初心者は 何でもできてしまう から何も学べない。 制約があると「この部品は変えられない、でもゴールは達成したい」と 限られた選択肢の中で最適解を探す 思考が鍛えられる。
これは実務で常に起きる:
- レガシーコードの API シグネチャは変えられない
- 使えるデータベースが決まっている
- クラウドの予算枠がある
- 納期まであと 2 週間
制約の中でどう工夫するか、が実務の本質。NetPractice はその筋トレ。
狙い 5: プロトコル・レイヤーの概念を染み込ませる
OSI 参照モデルを教科書で読むと「7 層」「物理層」「データリンク層」… とにかく 言葉が硬くて抽象的。
NetPractice は L2 (スイッチ) と L3 (ルータ) を 物として操作させることで、「層って何?」 を体で覚えさせる。
将来、学生が: - TCP/IP スタックを読む → L3/L4 がすっと入る - VPN を設定する → トンネル内の層構造が見える - トラブルシューティングする → どの層の問題か切り分けられる
という 「層の感覚」 を持っているかが分かれ道になる。
🔑 NetPractice ならではの「見える化」
教科書では隠されている、普段のネット利用では見えない次のものを、 パズル画面で可視化 してくれる:
| 見えにくいもの | NetPractice での見え方 |
|---|---|
| サブネットマスクの働き | 1 ビットずつ表示される 2 進数 |
| ルーティングの判断 | 「この宛先ならここへ」という表 |
| 帰り道の存在 | Internet 側の route 設定欄 |
| サブネット境界 | ブロック違うと赤くなる |
| ルータの各口が別サブネット | 口ごとの IP/Mask 入力欄 |
普段なら OS や機器が勝手にやってくれることを、強制的に自分で書かされる。 これが NetPractice の教育的価値の核心。
💬 「NetPractice は簡単」と言う先輩への反論
「あんなのサブネット計算できれば秒で終わる」と言う人がいる。 確かに計算自体は電卓 1 個あれば瞬殺。
しかし、NetPractice で 本当に問うているのはアルゴリズムではなく、直感:
- 問題を見て 5 秒で「これは /25 に揃える問題」と分かる
- 赤い goal を見て 10 秒で「帰り道が足りない」と分かる
- 複雑なトポロジーを 30 秒で頭の中で分解できる
この 「パッと見える力」 は計算力ではなく 反復とメタ認知 で鍛えられる。 NetPractice を 10 回解いた人と、一度も触っていない人では、 実機トラブル時の反応速度が 10 倍違う はず。
🎓 評価で問われるのもここ
ディフェンスで聞かれる:
- 「なぜこの値なの?」(= 理解の言語化)
- 「マスクが /25 と /26 で混ざったらどうなる?」(= 制約違反を想像する力)
- 「Internet が 1 つの route しか持てなかったら?」(= 設計の柔軟性)
設定ファイルを提出するだけなら AI でもできる。 でも 口頭で説明できる = 自分の中で言語化できている = 本当に理解している。
📝 まとめ
NetPractice の本当の目的
- ネットワークの脱・魔法化(単純な部品の組み合わせだと体感させる)
- 抽象概念の手続き記憶化(触って学んで忘れない)
- 双方向性の刷り込み(request だけでなく response も設計)
- 制約下の設計訓練(実務で必須の筋力)
- レイヤー感覚の育成(L2 vs L3 を身体で覚える)
これを踏まえて問題を解くと、「あ、この固定値はヒントか」 「帰り道はどうする?」 と意図的に気づけるようになる。
▶️ 次に読むページ
他分野に応用できる考え方 — ネットワーク以外でも使える思考パターン