🔰

「プログラミング入門者に贈る」本当の意味でのプログラミング入門

に公開

この記事ではプログラミングに必要な力やプログラミングを学ぶ必要性などを解説しています。

この記事の対象者

  • これからプログラミング学習をし始める人
  • プログラミング言語を学んだけど、何かを作る時に手が動かない。
  • progateやドットインストールなどで学習し始めた人
  • 大学の授業でプログラミング言語を学習したけど、自分でプログラミングするのが難しいと感じる人

この記事の必要性について

まずは、私がなぜこの記事が必要だと考えたのかについて話します。
プログラミング入門で調べると、オススメのプログラミング言語やプログラミング学習サイトの情報が出てきます。これもとても大事ですが、学習した後にこんな問題に当たる可能性があります。

これは普通のことです。私もprogateで学習したあとにこの現象に陥りました。
なぜこの現象が起こってしまうでしょうか?
それはprogateなどのプログラミング学習サイトでは\textcolor{red}{プログラミング言語}について学習するからです。プログラミング言語はあくまで道具なので、それだけではプログラミングは出来るようにはなりません。

どうすればプログラミングが出来るようになるのか?
この疑問を解消するためにこの記事は存在します。

そもそもプログラミングとは?

ChatGPTに聞いてみました。

ChatGPT: プログラミングとは、コンピュータに特定の動作や処理をさせるために、命令(指示)を記述する作業や技術のことです。 簡単に言うと、「コンピュータにやってほしいことを、わかる言葉で順番に書き出すこと」がプログラミングです。

これだけだとイメージが掴めないと思うので、実際にプログラミングを体験してみましょう。

日本語でプログラミングをしてみよう

ChatGPTはコンピュータにやってほしいことを言葉で順番に書き出すことがプログラミングだと言っていました。なので以下の手順で進めていきましょう。

  1. コンピュータにやってほしいことを決める
  2. 言葉で順番に書き出す。

まずは手順1をやりましょう。
今回の例として「1から5までの数字を順番に表示したい」とします。
実用的ではありませんが、あくまで日本語でプログラミングをする練習としての例です。

次に手順2を行います。

1を表示します。
+1して2を作ります。

2を表示します。
+1して3を作ります。

3を表示します。
+1して4を作ります。

4を表示します。
+1して5を作ります。

5を表示します。

これでプログラミングは終了です。ここで重要なのは、「やりたいことを順番に言葉で書き出している」ところです。もう少し詳しく言うと、やりたいことを達成するための手順を細かく順番に書き出しているということです。

今回は1から10までの数字を表示したいので

  • 1を表示したら
  • 2を表示するために+1する必要があります。

上記の手順を繰り返し行えば10まで表示する事が出来ます。

他の例も見てみましょう。
今度は「AさんとBさんがいて、二人がじゃんけんした時にどちらが勝ったかのかを表示したい」とします。普段、じゃんけんをした時に無意識にどちらが勝ったかを判断していると思いますが、プログラミングではそれを言葉で順番で書き出さないといけません。
じゃんけんは3つの手があるため、勝ちを判定するには全部で9通りの場合を書き出す必要があります。

Aさん Bさん 表示するもの
パー パー 引き分け
パー チョキ Bさんの勝ち
パー グー Aさんの勝ち
チョキ チョキ 引き分け
チョキ パー Aさんの勝ち
チョキ グー Bさんの勝ち
グー パー Bさんの勝ち
グー チョキ Aさんの勝ち
グー グー 引き分け

上記の9通りを言葉で書き出せば、二人でじゃんけんした時に勝者を判定することが出来ます。

ここまでのまとめ

プログラミングとはコンピュータにやりたいことを言葉で順番に教えてあげることでした。
あまり感覚が掴めない人もいると思いますが、慣れるまでは少し時間がかかるため、これからプログラミングしていく中で徐々に身につける事できます。
とにかく、ここで意識してほしいことは、自分がやりたいことを紙などに一つずつ順番に書き出すことです。

プログラミング言語への変換

