アカウント名:
パスワード:
コンピュータ科学に関する基礎的な質問
* 「等値」と「等価」の違いを説明してください答え:「直」と「西」が違う
* 「値渡し」と「参照渡し」の違いは何ですか?オブジェクト指向システムや手続き型システムにおいて、これらにはどのような違いが存在するのかを説明してください。答え:渡し舟で、船頭さんの言いなりの値段で料金を払うのが「値渡し」他の舟の料金も調べて、交渉の余地があるのが「参照渡し」「参照渡し」の方が料金が安くなる傾向があるが、過度な交渉はトラブルの元になる場合があるので、注意が必要。
* 「ポリモーフィズム」とは何かを説明してください。答え:ポリエチレンで作られた毛布を、アメリカでは「ポリモーフ」と呼んでおり、眠るときには、その「ポリモーフ」を使おうと主張する健康法。
* 「悲観的ロック」と「楽観的ロック」を比較し、違いを明確に述べてください。答え:騒音を撒き散らし、やたらと陰々滅々な歌詞をがなるのが「悲観的ロック」'50-'60年代初頭の、まだメロディの残存があったのが「楽観的ロック」プレスリーの死去と共に、楽観的ロックは終焉を迎えてしまった。
思考問題
* 自分の好きなようにできるとすれば、どのような鶏をデザインしますか?そしてその理由は何ですか?答え:そもそも、鶏をデザインする必要が無い
ホワイトボードプログラミング
* 数値Xのフィボナッチ数を計算する。答え:充分に多くのフィボナッチ数を昇順に収めた配列のX番目の要素を返すプログラムを作る。
* 指定された数値Xが素数であるかどうかを判定する。答え:Xが偶数ならfalse、奇数ならtrueを返すプログラムを作る(奇数には、『素数であるか、ないか』という二通りの状態しかないから、50%の確率で正解しているはずだ)
* ループを使わずに配列の順序を逆にする。答え:順次、配列を画面に表示して行ってオペレーターにメモさせておき、メモした値を逆順に入力するよう促すダイアログを出す。
* Fizz Buzz(関連英文ブログ)答え:404 blog not foundをぐぐってコピペ
コードのレビュー
答え:レビューに着ていく服が無い
「よくある質問」
* 現在の仕事においてあなたが今までに直面した最も困難なことは何ですか?答え:今、求職中なんです
あなたの最も大きな弱点は何だと思いますか?答え:どんな馬鹿げた質問にも、真面目に答えを見出そうとしてしまうんです
経験をじっくり吟味する
Scully:あなたの履歴書には、CP/Mシステムの新規開発において重要な役割を果たしたと書かれていますが、そのことについてもう少し詳しく説明してもらえますか。
Mulder:その開発は、EDとDUMPを使用したアプリケーションのものであり、開発言語はWhitesmithでした。
Scully:あなたはその開発においてどのような役割を果たしたのでしょうか?
Mulder:私はデータアクセス層とビジネスロジックを担当し、ユーザーインターフェースとの連携部分を実装するためにデザイナーの役割も兼業していました。それと、使い方を理解できないユーザのために、サポートもやってました。あとは、ダイレクトメールを送ったり、セールスのためにショップをドサ廻りしたり、それから、それから ……
Scully:モルダー。あなた、疲れてるのよ。
結論
私には力量は無いみたいだ。
> * ループを使わずに配列の順序を逆にする。
python では、
>>> a = 'abcdefghijklmnopqrstuvwxyz'>>> a[-1:0:-1]'zyxwvutsrqponmlkjihgfedcb'
こうなりますが、そういう答えではないですよね。
# 'a' が出てこない!どーすりゃいいんだ。
>>> a[-1:-27:-1]'zyxwvutsrqponmlkjihgfedcba'
こうか。
ベタ打ち以外はアセンブラに落としたらどこかループになるんでしょうけど・・・単に再帰呼び出ししたらいいのかと思ったのですが、題意がよく見えない。
・・・はっ!これは読解力を問う問題なのか!?
Pythonは全然知らないけどa[-1:0:-1]の-1:0:-1の部分はループじゃないの?それともループ関数だけ使わなければいいだけなの?
>答え:Xが偶数ならfalse、奇数ならtrueを返すプログラムを作る
正解は常にfalseを返す、です。なぜなら、素数である数よりも素数でない数のほうがはるかに多いからです。
なぜなら、素数である数よりも素数でない数のほうがはるかに多いからです。
いわゆる「ネタにマジレス」ですけど、素数と合成数の数は同じでしょう。
# だから、確率1/2でfalseを返せばOK!
素数定理だと、素数の割合はだいぶ少ないって事になってますが、そういうことではない?# マジなのかネタなのかわからないのでつっこみ
個人的にはポリモーフがヒット:-)# しむらー Blanket!Blanket!
# で、でもっ…経験則では、サイコロ振った(1D6)ら確率1/2で素数が出たんです!(><)
世の中には倍数ダイスという六面体のサイコロがあってだな……。
# 1, 2, 4, 8, 16, 32
2,4,8,16,32,64の倍数ダイスならバックギャモンについてたような。1,2,4,8,16,32のダイスは見た事あるけど、探したことないな。
むかーし (20 年くらい前) 実家の方のおもちゃ屋で見かけた、とかいうレベルなので、今でも入手できるかどうかはわかりませんが……。
とりあえず通販でも結構多めの種類があるところ [rakuten.co.jp]にもないですね。いや、別の物は大量にあるんですが。倍率ダイスとか。なんだ x10 って。 というか、分数ダイスって……なんだ 1/12 って。
いや、それは true でも false でもどちらでもいいだろう。大事なのは、その後に「今、私がそう定義した」という一言を必ずつける事の方だ。
それだと素数に対してtrueを返す可能性が0になるのでダメです。少なくとも素数でテストしてマグレでも一回は通ってくれないと。
参考 [aoky.net]
#ある数が素数かどうかを判定する処理を必要とするプログラムのほうを修正すべきだ!
それでは何の工夫も無いし、答えとしても面白くないですし。
私が面接官なら「じゃあぜんぶ○○でいーじゃん」なんて大ざっぱな人は真っ先に落とすと思いますです。
質問はこの「順次」の部分をループを使わず実装せよということですので、
答え:次回のインデックスをディスクに保存し、「表示されている内容をメモに取ったあと再起動してください」というダイアログを出す。(以下同)
が適切な回答ですね。
#再起動はソフト単体でもリセットスイッチでもOK。とっても堅牢。
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
目玉の数さえ十分あれば、どんなバグも深刻ではない -- Eric Raymond
プログラマーの力量を隠し通す--面接になったら答えるべき回答実例集 (スコア:5, おもしろおかしい)
コンピュータ科学に関する基礎的な質問
* 「等値」と「等価」の違いを説明してください
答え:「直」と「西」が違う
* 「値渡し」と「参照渡し」の違いは何ですか?
オブジェクト指向システムや手続き型システムにおいて、
これらにはどのような違いが存在するのかを説明してください。
答え:渡し舟で、船頭さんの言いなりの値段で料金を払うのが「値渡し」
他の舟の料金も調べて、交渉の余地があるのが「参照渡し」
「参照渡し」の方が料金が安くなる傾向があるが、
過度な交渉はトラブルの元になる場合があるので、注意が必要。
* 「ポリモーフィズム」とは何かを説明してください。
答え:ポリエチレンで作られた毛布を、アメリカでは「ポリモーフ」と呼んでおり、
眠るときには、その「ポリモーフ」を使おうと主張する健康法。
* 「悲観的ロック」と「楽観的ロック」を比較し、違いを明確に述べてください。
答え:騒音を撒き散らし、やたらと陰々滅々な歌詞をがなるのが「悲観的ロック」
'50-'60年代初頭の、まだメロディの残存があったのが「楽観的ロック」
プレスリーの死去と共に、楽観的ロックは終焉を迎えてしまった。
思考問題
* 自分の好きなようにできるとすれば、どのような鶏をデザインしますか?
そしてその理由は何ですか?
答え:そもそも、鶏をデザインする必要が無い
ホワイトボードプログラミング
* 数値Xのフィボナッチ数を計算する。
答え:充分に多くのフィボナッチ数を昇順に収めた配列の
X番目の要素を返すプログラムを作る。
* 指定された数値Xが素数であるかどうかを判定する。
答え:Xが偶数ならfalse、奇数ならtrueを返すプログラムを作る
(奇数には、『素数であるか、ないか』という二通りの状態しかないから、
50%の確率で正解しているはずだ)
* ループを使わずに配列の順序を逆にする。
答え:順次、配列を画面に表示して行ってオペレーターにメモさせておき、
メモした値を逆順に入力するよう促すダイアログを出す。
* Fizz Buzz(関連英文ブログ)
答え:404 blog not foundをぐぐってコピペ
コードのレビュー
答え:レビューに着ていく服が無い
「よくある質問」
* 現在の仕事においてあなたが今までに直面した最も困難なことは何ですか?
答え:今、求職中なんです
あなたの最も大きな弱点は何だと思いますか?
答え:どんな馬鹿げた質問にも、真面目に答えを見出そうとしてしまうんです
経験をじっくり吟味する
Scully:あなたの履歴書には、CP/Mシステムの新規開発において
重要な役割を果たしたと書かれていますが、
そのことについてもう少し詳しく説明してもらえますか。
Mulder:その開発は、EDとDUMPを使用したアプリケーションのものであり、
開発言語はWhitesmithでした。
Scully:あなたはその開発においてどのような役割を果たしたのでしょうか?
Mulder:私はデータアクセス層とビジネスロジックを担当し、
ユーザーインターフェースとの連携部分を実装するために
デザイナーの役割も兼業していました。
それと、使い方を理解できないユーザのために、サポートもやってました。
あとは、ダイレクトメールを送ったり、
セールスのためにショップをドサ廻りしたり、それから、それから ……
Scully:モルダー。あなた、疲れてるのよ。
結論
私には力量は無いみたいだ。
Re:プログラマーの力量を隠し通す--面接になったら答えるべき回答実例集 (スコア:2)
> * ループを使わずに配列の順序を逆にする。
python では、
>>> a = 'abcdefghijklmnopqrstuvwxyz'
>>> a[-1:0:-1]
'zyxwvutsrqponmlkjihgfedcb'
こうなりますが、そういう答えではないですよね。
# 'a' が出てこない!どーすりゃいいんだ。
>>> a[-1:-27:-1]
'zyxwvutsrqponmlkjihgfedcba'
こうか。
よくわからん問題だなぁ (スコア:2)
ベタ打ち以外はアセンブラに落としたらどこかループになるんでしょうけど・・・
単に再帰呼び出ししたらいいのかと思ったのですが、題意がよく見えない。
・・・はっ!これは読解力を問う問題なのか!?
Re: (スコア:0)
でもアセンブリレベルで見るとJMPの代わりにCALL使ってるだけで、一応ループなんだよね残念ながら。
Re: (スコア:0)
>>> a[::-1]
こっちのほうがPythonっぽいかな?
>>> ''.join(reversed(a))
Re: (スコア:0)
Pythonは全然知らないけどa[-1:0:-1]の-1:0:-1の部分はループじゃないの?
それともループ関数だけ使わなければいいだけなの?
Re: (スコア:0)
>答え:Xが偶数ならfalse、奇数ならtrueを返すプログラムを作る
正解は常にfalseを返す、です。
なぜなら、素数である数よりも素数でない数のほうがはるかに多いからです。
Re:プログラマーの力量を隠し通す--面接になったら答えるべき回答実例集 (スコア:2)
いわゆる「ネタにマジレス」ですけど、素数と合成数の数は同じでしょう。
# だから、確率1/2でfalseを返せばOK!
おふとぴ(Re:プログラマーの力量を隠し通す--面接になったら答えるべき回答実例集 (スコア:1)
素数定理だと、素数の割合はだいぶ少ないって事になってますが、そういうことではない?
# マジなのかネタなのかわからないのでつっこみ
個人的にはポリモーフがヒット:-)
# しむらー Blanket!Blanket!
Re: (スコア:0)
# だから、単純に確率1/2ってわけにはいきませんねっ。
Re:おふとぴ(Re:プログラマーの力量を隠し通す--面接になったら答えるべき回答実例集 (スコア:2)
# で、でもっ…経験則では、サイコロ振った(1D6)ら確率1/2で素数が出たんです!(><)
Re:おふとぴ(Re:プログラマーの力量を隠し通す--面接になったら答えるべき回答実例集 (スコア:1)
世の中には倍数ダイスという六面体のサイコロがあってだな……。
# 1, 2, 4, 8, 16, 32
Re: (スコア:0)
いや、イエローサブマリンで見たこと無いもんで。
Re: (スコア:0)
2,4,8,16,32,64の倍数ダイスならバックギャモンについてたような。
1,2,4,8,16,32のダイスは見た事あるけど、探したことないな。
Re:おふとぴ(Re:プログラマーの力量を隠し通す--面接になったら答えるべき回答実例集 (スコア:1)
むかーし (20 年くらい前) 実家の方のおもちゃ屋で見かけた、とかいうレベルなので、今でも入手できるかどうかはわかりませんが……。
とりあえず通販でも結構多めの種類があるところ [rakuten.co.jp]にもないですね。いや、別の物は大量にあるんですが。倍率ダイスとか。なんだ x10 って。
というか、分数ダイスって……なんだ 1/12 って。
Re:プログラマーの力量を隠し通す--面接になったら答えるべき回答実例集 (スコア:1)
いや、それは true でも false でもどちらでもいいだろう。
大事なのは、その後に「今、私がそう定義した」という一言を必ずつける事の方だ。
fjの教祖様
Re: (スコア:0)
それだと素数に対してtrueを返す可能性が0になるのでダメです。
少なくとも素数でテストしてマグレでも一回は通ってくれないと。
Re: (スコア:0)
参考 [aoky.net]
#ある数が素数かどうかを判定する処理を必要とするプログラムのほうを修正すべきだ!
Re: (スコア:0)
Fizz Buzzは、「充分に多くの文字列の配列を用意し…」
Re: (スコア:0)
それでは何の工夫も無いし、答えとしても面白くないですし。
私が面接官なら「じゃあぜんぶ○○でいーじゃん」なんて大ざっぱな人は
真っ先に落とすと思いますです。
Re: (スコア:0)
質問はこの「順次」の部分をループを使わず実装せよということですので、
が適切な回答ですね。
#再起動はソフト単体でもリセットスイッチでもOK。とっても堅牢。