「リバースエンジニアリング」の本音。

daily0 本音たち。

レトロゲーム時代のゲーム開発現場では、他社ゲームの解析(ある種のリバースエンジニアリング)を通じ、プログラミングの技術を学んでいた。

今となっては、これには法的な問題が生じうるものの、この発想の基本は、学問上の必須の手続きである「先行研究となる専門書や論文を余すところなく網羅して検証・活用すること」と全く同じである。

 

なぜ、プログラミングのような系統的な分野は学びづらいのか?

これは、上記のように直接手と頭を動かさずして、全体像を掴みようがないからである。

これといくらか違う事情があるものの、法学や会計学や数学も、似たような理由に起因する学びづらさがある。

ろくにアップデートされず、読み手が面白がる仕組みのない教科書ばかり、講義は一方通行で講話を垂れ流すだけ、まともに「勉強した」と実感するのは試験対策のみ……。日本語圏でありがちな教育環境に限れば、おおよそこのような経験ばかりの、雑なケースが後を絶たない。

このような対話のない場面からは、中身を自分から検証する余地などどこにもない。
自分の頭を使えて、やる気がある人ほど、つまらなさを強く感じてしまうことになる。

 

これと逆の面白がれる場面では、「リバースエンジニアリング」の発想が役に立つ。これだけでなく、法学や会計学など、一定の理屈と実践が両輪となってようやく理解が始まる分野にも当てはめやすい。

面白がれる場面について、以下のような「良い」を例として挙げられる:

・法学であれば、売買契約書やNDA(秘密保持契約)や法学史を解きほぐしつつ、民法の条文を比較して眺めてみると良い。
・会計学であれば、貸借対照表・損益計算書・キャッシュフロー計算書のつながりをExcelで組み上げつつ、総勘定元帳と仕訳のルールを眺めると良い。
・数学であれば、計算過程や概念をビジュアライズしている書籍に触れてみると良い。
要は、ストーリーや図形や幾何学に置き換わると言っていい。
(この記事の趣旨から離れるが、既にプログラミングができるなら、部分的にプログラミングに助けを求めるという手もある。)

いずれもフォーマットがかなりカッチリした分野である。
このせいで「どうせ暗記や手続き記憶でしょ?」と言わんばかりの要素が、強調されてしまう。
無味乾燥で行きつまらないためにも、早いうちからヒントやイメージの大枠を得たい。
出来る限り実際の契約書や計数や概念に、生々しく触れておけば事足りる。

そもそもプログラミング学習のためにウェブサービスのクローンを創ったり、先行研究の学習のために論文を再現して実装していくこと自体、リバースエンジニアリングと同じことだと言えてしまうけどね。

boxcox.net、遠藤武。

遠藤武(えんどう・たける)
グロースハッカー。

↑詳しい自己紹介は上記リンクを参照。

boxcox.netを講読する
タイトルとURLをコピーしました