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をより進めていこうと思います。
ではでは。

ポモドーロテクニックが面白い

プログラミング学習において、ポモドーロテクニックという生産性管理の手法を試験的にですが実行することにしました。

この手法は、SOFT SKILLS ソフトウェア開発者の人生マニュアルという書籍を通じて知りました。

こちらの本は、一言でいうとエンジニアによるエンジニアのための自己啓発本です。

図書館に展示されていたのを数回読んだだけなので、改めて購入後にレビューをしたいと思っています。

 

ポモドーロテクニックというのは、25分の作業時間と5分の休憩時間のセットを1ポモドーロとして、生産性を表す単位とする手法です。

そういえば、3月に受講していたDMM英会話も1レッスン単位が25分なので、もしかすると、これに基づくものなのかもしれません。

 

自分はこれまでのアプリ体験で、明らかに生産性が向上したものを挙げるならば、ライフログ管理アプリのEvernoteとTodo管理アプリのTodoistの2つを推したいのですが、もう一つ気になっていたのがTogglという時間管理アプリでした。

幸いこのTogglに上記のポモドーロテクニックを実行するための機能が備わっていたため、Togglの有用性も少しずつですが理解することが出来てきました。

 

この手法を採用しているユーザーの記事を幾つか読みましたが、どうやら一日に平均8ポモドーロ(約4時間)ぐらいが限界のようです。

しかしながら、ポモドーロテクニックが真に有用なのは、1日毎に振り分けられる、自身の持つ時間という1資産の保有量を自覚させてくれることにあるのではないかなと思いました。

例えば、一日に自分は8ポモドーロという生産性の通貨を持っている、ということが分かれば、当然ペイする対象には慎重になってきますし、人生において本当に自分が取り組みたいということに対しての時間投資感覚が研ぎ澄まされていくのではないでしょうか。

ポモドーロという名前も中々ユニークで、どこか某国の通貨名のような響きを持っており、とても記憶に残りやすいです。

Pythonから新たにJavaを学び始めました

これまではPythonしか知らなかったのですが、新たにJavaを学び始めることにしました。

自分が知る限りではJavaやCは初心者が最初に学ぶのは推奨されていなかったので、これまでは当面はPython一本で良いかと考えていたのですが、改訂された方のGoogle Tech Dev GuideのFoundationsを少し触ってみたところ、Javaでのコーディングが指定されていたのがきっかけです。

 

こちらのガイドの前半部は、http://codingbat.com/javaから問題が出題されるのですが、そもそもにJavaのコーディング形式を知らないので、当然ながら手詰まりという悲しい結果で終わりました。

そこで、リファレンスを参照にしながら1からこのCodingBatのサイトの問題を解いていくことで、今週はJavaに少しずつ慣れていこうかなと思っています。