面接前に出たプログラミングの問題
昨日の面接試験で,面接の前に30分の筆記試験があったんだけど,その中の一つが以下のようなプログラミングの問題.Googleとかの試験に比べたらへなちょこすぎる問題だろうけど気になることがあるので.
以下の問題をC,Java,Ruby,PHP,Perl,Pythonのいずれかを用いて書け
ある年月日を指定されたときに,1900年1月1日からの経過日数を返すサブルーチンを書け.うるう年の条件はこれこれである.
Pythonを入れてくれるなんて気前がいいね.
三行で終わっちゃうぜ.ひゃっほう.
from datetime import date def main(year, month, day): return (date(year, month, day) - date(1900,1,1)).days
まぁ,実際はナイーブに書きましたがね(汗
dateオブジェクトの引き算をしたときの返値の型をうろ覚えだったし,以前くさのんから「プログラミングの課題でC言語でカレンダーを表示するプログラムの作り方を聞かれて,calコマンドを使ったやり方を教えたら落ちた」という話を聞いていて冒険する勇気がなかったというのもある.
月ごとの日数は「西向くさむらい」(二四六九士)で覚えていたので大丈夫だろう.というか,もう合格の連絡が来たからどうでもいいんだけど,もし上の三行で書いたとして,点数をくれるのかどうかは非常に気になるところである.
「プログラミング言語」と言ったときにライブラリを含むのかを曖昧なままにして,標準ライブラリが豊富な言語とそうでない言語を一緒に並べるのは正直どうかと思う.
C/C++だってboostを使えば日数計算は簡単にできるし,Pythonからライブラリを外したらそれはもうPythonとは呼べない代物になってしまうだろう.
次の面接で質問ありませんかって言われたら聞いてみるか.