頭の体操:エレガントな式(IQ=110)
優秀なソフトウェア・エンジニアと、そうでないソフトウェア・エンジニアでは、生産効率が20倍以上違うと言われますが、それは本当です。実際にはそれ以上の場合もしばしばです。
多くの場合、その差は書いたコード(プログラム)を見れば分かります。
優秀なソフトウェア・エンジニアが書いたコードは、簡潔で美しくて読みやすく、そうでない人が書いたコードは、冗長で汚くて読みにくいのです。
業界では、前者のようなコードを「エレガントなコード」と呼び、後者を「スパゲッティ・コード」と呼びます。当然、エレガントなコードの方が、バグが混じり込む可能性も少ないし、メンテナンスも楽なので、生産効率が高くなります。
そんな「エレガントさ」は、数学の式にも表れます。
私が、(プログラミングを覚えたての)新米のエンジニアの面接の際に使うのが下の問題です。
下の図のように、辺がそれぞれX軸とY軸に平行な長方形は、四つのパラメータ(下の図の場合、Pn, Ps, Pw, Pe)で定義することが出来ます。
同一平面上に、同じく辺がそれぞれX軸とY軸に平行な長方形 Q (Qn, Qs, Qw, Qeで定義される)があった時、長方形Pと長方形Qが重なる条件(点や辺で接する場合も含む)を、最もエレガントな式で書いてください、というのが問題です。
グラフィック・ソフトに少しでも関わったことがあるソフトウェア・エンジニアにとっては、答えは簡単すぎるほどですが、プログラミングの初心者だと結構手間取ります。
ここから先は
376字
¥ 100
この記事が気に入ったらサポートをしてみませんか?