人のプログラム(コード)を読むことの価値

システム屋になる前、「システム屋の仕事」とはどんなカンジだと想像していましたか?「要件を聞いてプログラムを書いて納品する」といったイメージ?
でも実際にシステム屋を初めて見てどう感じましたか?恐らく「ナンカ、イメージと全然違うなぁ・・・」という感じではないでしょうか?

私が初めて実プロジェクトに配属されて最初にやらせてもらったのが「現行プログラムを読んで仕様をドキュメント化する」という仕事でした
今時は「リバースエンジニアリング」とかカッコイイ名前がついていてそれなりに必要な作業であるという認識がありますが、当時は同期から「なんか大変(つまらな)そうな仕事だねぇ」と言われた覚えがあります。

その「現行プログラムを読んで仕様をドキュメント化する」という仕事ですが、与えられたのは対象プログラムのコードを印刷した紙だけでした。(設計書は “無い” と言われました ┐(´~`)┌)
一生懸命アルファベットと数字の羅列をひたすら眺めても「何をやろうとしているのか」が全然解らない。なんとなく処理していることが理解できても「何でそんな処理しているのか?」が解らない。来る日も来る日も現行プログラムとの格闘が半年ぐらい続きました。当時はもちろん自分に何の技術も経験もなかったのでこの時期は本当に毎日辛かったと記憶しております。

しかし、そんな日々を続けていると、なーんとなく解るようになってくるから不思議です。また人のプログラムを読むことで「解りやすいプログラム」と「解りづらいプログラム」の違いが分かったり、使用している言語の関数をあらかた覚えることができたりと、今考えればプログラムを書く上での基本の基本を学べたような気がします。

「仕事は盗んで覚えろ」とか「学ぶの語源はまねぶである」と言われますが、プログラムに限らず他の人のアウトプットを見て咀嚼するという行為は一見つまらなそうな気がするとは思いますが、スキル習得に非常に有効なタスクだと思います。
是非、毛嫌いせずに「人のアウトプット」を見てください。研修やインターネット等では学べない生の技術を肌で感じることができると思いますよ。

コメント

タイトルとURLをコピーしました