スクラッチのすすめ

高木です。おはようございます。

私が子供のころは、よく模型を作ったものです。
最初は市販のプラモデルのキットを素組みすることから始まって、だんだんとマニアックな方向に進んでいきました。

塗装を施すために、塗料や溶剤の種類や性質に詳しくなっていきました。
塗装方法についても、発色をよくするために地塗りをどうするかとか、マスキングの方法、ドライブラシなどをいろいろ試したものです。

市販のキットでは細部があまり再現されていないことも多かったので、ディテールアップもやりました。
キットになっていないものを作るために、キットをベースに大がかりな改造も行いました。
複数のキットを合成して別のものを作る、いわゆるニコイチ、サンコイチにも挑戦しました。

そして、行き着くところはフルスクラッチです。
キットを使うのではなく、部品レベルからすべて手作りするのです。
材料には、プラ版、プラ棒、各種パテ、レジンや無発泡ウレタンなどの樹脂、金属棒や金網、その他手芸用の材料などなどを用いました。

さらには電飾もやりたくなります。
電飾のためには、電源や電球をはじめとした電気部品にも詳しくなりますし、自然に回路図も扱うようになります。

目的としているのは、興味のない人から見れば何の価値もないような模型です。
しかし、それを作り上げるためには、さまざまな知識や技術が必要になります。

もし、プラモデルのキットを素組みして、指定された色で塗装する程度で終わっていれば、大した知見は得られなかったことでしょう。

ソフトウェアの開発も同じことがいえると思います。

実際の受注案件でフルスクラッチするかどうかは別として、小さなプログラムでもいいのでフルスクラッチで作る経験は大事です。
どこかの誰かが作ってくれた便利な部品を使うだけでなく、そうした便利な部品を自分で作る立場になるわけですから。

ローエンドのマイコンのプログラムなんかは、まさにフルスクラッチで開発することが多々あります。
リッチな開発環境であれば当たり前に存在する部品であっても、すべて自分で作らなければならないのです。

私がPC向け以外で最初に使ったCコンパイラは某コンシューマーゲーム用のものでした。
確かにCコンパイラなのですが、ライブラリが何一つありませんでした。
本当にヘッダのひとつもなかったのです。

だからすべての機能をスクラッチで作らなければなりませんでした。
標準ライブラリもすべて自分で実装しました。
その過程で、プログラム言語Cのあらゆる仕様を把握することができました。
本当に貴重な経験だったと思います。

フルスクラッチすることで、それが直接何の役に立つか、あるいはいくら儲かるのかと尋ねられれば、正直なところ答えに困ります。
けれども、確実のその技術者の実力を向上させることができるのです。

プログラミングで飯を食おうと思うのであれば、強引に時間を作ってでもスクラッチに挑戦してみることをお勧めします。