こんにちは、エンジニアのワタナベです。

気分転換に久しぶりに記事書くか、ということで何となく思いついたテーマを書いていきます。

プログラミング言語の学習はそもそも簡単

現在一生懸命学習されている方からしたら、「何いってんだこいつ」って思われるかもしれませんが、以下読んでいただければ割と腑に落ちるかと思います。

まずプログラムとは何か、という話をすると、分かりやすいところで言えば、コンピュータ(一般的には皆さんが使ってるPC(パーソナルコンピュータ))上で動作するものですね。
身近なところでいうと、ブラウザやエディタなどもそうです。

これらはプログラムを組むことで作られてます。

ではプログラムを組むとはどういうことか、これは極論、0と1の羅列を決められた規則に従って並べることです。
よく映画などでも0と1の羅列がディスプレイに映ったりしているので、プログラミング初学者の方でもこれはイメージしやすいと思います。

コンピュータはこの0と1の羅列(コンピュータにとっての命令)を基に、各種ソフトウェアを動かしてるというわけですね。

つまり極論すると、人間が0と1の羅列をある規則に従ってコーディングすることができれば、皆さんが日頃使っているソフトウェアを実装することができるのです。

ただ普通に考えると分かる通り、これは現実的ではありません。0と1の羅列なんて人間が把握できるわけないし、把握しようとも思いません。

ではどうやって人間はソフトウェアを実装しているのか?

ここで出てくるのが、プログラミング言語です。

プログラミング言語でコーディングしたものも、コンパイルという作業を通して、最終的には0と1の羅列になります。
これをコンピュータが認識して、ソフトウェアを動かしてるわけです。

つまり日頃皆さんがやっているプログラミングとは、以下の工程を行っているということです。

  1. プログラミング言語(人間は理解できるが、コンピュータは理解できない)でコーディング
  2. コンパイルして0と1の羅列に変換(人間は理解できないが、コンピュータは理解できる)
  3. コンピュータが0と1の羅列を読みながらソフトウェアを動かす

これは言い換えると、プログラミング言語とはそもそも、「人間が0と1の羅列を理解できないから、人間が理解できる言語(主にifやforなどの簡単な英語)でプログラミングできるようにしたもの」になります。

さらに言い換えるなら、「プログラミング言語とはそもそも人間にとって分かりやすく作られたもの」であり、「難しかったら意味がない」ということですね。

ではどれくらい簡単なのか?

プログラミング言語がそもそも人間にとって分かりやすく作られている、というのは上述した通りです。
ではどれくらい簡単なのか?

多くの方は高校や大学受験で、数千個もの英単語を覚えた記憶があるかと思います。
対してプログラミング言語はどうでしょう?ifやforなどのシンプルな英単語が、よく使うものだとせいぜい数十個ある程度です。

どうでしょう?受験を乗り越えた方なら、とても簡単に思えませんか?
そうです。基本文法を理解するだけなら、できないわけがないのです。

ではプログラミングは何が難しいのか?

件名にもある通り、「プログラミング言語の学習自体」は簡単です。その理由は上述した通りです。
しかしプログラミングは難しいです。一体何が難しいのか?概ね以下だと考えてます。

  • web制作であれば、用途に応じたデザインなど
  • システム開発であれば、セキュリティや性能、保守性を意識した実装、プラットフォームや各種技術の選定など
  • その他、要件の整理、顧客折衝などのコーディング以外の作業

つまり、プログラミング言語の基本文法の学習以外の周辺技術が難しいわけですね。
そしてこれらは、プログラミング言語の書籍を読んでも身につくものではなく、実際に何かを作ったり、業務として作業したりすることで身につくものです。

まとめ

結局何が言いたかったかというと、

  • プログラミング言語の学習程度に時間を費やしすぎるのは効率的でない
  • もっとやるべきことがたくさんあるので、基本文法の学習は程々に、早いうちから何か実際に作ったり、可能なら業務に携わる方が効率良い

ってことでした。

走り書きですが、どなたかの参考になれば幸いです。