うーん。自分でも大胆なタイトルだと思います。プログラマーについてよく知りません。夏の暑さでおかしくなったか?いや、前からおかしいから大丈夫か!
「プログラマー」という人は、どんな人なのかって知っていそうで知らないような気もします。ピンからキリまでいますからね。
エクセルでマクロを組める人もいますし、銀行とか社会インフラのオンラインをやっている人もいます。
そんな中で、良いプログラマーを見極める方法というのはあるのでしょうか?
おそらく、大企業で人を雇うときには経歴を見て採用すると思われます。
私達の場合には、何か会社で必要な仕組みをパソコンで作ってもらったり、WEB上で使うような何かのプログラムを外注するようなときにプログラマーの人と話をしますね。
どんな人が良いプログラマーなのかは、けっこう難しい問題です。
前編は、簡単にプログラムの内容の一例を話してみます。そして後編では、良いプログラマーの見分け方です。
では、一例ですが、よく会員制のプログラムで使われるような、たくさんある名前の中から、重複チェックをすることを考えて見ます。
以下のような名簿から、重複する文字列を探してみましょう。
abc
defgh
ijklm
nopqr
stu
vwxy
z
abcd
efgh
ijklm
nop
qrs
tuvwxyz
さて、同じものがあるのは見つかりましたか?
そのとき、どのような探し方をしましたか?
それをパソコンにやってもらうようにするには、どのような指示をだしますか?
どうでしょうか。わかりますか?
こういう問題を簡単に解決できる人が優秀なプログラマーになります。
例えば、最初の文字の「abc」を次の文字から探して一致するものをチェックして、次に「defgh」を探して・・・というのを繰り返せば良いのですが、100万個とかの文字列があるときなど、さすがのコンピュータでも時間がかかってしまいます。
コンピュータは計算がめちゃめちゃ速いので普通はあまり気にしなくてよいのですが、それを気にする人が良いプログラマーです。
さて、次に少し探し方を改良しましょう。
「abc」と一致するものを探すのに、なにも全部を一致させて探す必要はありません。
「a」から始まる文字列を探し出してきて、その中から2文字目が「b」のものを探して・・・、という風にすると時間が短縮されますね。
まあ、単純にabc順に並べ替えをして同じものが2個並んでいるかをチェックしても良いのですが・・・。
さて、重複に関しては最初の登録の時点で重複チェックをするシステムにするのが一般的だと思いますが、ある文字列を探す場合、最初からインデックスを作っておいて、例えば「a」「b」「c」で始まるグループの中からだけ探すということにすれば、全体から探す必要もなくなります。
つまり、本番で動作する部分と、普段の余った時間があるときにやっておける部分を切り離してダブルで動作する仕組みを作ると更に速い検索が可能になります。
コンピューターに関するすべてのコマンド(命令文)を知っていても、その使い方に工夫がなければ良いプログラムとは言えないという例を少し話してみました。
次回、後編へと続きます。(^_^)
コメントする