give IT a try

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

入社試験や新人研修にピッタリ?(旧)国民の祝日.csvを変換するRubyプログラムを解説しました

お知らせ(と執筆のきっかけ)

Qiitaに「【短命に終わった】国民の祝日.csvをパースして変換するRubyプログラムとコード解説動画」という記事を書きました。

「国民の祝日.csv」って何?という方はこちらをご覧ください。

このCSVファイル、プログラマにとっては非常に扱いづらい形式のため、あちこちから「ひどい」「最悪」と非難を受けていたかわいそうなCSVファイルです。

f:id:JunichiIto:20170303062826p:plain


僕は直接仕事で使ったりする要件はなかったのですが、単純に「このファイルをプログラム内できれいに読み込む処理を書いたら面白そう」と思い、Rubyでそんなプログラムを書きました。


ところがその数時間後、突然何の前触れもなく「国民の祝日.csv」の形式が変わりました。
生まれ変わったCSVファイルは何の変哲も無い普通のCSVファイルになっています。。。


なので、僕が書いた「国民の祝日.csvをパースするプログラム」は実用性の面では価値ゼロになってしまいました😂

とはいえ、純粋なプログラミング問題として見れば、これはなかなか面白い問題です。
というわけで、Qiitaで僕の書いたコードを紹介することにしたのでした。

Qiita記事のポイント

このQiita記事は「コードを見せておしまい」ではなく、「プログラムを設計する際の考え方」や「テスト駆動開発(TDD)の方法」等も含めて解説しています。
また、コードのロジックについては文章でなく、動画を使って説明しています。


【短命に終わった】国民の祝日.csvをパースして変換するRubyプログラムとコード解説

プログラミング初心者の方や、Rubyを初めて間もない人にとっては「なるほど、そんな考え方やテクニックがあるのか」といろいろ参考になるところがあると思います。

また、プログラミング問題の難易度としても「簡単な方だが、簡単すぎるわけでもないレベル」なので、プログラマの入社試験や新人研修のプログラミング課題として使うとなかなかいいんじゃないかな~と思います。

余談:リツイート数が1000を超えると通知欄はこうなる

「形式が変わってる!!」とツイートしたら、どんどん拡散されて1日で1000を超えました。

f:id:JunichiIto:20170303071429p:plain:w400

ツイッターの通知欄もなかなか激しいことになっています。

f:id:JunichiIto:20170303071242p:plain
f:id:JunichiIto:20170303071638p:plain

長年ツイッターをやってきましたが、リツイート数が1000を超えたのは初めてです。
普段は伸びてもせいぜい数十ぐらいなので、興味深い体験ができました。

まとめ

というわけで、このエントリではQiitaに書いた「【短命に終わった】国民の祝日.csvをパースして変換するRubyプログラムとコード解説動画」という記事を紹介しました。
みなさんも興味があればぜひ「自分なりの変換プログラム」にチャレンジしてみてください!