この節は LLM を活用して執筆しています
本節の本文は LLM(大規模言語モデル)を活用して執筆しています。 技術的な内容は執筆者が検証していますが、誤りに気付かれた際は リポジトリの Issue やプルリクエストでご指摘いただけると助かります。
執筆に使用したモデル: Claude Opus 4.7
プログラムとは何か
プログラム(Program)とは、コンピュータに実行してほしい処理を、決められた形式で書いたものです。ひとことで言えば、コンピュータへの命令の集まりです。
私たちはコンピュータに、たとえば次のようなことをさせられます。
- 画面に文字を表示する
- 数値を計算する
- 条件に応じて処理を変える
- 同じ処理を何度も繰り返す
- ファイルを読み書きする
- インターネットを通じてデータを送受信する
ただし、これらをコンピュータが自分で考えて行っているわけではありません。コンピュータは、計算や通信を非常に高速にこなせる機械ですが、自分で目的を決めて行動することはできません。
「今日は天気がよいから写真を整理しよう」とは考えてくれないのです。人間があらかじめ「このデータを読み込む」「この条件ならこうする」「結果を画面に表示する」と、動き方を具体的に決めておく必要があります。その指示をまとめたものが、プログラムです。
プログラムは「手順書」である
プログラムは、コンピュータに作業をさせるための手順書だと考えると、イメージしやすくなります。
身近な手順書といえば、料理のレシピです。レシピは、手順を正しい順番で書くことで、誰が作っても同じ料理ができるようにしたものです。
順番を間違えればうまくいきません。水を火にかける前にパスタを入れても、思ったようにはゆで上がらないのです。プログラムでも同じように、順番と正確さが結果を左右します。
さらに大切なのが、あいまいさをなくすことです。人間同士なら「いい感じにしておいて」「だいたい半分くらい」でも通じますが、コンピュータには伝わりません。
- 「いい感じ」とは、具体的にどうすることか
- 「半分」とは、数値としてどの範囲か
こうしたあいまいな指示を、はっきりした手順や条件に直す必要があります。プログラミングとは、頭の中の「やりたいこと」を、コンピュータが実行できるくらい具体的な手順に分解していく作業でもあるのです。
入力・処理・出力
多くのプログラムは、何らかの情報を受け取り、それを加工し、結果を返します。受け取る情報を入力、行う作業を処理、結果として出すものを出力と呼びます。
たとえば、天気アプリやネットショッピングの検索も、同じ枠組みで考えられます。
| 例 | 入力 | 処理 | 出力 |
|---|---|---|---|
| 電卓 | 1 + 2 | 1 と 2 を足す | 3 を表示する |
| 天気アプリ | 現在地 | その地域の天気を取得する | 今日の天気を表示する |
| 商品検索 | キーワード | 条件に合う商品を探す | 検索結果を表示する |
もちろん、結果を必ず画面に表示するとは限りません。ファイルに保存したり、別のコンピュータへ送ったりすることもあります。それでも、「何を受け取り」「何を行い」「何を出すのか」を考えることは、プログラムを理解する第一歩になります。
身の回りにあるプログラム
「プログラム」は専門家だけのものではありません。私たちはすでに、多くのプログラムに囲まれて暮らしています。
- スマートフォンのアプリ:メッセージの送受信、写真の撮影・加工、地図の経路案内
- Web サイト:ニュースの表示、商品の検索やカート、SNS の投稿やいいね
- ゲーム:キャラクターの操作、敵の出現、スコアの計算
- 家電:電子レンジの加熱、洗濯機の洗い・すすぎ・脱水、エアコンの温度調整
このほか、駅の自動改札、セルフレジ、銀行 ATM、信号機なども、すべてプログラムで動いています。プログラムは、現代の生活を支える、とても身近な存在なのです。
アプリ・ソフトウェア・プログラムの違い
プログラムと似た言葉に、アプリやソフトウェアがあります。日常では似た意味で使われますが、指している範囲が少しずつ異なります。
| 言葉 | 指すもの |
|---|---|
| プログラム | コンピュータへの命令そのもの |
| ソフトウェア | プログラムに加え、データ・設定・画像・画面構成などを含めた仕組み全体 |
| アプリ | ユーザーが特定の目的のために使うソフトウェア(メモ・地図・ゲームなど) |
最初から厳密に区別する必要はありません。本書では、「プログラム=コンピュータを動かすための命令」と理解しておけば十分です。
プログラムを支える4つの基本
プログラムは「命令を上から順に実行するだけ」ではありません。ほとんどのプログラムには、次の4つの考え方が含まれています。
1. 順番に実行する
プログラムは、基本的に書かれた順番に処理を実行します。だからこそ、順番が重要です。
下の順番では、表示する時点でまだ名前もあいさつ文もないため、正しい結果になりません。
2. 条件によって処理を変える(条件分岐)
条件に応じて処理を切り替えることを、条件分岐と呼びます。
ログイン画面のパスワード確認、ネットショップの在庫判定、ゲームの体力チェックなど、身の回りの多くのシステムで使われています。プログラムが「賢く」見えるのは、このように状況に応じて動きを変えられるからです。
3. 同じ処理を繰り返す(繰り返し・ループ)
同じ処理を何度も実行することを、繰り返し(ループ)と呼びます。
繰り返しがなければ、100個の商品を表示するのに似た命令を100回書くことになります。ループを使えば、「商品がある間だけ表示を繰り返す」と一度書くだけで済みます。
ただし、終わる条件を間違えると、処理がいつまでも終わらない無限ループになります。繰り返しを書くときは、「いつ始めるか」だけでなく「いつ終わるか」も必ず考えます。
4. データを扱う
プログラムは、名前・年齢・点数・金額・日付・画像など、さまざまなデータを扱います。データとは、プログラムが処理する情報のことです。
こうしたデータをもとに、一覧を表示したり、在庫を確認したり、合計金額を計算したりします。プログラムを書くときは、命令だけでなく、「どんなデータを、どこから受け取り、どう処理して、どこへ出すのか」を考えることが大切です。
アルゴリズム ― 問題を解く手順
プログラムを学ぶと、アルゴリズム(Algorithm)という言葉が出てきます。アルゴリズムとは、問題を解決するための手順や考え方のことです。
たとえば「数値 3, 8, 2, 10, 5 の中から一番大きい数を探す」という問題を考えます。人間はひと目で 10 だとわかりますが、コンピュータには手順をはっきり示す必要があります。
この手順がアルゴリズムであり、これを Java などの言語で書いたものがプログラムです。
料理でいきなり手を動かさず先にレシピを確認するように、プログラミングでも、いきなりコードを書くより先に「どんな手順で解くか」を考えると、ぐっと書きやすくなります。
バグとデバッグ
プログラムが期待どおりに動かない原因を、バグ(Bug)と呼びます。計算結果が違う、ボタンが反応しない、途中で止まる ―― こうしたものはすべてバグです。
バグは珍しいものではありません。初心者だけでなく、経験豊富なプログラマーでも日常的に出します。大切なのは、バグを出さないことよりも、出たときに原因を見つけて直せることです。
バグを見つけて修正する作業を、デバッグ(Debug)と呼びます。プログラムは、次の流れを何度も繰り返しながら、少しずつ完成へ近づけていきます。
補足: エラーは「失敗」ではない
初めてのうちは、画面に出る見慣れないエラーメッセージに不安を覚えるかもしれません。しかしエラーは、コンピュータが「ここに問題があります」と教えてくれる合図です。あわてず、「どこで」「何が原因と書かれているか」「直前に何を変えたか」を確認しましょう。
プログラミングとソースコード
プログラムを書く作業をプログラミング(Programming)、それを行う人をプログラマー(Programmer)と呼びます。そして、コンピュータに処理を伝えるために使う言葉を、プログラミング言語(Programming Language)と呼びます。
プログラミング言語には、Java・JavaScript・Python・C・Go・Kotlin など、さまざまな種類があります。書き方や得意分野は異なりますが、「コンピュータに処理を実行させるために使う」点は共通です。本書で学ぶ Java も、その一つです。
人間がプログラミング言語で書いたプログラムを、ソースコード(Source Code)と呼びます。 Java では、たとえば次のように書きます。
これは、画面に「こんにちは」と表示するプログラムです。最初は記号や英単語が多くて難しく見えますが、いま注目してほしいのは、この中に
という「文字を表示する命令」が含まれている、ということだけです。細かい意味は、本書を読み進めながら少しずつ理解していけば大丈夫です。
なお、人間が書いたソースコードは、そのままではコンピュータが実行できるとは限りません。コンピュータが最終的に扱うのは 0 と 1 だけなので、実行できる形に変換する必要があります。その仕組みは、後の「Java の動く仕組み」の節でくわしく学びます。
写経 ― まねて学ぶ
プログラミングの学習では、写経という方法がよく使われます。ここでいう写経とは、見本のコードを、コピーではなく自分の手で1文字ずつ入力することです。
ただ読むだけでは気づけないことが、実際に打ってみると見えてきます。
- 英単語のつづりや、大文字・小文字が決まっていること
{ }" ";といった記号に意味があること- 記号が1つ欠けるだけで動かなくなること
プログラムは、日本語の文章よりずっと正確さが求められます。写経をすると、この正確に入力する感覚が身につき、コードの形そのものにも慣れていきます。
そして、写経をしたら必ず実行しましょう。
正しく動いたら、"こんにちは" を自分の名前に変えるなど、少しだけ書き換えてみます。「" " の中を変えると表示が変わる」と自分で確かめることで、理解はぐっと深まります。
写経はゴールではなく、入口です。まずは見本をまねるところから始め、そこから少しずつ、自分で考えて書ける範囲を広げていきましょう。
よいプログラムとは
プログラムは、ただ動けばよいわけではありません。まずは「正しく動くこと」が目標ですが、実際の開発では次の点も大切にされます。
- 正しく動く:目的に対して期待どおりの結果が得られる
- 読みやすい:人間が読んで理解しやすい(自分も他人も、後から読む)
- 変更しやすい:あとからの機能追加や条件変更に対応しやすい
- 無駄が少ない:時間やメモリを使いすぎない
- 安全である:予期しない入力(文字・マイナス値・空欄など)でも誤動作しない
初心者のうちは、すべてを一度に満たそうとしなくて大丈夫です。まずは正しく動くことを目指し、慣れてきたら少しずつ読みやすさや安全性も意識していきましょう。
最初から完璧に理解する必要もありません。「このコードを書くと画面に文字が出る」という理解から始め、動かしながら少しずつ理解を積み重ねていけばよいのです。
まとめ
この節では、プログラムとは何かを学びました。
- プログラムとは、コンピュータへの命令の集まりであり、作業の手順書である
- コンピュータは自分で目的を決められないため、人間が具体的に手順を指示する必要がある
- 多くのプログラムは「入力 → 処理 → 出力」という流れで考えられる
- プログラムには「順番・条件分岐・繰り返し・データ」という4つの基本がある
- アルゴリズムとは問題を解く手順であり、それを言語で書いたものがプログラムである
- 誤りをバグ、それを直す作業をデバッグと呼ぶ。エラーは原因を教えてくれる合図である
- 人間が書いたプログラムをソースコードと呼び、本書では Java で書く
- 写経は、見本を自分の手で写し、実行し、少し変えてみることで理解を深める学習法である
- よいプログラムには、正しさに加えて、読みやすさ・変更しやすさ・安全性も求められる
プログラミングとは、やりたいことを整理し、具体的な手順に分解し、コンピュータが実行できる形で表現する作業です。
次の節では、プログラムを実行する「コンピュータ」が、どのような仕組みで動いているのかを見ていきます。
Footnotes
-
Encyclopædia Britannica, "al-Khwārizmī | Biography, Accomplishments, & Facts," https://www.britannica.com/biography/al-Khwarizmi。アル・フワーリズミー(およそ西暦780–850年)はバグダードの「知恵の館」で活動した数学者で、「algorithm」の語源となった。 ↩
-
Encyclopædia Britannica, "Algebra | History, Definition, & Facts," https://www.britannica.com/science/algebra。「algebra」は彼の著書 Al-Kitāb al-mukhtaṣar fī ḥisāb al-jabr wal-muqābala(830年頃)の題名にある「al-jabr」に由来する。 ↩
-
Thomas A. Edison Papers (Rutgers University), "Letter from Thomas Alva Edison to Theodore Puskas, November 13, 1878," https://edison.rutgers.edu/。エジソンは1878年の手紙の中で機械の不具合を指して「bug」という語を用いている(Hughes, American Genesis, 1989 など複数の研究で言及)。 ↩
-
Smithsonian National Museum of American History, "Log Book With Computer Bug," https://americanhistory.si.edu/collections/object/nmah_334663。1947年9月9日、Harvard Mark II の中継器に挟まっていた蛾が技術者によって作業日誌(log book)に貼り付けられ、"First actual case of bug being found" と記された。日誌は同博物館に所蔵されている。 ↩