オルタナティブ・ブログ > 一般システムエンジニアの刻苦勉励 >

身の周りのおもしろおかしい事を探す日々。ITを中心に。

他人のソースに「すげー」と思う経験

»

田中さんが「次世代プログラマの弱点」という記事を書いておられます。

自分は1980年に生まれ、1990年前後の数年ほどの間PC-9801VXでn88-BASICで遊んでいました。

主にBIO_100%のゲームかTAKERUで買ってきた市販ゲームをやりつつ、自分でゲームを作ったりしていました。誰にも公開はしていませんが、自分で楽しめるようゲームバランスを整えるということを繰り返しているうちに市販ゲームをやると裏が透けて見えるように感じて楽しめなくなりました。(でもメタルギアは好きです)

ゲームは作る時間が長い割に、すぐに飽きてしまうというバランスの悪さに気付き、趣味としての純粋なプログラミングをした時期もありました。中学生くらいだったのでそれなりに数学の知識もあり確率や幾何の数学とプログラミングの勉強が融合したようなプログラミング学習本を買ってきて作っていたような記憶があります。

こうした経験があるとPCに「自分の限界を試す」という一面が備わってきます。シューティングゲームの弾幕で処理落ちしてしまうところをなんとか落とさずにごまかせるようになったり、プログラムは性格に動くけれども数学のアルゴリズムのほうが意味がわからないのがわかるようになったり、そうしたところはスポーツ等と近いのかもしれません。

しかし高校大学とPCからすっかり離れてSI業界に就職してみると、そこまでの難易度が求められるのはほんの僅かであることがわかります。基盤や構成の面では緻密でギリギリの考え方が要求されますが、ビジネスロジック面ではそこまで複雑なアルゴリズムは滅多にお目にかかりませんでした。インクリメントと分岐とループばっかりだったように思います。

同年齢に限って言えば周りもそういう感じなので、アセンブラチックに16ビットくらいのフラグをひとつの変数にしまい込んでAND ORで条件判断みたいなことをすると多くの人が初見では?という状態になります。上の人からは「しぶいねー」というようなリアクションをいただけることもありますが。剰余演算すら昔ほど見かけないように感じます。

一方で人間同士が言葉を話すように素直な処理をさらっと書けるのはやはり若い人に多いように感じます。通常我々がリアルの仕事をするように、この処理をして、次にこの処理をしたら、最後にこれをしましょう、というのが人間にわかりやすいように感じます。(悪く言えば冗長で、コンピュータ思いでないこともある)

そうした環境では明らかに自分の能力が向上したと自覚できる点があるでしょうか?ひょっとするとビジネスロジックや基盤・構成をやるのは若い人で、プロジェクトマネジメントをするのは偉い人、上流工程をやるのは偉い人、という先入観に囚われてプログラミングは通過点なんて思う人がいるかもしれません。また、ビジネスロジックが複雑化する中で、アルゴリズムを設計する以前のところの仕様調整はすごく大変な一方で開発環境が優秀でプログラミングは簡単という実情もあるかもしれません。HW性能にも余裕があって「あるべきアルゴリズム」を歪めてまで性能を追求するといった場面も少ないように思います。

そういった努力の痕跡は過去のものなのかもしれません。が、一方でそういった課題は向上心を刺激し達成感を大きくするスパイスでもあります。自分自身そういった壁に当たった経験が少ないことに加え、別の人のプログラムソースを見て、その内容に「これはすごいな」と唸る機会も少ないとすれば、それは技量の面でもモチベーション維持の面でも次世代プログラマの弱点になるのではないかと思います。

Comment(2)