give IT a try

プログラミング、リモートワーク、田舎暮らし、音楽、etc.

Qiitaに「RubyとRailsにおけるTime, Date, DateTime, TimeWithZoneの違い」という記事を書きました

お知らせ

昨日、Qiitaに「RubyとRailsにおけるTime, Date, DateTime, TimeWithZoneの違い」という記事を書きました。
まだ読んでいないRubyistの方がいたら、ぜひ読んでやってください。

執筆裏話

内容はタイトルのとおり、RubyやRailsにおける日時の扱いをまとめたものです。

この記事を書いたきっかけは、ある日社内で「みんなTimeとDateTime、どっちを使えばいいの?」って聞かれたことです。

f:id:JunichiIto:20141209071245p:plain:w400

よく考えてみると、僕自身も明確な違いやどちらを使うべきかがハッキリわからず、すごくモヤモヤしたのでいろいろ調べてみました。


ところが、このあたりの話は非常にややこしく、Railsで導入されたTimeWithZoneや独自拡張されたDateやDateTimeの仕様を調べていくと、何が何だかわからなくなりました(苦笑)。


かなりの時間(半日以上)をかけてだいたいの内容を理解できましたが、今度はそれを他の人にどうやってわかりやすく伝えるか、という点でまた悩みました。


ところで、ちょうどこの調べ物をしていたときに西脇.rb&神戸.rbの忘年会があったので、これを利用して即席の発表をしてみました。
宴会場にはプロジェクタとかはなかったので、持参したMacBook Proを開きつつ、ほとんどトークだけで説明しました。(もともとスライドも作っていませんでしたし)


Untitled
「忘年会の様子」Photo by @yuji_shimoda


なぜ発表をしたのかというと、発表をすることで以下のような効果を期待したからです。

  • 混沌としている自分の頭の中が整理される
  • 他のプログラマがどれくらいの知識を持っているのか(または持っていないのか)がわかる
  • 自分の説明が相手にどれくらい伝わるかがわかる
  • 他のプログラマの知識やフィードバックを得ることで、自分の理解や説明する内容がさらに向上する

 

実際、発表をしてみると「へ~、知らなかった!」という反応が大半だったので、この話題を十分理解できてないのは僕だけじゃなかったんだな、ということを確認できました。


また、発表の途中に「sinceとかagoだとどうなるの?」「あ、それはまだ調べてなかった」というふうに、新しい話題も確認できました。


記事で書いた説明の流れも、この発表をしたときの流れをベースにしています。


というわけで、忘年会を利用したこの即席発表会はQiitaの記事を書く上でなかなか良いインプットとアウトプットになりました。


この記事を執筆するきっかけと、公開するまでの紆余曲折はこんな感じです。

まとめ:自分と「自分以外の誰か」のためにアウトプットしてみよう

先日書いた「漢数字が数字順にソートされない理由を調べてみた」もそうですが、

  1. わからない内容があることに気付く
  2. わかるまで調べる
  3. 他の人も理解できるようにわかりやすくまとめる
  4. ブログやQiitaに書く、または勉強会等で発表する

という過程は自分の知識を固めるのになかなか良いプロセスだと思っています。
また、自分のためになるだけでなく、自分と同じように困っている人の役にも立つので一石二鳥です。


わからなかったことがわかるようになったとき、「こんな当たり前のことはみんな知ってるはず」と考える人が多いですが、そこはむしろ逆に考えた方が良いです。
当然、「すでに知ってる人」も世の中にはいると思いますが、「自分と同じように知らなかった人」も絶対います。(絶対です!!)


僕がブログやQiitaの記事を書くときは「すでに知ってる人」のことはおいといて、「自分と同じように知らなかった人」に向けて書くようにしています。
そうするとたいていの場合、「知らなかった!」「役に立った!」という反応が返ってきます。


なので、みなさんもぜひ「わからなかったことがわかるようになったとき」はブログ等でその内容を公開してみてください。
きっと自分のためになるだけでなく、「自分以外の誰か」のためにもなるはずです。


ん?Qiita記事のお知らせをしてたはずなのに、なんか違う場所に着地してしまったような。。。
まあ、いいかw