コンピュータというものは、ソフトウェアが無ければただの箱だ。
ソフトウェアとは何かというと、ハードウェアの対義語だ。ハードウェアとは、CPUとかメモリとかストレージとかキーボードとかマウスとかモニターとか、物理的なものだ。ソフトウェアはハードウェアの上で組み込まれる論理回路だ。コンピュータができるまでは、ソフトウェアは無かった。たとえば時計で例えると、スイス製の機械式腕時計や、昔ながらの錘で動く壁掛けのボンボン時計は、歯車やバネなどすべてハードウェアで論理回路がつくられている。ソフトウェアは論理回路をプログラムというルールで記述することで、歯車やバネを組み替えたり、電子回路の配線を変更したりせずに論理回路を変更したり、新しく作ったりすることができる。
現代のパソコンはハードウェア上にさまざまなプログラムが動作している。WindowsやmacOSやLinuxといったOSもソフトウェアだ。USBポートに繋いだマウスやプリンタを制御するデバイスドライバもプログラムだ。仕事で使う表計算ソフト、ワープロ、Webブラウザ、メールソフトなどもすべて、誰かが作ったプログラムコードで出来ている、ソフトウェアだ。
プログラミングができると、自分が思った通りにコンピュータに仕事をさせることができる。
世の中にいるさまざまなソフトウェアは、どこかの誰かが作ったプログラムだ。このブログはWordPressというソフトウェアで動いているし、WordPressが動作するためには、Webサーバソフトウェアや、データベースソフトウェアなど、さまざまなソフトウェアが裏で動作している。
プログラミングを学ぶ価値について、「論理思考が習得できる」とか「現代のITリテラシーが向上する」とか色々言われているが、とてもシンプルで大切なことは、プログラミングができるとコンピュータを自由に制御できるようになることだ。
自分がコンピュータ(スマホやPCなど)を使ってやりたいことを実現するには、プログラムが必要だ。たとえば離れたところにいる相手とテレビ電話のようなことがしたいとか、気軽にメッセージを送り合いたいとする。同じことがしたい人が多い(需要が多い)ものは、誰かがプログラミングする。たとえばLINE、Skype、Teams、Zoom、Slack、Discordなど、離れた相手とビデオ通話やメッセージ交換ができるプログラムは既にたくさんある。もちろん作った人はこれで多くの人の需要が満たせたらいいと思って作っているだろうが、それを生業にしている人もたくさんいるから、すべて無料で手に入るわけではない。世の中には有償ソフトウェアというものがある。自分で作れない人は代わりにお金を払って、他人の作ったソフトウェアを利用するか、あるいは注文して作ってもらうことになる。
しかし世の中に自分が欲しいものがなくて、誰かに作ってもらえない場合は、自分で作るしかない。世の中にないということは、あなたが欲しているものと同等のものが世の中に無くて困っている人が他にもたくさんいるかもしれない。
プログラミングなどのIT技術で商売をするというのは、こういうことだ。
まずはじめに、自分がそれを必要としているかどうかを考えてみることはとても大事なことだ。
オープンソースソフトウェアの場合、プログラムのコードが無償で公開されている。1からプログラムを作ることができなかったとしても、オープンソースソフトウェアに機能を追加したりして、自分が欲しいものを作れるかもしれない。ただしオープンソースを改変した場合は、改変したソースコードもオープンソースにしなければならないというライセンス規約がある場合が多いから、それでお金儲けをしようとする場合は注意が必要だ。
プログラミングといっても、さまざまなレベルがある。
たとえば僕が毎日受信するメールを自動的に分類して、ある種類のメールが届いた場合は特定の作業をしなければならないとする。これをコンピュータに自動的にやらせるために、小さなプログラムを作るのは、ちょっとした時間でできるだろう。
コンピュータの素晴らしいところは、自由なところだ。コンピュータはとても複雑だが、きわめて論理的な構造をもった道具だ。LEGOやマインクラフトのように、使い手次第で可能性は無限大なのだ。
むかし電子ブロックという知育おもちゃがあった。
パーツを組み替えるだけでラジオ、トランシーバー、インターホン、警報機など様々な道具になる夢のおもちゃだった。残念ながら僕は触れる機会がなかったけれど、代わりにパソコンという夢のおもちゃと出会った。電子ブロックが電子回路、パソコンはソフトウェア回路。
コンピュータで何を勉強したらいい? という疑問を持つ方には逆に問いたい。「あなたはコンピュータで何がしたい?」
コメント