レビュー『世界で闘うプログラミング力を鍛える150問 ~トップIT企業のプログラマになるための本』

広告

プログラミングの基礎を復習する本。基礎だからと言って簡単とは限らない。

TopCoderなどのプログラミングコンテストに役に立つかなと思って買ってみた。ちょっと想像とは違って、どちらかというとアメリカのIT企業に就職するためのノウハウ集としての問題集に基礎的な事項の解説が載っている。基礎的な事項とは、連結リストの要素を削除するにはどうするかとか、1バイトのデータの5ビット目が1であるかをどのように確認するか。個人的な経験から言えば、STLとかのコンテナライブラリを使えばいいことなので、連結リストの実装は久しくやっていない。ビットの操作はかなり頻繁に使ってきたので、同じように基礎事項と言っても習熟度には差がある。リストの実装くらいはできるけど、ずいぶん懐かしいものを復習しているなあという気分になった。そうそう、余談だけどGoogleで面接を受けたときもリストをいじるようなのはホワイトボードでやったことあるから、こういう企業を受けたい人は抜けがないか確認してから受けた方がいいと思う。

同じ著者の本に

がある。こっちは持っていないけど、本書は前半部分がどのようにしてアメリカのIT企業に就職するか、服装とか面接の心構え、オファーの断り方、不採用になったとき、給与だけ見て決めるんじゃないとかそういったことが結構細かく書いてある。

そのあと基礎事項の復習と問題が載っている。ページ数は最初の心構え編と同じくらいで両方合わせても全体の半分以下ってところ。残りの半分は問題の解説がみっちり載っている。大学受験で言えば、大学への数学とか、あとは○チャートとかあんな感じの問題集みたい。

問題そのものはちょっと「?」のものもある。例えば単に「配列を1つ使ってスタックを3つ作りなさい」とか、なんのこっちゃという感じがした。もうちょっと問題設定が丁寧でもいいんじゃないかとは思う。心構え編にインタビュアーに質問しようとあるので、本番でこういう漠然な質問をされたら、どういう意図で聞いているのかということを尋ねる練習かも知れないけど。本でこういう出題は困るなあと思う。

あまりTopCoderとかには役に立ちそうもない。だいたいIT企業の面接はTopCoderで言うと、Div2 Easyくらいでいいと思う。Div1 Easyくらいだとちょっとオーバースペック。それ以上はまず聞かれないんじゃないかな。一方でコンピュータに対して情熱があるかを確かめるような質問は結構聞かれた。

というわけで、相当基礎に偏っている本だけど、いくつかへーって箇所もあって読むのは無駄にはならなかった。例えば、文字列s1があって、s2はs1のローテートしたものかどうか、部分文字列を探す関数subStringを1回だけ使って書くとどうなる?とか。なんでsubStringするのかなーと思っていたけど、ちょっと工夫すると上手に書けるので、これは覚えておこうと思った。別にこれを知らなくても書けるけど、知っていることでコーディング時間を相当短くできる。TopCoderの上位陣ってDiv1 Easyを短いコードで瞬殺していて、下の方はかなり時間をかけて長いコードを書いている傾向にある。こういうちょっとしたひらめきで少し上に行けるんだろう。上位陣はそれだけじゃないんだけど。