いつか転職するつもりなら LeetCode を始めてみよう

LeetCode というサービスをご存知だろうか。IT企業のコーディング面接対策を目的としたサービスで、実際に使われた問題を紹介している。また、オンライン上で回答を提出し、正解か確認することもできる。

試すだけなら無料で使うことができる。ただし、一部の問題は有料プランでないとアクセスできない。また、問題がどこの企業のものか知るにも有料プランが必要だ。

ターゲット

対象の企業は GAFA (Google, Amazon, Facebook, Apple) をはじめとして超大企業が名を連ねる。そう聞くと物怖じしてしまうかもしれないが、問題のレベルはそこまで高くないと感じた。

それぞれの問題に Easy / Medium / Hard の難易度がある。 Easy は初心者でも簡単に解けそうだ。当然、Hard ともなるとアルゴリズムも非常に複雑になる。とは言っても、面接という特性上、コード量は少なく、どの問題も正解のコードは多くて30行くらいだろう。(使う言語による。) Hard でも慣れた人なら20分くらいで解くだろう。

おそらく実際の面接では、正しいアルゴリズムを瞬時に思いつき実装する力が重要になる。数をこなして緊張せずに取り組めるようになっておきたい。

他サービスとの比較

日本で似たようなサービスだと、 paiza がある。数年前に使ったが、使いやすいサービスだった。 LeetCode があくまで面接対策であるのに対し、面接の斡旋までやってくれるので目的は少し違ってくる。

「オンライン上で問題を解く」という点では Topcoder をはじめとする競技プログラミングも感覚が近い。 LeetCode は面接で使われているので当然だが、実務よりの問題になっている。そのため、競技プログラミングほど身構えなくても良い、というのが個人的な感想だ。

30問ほど解いてみた

ひとまず何も考えずに 1. から 30. まで解いてみた。

全部で1708問もあるので、本来はちゃんと必要な問題に絞って解くべきだろう。 Top Interview Quetions あたりから解くのが良さそうだ。

ひとつひとつの問題は小さいので、パズル感覚で解ける。実際の面接と違い、時間制限もない。

あまり面接には役立たなそうな問題もたまにある。 ユーザーが付けた Good / Bad の数が見られるのでそれを参考にしてスキップするのもアリだと思う。

言語は Scala を使っている。こういうサービスでは Scala が使えないことが多いので地味に嬉しい。 もちろん他にも言語は一通り使える。

これから続けるか

実際に LeetCode を利用して入社できた方のブログを見たところ、例えば Google であれば400問を解くのが1つの基準らしい。(もちろん解いただけで受かるわけではない。)地道に続けていれば数ヶ月で達成できそうだ。

ここまで書いておいてなんだが、私はしばらく転職する気はない。別に問題を解きまくったところでスカウトが飛んでくるわけでもないので、将来を見据えてぼちぼち進めていこうと思う。そもそも英語できないし。

基本文法さえ知っていれば解けるので新しい言語の習得ついでに解くのも良いかもしれない。 Scala で解くのも飽きたのでそろそろ Rust を試そうかと思っている。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です