Pythonを覚えれば、プログラミングができるようになる。そう思っていませんか。
実は、それほど単純な話ではありません。Pythonの文法を覚えてもプログラミングできないのは、そもそも「プログラミング」を誤解しているからかもしれません。
Pythonを覚えればプログラミングできると思っていないか?
Pythonを勉強して、変数やif文、for文、関数などの使い方を覚えた。教材に載っているプログラムも書けるようになった。それなら、もうプログラミングができるようになったと思うかもしれません。
しかし、ここには大きな勘違いがあります。Pythonはプログラミングをするための道具であって、Pythonの文法を覚えること自体がプログラミングではありません。
例えば、「売上データから特定の商品だけを取り出して、合計金額を計算するプログラムを作ってください」と言われたとします。このとき必要なのは、いきなりPythonのコードを書くことではありません。まず、どんなデータがあり、何を条件にして、どの順番で処理すれば目的の結果になるのかを考える必要があります。
つまり、プログラミングでは「何という命令を書けばいいか」よりも先に、「コンピューターに何をさせるのか」を考えなければなりません。
Pythonの文法を覚えることは、その考えた手順をコンピューターに伝えるための手段を身につけることです。そこを混同してしまうと、文法は知っているのに、自分でプログラムを作れないという状態になってしまいます。
プログラミングは「コードを書くこと」ではなく「問題を解く手順を考えること」
では、プログラミングとは何でしょうか。簡単に言えば、コンピューターにやってほしいことを、実行できる手順に落とし込むことです。コードを書くのは、その手順をコンピューターが理解できる形に置き換えているだけです。
例えば「毎月の売上データから、売上金額が10万円を超えた月だけを抜き出したい」とします。いきなりPythonを書くのではなく、まず「売上データを確認する」「1か月ずつ金額を見る」「10万円を超えているか判断する」「条件を満たした月を記録する」といった手順を考えます。
この手順が決まっていれば、それをPythonのコードに置き換えていけばいいわけです。逆に、手順が決まっていない状態でPythonの文法だけ知っていても、何を書けばいいのか分かりません。
つまり、プログラミングで本当に難しいのは、コードを書く作業だけではありません。「何をどう処理すれば問題を解決できるのか」を考える部分こそ、プログラミングの重要なところです。
これはPythonに限った話ではありません。JavaScriptでもJavaでもC言語でも、使う言語が変わるだけで、問題を解決するための手順を考える必要があることは変わりません。
小学校の算数の文章題、解けましたか?
ここで少し昔のことを思い出してみてください。小学校の算数で出てきた文章題、ちゃんと解けていたでしょうか。
文章題では、単純に計算するだけでは答えが出ません。まず問題文を読んで、何が分かっているのか、何を求めるのかを整理します。そのうえで、足し算なのか引き算なのか、それとも別の計算が必要なのかを考えます。
つまり、文章を読んで状況を理解し、必要な情報を取り出し、答えを出すための手順を考えているわけです。
これ、プログラミングにもよく似ています。プログラムを書く前に、「何が分かっていて、何を求めたいのか」「そのためには、どんな処理をどの順番で行えばいいのか」を考える必要があります。
実は私たちは、小学生の頃から「問題を読んで、どういう手順で解けば答えにたどり着けるのかを考える」という訓練をしていたんですね。
もちろん、算数の文章題が苦手だったからといって、プログラミングができないと決まるわけではありません。ただ、問題を読んで、解決するための手順を組み立てることが苦手なままなら、プログラミングでも苦労します。Pythonの文法を覚えただけでは、この力は身につきません。
フローチャートを書いて、問題を解く手順を整理してみる
では、問題を解く手順を考える力を鍛えるには、どうすればいいのでしょうか。手軽な方法の一つが、フローチャートを書くことです。
フローチャートは、処理の順番や条件による分岐を図にして表す方法です。いきなりPythonのコードを書くのではなく、まず日本語で「どういう手順で処理するのか」を考え、それをフローチャートにしてみます。
例えば、「テストの点数が80点以上なら合格、それ未満なら不合格」という問題なら、「点数を確認する」→「80点以上か判断する」→「合格または不合格を表示する」という手順に整理できます。
この作業を繰り返していると、コードを書く前に処理の順番や条件分岐を考える習慣がついてきます。フローチャートにしてみて手順が途中で止まるなら、まだ問題を解く手順を整理できていないということです。
Pythonの文法を追加で覚える前に、まずは簡単な問題を選んで、フローチャートにしてみてください。これまで身につかなかった部分は、今から訓練すればいいのです。
すでにあるプログラムを読んで、手順を追いかけてみる
もう一つやってほしいのが、すでにあるプログラムを読むことです。自分でプログラムを書くことばかり考えず、誰かが書いたコードを読んで、どのような手順で処理が進んでいるのかを追いかけてみましょう。
Pythonの文法を覚えたのであれば、簡単なプログラムなら読めるはずです。まずはコードを上から追いながら、「この変数には何が入っているのか」「この条件ではどちらに進むのか」「この繰り返しでは何が起きるのか」と確認していきます。
そして、コードを読むだけで終わらせず、実際の処理を自分で手順にしてみます。コードを見ながらフローチャートを書いてみてもいいでしょう。
これは、フローチャートを書いてからコードにする練習とは逆方向です。プログラムを読んで、そこから「どういう手順で処理しているのか」を読み取るわけです。
プログラミングの現場では、毎回ゼロから新しいプログラムを書くわけではありません。すでにあるコードを読んで、何をしているのか理解し、そのうえで修正や機能追加をすることも珍しくありません。だからこそ、「書く」だけでなく「読む」練習もしておく必要があります。
まとめ|プログラミングはそんなに単純なものではない
Pythonの文法を覚えることは、プログラミング言語という「表現手段」を覚えることです。それだけで、プログラミングができるようになるわけではありません。
プログラミングでは、まず問題を理解し、どういう手順で解決するのかを考えます。その手順をフローチャートにしたり、実際のコードに置き換えたりします。そして、すでにあるプログラムを読んで、その手順を追いかける力も必要になります。
つまり、プログラミングは「Pythonを覚えればできる」というほど単純なものではありません。言語の文法を覚えるだけで満足せず、問題を解く手順を考えること、そして他人が書いたコードを読んで理解することまで含めて、少しずつ力をつけていく必要があります。
もし今、Pythonを覚えたのにプログラミングができないと感じているなら、Pythonの勉強をさらに増やす前に、まず「手順を考える」「手順を読む」という練習をしてみてください。