荒川光のブログ

Hikaru Arakawa's blog

プログラミング学習中のみなさん、アルゴリズムうつに御用心!

突然ですが、あなた、「アルゴリズムうつ」という病をご存知ですか?

えっ、ご存知ない?

 

それもそのはず。

私の造語ですから。

 

最近の私はなんだか体調が優れない。

気分の落ち込んだ日が続いています。

「コロナうつ」や「冬季うつ」という言葉も耳にすることが増えた昨今、ついに私も罹患してしまったのでしょうか?

 

はたまたこれは男性更年期障害というやつか?

テストステロン値が下がっているのではないか?

日光を浴びながらスクワットでもやらなければ、などと鬱々と悩む日々。

 

そんな折、はたと気付いたのです。

これは「アルゴリズムの勉強に疲れているせいだ」と。

 

 

実はこの1ヵ月ほど、私は福嶋宏訓先生の導きのもとアルゴリズムの学習に励んでいるのです。

その結果、脳がいわば筋肉痛のような症状を呈していたのです。

今まで気分や感覚だけを頼りに生きてきた私が、明晰で論理的な脳に作り変えようと奮闘する過程で発生した筋肉痛。

 

福嶋先生はその著書の中でこうおっしゃっています。

(略)この集中ゼミでは、皆さんの頭の中に、アルゴリズムを考えることができる思考回路を作ろうとしています。手作業をどのようにしてプログラムに置き換えていくか、自分でとことん考えてみないと思考回路ができません。

(『うかる! 基本情報技術者 午後・アルゴリズム編 2021年版』より)

 

また、こうも述べておられます。

夢に出てくるくらい、とことん考えるんだ! 自分の頭で考えれば考えるだけ、力がついてくるよ

(同)

 

そんな先生のお言葉に従って、悪夢にうなされるほどの戦闘を繰り広げた結果「アルゴリズムうつ」を発症してしまったのです。

脳が筋肉痛を通り越して複雑骨折を起こしたのです。

 

流れ図や擬似言語と格闘し、変数だの配列だの添字だのの攻撃を受けて、私の精神は大きな損傷を負いました。

なにせ敵は「トレース」や「ループ」や「サブルーチン」といったカタカナ、「INT」や「Mod」や「Max」といった英字、「<」とか「>」とか「=」のような記号など破壊力のある武器をそろえています。

そしてまるで電磁波攻撃のように、こちらがそれと気付かぬうちにダメージを与えてくるのです。

 

仕事で心身共にヘトヘトになり、疲れ果てて帰宅した私が何をしているのか?

それは癒しや安らぎとはほど遠い精神の苦行。

アルゴリズムの学習なのです。

本当なら湯舟に浸かってリラックスしたり、アロマを焚いたりショパンを聴いたりゴッホの画集を見たりして精神の安定を図りたいところ。

そんな時に私は「絶対にやっちゃいけないこと」をしていました。

アルゴリズムの学習です。

 

これほど脳を痛めつける自傷行為が他にあるでしょうか?

罠の仕掛けられた迷路にみずから飛び込んで迷い込み、ネズミのように駆け回って疲労困憊し、出口を見出せない自分への劣等感に打ちひしがれてテストステロン値をゼロにまで下げているのです。

 

天才プログラマーになるという私の希望は遥か彼方の彼方の彼方。

儚い夢の中の蜃気楼の中の霧。

 

やがて参考書の文字を追う目が焦点を失い、本当にどこか病気なのではないかと不安に駆られるほどの急激な睡魔がやってくる。

読んでいたページにしおりをはさむ指の力さえなくした私はベッドに倒れ込み、心の中の他人が口々に叫ぶ "You lose" "You lose" という大合唱を子守唄に、泣きながら眠りに落ちるのです。

 

こんな毎日を繰り返していると人はどうなるか?

「アルゴリズムうつ」行きの列車に乗せられて終点まで直行です。

 

 

私は今「選択ソート」を学習しています。

5個のりんごを重さの軽いもの順に並べ替えるやり方を学んでいるのです。

 

アレ? 今笑い声が聞こえたぞ。

誰だ、笑うヤツは?

空耳かな?

本当に難しいんだぞ。

 

参考書の著者や出版社は、本の冒頭に使用上の注意を書いておかないと読者から訴えられかねませんよ。

「1日に1ページしか読んではいけません」と。

「3分考えて分からなければ休憩しましょう」と。

「用法、用量を守りましょう」と。

 

錆びついた私の頭では理解に時間がかかりますが、正しいアルゴリズムの持つ美しさ、無駄をそぎ落とした論理の清潔さを何とか自分のものにしたくて、学習を断念することができません。

アルゴリズムうつに用心しつつ、気長に勉強を続けようと思います。

「アルコーリズム」なら得意なんですけどね! ってなんのこっちゃ?

 

 

私が使用しているのは2021年版ですが、ここでは最新版をご紹介しておきます。

基本情報技術者試験を受けるつもりがない方も、アルゴリズムの学習にお勧めです。