技術は記憶の彼方へと

覚えたつもりですぐに忘れるエンジニアの備忘録

HackerRankやってみた

プライベートでコードを書く余力が全然なく、更新ができてませんでした。
そんなこんなで、コードに触れる機会を増やそうと、HackerRankをやってみたので、感想でも書こうかなぁと。。

そもそもHackerRankって?


https://www.hackerrank.com/
プログラミングの問題を解くことができるサイトのことです。
解いた問題数でランキング化されたりします。
C, C++, Java, Python, PHP, Swiftなど使える言語も多く、学習なんかにも使えると思います。

特徴

問題文がすべて英語。
質問をすることが可能。
事前に一部のコードが与えられている。

それぞれ見ていきます。

問題文がすべて英語

記載の通りで、問題文はすべて英語で記載されています。
また、Copy等ができないようになっているので、Google翻訳などで確認がしづらい分、問題の内容の理解が大変になっているように感じました。
英語が得意な方であれば問題が何かわかるかと思いますが、苦手だと、問題文の理解に回答時間を持っていかれてしまうかもしれません。

質問をすることが可能

質問を投稿する機能が存在しています。
もちろん英語ではありますが、世界各国の複数の方が利用しているため、その問題に対する質問や回答が多数あります。
記載されている英文の理解ができれば、回答に役立つかもしれません。

事前に一部のコードが与えられている

AtCoder等の他のプログラミング問題のサイトとの違いはここだと思います。
事前にコードの一部が与えられており、関数やメソッド等を記載するといったスタイルになっています。
もちろん、問題の指示通りに動作すればいいので、すでに乗っているコードを全削除して一から記載して解くといった方法も可能ではあります。
関数の意味や引数について考える必要があり、少し面倒な部分はありますが、事前にフォーマットがある程度決まってる環境でのコーディングが得意であれば、やりやすいと感じつ部分もあるのかもしれません。

実際にやってみた感想


まず、問題がわかりにくい。。。
私は、英語力がそんなに高くないので、問題の理解がまずネックになりました。
制限時間がある中で、問題文の解読に少し時間を取られ、ロジックを考えたりする時間が短くなってしまうということがあり、なかなか進めるのが難しいと感じました。
やってみて、解けたと思っていてもテストケースでエラーが出ていたりして、再度考え直しになることも多々あり、苦労することも多かったですが、成功した際の達成感はよかったですね。
コードが事前に与えられているので、そこから呼び出され方や要求されている機能部分とのすり合わせも考えないといけなかったので、少々手間取ってタイムオーバーになったこともありました。

最後に


全然コードに触れられてない身として、初めて見ましたが、いい練習になりそうだと感じました。
少々、問題の癖や英語の読解力に壁は感じていますが、言語数も多いので複数言語の練習としても使えそうです。
ただ、少し悲しいのは、これはポートフォリオとして使えないといったことですね。
GitHubリポジトリを作って、自身の回答方法を載せておくとかしないと実績として残せないのは少し残念だなぁと感じましたね。
使えると、色々と便利そうではあったのですが。仕方ないので、練習用と割り切って今後も使ていくことにします。
今回は、軽く触ってみた感想だけになってしまいましたが、よければ使ってみてください。
それでは、今回はこの辺で。