「プログラミングとは?」を丁寧に
スポンサーリンク

プログラミングについてちゃんと考える

ちょっと偉そうに書いてみます(笑)

HTMLCSSJavaScriptなどなどプログラミングの勉強を続けてきて、少しづつ出来ることも増えてきた。仕事でコードを書くことも、人にプログラミングについて教えてと言われる機会も出てきて本当にまだまだ未熟だがありがたいことだなと思う。ただ、説明がうまく出来ない。プログラミングについて覚えたことは書けるが改めて人に教えられるほどきちんと理解出来ていない自分に気づく。

闇雲にコードを書いていても、それでも技術はついてくる。出来る人の真似をすることは基本の基本だ。ただ、理解が乏しく単語の丸暗記のような身に付け方はすぐ忘れてしまう。振り返るとなかなかプログラミングについて言語化してこなかったので腹落ちしてないことが多いのだなと思う。

この機会にプログラミングをしながらちゃんとプログラミングを理解したい。人に説明するように学習してきたことの記録を残していくことでわかっていなかった点に気づいたり、より理解を深めていきたいと思う。

「プログラミングとは何か?」自論

まず、そもそもプログラミングとは何か?だが「自分がコンピューターにやってほしいことをコンピューターが理解できる文字や記号を入力して、実現してもらう。」という行為。

例えば、ブラウザのタイトルバー「タイトル」に表示したいと思ったら、HTMLファイルに下記のように記述して、ファイルを .html という拡張子で保存する。

<!DOCTYPE html>
<html>
  <head>
    <title>タイトル</title>
  </head>
</html>

すると、コンピュータ(ブラウザ)はこの入力を理解してくれて、タイトルバーに「タイトル」と表示してくれる。
*HTMLはプログラミングではないという議論もあるがそれは一旦横に置いておく

だが、「やりたいことがある→コンピュータに入力する→コンピュータが実行する」という流れは、スマホやパソコンで何かをやる行為すべてに当てはまるので実はプログラミングに限ったことではない。

例えば、LINEでメッセージを送ることはプログラミングとは呼ばれないが、LINEでメッセージを誰かに送りたいと思ったらスタンプや文章を送信する。するとLINEはそれを理解してくれて友人へ送ってくれる。

つまり、プログラミングもそれ以外も根本的「人間が入力する→コンピュータが実行する」という同じことをしているのだ。

それでもプログラミングという言葉が専門的な意味を含んでいるのは「LINEを使う」のようなアプリの操作よりは人間が理解しにくい命令をしなければならない専門的な部分と、「LINEを使う」ではなく「LINEというソフトウェアを作る」というのがプログラミングで、コンピュータのより根本的な部分に働きかける行為だからだ。

スポンサーリンク

プログラミングはコンピューター視点で

プログラミングは人間が実行したいことを代わりに実行するか、もしくは効率的に実行してくれるので、入力する人間はプログラミングを実行する上で以下の2点を理解しておく必要がある。

コンピューターに何をしてほしいのか?
コンピューターはどのように指示をすればそれを実行してくれるのか?

プログラミングをする際には、「コンピューターに何をしてほしくてプログラミングをするのだろうか?」、「コンピューターが期待通りの実行をしてくれるにはどのように指示をすれば(=プログラミングをすれば)実行してくれるだろうか?」を念頭において実施すると良い。

特に、「コンピューターはどのように指示をすればそれを実行してくれるか?」という視点はとても重要で、よくコミュニケーションの場では「相手の立場に立って話をすること」が大事だと言われるがプログラミングにおいても同様のことが言える。

「自分がこのコードを書けばコンピュータはこのように理解してくれるだろう?」ではなく、「コンピューターはこのような指示をこう理解してくれる」という視点が大事なのだ。コミュニケーションは受けて側に立って行うのが基本である。

コンピューターとのコミュニケーションは、人間とのコミュニケーションと異なる点がある。

コンピューターは表現されたことしか汲み取らない(人の内面は汲み取れない)
コンピューターは文法とスペルの解釈に厳しい

当たり前だが、コンピューターに実施して欲しいことは思っているだけではいけない。ちゃんと表現しなくてはいけないのだ。一般的なコンピューターは落ち込んでいるときにそっと気を遣ってくれる友人ではない。

また、コンピューターは言葉遣いに大変厳しい。言語によっては少しでも間違いがあるとかけらも表現されないものがあるのだ。

スポンサーリンク

まとめ

  • プログラミングとは、「自分がコンピューターにやってほしいことをコンピューターが理解できる文字や記号を入力して、実現してもらう。」こと。
  • プログラミングの出発点は「何を作りたいか?」である。(*プログラミングスキルを身につける出発点はコピーからになる場合もある)
  • コンピューターが理解できる文字や記号をプログラミング言語といい、プログラマーはこの言語を理解する必要がある
  • プログラミングにおいて、コンピューター視点を持つ事が重要で、プログラムがコンピューターがどう解釈するかを理解する

これからプログラミングを間ないんでいく際に、「自分が作りたいもの」と「このプログラムはコンピューターにとってどういうものか?」を理解しながら進めていく。

お読みいただきありがとうございます。こちらの記事はあくまでも私の自論ですので、ご参考としてください。お役に立てれば幸いです。

Twitterでフォローしよう

おすすめの記事