Ameba Ownd

アプリで簡単、無料ホームページ作成

コンピュータの抽象的概念

2018.12.12 22:54

昨日の話しで、結構皆さんの意見を頂きました。

あきらかなもの、曖昧なもの

あきらかなものを曖昧にしては駄目です。

あいまいなものをあきらかにしては駄目です。

どちらも世の中には存在します。


コンピューターの言語を習得するのは、あきらかなものなので必ず答えがあります。

できることとできないこと。

しかし、コンピューターの言語を習得する時には、必ずしもあきらかな概念しか受け付けないかというとそうではありません。

かなり曖昧なものが必要になります。


抽象的概念が一番必要なのは、コンピューターの専門書を読んだ時に強く感じます。

コンピューター言語のユーザーズマニュアルを読んでみるとわかりますが、専門用語がたくさん出てきて何が書いてあるかさっぱり分かりません。 

その言葉の意味を知ろうと思ってヘルプを開けると、そこにも専門用語が沢山出てきて、イタチゴッコで意味不明です。


まず言葉を一から覚えることからはじめなければなりません。 

私もプログラミングを長い間やっていたので、よくわかるのですが、まずは、具体的に何をしたいかが決まっていないとマニュアルを読み尽くすことはできません。

ユーザーズマニュアルは明らかに初心者にとって親切な説明とは言えません。 

この時にこそ抽象的概念が必要なわけです。 


パソコンを使って何がしたいのか? 

まずは、操作者がこれを明確にしていないと上手くなりません。それに伴った大雑把な説明がまずは必要です。  

プログラミング言語のユーザーズマニュアルを見ると例文が書いてあるのですが、初心者には呪文にしか見えませんし、ズバリの例が書いてある訳ではなく、それも意味不明です。 

やりたいことは決まっているのに、長い時間をかけて一つ一つ良い読み解いて行かなければなりません。ほとんどの人はここで断念してしまうのですが、諦めきれない人が何とか残ります。  


ここで大雑把な抽象的概念が必要です。全体を見渡せるような、どんなことができるのかというビジョンみたいなものです。

そのような解説をしてくれる書物は皆無です。 そこから、やや具体的に必要な言葉の意味を理解することができれば、やりたいことの全体像を見渡せます。

そうするとやる気も起こるのですが、いきなり専門用語ばかりだと、やる気も失せます。 


もちろん、専門的に学びたいと思っている人は、学校に行って一から基礎を学ぶので、専門用語は理解しているので、専門書を見てもわかるレベルになるでしょう。

しかし、プログラミングは、幾通りもの書き方があります。 プロから見ると不味い書き方であっても、目的を達成するだけで良いという書き方があります。

初心者にとって大事なことは、とりあえず動かしてみるということが重要です。  

学校に行っても何ができるのかという大きなビジョンがわかっていないと、どのソフトを使うのかという選択すらできません。 

コンピューター言語も複数あって、言語によって様々な特長があります。

これはプログラミングを書くときにかなり重要な内容です。

その言語の優位性は書いてあっても、細かいところはわかりません。あとで糞詰まりになることもあります。言語の特長を見誤ると、折角覚えた言語であっても目的のことが達成できなかったり、達成しにくかったりします。 


曖昧な概念、抽象的な概念というのは、プログラミングにも必要不可欠な概念です。しかし、その目的を達成する為の書物は、なかなか出会えません。

どれだけ書物を買っても得られるものは少なかったのです。入門書はサラッとなぞったものか、専門的なものばかりで、知りたいことを知ることができません。 


中間的な書物がないんです。最後の頼りの綱がインターネット検索でした。私が行った殆どのプログラムの中心は、インターネット検索による例文を解釈することで問題が解決しました。 

時にはボランティアとも言える知識を持った人達に聞いたりして、理解することができるようになりました。 

この人達の存在がなかったら断念していたと思います。

ボランティアの知識も様々です。目的を達成する為には、これみたいな例文をあげてくれる人もいれば、かなりプロ的な落ち度のない例文をあげてくれる人もいます。 


身体と違って、プログラミングの答えは明確です。手順を踏めば確実に目的を達成することはできます。 

もちろん、完璧を目指している訳ではないので、様々なバグに遭遇する可能性はありますが、素人が自分で利用する為に必要な知識は、これで十分でした。  


言語の中には、この抽象的概念を取り入れたプログラミングができる言語があります。

一つ一つ実行文を書いていくと、一枚の紙に目次をつけずにバラバラな内容で書いた文章のようになってしまいます。しかし、実行させたい雛形を作っておいてその雛形に値だけを与えるというクラスという考え方で実行させる方法があります。 

方程式のようなものなのですが、それを駆使するとプログラミングが非常に読みやすくなります。 

実は、プログラミングは、書くより実行させてエラーがでないかどうかを検証するのに時間がかかります。いわゆるバグ取りというやつですね。

これの方が長時間かかってしまうのです。思わぬ動きをしてエラーがでます。経験のあるプログラマーはそうならないように最初から設計がしっかりしていて、バグがでない書き方を最初からします。


問題は、この方程式を目的に応じて個別に自分で作らなければなりません。

その時に何をさせたいかが明確でないと雛形が失敗するのでバグの原因になります。 全体像を捉える能力がもの凄く必要になってきますし、専門的な知識が必要です。 


やれることは同じでも、バグ取りをする時、この方法だと値を変えるだけであったり、雛形を少し変更するだけで、大きく変更する必要はなくなります。 

あとからの修正がもの凄く楽になるというメリットがあります。しかし、設計をミスすると余計な時間がかかってしまうというデメリットもあります。 

私は、そこまでやって目的を達成したので、今はそれで運用しています。完璧なプログラムを書くことはできませんでしたが、自分で使うのには、もの凄く重宝しています。 


書くだけではなく、一つ一つ実行して、バグをとっていくのは、非常に根気のいる仕事です。プログラマーって格好いい仕事みたいに思っていた時代もありましたが、やってみてわかることは、かなり地味な仕事です。

一日机に座って仕事をしても時間は足りません。そんな仕事です。