見出し画像

頭の体操:エレガントな式(IQ=110)

優秀なソフトウェア・エンジニアと、そうでないソフトウェア・エンジニアでは、生産効率が20倍以上違うと言われますが、それは本当です。実際にはそれ以上の場合もしばしばです。

多くの場合、その差は書いたコード(プログラム)を見れば分かります。

優秀なソフトウェア・エンジニアが書いたコードは、簡潔で美しくて読みやすく、そうでない人が書いたコードは、冗長で汚くて読みにくいのです。

業界では、前者のようなコードを「エレガントなコード」と呼び、後者を「スパゲッティ・コード」と呼びます。当然、エレガントなコードの方が、バグが混じり込む可能性も少ないし、メンテナンスも楽なので、生産効率が高くなります。

そんな「エレガントさ」は、数学の式にも表れます。

私が、(プログラミングを覚えたての)新米のエンジニアの面接の際に使うのが下の問題です。

下の図のように、辺がそれぞれX軸とY軸に平行な長方形は、四つのパラメータ(下の図の場合、Pn, Ps, Pw, Pe)で定義することが出来ます。

同一平面上に、同じく辺がそれぞれX軸とY軸に平行な長方形 Q (Qn, Qs, Qw, Qeで定義される)があった時、長方形Pと長方形Qが重なる条件(点や辺で接する場合も含む)を、最もエレガントな式で書いてください、というのが問題です。

グラフィック・ソフトに少しでも関わったことがあるソフトウェア・エンジニアにとっては、答えは簡単すぎるほどですが、プログラミングの初心者だと結構手間取ります。

ここから先は

376字

¥ 100

この記事が気に入ったらサポートをしてみませんか?