コラム

プログラミングの基礎力向上のためにあえて車輪を再発明する

コラム

こんにちは。ゲームプログラマーのメガネです。

車輪の再発明はしていますか?

車輪の再発明は、誰かが過去に作ったものをもう一度自分で作り、時間を無駄にすることを指します。熟練者ほど時間を節約するために、あるものは使うというスタンスだと思います。一般的に車輪の再発明は良くないものとされています。

ただしこの記事では、初心者は積極的に車輪を再発明すべきという話をしていきます。参考になるものが世の中にはあふれています。真似て自分で実装してみるのが、上級者への近道です。

プログラミングで車輪の再発明が嫌われる理由

ちゃんと動くようにするのに時間がかかる

とりあえず動くプログラムを作ることは簡単です。しかし、正しく動くプログラムを作るのは骨が折れます。

思わぬバグに遭遇することもありますし、テストも時間がかかります。もちろん最初は実績もゼロ。誰かに使ってもらったりレビューしてもらうことで、品質は徐々に上がります。

苦労して動くものが作れたとして、他人が読みやすいコードになっているかも問題です。チームで作るときは可読性が重要です。1人で作っているときも、1ヶ月前のコードが理解できなくなるかもしれません。

メンテナンスコストが高い

プログラムが本番環境で使われると、忘れたころにバグ報告がくることがあります。また利用方法が変化して、仕様変更を求めらることも。

新しいプログラムを作りたいのに、古いプログラムをメンテナンスするばかりで、一向に開発速度が上がらないという状態に陥るかもしれません。

既に他のだれかが作っている

プログラミングの世界では、コードの再利用が当たり前に行われていて、自分が実現したいことを他の誰かが先に実現していることが多いです。

わざわざ労力をかけて作らなくても、多数の人に使われて品質の高いものが存在しているはずです。あるものは再利用して、ないものに集中することで生産性が上がります。

あえて車輪を再発明するという選択肢

でも初心者はあえて車輪を再発明した方が良いと思っています。人は真似て成長するからです。

人は真似て成長する

子どものころに、竹とんぼを作ったことはありますか?

あれは小学校に入る前ぐらい。祖父に教えてもらい、色々なおもちゃを手作りしました。竹とんぼや竹馬、中にはブランコなど。

小さく切った長方形の竹にナイフを当て、片側が薄くなるように削るのですが最初は難しい。左右アンバランスになったり、削りすぎたりします。

飛ばしてみるとまったく飛ばない。

じいちゃんが簡単に作っているように見えるから、自分でも簡単に作れると思って、いきなりいろいろアレンジしてみるんです。でもうまくいかない。

じいちゃんの作ったものと自分が作ったものを比べてみると、羽の傾きや薄さに違いがあることに気づきます。そこではじめてお手本をじっくり観察します。

そっくりそのまま真似て作ってみると、少し飛ぶようになりました。

そこからは早い。どこが悪かったのか、どうすればもっと飛ぶのか考えながら試行錯誤を繰り返します。一度飛ぶようになったら、コツがわかるんです。

プログラミングも同じです。良いお手本を真似て作ることで成長が加速します。

GitHubには良いお手本がそろっている

プログラミングの世界は、優しい世界です。

技術の発展を願って、オープンソースソフトウェア(OSS)という形で、自分が作ったプログラムを無償で配る人が多いです。GitHubを除くと、良質なコードを無料で見れます。

たとえばGame EngineのUnreal Engineなんかも、GitHubで無料でソースコードを覗けます。いきなり巨大なものを見ると圧倒されますが、勉強になることも多いはず。認証は必要になりますが、以下のページからアクセスできます。

https://www.unrealengine.com/ja/ue-on-github

まとめ

生産性を上げるという観点では、車輪の再発明を避けるべきです。しかし初心者はあえて誰かの作ったものを真似ることで、どんどん上達していきます。良質なコードが無料でたくさん見れますので、最初はあえて車輪の再発明をしてはいかがでしょうか。

コメント