Advent Calendar 紹介 Advent Calendar 2016 の 7 日目の記事です.(もう7日かぁ…….)
技術系のアドベントカレンダーはもともと Perl Advent Calendar1を発祥としているようですが,その後日本語圏で独自の華やかな発展を遂げ2,ここ数年は百花繚乱の趣があります.一方海外系のものは,例えば Haskell 界隈では 24 days of Hackage (2012 / 2013 / 別の人による 2015)や 24 Days of GHC Extensionsなどがありますが,2016年のは今のところ(僕は)知らないとかそんな感じで,業界全体のお祭りというよりは「全部俺」系のカレンダーが散発的に出現しどれも良く書けてる,というのが主流という印象があります3.
閑話休題.というわけで今日は,海外系 advent calendar のひとつ Advent of Code を紹介します.これは12月の25日まで毎日1問ずつ,プログラミングの問題が出題され,順に回答を submit していくというもので,問題を解く毎に星がもらえ,飾り付けも華やかになります(下は昨年の様子).
各日問題文 (Part 1 とそれを解いたら出てくる Part 2)と input が提示され,答えだけを submit するもので,形式としては Project Euler が近いです4.気になる難度ですが,/aboutに
Advent of Code is a series of small programming puzzles for a variety of skill levels. They are self-contained and are just as appropriate for an expert who wants to stay sharp as they are for a beginner who is just learning to code. Each puzzle calls upon different skills and has two parts that build on a theme.
とある通り,日によって様々なジャンル・題材の問題に出会えるので日めくりの楽しみがあり,難易度もそれなりにちゃんと難しいのもある一方で,はじめのうちは(特に Part 1は)初心者でも手が動かせる,いいくらいの調整になっていると思います.
また reddit の /r/adventofcodeがたいへん活発で,解答の見せ合いや質問はもちろん,誰かが背景の解説や問題文の格好いい可視化をしたり,Upping the Anteというflairではその日の問題に条件やinputを追加して高難易度の問題にしてわいわいやっていたりします.解けない初心者や物足りない上級者,または人間一般は覗きに行ってみましょう.
昨年始まり,好評に後押しされてか2年めに突入した Advent of Code は幅広いひとが楽しめるイベントです.毎日いろんな題材でちょっとした(あるいは真剣な)コードを書く愉快というのもなかなかのものです.github/google/twitter/reddit で簡単にログインもできますので,是非ひとついかがでしょうか.
-
過去年分は http://www.perladvent.org/archives-Yd.html にあるようです. ↩
-
僕の勘違いかも知れない.色々知ってる方は教えてください. ↩
-
input は人によって変わっているらしい. ↩