デッドコピー勉強法

デットコピーとは、

# 半導体業界におけるセカンドソース契約を結ばずに、オリジナル製品の仕様を元に造られた模倣品の蔑称。
# コンピュータソフトウェアにおいての、正規の手続きをとらずに造られた単純な模倣品・複製品。派生して、粗悪な模倣品全般を指すこともある。
wikipedia より


デットコピーを繰り返すことで、独学なら10年かかる設計・開発ノウハウを短期間で自分のものにすることができる。
しかも、そのノウハウはオリジナルだ。


私は、中学の時にプログラムに出会い、その後意識していたわけではないが、デットコピーを繰りかえした。
(ベーマガとか)本に書いてあるソースを打つのは気が遠くなる作業だったし、単調な作業が大嫌いな私にとって苦痛でしかなかった。
そして、超低スペックのマシン(ポケコン)でプログラミングをしていたので、結局最適化をしないと使い物にならなかったのである。


そんなこともあり、私は1から開発をすることが多くなった。
結局、ゲームクリエイター脳ではなかったので、アイデアは乏しく、オセロをはじめとする既存ゲームを実装することが多かったが。
高校時代は、2次方程式のグラフを出力するソフトなど、(今となっては)よく作ったなーと思うこともあるし、
ポケコンは縦が50pxくらいしか無かったので、縦5px,横3pxで数字フォント(と言ってもピクセル配置だが・・・)を作成し、
縦幅の有効利用。なんてこともやった。


その後、Windowsに。HSPなどの言語を使用し、ビートマニアなど、ゲームを作った。


これも、今思えばデットコピー。
結局、デットコピーも、新規で作るソフトも、目で見るか、心で見るかの違いはあるにせよ、
開発者の中では(内部構造まで)完成しているものを、PCに落とし込む作業がプログラミングと言える。


その中で、様々な障害を乗り越えることによって、自身の開発能力は向上するし、
苦難の末たどり着いた答えがアルゴリズムとも言える。


結局は、すでに名前が付いているアルゴリズムだって、
何もみずに自分で思いつけば、それは素晴らしいことだし、その方がより身につく。
こういうときに、使えばいい。という知識ではなく、こういうときに使ったらこうなったという体験と結果が素晴らしい財産だろう。


今、プログラムを勉強しているなら、デットコピー勉強法を試してみてほしい。
基礎が出来てないからできない? それは言い訳だ。
私は、基礎なんか知ったこっちゃなかった。 初めはおまじないだったものが、
それが分からないと解決できない問題が出てくる。その時こそそれを学ぶときであり、
それまでは、おまじないでもいい。


最終的に動けばいいくらいの踏ん切りで、なにか一つ作ってみてほしい。
これだったら、熱意を持ってつくれる。そういうものを作ってみてほしい。
ゲームでもなんでも。 そしたら何でも作れるようになる。