- 技術 💻
プログラミングとは|意味・仕組み・言語の種類を3言語の実行で解説
結論
プログラミングとは、コンピューターにさせたい仕事を、決まった言葉で順番に書いて伝えることです。書いたものをプログラムと呼びます。
この記事でわかること
- 身近な例5つと、動く仕組みの図・言語12種の早見表
- 同じ処理をPython・JS・Javaで書いて実行した出力
- 初心者がよく出すエラー原文14件と直し方
コンピューターは、自分で考えて動くことはできません。人が「何を・どの順番で・どんな条件のときに」するかを、プログラミング言語という決まった書き方で書くと、コンピューターはそのとおりに動きます。
flowchart TD
A[人がしたいこと<br>点数を合計したい] --> B[プログラミング<br>言語で手順を書く]
B --> C[プログラム<br>ソースコード]
C --> D[機械語などに変換<br>コンパイラ・インタプリタ]
D --> E[CPU が実行<br>合計 355 と表示]
急いでいる人向けに、よく調べられることの答えを先にまとめます。
| 知りたいこと | 答え | 詳しい節 |
|---|---|---|
| プログラミングとは | コンピューターへの指示を書くこと | プログラミングとは |
| プログラムとの違い | 書いた指示書がプログラム、書く作業がプログラミング | プログラミングとは |
| 身近な例 | 自動ドア・炊飯器・自動販売機・スマホのアプリ | 身近な例 |
| できること | Web サイト・アプリ・ゲーム・作業の自動化・AI | できること |
| 言語の種類 | Python・JavaScript・Java・C・Go など | 言語の早見表 |
| 基本の考え方 | 順次・分岐・反復と、変数・関数 | 基本の考え方 |
| 始め方 | ブラウザか Python で1行書いて動かす | 始め方 |
| エラーが出たら | 種類・メッセージ・行番号の順に読む | エラーの読み方 |
確認環境:Ubuntu 24.04.4 LTS。点数の合計・合格判定をする同じ処理を、Python 3.11.15、Node.js v22.22.2、OpenJDK 21.0.10(javac・java)で書いて実行し、C(GCC 13.3.0)と Go 1.24.7 でも同じ結果になることを確かめました。最初の1行は、Python・Node.js と OpenJDK 25.0.4.1 の簡単な書き方(JEP 512)で、ブラウザで動く JavaScript は Chromium 141 のヘッドレス版で実行しました。エラーの文言は、初心者が書きやすい誤りを実際に入れて出したものです。言語の版・インストール方法は Python・Node.js・OpenJDK・Visual Studio Code の公式ドキュメント、言語の利用の割合は Stack Overflow Developer Survey 2026、学校教育での位置づけは文部科学省「小学校プログラミング教育の手引(第三版)」で確かめました(確認日 2026年10月23日)。
本記事の内容は、ご自由にお使いください。
ご利用の際は、出典として本ページへのリンクを記載いただけますようお願いします。
(記載例)出典:株式会社RJC「プログラミングとは|意味・仕組み・言語の種類を3言語の実行で解説」
プログラミングとは(意味・プログラムとの違い)
この節では、プログラミングという言葉の意味と、「プログラム」「プログラミング言語」との違いが分かります。
プログラミング(programming)とは、コンピューターにさせたい処理を、プログラミング言語で順番に書いていく作業のことです。 文部科学省の「小学校プログラミング教育の手引(第三版)」は、コンピューターは人が命令を与えることで動き、「端的に言えば、この命令が『プログラム』であり、命令を与えることが『プログラミング』です」と説明しています。
英語の program は、もともと「前もって(pro)書いたもの(gram)」という意味の言葉です。運動会の「プログラム」が、何をどの順に行うかを前もって書いた表であるのと同じように、コンピューターのプログラムも「何をどの順に行うか」を前もって書いた指示書です。
| 言葉 | 意味 | たとえ(料理) |
|---|---|---|
| プログラム | コンピューターへの指示を順番に書いたもの | レシピ |
| プログラミング | プログラムを書く作業 | レシピを書くこと |
| プログラミング言語 | プログラムを書くための決まった言葉 | レシピに使う言葉・書式 |
| ソースコード(コード) | 人がプログラミング言語で書いた文字 | レシピの文章そのもの |
| プログラマー | プログラムを書く人 | レシピを書く人 |
| アプリ・ソフトウェア | プログラムを集めて使えるようにしたもの | 料理の本 |
人への指示とコンピューターへの指示の違い
「テストの合計点を出して」と頼む
想像で補わないぶん、書いたとおりに何万回でも間違えずに、速く動く
コンピューターは書かれたことしかしません。 1文字でも書き方の決まりから外れると、エラーで止まります。逆に、正しく書けば、同じ仕事を何度でも、疲れずに、同じ結果でくり返します。この「決まりどおりに細かく手順を書き、うまくいかなければ直していく」考え方を、文部科学省の手引は「プログラミング的思考」と呼んでいます。
プログラミングの身近な例(自動ドア・家電・アプリ)
この節では、毎日使っているもののどこにプログラムが入っているのかが分かります。
1自動ドア
センサーが人を感じたら開け、人がいなくなって数秒たったら閉める。「もし〜なら」の判断をくり返している。
2炊飯器・エアコン
温度をはかり、決まった温度になるまで加熱する・止める。タイマーの時刻になったら動き始める。
3自動販売機
文部科学省の手引によると、入れた硬貨の種類を見分け、在庫や温度を管理するなどの判断をコンピューターが自動で行っている。
4スマホのアプリ
地図・メッセージ・ゲーム・ネットショップ。画面を押すたびに、プログラムが動いて表示を変える。
5電車・銀行・電気
改札、ATM、電気や水道の管理など、生活を支える仕組みの多くもプログラムで動いている。
自動ドアをプログラムにしてみる
自動ドアの動きを、言葉で書くと次のとおりです。
- センサーを1秒ごとに見る
- 人がいたら、ドアを開けて「閉めるまでの残り秒数」を3にする
- 人がいなくて、ドアが開いていたら、残り秒数を1減らす
- 残り秒数が0になったら、ドアを閉める
これを Python で書き、センサーの値を8秒分用意して動かしました。
# 自動ドアのプログラム(センサーの値を1秒ごとに読む、のつもり)
sensor = [False, True, True, False, False, False, True, False]
OPEN_SECONDS = 3 # 人がいなくなってから閉めるまでの秒数
door = "閉"
wait = 0
for t, person in enumerate(sensor):
if person: # 人がいる
door = "開"
wait = OPEN_SECONDS # 待ち時間をリセット
elif door == "開": # 人はいないがドアは開いている
wait = wait - 1
if wait == 0:
door = "閉"
print(f"{t}秒 センサー={'人' if person else '-'} ドア={door}")
0秒 センサー=- ドア=閉
1秒 センサー=人 ドア=開
2秒 センサー=人 ドア=開
3秒 センサー=- ドア=開
4秒 センサー=- ドア=開
5秒 センサー=- ドア=閉
6秒 センサー=人 ドア=開
7秒 センサー=- ドア=開
人がいなくなった3秒目から数えて、5秒目に閉まりました。 本物の自動ドアでは、センサーの値を読む部分とモーターを動かす部分が機械につながっていますが、「見る→判断する→動かす」をくり返す考え方は同じです。
プログラムが動く仕組み(入力・処理・出力と機械語)
この節では、書いたプログラムがコンピューターの中でどう実行されるのかが分かります。
プログラムは「入力→処理→出力」の形で動きます。 自動ドアなら、入力はセンサー、処理は開けるか閉めるかの判断、出力はモーターです。計算をしているのは CPU(中央処理装置)という部品で、計算の途中の値はメモリに置かれます。
flowchart TD
I[入力<br>キーボード・センサー・ファイル] --> P[処理 CPU<br>計算と判断]
M[(メモリ<br>変数の値を置く)] <--> P
P --> O[出力<br>画面・モーター・ファイル]
ただし、CPU が直接読めるのは、0 と 1 の並びでできた「機械語」だけです。人が書いた total = total + s のような文は、そのままでは CPU に伝わりません。そこで、プログラムを実行できる形に変換する仕組みが間に入ります。
total + s(2つの数を足す)を C 言語で書き、機械語に変換した結果を表示しました(GNU objdump 2.42)。
4: 8d 04 37 lea (%rdi,%rsi,1),%eax
7: c3 ret
8d 04 37 が「2つの値を足す」、c3 が「呼び出し元に戻る」という CPU への命令です。人が機械語を直接書くのはとても大変なので、プログラミング言語で書いて、道具に変換してもらいます。Python は、同じ1行を「バイトコード」という中間の形に変えてから実行していました。
1 2 LOAD_NAME 0 (total)
4 LOAD_NAME 1 (s)
6 BINARY_OP 0 (+)
10 STORE_NAME 0 (total)
コンパイル型(先にまとめて変換)
実行の前に、コンパイラが全体を変換する
変換の段階で書き方の誤りが見つかる
C・Go・Java(バイトコードに変換)など
インタプリタ型(実行しながら変換)
ファイルを渡すとすぐに動く
1行ずつ試しやすく、はじめての人が学びやすい
Python・JavaScript・Ruby など
変換の流れ(gcc の4つの段階)や、6つの言語で同じプログラムを変換してできたファイルの中身は、関連記事「コンパイルとは|意味・インタプリタとの違いを6言語の実行で解説」で扱っています。
プログラミングでできること
この節では、プログラミングで何を作れるのかと、それぞれでよく使われる言語が分かります。
| 作るもの | 例 | よく使われる言語 |
|---|---|---|
| Web サイトの画面 | ボタン・メニュー・入力のチェック | JavaScript・TypeScript(HTML・CSS と一緒に) |
| Web サービスの裏側 | ログイン・注文・検索 | Java・Python・PHP・Ruby・Go・JavaScript |
| スマホのアプリ | iPhone・Android のアプリ | Swift・Kotlin・Dart |
| 業務システム | 銀行・在庫・勤怠の管理 | Java・C#・SQL |
| 作業の自動化 | ファイルの整理・集計・定期的な処理 | Python・シェル(Bash など) |
| データ分析・AI | グラフ・予測・機械学習 | Python・SQL |
| ゲーム | スマホ・家庭用・PC のゲーム | C#・C++ |
| 機械の制御 | 家電・自動車・ロボット | C・C++ |
1つの言語で何でも作れるわけではなく、作るものによって向いている言語が違います。 次の節で、言語ごとの特徴を早見表にしました。
プログラミング言語の種類と特徴の早見表
この節では、よく名前を聞くプログラミング言語が、それぞれ何を作るのに使われ、どんな特徴があるのかが比べられます。
| 言語 | 主に作るもの | 特徴 | 実行の方式 |
|---|---|---|---|
| Python | 自動化・データ分析・AI・Web | 書き方が短く読みやすい。字下げに意味がある | インタプリタ |
| JavaScript | Web の画面・Web サービス | ブラウザだけで動かせる。Node.js でサーバーも | インタプリタ(JIT) |
| TypeScript | 大きな Web の画面・サービス | JavaScript に型を足した言語 | JavaScript に変換 |
| Java | 業務システム・Android | 型が厳しく大きなシステム向き | バイトコードに変換 |
| C | 機械の制御・OS | 速く、メモリを直接扱う | コンパイル |
| C++ | ゲーム・速さが必要なソフト | C に機能を足した言語 | コンパイル |
| C# | 業務アプリ・ゲーム(Unity) | Microsoft の .NET で動く | バイトコードに変換 |
| Go | Web サービスの裏側・ツール | 1つの実行ファイルにできる | コンパイル |
| PHP | Web サービスの裏側 | WordPress などの CMS で使われる | インタプリタ |
| Ruby | Web サービスの裏側 | まつもとゆきひろ氏が作った言語 | インタプリタ |
| Swift | iPhone・Mac のアプリ | Apple の言語 | コンパイル |
| Kotlin | Android のアプリ・サーバー | Java と一緒に使える | バイトコードに変換 |
HTML と CSS は、プログラミング言語ではなく、画面の構造と見た目を書く言葉です。 MDN(Web 技術の解説サイト)は、HTML を内容に構造を与えるマークアップ言語、CSS を見た目を与えるスタイルの言語、JavaScript を動きを与えるスクリプト言語(プログラミング言語)と説明しています。SQL はデータベースに頼みごとをするための言葉で、データベースの記事で扱う分野です。
よく使われている言語の割合
Stack Overflow Developer Survey 2026 の「Most popular technologies」で、言語の部分の上位は次のとおりでした(2026年10月23日時点の公開ページ)。
1人が複数の言語を答えられる調査なので、合計は100%になりません。エンジニアの多くは、1つの言語だけでなく、JavaScript と SQL と Python のように複数を組み合わせて使っています。
同じ処理を3言語で書いて比べる(Python・JavaScript・Java)
この節では、「合計・条件分岐・繰り返し」をする同じ処理を3つの言語で書いた実物と、その出力が比べられます。
5人のテストの点数を1人ずつ取り出し、合計に足しながら、60点以上なら「合格」、それ以外なら「不合格」と表示し、最後に合計と平均を出すプログラムです。
Python
scores = [72, 45, 88, 90, 60] # 5人のテストの点数
total = 0
for s in scores: # 繰り返し:1人ずつ取り出す
total = total + s # 合計に足す
if s >= 60: # 条件分岐:60点以上か
print(s, "点:合格")
else:
print(s, "点:不合格")
print("合計:", total)
print("平均:", total / len(scores))
$ python3 scores.py
72 点:合格
45 点:不合格
88 点:合格
90 点:合格
60 点:合格
合計: 355
平均: 71.0
JavaScript(Node.js)
const scores = [72, 45, 88, 90, 60]; // 5人のテストの点数
let total = 0;
for (const s of scores) { // 繰り返し:1人ずつ取り出す
total = total + s; // 合計に足す
if (s >= 60) { // 条件分岐:60点以上か
console.log(s, "点:合格");
} else {
console.log(s, "点:不合格");
}
}
console.log("合計:", total);
console.log("平均:", total / scores.length);
$ node scores.js
72 点:合格
45 点:不合格
88 点:合格
90 点:合格
60 点:合格
合計: 355
平均: 71
Java
public class Scores {
public static void main(String[] args) {
int[] scores = {72, 45, 88, 90, 60}; // 5人のテストの点数
int total = 0;
for (int s : scores) { // 繰り返し:1人ずつ取り出す
total = total + s; // 合計に足す
if (s >= 60) { // 条件分岐:60点以上か
System.out.println(s + " 点:合格");
} else {
System.out.println(s + " 点:不合格");
}
}
System.out.println("合計: " + total);
System.out.println("平均: " + (double) total / scores.length);
}
}
$ javac Scores.java
$ java Scores
72 点:合格
45 点:不合格
88 点:合格
90 点:合格
60 点:合格
合計: 355
平均: 71.0
空行・コメントも含めた行数です。C(17行)と Go(18行)でも同じ処理を書いて動かし、表示は同じ「合計: 355」になりました。
3言語の書き方の違い
| 比べる点 | Python | JavaScript | Java |
|---|---|---|---|
| 表示 | print() |
console.log() |
System.out.println() |
| 変数を作る | total = 0 |
let total = 0; |
int total = 0;(型を書く) |
| まとまり | 字下げ | { } |
{ } |
| 文の終わり | 改行 | ;(省略できる場面もある) |
;(必須) |
| 実行の前 | なし | なし | javac で変換 |
| 平均の表示 | 71.0 |
71 |
71.0(double にした) |
考え方(くり返して足し、条件で分ける)はどの言語でも同じで、違うのは書き方です。 1つの言語で考え方を覚えると、2つ目の言語は「書き方の対応」を覚えるだけで読めるようになります。
割り算の結果が言語で違う
数の扱いは言語によって違います。7 / 2 を5つの言語で計算しました。
| 言語 | 7 / 2 の結果 |
小数がほしいとき |
|---|---|---|
| Python | 3.5 | そのまま(7 // 2 は 3) |
| JavaScript | 3.5 | そのまま |
| Java | 3 | 7 / 2.0 で 3.5 |
| C | 3 | 7 / 2.0 で 3.5 |
| Go | 3 | 7 / 2.0 で 3.5 |
Java・C・Go では、整数どうしの割り算は小数点以下が切り捨てられます。 上の Java のプログラムで (double) を付けたのはこのためで、付けないと、合計が 356 のときの平均 71.2 も 71 と表示されます。小数の計算で出る小さなずれ(JavaScript の 0.1 + 0.2 が 0.30000000000000004 になる)は、関連記事「浮動小数点数とは|仕組み・誤差・0.1+0.2の理由を4言語で実演」で扱っています。
プログラミングの基本の考え方(順次・分岐・反復・変数・関数)
この節では、どの言語にも共通する5つの考え方と、それぞれを Python で書いて動かした結果が分かります。
プログラムの流れは「順次」「分岐」「反復」の3つの組み合わせで書けます。 これに、値をしまう「変数」と、処理をまとめる「関数」を加えた5つが、最初に覚える考え方です。
flowchart TD
S[順次<br>上から順に実行] --> B{分岐<br>点数が60以上}
B -->|はい| Y[合格と表示]
B -->|いいえ| N[不合格と表示]
Y --> R{反復<br>まだ人が残っている}
N --> R
R -->|はい| B
R -->|いいえ| E[合計を表示]
1順次
書いた順に上から1行ずつ実行される。順番を入れかえると結果が変わる。
2分岐
「もし〜なら A、そうでなければ B」。if・else で書く。
3反復
同じ処理をくり返す。決まった回数なら for、条件が続くあいだなら while。
4変数
値に名前を付けてしまっておく箱。total のように、途中で中身を変えられる。
5関数
処理のまとまりに名前を付けたもの。値を渡すと、結果を返す。
5つを1つのプログラムに入れて動かしました。
# 変数:値に名前を付けて入れておく箱
price = 1200
count = 3
# 順次:上から順に1行ずつ実行される
subtotal = price * count
tax = subtotal // 10
print("小計", subtotal, "税", tax, "合計", subtotal + tax)
# 分岐:条件で処理を分ける
def ticket(age): # 関数:処理に名前を付けてまとめる
if age < 6:
return 0
elif age < 18:
return 500
else:
return 1000
for age in [4, 12, 35]: # 反復:同じ処理をくり返す
print(age, "歳 →", ticket(age), "円")
# 反復(while):条件が成り立つあいだくり返す
n = 1
while n < 100:
n = n * 2
print("2倍をくり返して100を超えた値:", n)
小計 3600 税 360 合計 3960
4 歳 → 0 円
12 歳 → 500 円
35 歳 → 1000 円
2倍をくり返して100を超えた値: 128
| 考え方 | 上のコードでは | よく使う書き方(Python) |
|---|---|---|
| 変数 | price = 1200 |
名前 = 値 |
| 順次 | 小計→税→表示の順 | 上から書く |
| 分岐 | 6歳未満・18歳未満・それ以外 | if・elif・else |
| 反復 | 3人分の料金、2倍のくり返し | for・while |
| 関数 | ticket(age) |
def 名前(引数): と return |
= は「等しい」ではなく「右の値を左の変数に入れる」という意味です。 等しいかどうかを比べるときは == を使います。この違いは、はじめての人がいちばん間違えやすい点の1つで、後のエラーの節に実物があります。if 文・for 文・関数の細かい書き方は、関連記事「Python if文の書き方|elif・elseとand・or・notの条件式」で扱っています。
プログラミングの始め方(環境と最初の1行)
この節では、何を用意して、最初の1行をどこで書いて動かせばよいかが分かります。
最初は、いま使っているパソコンのブラウザか、Python で1行を動かすところから始めます。 高いパソコンや有料のソフトは要りません。
パソコンを用意する
Windows・Mac・Linux のどれでもよい。スマホやタブレットでも学習アプリで文法は学べるが、ファイルを作って動かす練習はパソコンが向いている。
エディタを入れる
コードを書くソフト。Visual Studio Code(VS Code)は Windows・Mac・Linux で使え、公式ドキュメントでは基本の機能はアカウントなしで使える。
言語を入れる
Python は python.org から。JavaScript はブラウザに最初から入っている。Java は JDK を入れる。
最初の1行を書いて動かす
「Hello, World!」と表示するプログラムを書き、ファイルに保存して実行する。
少し変えて動かす
表示する文字・数字・条件を変えて、結果がどう変わるかを見る。わざと誤りを入れてエラーも見ておく。
Python を入れる(2026年10月23日時点)
python.org のダウンロードページでは、2026年10月23日時点の最新版は Python 3.15.1 です。公式ドキュメントでは、Windows は「Python install manager」(python.org か Microsoft Store から入手。2つは同じもの)で入れる方法が推奨されていて、入れたあとはターミナルで python と打つと起動します。以前のフルインストーラー(.exe)は 3.14 で非推奨になり、3.16 からは提供されないと書かれています。
| 版 | 状態(python.org) | サポート終了 |
|---|---|---|
| 3.15 | バグ修正中(2026年10月9日公開) | 2031年10月 |
| 3.14 | バグ修正中 | 2030年10月 |
| 3.13 | セキュリティ修正のみ | 2029年10月 |
| 3.11 | セキュリティ修正のみ | 2027年10月 |
この記事の Python のコードは、3.11.15 で実行した結果を載せています。
最初の1行(Hello, World!)を3言語で動かす
hello.py というファイルに1行を書き、保存して実行しました。
print("Hello, World!")
$ python3 hello.py
Hello, World!
JavaScript(Node.js)は次のとおりです。
console.log("Hello, World!");
$ node hello.js
Hello, World!
Java は JDK 25 から、クラスを書かずに短く書けるようになりました。 JDK 25 の機能一覧にある JEP 512「Compact Source Files and Instance Main Methods」の書き方で、java ファイル名 で直接実行しました。
void main() {
IO.println("Hello, World!");
}
$ java Hello.java (OpenJDK 25.0.4.1)
Hello, World!
同じファイルを JDK 21 で動かすと、まだ試験的な機能だったため、次のエラーで止まりました。使う JDK の版によって書ける形が違います。
Hello.java:1: error: unnamed classes are a preview feature and are disabled by default.
void main() {
^
(use --enable-preview to enable unnamed classes)
1 error
1行ずつ試せる「対話モード」
python3 や node をファイル名なしで起動すると、1行打つたびに結果が返る対話モード(REPL)になります。電卓のように試せるので、書き方を確かめるときに便利です。
$ python3
>>> 1 + 2
3
>>> print("こんにちは")
こんにちは
>>> exit()
ブラウザだけで JavaScript を動かす
何も入れずに試すなら、ブラウザで動く JavaScript が手軽です。次の HTML をメモ帳などで first.html として保存し、ブラウザで開きます。
<!DOCTYPE html>
<html lang="ja">
<head><meta charset="UTF-8"><title>はじめての JavaScript</title></head>
<body>
<p id="out">ここに結果が出ます</p>
<script>
const scores = [72, 45, 88, 90, 60];
let total = 0;
for (const s of scores) {
total = total + s;
}
document.getElementById("out").textContent = "合計は " + total + " 点です";
console.log("合計:", total);
</script>
</body>
</html>
Chromium 141 で開いた後のページの中身を出力すると、<p> の文字が書きかわっていました。
<p id="out">合計は 355 点です</p>
console.log の出力は画面には出ず、ブラウザの開発者ツール(Windows は F12)の「Console」に表示されます。ヘッドレス版の記録にも、13行目の出力として「合計: 355」が残っていました。
つまずきやすい点とエラーの読み方
この節では、はじめての人がよく出すエラーの原文と、その意味・直し方が分かります。
エラーは「どこが・なぜ違うか」をコンピューターが教えてくれるメッセージで、失敗ではありません。 慣れた人も毎日エラーを出し、メッセージを読んで直しています。
Python のよくあるエラー
全角のかっこ(日本語入力のまま打った「(」)を使ったときです。
File "~/demo/e1.py", line 1
print("こんにちは")
^
SyntaxError: invalid character '(' (U+FF08)
if の次の行を字下げし忘れたときです。
File "~/demo/e4.py", line 3
print("合格")
^
IndentationError: expected an indented block after 'if' statement on line 2
文字と数を + でつないだときです。
Traceback (most recent call last):
File "~/demo/e6.py", line 2, in <module>
print("点数:" + score)
~~~~~~~~^~~~~~~
TypeError: can only concatenate str (not "int") to str
| エラーの原文(最後の行) | 原因 | 直し方 |
|---|---|---|
SyntaxError: invalid character '(' (U+FF08) |
全角のかっこ・記号 | 半角英数の入力に切りかえて打ち直す |
SyntaxError: invalid non-printable character U+3000 |
字下げに全角スペース | 半角スペース4つにする |
SyntaxError: '(' was never closed |
かっこの閉じ忘れ | ) を足す |
IndentationError: expected an indented block after 'if' statement on line 2 |
if の中身を字下げしていない | 次の行を半角スペース4つ下げる |
SyntaxError: invalid syntax. Maybe you meant '==' or ':=' instead of '='? |
if の比べる所に = |
== にする |
NameError: name 'totla' is not defined. Did you mean: 'total'? |
変数名の打ち間違い | 表示された候補の名前に直す |
NameError: name 'Print' is not defined. Did you mean: 'print'? |
大文字と小文字の違い | 小文字の print にする |
TypeError: can only concatenate str (not "int") to str |
文字と数を + でつないだ |
str(score) にするか print("点数:", score) |
Python 3.11 は Did you mean で正しい候補を出し、^ や ~ の印でどこが違うかを指してくれます。 まずいちばん下の行を読み、次に line 番号 の行を開きます。
JavaScript と Java のよくあるエラー
| 言語 | エラーの原文 | 原因と直し方 |
|---|---|---|
| JavaScript | ReferenceError: totla is not defined |
変数名の打ち間違い。宣言した名前に直す |
| JavaScript | SyntaxError: missing ) after argument list |
console.log("hello"; のかっこの閉じ忘れ |
| Java | error: ';' expected |
文の終わりの ; の書き忘れ |
| Java | error: class Hello is public, should be declared in a file named Hello.java |
クラス名とファイル名が違う。そろえる |
| Java | error: incompatible types: String cannot be converted to int |
数の変数に文字を入れた |
| Java | error: package system does not exist |
System を小文字で書いた |
JavaScript は、エラーにならずに思わぬ結果になる書き方もあります。
$ node -e 'console.log("5" + 3); console.log("5" - 3)'
53
2
+ は片方が文字だと文字としてつなぎ、- は数として計算するためです。エラーが出ないのに結果が違う誤りは見つけにくいので、結果を自分で計算した値と比べる習慣が役立ちます。
日本語が「?」に化けるとき
Java の点数のプログラムを、文字コードの設定が無い端末(環境変数 LANG が空)で動かすと、日本語が ? に化けました。
72 ????
45 ?????
??: 355
Java の設定を見ると、ファイルは UTF-8 で読んでいるのに、画面への出力(stdout.encoding)が ASCII(ANSI_X3.4-1968)になっていました。LANG=C.UTF-8 を付けるか、java -Dstdout.encoding=UTF-8 Scores で動かすと正しく表示されました。プログラムの誤りではなく、動かす環境の設定が原因のこともあります。
エラーの読み方の順番
- 1エラーの種類を読むSyntaxError(書き方の誤り)・NameError(名前が無い)・TypeError(型が合わない)など
- 2メッセージを読む英語でも、invalid character(使えない文字)・never closed(閉じていない)など単語で意味がつかめる
- 3行番号の行と、その1つ前の行を見る閉じ忘れは、エラーの行より前に原因があることが多い
- 4全角の文字が混ざっていないか見るかっこ・スペース・クォート(”)・セミコロン(;)
- 51か所直したら、すぐ動かす一度にたくさん変えると、どれで直ったか分からなくなる
エラーが出ないのに結果が違うときの探し方(print で値を見る・デバッガーで止める)は、関連記事「デバッグとは|意味・手順・方法をPython・JS・Javaの実例で解説」で扱っています。
プログラミングを学ぶ順番
この節では、はじめての人がつまずかずに進める順番と、それぞれの段階で目指すことが分かります。
- 11つの言語を決めて Hello, World!作りたいものがあればその言語、迷ったら Python か JavaScript。最初の1行が動く環境を作る
- 2変数・順次・分岐・反復・関数この記事の点数のプログラムを、自分で打って動かし、点数や条件を変えてみる
- 3リストと文字列の扱いたくさんの値をまとめて扱う・並べかえる・探す。合計や平均を自分で書く
- 4小さな道具を1つ作る家計簿の集計・じゃんけん・ファイルの名前の一括変更など、自分が使うもの
- 5エラーを読み、デバッグするメッセージを読んで自分で直せるようになると、学ぶ速さが上がる
- 6Git でコードを残す変更の記録をとり、前の状態に戻せるようにする
- 7作りたいものに合わせて広げるWeb なら HTML・CSS・JavaScript、データなら SQL、業務システムなら Java など
最初の言語の選び方
| 作りたいもの・目的 | 最初の言語の例 | 理由 |
|---|---|---|
| まだ決まっていない | Python | 書き方が短く、1行ずつ試しやすい |
| Web サイトを動かしたい | JavaScript | ブラウザだけで結果が見える |
| 業務システム・大きなサービス | Java | 型が厳しく、間違いを変換の段階で見つけられる |
| iPhone のアプリ | Swift | Apple の開発ツールで使う言語 |
| Android のアプリ | Kotlin | Android 開発の主な言語 |
| 機械・ハードウェアのしくみを知りたい | C | メモリを直接扱う |
| 小学生・はじめてで文字を打つのが大変 | Scratch など | ブロックを組み合わせて作る |
どの言語から始めても、順次・分岐・反復・変数・関数の考え方は次の言語でもそのまま使えます。 迷う時間を短くして、1つ目の言語で小さなものを動かすところまで進むのが近道です。C 言語の書き方とポインタは、関連記事「C言語とは|入門から環境構築・ポインタ・mallocまで実行例で解説」で扱っています。Go の基本文法は、関連記事「Go言語入門|1.27対応の基本文法を実行結果つきで解説」で扱っています。
生成AIとプログラミング
いまは、生成AIに「点数を合計するプログラムを書いて」と頼むと、コードが返ってきます。ただし、そのコードが正しいかを確かめ、エラーを読み、自分の目的に合うように直すのは、使う人の仕事です。AI に書いてもらう場合も、順次・分岐・反復や、エラーの読み方を知っていると、出てきたコードの誤りに気づけます。 この記事の「割り算の結果が言語で違う」のように、エラーが出ずに結果がずれる誤りは、動かして値を確かめないと見つかりません。
よくある質問
Q. プログラミングとは簡単に言うと何ですか? A. コンピューターにさせたい仕事を、プログラミング言語という決まった書き方で、順番に書いて伝えることです。書いたものをプログラムと呼びます。
Q. プログラムとプログラミングの違いは? A. プログラムはコンピューターへの指示を書いたもの(料理ならレシピ)、プログラミングはそれを書く作業(レシピを書くこと)です。
Q. プログラミングでできることは? A. Web サイトやスマホのアプリ、ゲーム、業務システム、作業の自動化、データ分析や AI などを作れます。作るものによって向いている言語が違います。
Q. プログラミング言語はいくつありますか?どれから始めればよいですか? A. 数えきれないほどありますが、よく使われるのは JavaScript・Python・Java・TypeScript・C#・C・Go などです。作りたいものが決まっていなければ、書き方が短く1行ずつ試せる Python か、ブラウザだけで動く JavaScript から始める人が多くいます。
Q. HTML や CSS はプログラミング言語ですか? A. HTML はページの構造を、CSS は見た目を書く言葉で、条件分岐やくり返しを書くプログラミング言語とは区別されます。Web の画面に動きを付けるのが JavaScript です。
Q. プログラミングに数学や英語は必要ですか?
A. 最初に必要なのは、足し算・掛け算・大小の比較くらいです。英語は、print・if・for などの単語とエラーメッセージで出てきますが、決まった単語の意味が分かれば読めます。
Q. プログラミングは何から始めればよいですか? A. パソコンにエディタ(VS Code など)と Python を入れるか、ブラウザで JavaScript を使い、「Hello, World!」を表示する1行を動かすところから始めます。この記事の「始め方」に手順と実物があります。
Q. スマホだけでプログラミングはできますか? A. 学習アプリで文法を学ぶことはできます。ファイルを作って動かす、エラーを読んで直す、という練習はキーボードのあるパソコンのほうが進めやすくなります。
Q. プログラミング教育は小学校で必修ですか? A. 文部科学省の手引によると、2020年度から小学校でもプログラミング教育が導入されています。プログラミング言語の文法を覚えることより、「プログラミング的思考」を育てることがねらいとされています。
Q. プログラミング的思考とは? A. 文部科学省の手引では、自分が意図する一連の活動を実現するために、どんな動きの組み合わせが必要か、それをどう組み合わせ、どう改善すれば意図に近づくかを論理的に考えていく力、と説明されています。
Q. エラーが出て動かないときはどうすればよいですか? A. エラーの種類・メッセージ・行番号の順に読み、全角の文字やかっこの閉じ忘れがないかを見ます。この記事の「つまずきやすい点とエラーの読み方」に、よくあるエラーの原文と直し方の表があります。
Q. 生成AIがあればプログラミングを学ばなくてもよいですか? A. AI はコードを書く手助けをしてくれますが、そのコードが目的どおりに動くかを確かめ、誤りを見つけて直すには、プログラムの考え方とエラーの読み方の知識が要ります。
まとめ
- プログラミングは、コンピューターにさせたい仕事を、決まった言葉で順番に書くこと。書いたものがプログラム。
- 自動ドア・炊飯器・自動販売機・スマホのアプリなど、身近なものの多くがプログラムで動いている。
- プログラムは「入力→処理→出力」で動く。CPU が読めるのは機械語だけなので、コンパイラやインタプリタが変換する。
- 言語は作るものによって選ぶ。Python・JavaScript・Java で同じ処理を書くと、考え方は同じで書き方だけが違い、行数は 12・14・18 行だった。
- 基本は順次・分岐・反復と、変数・関数。
=は「入れる」、==は「比べる」。 - 始め方は、エディタと言語を入れて Hello, World! を動かすこと。JDK 25 なら Java も3行で書ける。
- エラーは種類・メッセージ・行番号の順に読む。全角の文字・字下げ・かっこの閉じ忘れが、はじめての人に多い原因だった。
参考・出典
確認日はいずれも 2026年10月23日です。
- 文部科学省「小学校プログラミング教育の手引(第三版)」:https://www.mext.go.jp/content/20200218-mxt_jogai02-100003171_002.pdf
- Python「Download Python」:https://www.python.org/downloads/
- Python ドキュメント「Using Python on Windows」:https://docs.python.org/3/using/windows.html
- Node.js「Node.js Releases」:https://nodejs.org/en/about/previous-releases
- OpenJDK「JDK 25」:https://openjdk.org/projects/jdk/25/
- MDN Web Docs「JavaScript とは」:https://developer.mozilla.org/ja/docs/Learn_web_development/Core/Scripting/What_is_JavaScript
- Visual Studio Code「Setting up Visual Studio Code」:https://code.visualstudio.com/docs/setup/setup-overview
- Stack Overflow「2026 Developer Survey: Technology」:https://survey.stackoverflow.co/2026/technology
本記事の内容は、ご自由にお使いください。
ご利用の際は、出典として本ページへのリンクを記載いただけますようお願いします。
(記載例)出典:株式会社RJC「プログラミングとは|意味・仕組み・言語の種類を3言語の実行で解説」
株式会社RJC ― SI事業・SES事業・AI駆動開発。RJCは一緒に成長を楽しめる会社です。
WE ARE HIRING
RJCで一緒に開発しながら、
成長を楽しみませんか?
RJCは、Web・モバイル・AIを活用した開発プロジェクトで、テックリードやPM・PMOも活躍するシステム開発会社です。会社を知る、待遇を確かめる、話を聞いてみる。気になるところ見てみてください!
- 127日年間休日
- 12時間平均残業時間
- 毎日ガチャ遊びココロも大切にする福利厚生。アマギフなどの賞品ラインナップ!
ほかにも、チケットレストラン、書籍読み放題、2年ごとの慰労報奨(休暇 or 金一封)、11期連続の黒字決算。