素晴らしい人生

『ハード』と『ソフト』の概念とプログラミング的思考について

 デジタル介護士 ぱんあた(Panda attack)です。

 2020年から小学校でプログラミングの授業が始まります。

 このことを知った当初は、小学校でいきなりプログラムのコーディングをするのかと思って驚いたものですが、どうやらプログラミングの授業と言っても英数字を使ってコードを書くような実践的なものではなく、プログラミングの考え方を学ぶ授業のようです。

 というわけで今回はソフトウェアとハードウェアの概念とこれからの時代に役立つプログラミング的思考について考えてみました。

 『ハード』と『ソフト』の概念

 プログラミングのコーディングをする際には、当然のことながらコンピュータを使うと思うのですが、コンピュータを使っていれば、コンピュータの関連用語であるハードウェアとソフトウェアという言葉を耳にすると思います。

 まずは、そのハードウェアとソフトウェアが何を指しているのか、その概念について考えていきたいと思います。

 まず、ハードウェアとは、有形で、目に見えるもののことになります。ちなみにコンピュータのハードウェアとは、モニター、ハードディスク、キーボード、マウス、プリンターなどがハードウェアにあたります。
 一方、ソフトウェアとは、無形で、目には見えないもののことになります。ちなみにコンピュータでは、何らかの処理を行うプログラムがソフトウェアにあたります。

 人間に例えるとイメージが湧きやすい

 ハードウェアとソフトウェアの概念は、コンピュータよりも人間に例えるとイメージが湧きやすいかもしれません。

 ハードウェアとは人間でいうところの「身体」にあたり、ソフトウェアとは人間でいうところの「心、意識、神経」にあたります。

 人間の身体があるだけでは動くことができないように、ハードウェア単体では物体や箱がただそこにあるという状態であると言えます。

 人間が心や意識を伝達する神経によってはじめて身体を動かせるように、ソフトウェアが考えて指令を出すことではじめてハードウェアが動いて、コンピュータが作動するのです。

 プログラミング的思考とは

 ハードウェアとソフトウェアの概念がある程度イメージできたところで、引き続いて、プログラミング的思考について考えていきたいと思います。

 結論から述べると、プログラミング的思考とは、業務における問題解決能力へのアプローチ手段のひとつになります。

 たとえば、プログラミングのコーディングには、大きな問題を細分化して各工程の解決方法を明確にしたり、問題の中でも優先順位をつけて重要な部分を取り上げるなど考え方が必要となるのですが、それこそがプログラミング的思考であると言えます。

 このように、プログラミングのコーディングが問題解決能力を必要とする業務であると定義するならば、プログラミング的思考は、現実社会の問題解決において応用することが可能な思考能力であると言えると思います。

 また、個人的な見解ですが、プログラミング的思考はこれからの時代にこそ役立つ考え方であると思います。

 そもそも、プログラムというものはコードを書けばある程度は動かすことができるのですが、理想の動作を実現するためにコンピュータの動かし方に制約や条件を求めると、出す命令の順番も大切になるため、幾度となく検証をしてコードを書き直すようなケースもあります。
 理想の動作を実現しようとすると、どのように最善の方法を導き出すべきかを自然と考えることができるようになり、知らず知らずのうちに問題解決型の思考力が高められるようになるというわけです。

 おまけ プログラムの魅力について

 ここからは余談ですが、プログラミングは全員共通の正解があるというわけではなく、プログラムコードの数だけ答えがあると言えます。そして、これがプログラミングの魅力でもあると思います。
 一見、難しいもののように感じるかもしれませんが、トライアンドエラーを繰り返しながら、少しずつ前進する喜びを感じられるのもプログラミングのよさで、試行錯誤をして完成した際には達成感もひとしおです。
 このようにプログラミングは難しくて理解できないものではなく、論理的に考えて動かし達成感を得られる楽しいものです

 まとめ

 『ハード』と『ソフト』の概念とプログラミング的思考について、お役に立ちましたでしょうか?

 プログラミング的思考とは答えを自身で導き出す能動的な問題解決のための思考法であると言えます。

 プログラムのコードが書けなくてもプログラミング的思考を身につけておけば、問題解決へのアプローチ手段のひとつとして役に立つはずです。