My Note Pad

エンジニアリングや日々の雑感を書いていきます

Paiza用ローカルJava環境を作ってみた

最近、時間のあるときにPaizaのスキルチェック問題を問いています。

paiza.jp

Paizaのスキルチェックをやってみた理由

  • コードで転職のコンセプトがなかなか面白い。
  • Web業界への転職を考えている。
  • 最近はコード面接みたいな採用方法を行っている企業も多いらしい。
  • 実際にコードを書くことでコーディングスキルが身につく。。はず


Rubyは業務で使ったことはなく完全に独学ですがRubyで始めました。

Rubyで始めた理由

  • Web = Rails という私の中でのイメージがあった。(実際、色々な会社で話を聞くとPHPJavaも多かったです)
  • LLでありブラウザ上で気軽に始められそうだったこと。
  • ローカルでコーディングするにしてもVim(iTerm2)があればよい
  • Rubyの文法を覚えるのに最適

といった感じ。

Javaでの挑戦にシフト

とりあえず、ランクAをとれたので一旦やめて今度はJavaでランクAを目指してみようと目論んでいます。
しかし、普通にJavaでランクAを目指しても成長が無いので下記を自身への課題と考えて取り組むことにしました。

  • StreamAPIを使えるようになる。
  • Lambda式を使えるようになる。

正直、私の中でJavaはJavaSE6で止まっており(いかにもSIerっぽい)、StreamAPIやLambda式を書けないという事に非常に危機感を感じていた。
今の会社では使うことはほぼ無いけど、今後を見据えると必要だと考えています。

チュートリアルだけだとどうしても書き写して終わりになってしまいがちなので、Paizaのように問題を解きながら考えると、身に付くのかなと期待しています。

コーディング環境

個人的にはJavaのコーディングにはIDEを使いたいなーという思いがあったので、 IDE(今回はIntelliJ IDEA)で何とかできないかと検討しました。

課題

  • Paizaの問題は基本的にSystem in で引数が与えられる
  • 毎回コンソールで手入力で実行は辛い
  • shellで実行できるようにしても良いが、画面の切り替えやデバッグが面倒くさい

というわけで、JUnitで実行できるようにしてみました。

こちらの記事を参考にさせていただきました。

qiita.com

d.hatena.ne.jp

出来上がったもの

github.com

本当はgradleでやりたかったけど、調べる所からだったので、今回はMavenを利用しました。
Paizaの規約上、テスト問題や回答は公開することができないのでテンプレートのみの公開としています。