HackerRankお試し:Paiza, LeetCode, AlgoExpertとの比較
一時期、就職活動のためにPaizaの問題を解いていたのだけれども、只今絶賛浮気中である。というのも、Bランクまで一旦行けたので、最低限の目標は達成してしたということに加え、これ以上を目指すにしてもPaizaだと少し物足りないと感じたからだ。
少し調べてみて、HackerRankを試してみることにした。
以下は、この決断に至るまで調べたことや考えたことなどです。
Paizaの良いところ
プログラミング課題+教育コンテンツ+採用サイトがワンストップで完結できる
これが最大のメリットだと思う。特に私のようなエンジニア転身希望者(独学派)からすると、この自分の学びやそのアウトプットの延長線上に、直接企業の選考があるというのは、とてもやりがいがあるし、効率も良いように思える。
日本語
私はこの点はあまり重視していないのだけれども、人によっては優先度が高い項目だと思う。
Paizaの惜しいところ
他の人のコードに直接リーチできない
サイト上では解答が全く分からないものもある(誰かがGithub等に挙げてたら話は別)。教育コンテンツ(問題集等)の場合、チケットを消費すると解答例を見られる場合もあるが、スキルチェックに関してはサイト上で別解が提示されたりということはない。
これはこれで、スキルチェックの特性上納得ができる部分もある一方で、他のサービスだとディスカッションボードなどもあって、自分の解答が合ってなくても他の人のコードを閲覧できるものもある。
是が非でも答えを知りたい!というよりは、単に人のコードから学ぶことも多いと思うので、できれば一回でもコードを出した後は、他の人コードが見られるサービスの方が私はよい。
コードが微妙な場合もある気がする
これに関しては、私も勉強中の身なので確かではない部分もあるが、たまーにもっと効率的なアプローチがあるのに、と思うコードに遭遇する。Javaの場合、String
の結合はStringBuilder
という別の型を介して行うことが推奨されているけれども、String
で直に結合していたり。あとvariable
の名前も分かりづらかったり。(候補日を意味するものがdayCandidate
となっていたり。"candidate"は人にしか使わなくないか?とモヤモヤしたりしたこともありました)
このあたりが、競技プログラミングのお作法的なものなのか、それとも私側の至らぬ点というやつなのかは、まだ判断がつかないのも正直なところ。
LeetCode vs. HackerRank vs. AlgoExpert
ということで、しばらくPaizaを離れて他のサービスを見てみようと思っている。
条件としては、
- コーディングスキルの向上やアルゴリズムの習得に役立ちそうか
- 別解が分かるか
- 料金(できれば安価なものが良い)
目を付けたのが、LeetCodeとHackerRank。あとは、AlgoExpertあたりだろう。(TopCoder等も視野に入れてもいいけれども、あちらは更に競技寄りなので、今回は除外した)
それぞれの特徴
ざっくりまとめると、
- LeetCodeは問題数の多さが強み。とにかく様々な問題に触れたいときはこれが最適。
- HackerRankは課題提出型で、Paizaに一番近い。準備期間の長さによって面接対策コースを自動で組んでくれる。無料。
- AlgoExpertは上級者かつ、インタビュー対策に特化している。
サービス名 | 特徴 | 値段 | 掲示板 | コンテスト | 対象 | 備考 |
---|---|---|---|---|---|---|
LeetCode | 様々な問題演習を通してコーディングインタビューにも対応 | 無料~月$35 | あり | 毎週コンテストあり | 初級者~上級者 | 1400問以上の問題数の多さが強み。最大限に活用するのであれば有料プランをおすすめ |
HackerRank | 課題提出型。 | 無料 | あり | 定期的に開催 | 中級者以上 | Paizaに一番近い。面接までの期間によって自動でおすすめのプランを提案してくれる機能あり |
AlgoExpert | コーディングインタビューに特化 | 年間$99 | なし | 過去一回のみ | 上級者 | 動画教材あり。インタビューの面接対策あり |
ということで、無料で、Paizaにも近くて、包括的に必要な問題に触れられそうなHackerRankをしばらく試してみようと思っている。
Discussion