達人プログラマーを目指して

ホーム

達人プログラマーを目指ざすなら、まずはプログラムは思った通りには動かないことを知ろう

メインメニュー

特集メニュー

プログラムは思った通りには動かない

プログラムは思った通りには動かない

バグはつき物

頑張ってプログラミングして完成させたプログラムをいざ動作させてみると、ほとんどの場合どこかにバグが見つかるものです。バグとはプログラミングのミスのことです。プログラマーは複雑な論理を組み立てることでプログラムを組んでいるわけですから、プログラミングを知らない人から見るとそういったミスとは縁がないように思われるかもしれません。しかしすべてのプログラマーはどこかで必ずミスをします。見方を変えればプログラマーはバグをどうやって潰すか頑張っていると言ってもいいかもしれません。

ミスに気づけるかどうか

バグとはプログラミング上のミスのことを言うわけですが、そのミスがどこにあるのかを探すことはとても重要なことです。たとえば飲食店を経営しているとして、ある程度経営が順調だったのに次第に客が減っていき閉店したとします。いったいどこに原因があったのでしょうか?自分でも気づかないうちにミスを繰り返していたということはよくあることです。どこかしらに営業上のミスがあり、それが原因となって店が潰れてしまったはずです。要因は1つではなく複合的なものかもしれませんので、簡単には探り当てることはできないかもしれません。早い段階でミスに気づけていれば閉店なんてことにはならなかったでしょう。ですからミスを察知できる能力があるかどうかはとても重要なのです。
プログラマーもバグというミスを頻繁に生み出しています。いくら経験を積んでもプログラマーはつまらないバグを繰り返してしまうものなのです。ですからそのミスに気づくことが重要になるわけです。

バグ探しを手助けしてくれるもの

プログラマーは経験を積むと大きなバグを起こさなくなります。なぜなら大きなミスを防ぐ方法がわかっているからです。しかし逆に小さなバグは繰り返ししてしまいます。よくあるのはタイプミスです。プログラミングの世界では大文字や小文字の間違えただけでバグになります。またプログラムで使われる命令語は数百あり、利用されるライブラリなどを含めると語彙は膨大なものになります。
こういった状況の中でバグを防ぐために、エディタやコンパイラなどに様々な工夫が凝らされるようになりました。タイプミスなどをしてもそれに気付きやすくなったのです。タイプミスを無くすことはできませんが、タイプミスをしてもそれに気付かせてくれるという対処がされているため、結果的にタイプミスのようなバグを減らすことに繋がっているわけです。

バグとの本当の闘い

タイプミスのようなバグはソフト側から警告を出してくれますが、中には警告さえ出ないようなバグがあります。これに対応するのがプログラマーの本当の闘いと言えるでしょう。「プログラムは思った通りに動くわけではなく、書いた通りに動く」と言います。これは名言でしょう。プログラムが自分の意図したように動作をしないといったことは頻繁にあることです。とくにプログラムで想定外のことをされた時などによく起こります。
たとえば、誰かに車を運転させたところ、こちらが用意した道を外れて思ってもいないところへ行ってしまったような状況を思い浮かべるとわかりやすいかと思います。これは、こちらが「この人は道を走るだろう」と思い込んでいたことが原因と言えます。道を外れた時の対応が準備されていなければ、それに対応することはできません。プログラムは書いた通りに動くものです。このプログラムは道を外れた時の対応を考えずに書かれているわけですから、道を外れれば対応できないのは当たり前ということになります。あらゆることを想定して対応できるようにしておくのがプログラマーの責任です。

営業マンも活かせる記事

経営者にも求められる知識
経営者にも求められる知識

経営者にもプログラマーなど技術的な知識は必要です。なぜなら新しい技術を導入して開発を行う際、技術的な知識がないと判断ができないからです。技術だけでなく現場にとってどのような影響があるのかも把握できていないと全体を管理することはできません。ですから特に技術系の企業には、プログラマー出身の経営者が多いのです。技術には、その技術をどのように実現するかという面と、その技術で何ができるかという2つの面があります。ビジネスとして成功するために経営者は両者を把握しておく必要があります。

社交性ではなくコミュニケーション
社交性ではなくコミュニケーション

プログラマーの中にはコミュニケーションが得意ではないという方は多いかもしれません。しかしよく話を聞いてみると、不得意なのはコミュニケーションではなく社交性だったということがあります。プログラマーにとってコミュニケーション能力は大事ですが、社交性は必須ではありません。プログラムを作成するには要望を聞いて開発を進める必要があるため、相手の意見を聞け、自分の考えを仕えられる「コミュニケーション能力」は必須となります。しかし人との会話に花を咲かせるような社交性はなくても仕事をすることはできます。

振り返りを日常化
振り返りを日常化

「振り返り」という作業を行うと、ステップアップの効果があります。個人でやってもチームでやっても効果がありますが、チームでやるとまとまりが出てきたり、様々な問題や改善策を共有できるようになるため、ぜひ振り返りをすることをおすすめします。振り返りは、ここまでの経過を振り返って良いところと悪いところを書き出し、そこから改善策を考える作業のことです。次の振り返りまでに改善策を試してみて、そこでまた振り返りを行うといったように定期的に振り返りを行うことでステップアップしていくことができます。

ページトップ