プログラミングに正解なんてありません。逆に仕様通りに動きさえすれば、どんなプログラムも正解だという解釈もできます。
新人エンジニアの場合、プログラムに正解を求めようとする傾向にあります。しかしこれだけは覚えておいてください。「プログラムに正解なんてない、最適解を探せ」ということを。
プログラムに正解はない
同じ結果が返ってくるプログラムだとしても、出来上がったソースコードはプログラマーによって差が出てきます。サブルーチンが上手に使われているソースや、ハードコーディングが多用されたソースなど。変数名のつけ方ひとつでも、プログラマーによって異なるものです(コーディング規約がガチガチに固められていれば別ですが・・)。
単純なプログラムであればそこまで差は出ないでしょうが、システムの規模が大きくなるにつれて、その差もはっきりついてくるようになります。その差が良い悪いは置いといて、ソースコードはどうあれ、まずは仕様通りに動くことが第一なのです。
つまりプログラミングにおいては、絶対にこうしなければいけないという”正解”はないのです。しかし仕事としてのプログラミングなので、「こうした方がいい」という、模範解答とでも言うのか、最適解のようなものはあります。それは次の項でご説明する通り。
プログラムの最適解とは
プログラムに正解はありませんが、プロとしてプログラミングをするなら、以下のことに気を配るようにしてください。
- メンテナンスのしやすさ
- ソースの読みやすさ
- 実行速度の速さ
後々のメンテナンスを考えれば”スパゲッティコード”と呼ばれるような、処理を追うのが大変なぐちゃぐちゃなソースを書くべきではないですし、自分以外のプログラマが手を加えることを考えれば、いかに読みやすく理解しやすいコードにするかを考えなければなりません。またお客様のことを考えれば、ストレスがたまらないように、いかに処理速度を早くするのかも意識すべきポイントとなります。
こうしたことを考えられるかどうかが、アマチュアプログラマーとプロプログラマーの違いでもあります。具体的にどのようなことをすればよいかは、以下の記事を参考にしてください。
とにかくプログラミングの場数を踏むことが大事
どうすれば上手なプログラムが書けるようになるかですが、とにかく場数を踏んでいくことが大事だと思います。
入社直後の技術研修時には参考書片手に、まずは正常に動作することを目的にプログラミングをしていけば大丈夫ですが、自分が書いたソースを100%正解と思って満足するのではなく、常に「もっと他にも効率の高くなる書き方はないか」を考えるようにしてください。
そして開発系のプロジェクトに入れば、どんどんプログラムを書いていくことになると思いますが、その中で最適解となるような、自分なりの理想のプログラムを見つけていくことになるでしょう。逆にプログラムを書かなければ、いつまでたってもソースコードの柔軟さのようなものが出てこないで、いまいちなソースしか書けないまま成長することはありません。
人のプログラムを解析するとよく分かる
実際の開発現場では、新規開発案件ではなく、現行システムの改修やバグ対応などで、自分以外のプログラマーが書いたソースコードを見る機会も多くなります。
そうして人のプログラムを解析すると、「こういう変数の使い方があるのか」や「ちょっと無理やりすぎるな」など、さまざまな発見が生まれます。その中で自分のプログラミングスタイルに取り入れたいものと、不要なものを判断していけばよいと思います。
人のプログラムを解析すると、より良いソースコードを書くためのポイントのようなものを学習することができます。プログラマーとして成長したければ、どんどん人が書いたソースを見ていくようにしましょう。
おわりに
プログラムに正解を求めること自体、愚問です。プログラミングとは最適解を追い求めるような作業なのです。ですから独りよがりのソースコードを書くのではなく、今回ご説明したポイントを意識しながら、自分なりの理想のプログラムを追求していくようにしましょう。
【X(旧twitter)でも情報発信中】
Xを最近始めたので、フォローしてもらえると嬉しいです(エンジニア界隈の方はフォローバックさせていただきます)! システム開発に関することや、最新テクノロジーのことなど、世のエンジニアにとって有用な情報を発信してます!