「RustCoder ―― AtCoder と Rust で始める競技プログラミング入門」の感想

https://zenn.dev/toga/books/rust-atcoderを終わらせてみて、タイトル通りAtCoderをRustで始めるための内容になっている。つまり、実アプリを作るために必要なことを十分には説明していない。タイトルに偽りはないので、不満はない。

AtCoderの簡単な問題を解いた感想

AtCoderの簡単な問題を解いてみて、上級者向けの問題は非常に難しいのだろうと想像できた。特定の状況でしか必要とならないプログラミング技術が要求されることを感じた。こういった知識がどのような場面で実際に役立つのかは想像しづらい。

これは、アメリカ人が英検1級を難しいと感じるのに似ている。英検1級は日常会話ではないけど、成績が良ければ他の分野でも能力を発揮できると期待できます。同様に、AtCoderの問題はFizzBuzzのような簡単な問題よりも有用なスキルの指標になるのだと思う。

個人的な経験として、アルゴリズム富豪的プログラミングで大抵の仕事に十分対応できると感じている。わかりやすく、実用的だからです。プログラムの1、2割は最適化が必要な部分もありますが、大半の部分ではシンプルな力技の手法で問題ありません。

あと、「アルゴリズム+データ構造=プログラム」じゃないが、アルゴリズムについては自信を持って実力を示せるものの、データ構造については何も保証できないのだろうと思う。

全く関係ないが、Haskellでどうやって制限時間内で解いているのか全くイメージが湧かない。数学的な手法で計算量を減らしているのかもしれませんが、そうすると他の人がそのコードを見ても理解できない場合が多いだろう。クヌースの「文芸的プログラミング」のように書けば良いのでしょうが、頭が良い人ほどドキュメントをあまり書かない傾向があるからなぁ。