こんにちは、kirohi(@huslc2es)です。
LeetCodeというサイトをご存知でしょうか。
GAFAへ入りたいと考えているエンジニアであれば、おそらく高確率で知っているor聞いたことあると思います。
サイトを使ってみて、問題を解いたり、プレミアムに登録してみたりしたので、この記事で紹介します。
記事の内容は以下の通りです。
- LeetCodeってどんなサイト?
- LeetCodeで、どんな問題が解けるのか
- LeetCodeを使って、実際にGAFAに入った人いるの?
LeetCodeってどんなサイト?
LeetCodeとは、GAFAのコーディング面接で使われた・それに似ている問題を解くことができる学習サイトのことです。実際に企業の面接で使われた問題がリークされているので、グレーなのが正直なところです。
ですが、コーディング面接の対策には”LeetCodeは、必須”のような認識が共有されているイメージがあります。
UIは比較的モダンで、以下の画像はProbelmsという問題一覧ページです。言語は英語です。
こっちは問題を実際に解く時の画像。テーマのみならず、エディタの切り替えも可能です。僕はVimmerになりたいので、Vimにしています。
使える言語は「C++, Java, Python, Python3, Ruby, PHP, JavaScript, Scala, Go, C#, Swift, Kotlin, C, Rust」です。主要な言語は揃ってると思います。
また、LeetCodeでは週ごとにコンテストが開催されていたりします。競技プログラミングのコンテストと同じ感じですね。
コンテンツとしては、問題を解くだけでなく、アルゴリズムの学習ができるページ(Explore)も存在します。基礎から学べるので、ありがたい。
またDiscussという掲示板ページには、「Amazon | SDE1 | Seattle | Jan 2020 [Offer]」のようなスレッドがたくさん立てられており、どんな面接で結果はどうだったかのような情報が詳細に得られます。これもグレーですが、受けようと思ってる人にとっては参考になりますよね。
料金に関しては、基本無料で使えます。ですが、Premium(課金ユーザー)じゃないとロックされている問題も多くあります。また、解答を提出してジャッジされるための時間間隔も無料だと面倒な感じがします。
Premiumの価格は、月単位で35 USD(日本円: 3500円超程度)です。年単位だと159ドル(日本円: 16000円超程度)です。
今年は競技プログラミングを頑張りたいと思うので、僕は年でPremiumになりました。コンテンツの質は高いと思うので、投資(😇)です。
LeetCodeでどんな問題が解けるのか
大きく4つのカテゴリがあります。「アルゴリズム・データベース・シェル・並行処理」です。この中でもメインはアルゴリズムですね。大半のユーザーがアルゴリズムの問題をやるために登録しているはずです。
シェルと並行処理に関しては、問題数がかなり少ないため、おまけ程度にある感じです。データベースの問題は数がそこそこ多いため、SQLを練習したい方にとっては、良いコンテンツだと思います。
データベースに関しては、研究室の勉強会で解いています。Mediumをメインでやってますが、ちょうど良い勉強になる難易度です。
アルゴリズムの問題は、まさに競プロという感じなので、解いてみるのが良いと思います。
LeetCodeを使って、実際にGAFAに入った人いるの?
めちゃくちゃいます。Discussを見ればわかるのに加えて、去年バズっていたLillianさんという方の記事にもLeetCodeが紹介されています。また、一時期大量に投稿されていた「どうやってGoogleに入ったか」系の記事でも、AtCoderに並んでLeetCodeがたくさん紹介されていました。
Googleの方の記事は見つかりますが、AmazonやFacebook, 特にAppleは数が少ないような気がしますね。
終わりに
GAFAを目指す強いエンジニアの人たちが使っているLeetCode。
僕もちゃんと問題解けるように頑張っていきたいと思います
参考 LeetCodeLeetCode