CodingBatに取り組んでいます

某日、更新されたGoogle Tech Guideを眺めていると、基礎コースがあったので、基礎力を確かめるためにも、取り組んでみることにしました。
ガイドの流れとしては、まず初めにGoogleで以前出題されたinterview問題を任意のプログラミング言語で解くことになります。
自分はこの問題については、全くのお手上げ状態で、せいぜい問題の意図を理解するのがやっとで、やはり自分の実践的なコーディング技術の無さを痛感しました。
その後に、Javaの文字列及び配列についてのショートビデオを見ることになります。
そして、Coding問題へと取り組んでいくのですが、たった2本のショートビデオを見ただけでは当然出来るはずもなく。。。
出題されたのは、簡単なWarmingUp問題だったのですが、Warmupどころか自分の頭がオーバーヒートしてしまうことになってしまいました。
 
CodingBatには、それぞれの問題のページ下部にDifficultyという難易度が設定されています。
100から400のレンジで、先程のガイドで出題されているのは大体300~のレベルです。
100代の問題を眺めていると、何とか頑張れば解けなくもない、というレベルであることが分かったので、自分は一度このサイトを0から取り組んでみることにしました。(アカウントも作成した)
Javaの基本的な、if文、for文ですら、正しい記法を理解していなかったので、問題を解いていく中で、リファレンスを参考にしながら、ようやくそれなりには扱えるようになってきました。一日少しずつやっていたので、三分の一以上は終わった、というぐらいでしょうか。
 f:id:p0ny:20180528214230p:plain
 

再帰、Map、ラムダ式といったものがまだ残っていますね。

 
なお、今回CodingBatに取り組むにあたって、いつもお世話になっている知人のエンジニア君にも一緒に問題を解いてもらうことが度々ありました。(感謝)
解答したコードを見せ合って、お互い自らの解法・手法について意見を述べ合うという流れでしたが、これが意外と勉強になることが多く、これはエンジニアとしてやっていくにしても、必要不可欠なフェーズであるということを強く認識しました。
当然ですが、自分の方がまどろっこしい書き方をしていることが多々あり、如何にして可読性が高いコードを書くか、という問題に対する意識が少しずつ芽生え始めて来た気がします。
 
GoogleTechGuideの基礎編で出題されているCodingBatからの問題は、何とか取り組めるレベルにはなってきたので、今週はこちらのGuideをより進めていこうと思います。
ではでは。