PROGRAMMING

ブログ

どうしてプログラミングを学ばなければならないのか?
2017.09.21

どうしてプログラミングを学ばなければならないのか?

プログラミングができると、どんな良いことがあるのでしょうか?無駄を省く考え方、制約を生かす能力、熱心さ、といったプログラミングによって身に付けられると思われる特性をご紹介します。

社会にでて仕事をするようになると、プログラミングによって解決できることがたくさんでてきます。インターネットやスマートフォンを使った便利なサービスを提供したい。日々、取り組んでいる仕事を、システムを使って効率化したい。

人間がやると途方もない時間がかかる仕事を、コンピューターがやると、一瞬の間に、驚くほど正確に、しかも一言も文句を言うことなくやってくれる、ということがたくさんあります。プログラミングができると、こういったことを、誰かに頼まずに自分で行うことができます。

自分が分からないことをできる人に頼むとコストがかかるし、要望がうまく伝わらずにイライラすることも多々あると思います。プログラミングができることによって、こういったことを自分で解決できるというのは、仕事をする上で大きな力になるでしょう。

一方で、昨今のプログラミング教育に対する熱心さをみると、プログラミングにはコンピュータープログラムが書けるようになることだけでなく、根本的な頭の使い方とか、社会にでて役に立つようなベーシックなスキルが身に付くことも期待されているような印象があります。

実際のところ、僕の周りの優れたプログラマーにはいくつか共通点があり、プログラミングを学ぶことによって身に付くと思われるいくつかの特徴的なスキルがあるように思われます。

無駄を省く考え方。

多くのプログラマーが共通して持っている考え方だと思います。そもそもコンピューターを使う目的が、いろいろな無駄を省くことであることも多く、プログラミングをする上で無駄を省くというのは、自然と要求される考え方です。

プログラミングいおいては、DRY(Don't repeat yourself. 同じプログラムを、2回以上書かないこと)という言葉があったりして、いかに無駄のないプログラムを書くかというのは、バグを減らし、作業を効率化する上で、プログラマーにとって重要な関心ごとです。

学校で習う数学でも同じような考え方が求められることがあって、数学が得意であることと、プログラミングができることは似ているところがあるかも知れません。

無駄を省く考え方が身に付くと、身の回りにある無駄に敏感になったり、改善のアイディアを自然と思いついたりします。

制約を生かす

これはプログラマーの特性として、あまり一般的に言われていることではありませんが、「制約を生かす」というのはプログラマーの秀でたスキルの一つだと思います。

コンピューターは何でもできるように思われがちですが、実はできないことも非常にたくさんあります。計算速度には限りがあるし、プログラミング言語によって得手不得手があって、ある言語ではできることが、他の言語ではできなかったり、できてもすごくプログラミングするのが大変だったりします。

こういった制約の中でしかプログラミングできない一方で、やりたいこと、解決したい課題には際限がありません。自然と限られた条件の中で解決を見出すことが要求されるため、優れたプログラマーは、与えられた条件の中で答えを見つけたり、制約をうまく利用して成果を出すのが得意になります。

熱心さ

熱心さもしばしばプログラマーの特性として挙げられます。熱心さが、実生活や仕事においても非常に有用であることは言うまでもありません。

プログラミングをする上で、「まずはうまく行かない」なんてことは当たり前です。思っていた結果が得られない、コンピューターがエラーを返して先に進まない。その度に、コードとにらめっこして、修正して、またエラーがでて、の繰り返しです。

問題を解決したければ、熱心にならざるを得ないので、熱心さというのもプログラミングによって身に付くスキルです。もっとも熱心さについては、興味や関心の度合いに左右されるので、もともとの素質や相性による部分が大きいかも知れません。しかしながら、プログラミングを学ぶことによって、熱心さや粘り強さが磨かれることには間違いがありません。

こういったプログラミングによって身に付けられる特性には、社会にでて役に立つ能力が少なからずありそうです。学校の勉強や、趣味・特技を伸ばすのにも応用が利く能力なので、小さい時からプログラミング教育を通して、こういった特性を身に付けることには十分な恩恵があるかも知れません。

クラスを体験しませんか?

リトルハッカーのクラスの様子をご覧いただけます。
プログラミングの体験もできます。