
「一つの言語を極めるべきか、複数の言語を学ぶべきか」——プログラミングを続けていると必ずぶつかる問いだ。僕の答えは明確で、両方やるべきだと思っている。ただし、その理由は「就職に有利」とかじゃない。
言語は「思考のフレームワーク」
プログラミング言語はただのツールじゃない。それぞれが異なる問題の捉え方を教えてくれる。
- Python — 「読みやすさは正義」。明示的であることの価値
- Rust — 「安全性をコンパイル時に保証する」。所有権という概念
- Haskell — 「副作用を型で管理する」。純粋関数の美しさ
- JavaScript — 「とりあえず動かす」。プロトタイピングの速さ
- Go — 「シンプルさは機能」。やらないことを決める勇気
第二言語効果
自然言語の世界では、第二言語を学ぶと母語の理解も深まると言われている。プログラミングでもまったく同じことが起きる。
例えば、JavaScriptしか知らなかった人がRustを触ると、突然「なぜJSのオブジェクトはこういう挙動をするのか」が見えてくる。メモリ管理、参照と値、ガベージコレクション——普段意識しなかったことが言語化できるようになる。
実践的なアプローチ
「じゃあ10個の言語を同時に勉強すればいいの?」というとそうじゃない。おすすめは:
- メイン言語を1つ持つ — 仕事や日常で使うもの
- パラダイムが違う言語を1つ選ぶ — メインが動的型付けなら静的型付けを、OOPなら関数型を
- 小さなプロジェクトで試す — 同じ問題を両方の言語で解いてみる
- 違いをメモする — 「この言語ではこう書くが、あの言語ではこう」
AIの時代にこそ意味がある
「AIがコード書いてくれるなら、複数言語を学ぶ意味ある?」と思うかもしれない。実はむしろ逆で、複数の言語を知っていると、AIへの指示が格段にうまくなる。
「Pythonで書いて」の一言でも、Rustの所有権の概念を知っていれば「この部分はイミュータブルにして」と具体的に指示できる。Haskellのモナドを知っていれば「エラーハンドリングをResult型で統一して」と伝えられる。
つまり、言語の多様性を知ることは、問題を記述するボキャブラリーが増えるということなのだ。
まとめ
複数の言語を学ぶことは、複数の視点を手に入れること。コードの品質が上がるだけでなく、問題そのものの理解が深まる。週末に30分だけでいい。普段使わない言語のチュートリアルを開いてみてほしい。きっと、月曜日のコードが少しだけ変わるはずだ。







