プログラミングとは何か
プログラム=コンピュータへの指示を書いたもの。プログラミング=プログラムを作成する行為。
身近なアナロジー: レシピ
料理のレシピをイメージしてください。「玉ねぎをみじん切りにする → 油で3分炒める → 塩小さじ1を加える」のように、手順を順番に、具体的な数値つきで書きます。プログラムも全く同じ — あいまいさを許さない指示の集まりです。
レシピ 🍳
材料 → 手順 → 完成品
省略すると味が変わる
プログラム 💻
入力 → 処理 → 出力
省略するとエラー
ロボットへの命令 🤖
「3歩進んで右を向く」のように
数値と向きを明示
身の回りはプログラムだらけ
実はあなたの周りの多くのものがプログラムで動いています。
- スマホ / パソコン — OSもアプリもプログラム
- 電子レンジ・炊飯器 — 「何分温める」「おかゆモード」の動作を内部でプログラム化
- 信号機・自動ドア — センサー入力に応じた制御プログラム
- ATM・券売機・改札 — 金銭・認証の厳密な処理
- ゲーム・アニメ制作 — 物理演算・描画・AI
コンピュータの4つの特徴
🤔 考えない
教えた通りしかしない(空気は読まない)
だからこそプログラミングが必要: コンピュータに「あいまいでない指示」を書く技術がプログラミング。人間同士なら通じる「あっちに行って」「いい感じにして」は一切通じません。
人間 vs コンピュータ ― 指示の違いを体験
なぜC言語を学ぶのか?
Python や JavaScript が人気な今でも、C言語を学ぶ意味は大きい理由を挙げます。
- コンピュータの仕組みが見える — メモリ・ポインタ・型など「裏側」を隠さない
- 速度が必要な場面で使われている — OS (Linux, macOS), データベース, ゲームエンジン, 組込み機器
- 他の言語の基礎 — C++, Java, JavaScript, Python の文法は C を下敷きにしている
- 歴史が長い — 1972年生まれ。50年以上使われている言語で資料が豊富
- 大学の授業で採用されやすい — 試験に出る ≠ 古い、ではない
他言語からCに来た人へ: Pythonのように「いい感じに」動いてくれる機能がなく、ポインタ・メモリ管理など自分で管理することが増えます。最初は大変ですが、これを超えると他の言語でも何が起きているか理解できるようになります。
コンパイル型とインタプリタ型
プログラミング言語は大きく2種類の実行方式に分かれます。
📘 コンパイル型
事前に翻訳して実行ファイルを作る
実行: 速い
代表例: C, C++, Rust, Go
📗 インタプリタ型
実行しながら逐次翻訳する
実行: 遅め、書くのは楽
代表例: Python, JavaScript, Ruby
C言語はコンパイル型です。書いたコードは一度 コンパイラ に渡して実行ファイル(a.out や hello.exe)に変換し、それを実行します。
料理で例えると:
コンパイル型 = 事前にレシピを日本語から英語に翻訳 → 英語のレシピを使って調理
インタプリタ型 = 翻訳家が横について、読み上げながらその場で通訳