はじめまして。初投稿になります。expa(えくすぱ)です。
7月4日から「毎日コードを書く」というのに取り組んでまして、とりあえず2ヶ月続いたので感想を書いてみたいと思います。
始めようと思ったきっかけ
11月からRubyで仕事をすることが決まったのですが、未経験に等しい状態だったので手を慣らすという意味でやりました。
あとは、うだうだ言っててコードを書かないハゲ だったのでとにかく実装をする習慣を身につけるためです。
何をやったか
Project Eularをやりました。
知らない方のために日本語訳のページから解説を引用すると、
Project Eulerとは挑戦しがいのある数学/コンピュータプログラムの問題で, これを解くためには単なる数学的洞察以上のものが必要とされます.
数学の知識があれば簡潔で効率に問題を解くことができますが, 多くの場合はコンピュータとプログラムの技能が必要です.
こういうものです。
問題は600問以上ありますが、一問一答形式で答えのみを入力する形になっており、プログラミング言語は問いません。というか、手で解いてもOKです。
3年ほど前にProblem 12までをC言語で解いていたのですが、その続きをRubyで解いています。
どれくらいやったか
1日最低1コミット です。2日ほど忘れていた日がありましたが、習慣にするのが目的なんでまあいいでしょう。
本当に時間がないときは次の問題のファイルだけ作ってコミット、とかやってましたが、Macbook Airを購入して電車の中でやれるようになってからはそういうことも減りました。
最近はもっぱら通勤電車の中でやってます。20分ほど、朝の集中しやすいアタマでやるとなかなか進捗を生んでくれます。
よかったこと
コードを書く習慣がついたこと
これが一番大きいです。毎日少しずつでもコードを書いているとウデマエが上がっている実感があります。
Project Eularは「○○を満たす数字は何か」という形式の問題でも単純な総当りでは解けないような問題ばかりなので、処理効率の良い実装を中心に鍛えられています。
定期的に数学の問題を解く習慣が復活したこと
学生のときは塾講バイトで高校生に数学を教えており、大学入試レベルの問題をたくさん解いていたのが良い頭の体操になっていました。
その習慣が消えて脳みそが錆びついていたのをちょっとだけ取り戻せました。体感ですが。
Rubyの組み込みオブジェクトの機能を知れたこと
Arrayの機能の強力さやイテレーションする手段の豊富さに感動してます。
まさか組み込みで畳み込み演算があるとはね。
よくないなと思ってることと改善案
飽きてきた
Project Eularは整数にまつわる問題が多いことから、「数字を総当りで調べていって正解であるかどうか一つひとつ条件判定をし、かつ処理量を減らす」みたいなことをずーっとやってます。ので、飽きてきました。
Rails Tutorial見てみたら章立てがしっかりしてますね。毎日やっても大丈夫そうなのでこれもやってみることにします。
Project Eularと交互にやります。
新しい知識が身につきづらい
Project Eularの問題は良くも悪くもアタマの体操といった感じで、与えられた問題を知っている範囲の知識で解くものです。
ので、新しい知識は身につきません。そりゃそうだ。
飽きてきた一要因でもあるのかもしれませんね。
パーフェクトRubyでも買います。
毎日やるほうが目的になりつつある
とりあえずコミットしてプッシュしたら満足しちゃうので、新しいことを始めようという気になかなかなりません。
片手間でやってるので土日にちゃんと時間を割いてないんですよね。
とりあえずRails Tutorialやることにしたんで、次にネタが切れたらちゃんと時間割いて考えます。
あと、土日は平日とやることを分けて新しいモノに触るとか、考えようはいくらでも。
まとめ
- 良い感じに習慣になった
- 飽きてきてるんで新しい風が必要
- とりあえずRails Tutorialやります
こうして振り返りエントリを書いてみた結果、Rails Tutorialやることを思いつき、マンネリを打破できそうです。
定期的に振り替えるのって大事ですね。
月にいっぺん、ブロガーさんの収益報告みたいにやろうかなと思います。