2024.11.14
いまさらNode.jsを知ろう~環境構築も~
2018.04.26
その他Rubyでホワイトボードの問題を解いてみましょう
Canadian Devです。
もう春が来ましたね。日本では入学、入社、ニュースタートの時期ですね。日本人には毎年あるもので普通だと思われるでしょうが、多くの新卒者が会社に入ることが僕にとってまた新しいことです。就職活動というのも欧米と違うんだなと感じました。欧米のIT業界の就職活動について思い出されます。
ホワイトボードの面接をご存知ですか?
欧米の多くのIT企業では面接の一部としてホワイトボードの面接があります。ホワイトボードの面接が何かというと、インタビュアーの前でホワイトボードにコードを書いて問題を解く面接です。
カナダではホワイトボード面接を受ける場合が少なくはありません。問題をその場で知ることになるので、何も準備ができなくてとても緊張します。あまりに緊張してしまうと頭が真っ白になって簡単な問題でも解けなくなります。
だから、落ち着いてホワイトボードでゆっくり自分の考え方を説明しながら問題を解いていくほうがいいとよく言われます。何より応募者がロジックの考え方をちゃんと表現できるのかを把握したいからやらせる面接なので、黙々と行うだけではよくないです。
僕はホワイトボードの問題を解いたことが数回あります。その一つの問題について書きたいと思います。
下記のような英語の文章を解析して文章に出てくる単語と、回数が2つ以上だったら、単語の回数をまとめる。
It was a dark and stormy night. Suddenly, a shot rang out! A door slammed. The maid screamed. Suddenly, a pirate ship appeared on the horizon! While millions of people were starving, the king lived in luxury. Meanwhile, on a small farm in Kansas, a boy was growing up.
一番分かりやすい解決法はテキストを配列に変換して再帰処理でハッシュに単語をキーで、回数をバリューで記録することでしょう。問題をRubyで解くと:
def get_word_instances(text) record = Hash.new text.split(' ').each do |word| word = word.downcase.scan(/[a-z]/).join #英文字だけ受け入れる。 if record[word] record[word] += 1 else record[word] = 1 end end record.reject { |k, v| v <= 1 } end
英語の文章を引数としてget_word_instancesに渡して実行すると、下記のハッシュが返ってきます。
{ "was"=>2, "a"=>6, "suddenly"=>2, "the"=>3, "on"=>2, "in"=>2 }
この問題にはバリエーションが沢山あります。
ホワイトボードは厳しいプロセスだし、技術力が必ずしも判断できるとも限らないので、ホワイトボードの面接をしないIT企業もあります。ですが、ホワイトボードの面接はコミュニケーション力、問題解決能力、クリエイティビティなどを訓練させることではないかと思っています。
【記事への感想募集中!】
記事への感想・ご意見がありましたら、ぜひフォームからご投稿ください!【テクノデジタルではエンジニア/デザイナーを積極採用中です!】
下記項目に1つでも当てはまる方は是非、詳細ページへ!Qangaroo(カンガルー)
【テクノデジタルのインフラサービス】
当社では、多数のサービスの開発実績を活かし、
アプリケーションのパフォーマンスを最大限に引き出すインフラ設計・構築を行います。
AWSなどへのクラウド移行、既存インフラの監視・運用保守も承りますので、ぜひご相談ください。
詳細は下記ページをご覧ください。
最近の記事
タグ検索