2005-10-28 [長年日記]
_ 始動決定
長らくお休みしていましたが、
採用通知を頂き12/1より始動することとなりました。
新しい勤務地は品川近辺です。
来月中に今年2回目の引っ越しをしようと思います。
コンシューマ向け製品のプログラマになる予定です。
今までと畑も違うし、自分の力量に不安もありますが、
なんとか食らいついていきたいと思います。
なにより、やってみかった仕事なので、楽しんで自分の力を発揮したいです。
_ とある採用試験の形
長文になります。
採用試験の技術面接で、面白い問題が出たので紹介します。
上記のリンクページ(アメリカのベンチャー企業の採用に関する考察)に準拠した問題群ですね。
■1.ラーメン屋の待ち時間を、パラメータを決めて、モデルを作って求めてください。
ホワイトボードに向かいながら、
「やっぱラーメンは山頭火ですよねー、東京にもありますよねー。」
と場をつないで時間を稼ぐ。(笑)
いろいろ試行錯誤してたらそれらしい式ができました。
待ち時間:Tw 待ってる人の数:Nw 席の数:Ns 平均食事時間:Tm
Nw < (Ns / Tw) × Tm
になれば自分の番ですね。
右辺は平均食事時間だけ待てば(Tm=Twなら)店内のお客さんが1回転します、という式かな。
あとは、5分間観察して出てくる人の数を数えるとか、ですかね。
面接なので、答えもありますがどうやって取り組むかもポイントかなと。
できた後に次元があっているか、簡単な検算をできるかもポイントか。
終わってから知ったのですが、
これはATMの待ち行列問題としてこの業界では有名なんだそうです。
私はまったく知りませんでしたが。(^^;)
#tmaedaさんら多数の方から助言を頂きました。
■2.配列a[n]をx番目から前と後ろでインプレスに入れ替えるコードを書いてください。
(配列と同じ大きさの補助記憶は使わずに。)
例:abcdefg → efgabcd
まずは、要求の確認ですね。結果がどうなればいいのか、条件は何か。
簡単な解法は、最右を最左へシフト、繰り返し、って感じですね。
#これに気が付くのに2時間かかりました。面接内には絶対無理 だわ。。。
for ( j = n - x ; j < n ; j++ ){ // x回ループ
for ( i = n-1 ; i > 0 ; i-- ){ // 最右を最左へシフトするループ
tmp = a[i]; // 以下3行で隣同士を入れ替え
a[i] = a[i-1];
a[i-1] = tmp;
}
}
abcdefg -> gabcdef -> fgabcde ,,,
てな具合でしょうか。
これだと処理量がO(n^2)なので、次はO(n)でできないかとか考えるとポイント高い。
面接なので、適便助け船が入るでしょう。
#私はそこまでたどり着けませんでしたが。。。
ちなみに、O(n)の解法は、一度掴んだものを正しい場所に入れ、
入れ先にあったものを掴んで、それをまた正しい場所に入れ、、、
の繰り返しです。
i番目の要素の移動先は以下のようになります。
i > x のとき : i - x
i <= x のとき : n - x + i
移動済みの最初の場所まで戻ってきたら、次の要素から移動開始。
全部でn回移動させたら完成です。
#sheさんと一緒に考えていたらO(n)でできました。さすがsheさん。
■3.オブジェクト指向ってなんですか?
私は「ものに責任を持たせて独立させる」とかなんとか。
その後、助け船がやってきて、
「△△なパターンはOOですかね?」
「短工期開発にOOはどうやって貢献できますかね?」
「分割すると結合部のテストが増えて大変じゃないですかね?」
とかなんとか質問がいろいろ飛んできました。
助け船に当たって溺れそうな勢いです。(^^;)
■総論
全体を振り返ると、
面接で緊張している場でどこまで考えられるか、がポイントかと。
なんで、十分に場を和ませておくことが大切ですね。
#それでも大変だということがよく分かりましたが。
採用側は、どんな人材を採りたいか絞るのも大切ですね。
上記のページでも書いている通り、これはプログラマをターゲットにしています。
潜在能力を重視して見ているようですが、
大規模システムであれば特定のシステム明るい人の方が戦力になりそうですし、
潜在能力としても仕様を適切に聞き込んで策定できるかや、社交性が重視されるでしょう。
受験側は、会社がどんな人材を欲しがっているか予測して
はったりストーリーを組み立てる必要がありますね。
即戦力になる技術と潜在的な基礎力、
織り混ぜながら弱点をかばいつつ戦う必要がありそれなりに大変です。
昨今、新卒者でも即戦力レベルに達しないと採用しない企業が多いといいます。
ここでいう即戦力とは、知識というよりは理解力などの基礎力でしょう。
学生さんも大変そうですが、
言葉にまどわされずに適切にはったりつつ頑張って欲しいです。
_ 群馬県民の日
説明しよう!
10/28は群馬県民の日で群馬の官公庁、企業は軒並み休日なのである。
この日は東京ディスニーランドの特別パスポートが群馬県民にだけ発売され、
仕事に勤しむ他県の人々を尻目に遊び回れるという素敵な秋の1日なのだ。
7年も住んでなかったからすっかり忘れてたよ。
某G高専は県立の学校ではなかったので、
この日は休みじゃなくて悔しかったなぁ。(笑)
就職おめでとうございます!<br>それで、いい夢を見られたのかもしれないですね〜〜<br><br>コンシューマ向け製品のプログラマ?私にはよく解らない世界ですが頑張ってくださいね!採用試験の技術面接の問題も??そんなんで式が出来ること自体が不思議だ!!
>タカノさん<br>ありがとうございます!<br>コンシューマ向けってのは、お店で売っている個人向けの製品ですね。<br>デジカメとか、ゲーム機とか、カーナビとかそーいうたぐいです。<br>機械いじりが好きなので、機械とたわむれる仕事がしたかったのです。(^^ゞ