日本語ではプログラミングは出来ましたが、日本語だとコンピュータが理解することができません。そこで登場するのが「プログラミング言語」です。先ほど日本語で書いたものをプログラミング言語に変換することでコンピュータが理解する事ができるようになります。
今回はPythonというプログラミング言語を使用します。

 1を表示します。
+1して2を作ります。

 2を表示します。
+1して3を作ります。

 3を表示します。
+1して4を作ります。

 4を表示します。
+1して5を作ります。

 5を表示します。

上記の日本語をPythonに変換すると

num = 1

#1を表示する
print(num)
#+1して2を作る
num +=1

#2を表示する
print(num)
#+1して3を作る
num +=1

#3を表示する
print(num)
#+1して4を作る
num +=1

#4を表示する
print(num)
#+1をして5を作る
num +=1

#5を表示する
print(num)

次はじゃんけんを見ていきましょう。

Aさん Bさん 表示するもの
パー パー 引き分け
パー チョキ Bさんの勝ち
パー グー Aさんの勝ち
チョキ チョキ 引き分け
チョキ パー Aさんの勝ち
チョキ グー Bさんの勝ち
グー パー Bさんの勝ち
グー チョキ Aさんの勝ち
グー グー 引き分け

これをPythonに変換すると

#AさんとBさんを用意する
a = ''
b = ''

if a == 'パー' and b == 'パー':
    print('引き分け')

elif a == 'パー' and b == 'チョキ':
    print('Bさんの勝ち')

elif a == 'パー' and b == 'グー':
    print('Aさんの勝ち')

elif a == 'チョキ' and b == 'チョキ':
    print('引き分け')

elif a == 'チョキ' and b == 'パー':
    print('Aさんの勝ち')

elif a == 'チョキ' and b == 'グー':
    print('Bさんの勝ち')

elif a == 'グー' and b == 'パー':
    print('Bさんの勝ち')

elif a == 'グー' and b == 'チョキ':
    print('Aさんの勝ち')

elif a == 'グー' and b == 'グー':
    print('引き分け')

これでコンピュータが理解できるようになりました。

実際にプログラミングするときの手順

今まで見てきたことを理解する事ができたら、自分の手でプログラミングをすることが出来るようになると思います。ですが、感覚を掴むには時間がかかるため、沢山プログラムを書く必要があります。
そこで、実際にプログラミングをするときの手順を体系的にまとめてみようと思います。

  1. やりたいことを決める
  2. やりたいことをより細かく、日本語で順番に書き出す。
  3. 書き出したものを一つずつプログラミング言語に変換する。

練習問題

問題1

問題

5回あいさつをする。
ここではあいさつは「おはようございます」とします。

答え

日本語1

「おはようございます。」と表示する
「おはようございます。」と表示する
「おはようございます。」と表示する
「おはようございます。」と表示する
「おはようございます。」と表示する

プログラミング言語1(Python)
print('おはようございます。')
print('おはようございます。')
print('おはようございます。')
print('おはようございます。')
print('おはようございます。')

日本語2

「おはようございます。」と表示する
これを5回繰り返す。

プログラミング言語2(Python)
for i in range(5):
    print('おはようございます。')

問題2

問題

時間帯に応じてあいさつを変えて、表示する
朝:おはようございます
昼:こんにちわ
夜:こんばんわ

答え

日本語

時間が朝なら、「おはようございます」を表示する
時間が昼なら、「こんにちわ」を表示する
時間が夜なら、「こんばんわ」を表示する

プログラミング言語(Python)
time = ''
if time == '朝':
    print('おはようございます')
elif time == '昼':
    print('こんにちわ')
elif time == '夜':
    print('こんばんわ')

最後に

今回の内容は私が3年前に知りたかったものです。
下記の3ステップを意識してプログラミングが出来るようになると、プログラミング人生が花開くと思います。あなたのプログラミング人生の助けなれば幸いです。

  1. やりたいことを決める
  2. やりたいことをより細かく、日本語で順番に書き出す。
  3. 書き出したものを一つずつプログラミング言語に変換する。

Discussion