手段としてのソフトウェア

作りたいものが見つからず不安なので,せめて何か蓄積したいと思いました。

カウボーイ・サマー を読んだ

 久しぶりに,ほぼ1日で,夢中になって本を1冊読み終えることができました。

 私は現在,メンタルをアレして休職しているのですが,休職するずっと前から,勉強ではない「読書」が上手くできずにいました。こんなふうに本を読むのは,もう何年ぶりだろうかと思うと,うれしいです。

tabitoshisaku.co.jp

 

 不思議な読後感です。まちがいなくおすすめです。おすすめなのに,私では力不足で,おもしろさを十分に表現できません。感想をうまく言葉にできません。

 ですが,できないなりに,少しでも著者の 前田将多さん (@monthly_shota) | Twitter への感謝を表現したく,このエントリを書いています。Twitter のつぶやきも魅力的ですし,Hatena で書かれている 月刊ショータ なんかはもう,大変おもしろいです。腹を抱えますよ。

 

 さて,本題です。

 先に貼った版元のページでも,Amazon でも,本書を紹介する文章はどこか熱っぽく,感傷的で,もしかすると敬遠してしまう方もおられるかもしれません。失礼を承知で正直に記すならば,私自身がそうでした。

 しかし実際のところは,本書は暑苦しくなどありません。著者の内面やら経歴やらが熱っぽく語られることはありません。あくまでも淡々と,飾り立てることもせず,ストレートな言葉で語られます。カウボーイの歴史,精神性についての考察,実際に体験したこと,体験するなかで感じたこと,日々の小さな楽しみ,怯む気持ちや不安,無力感,ささやかな充実感,そして全体から静かに伝わってくる解放感,そこにユーモアも少し添える。そういった本です。

 

 日本人である著者は,「カウボーイ業界は未経験」の状態から,カナダの牧場で,内弟子のような形で仕事を手伝い始めることになります。そうしますと,当然ながら,毎日が初体験,嵐にもまれる小舟状態に陥るわけです。そのうえ,日々,先を見据えて働き続けるカウボーイたちの仕事は,たいへんなハードワークなのです。「牧場でのんびり牛さん馬さんたちとスローライフ!ハッピー!」なんてお花畑は存在しないのです。現実は,途方もなく広大で暑くて寒くてキツイ「仕事場」と,素手では触りたくないいろいろと,壊れていく機材と,暴れる生き物と,その生き物へ少々キレ散らかしたりする先輩カウボーイたちとの悪戦苦闘です。

 そういったことが正直に書かれているのに,不思議と読んでいて解放感が感じられ,こちらの気分が晴れてくるのです。実に不思議です。著者の「いま自分は,自分で望んだ道を生きている」という覚悟と感慨が,文章からにじんでいるのかもしれません。

 

 無駄に長くなってきましたからこの辺りにしますけれど,本書は,安直な自己啓発スローライフ礼賛ではありません。読み手に何も押し付けてはきません。極端な言い方をしますと,「こういうことを知った。こういうことを体験した。自分はこう感じた。」というだけの本です。なのに,読み進めるほどに,登場する人たちの魅力や,彼ら彼女らの生き方に惹きつけられ,おもしろくなっていく本です。いま読めて,ほんとうによかったです。

AtCoder 茶色のままです

最近は心身ともに調子があまり良くなく、毎日PC に向かいはするものの、ひどい倦怠感だとか、もう2週間くらい下がらない微熱 (36.8〜37.1℃を推移。もう本当に微妙)だとか、これも精神的な不調なのか単なる風邪なのか、両方か、みたいな感じで、いつも眠くて気がついたら眠っていたりして、何ひとつとしてきちんと出来ずにふわふわと日々が過ぎていき、気がつけば6月というか、ああもう8日なのかと以下略

f:id:takumat1982:20190607233659j:plain



まあつまり、相変わらず茶色をうごうごしていて、その程度の実力でしたというわけです。無念であります。

何も手につかないので、駄文をスマートフォンから垂れ流している次第でした。

 

次の更新では、緑になっていたい!以上!

 

AtCoder 茶色になりました

まったく誇れるようなことでもないのですが,AtCoder を開始してから1か月と1週間,やっと色がつきました。茶色であります。情報系の学生さん相当のレベルだそうです。恥ずかしい!

f:id:takumat1982:20190505082617j:plain

当然この先には,果てしなく長い道のりがあるわけですが,とりあえず1ランク昇格しました。賢い人はさっさと飛び級しちゃうんですけどね,私は地を這うように進んでいくよ!

chokudai.hatenablog.com

  

もともと,職場復帰に向けたリハビリの一助となれば,と始めたことでしたが,なんだか面白くなってきています。この世界では有名な本らしいこちらも購入し,こつこつやっています。

book.mynavi.jp

 

とはいえ,病気の症状なのか服用している薬の影響なのか,特に日中は何かを考えようとしても延々と堂々巡りしてしまい,ぜんぜん進みませんが,楽しんでやっていきたいと思います。いまだにテレビもマンガも音楽さえ楽しめませんが,やりたいことができて何よりであります。

それにしても,無理やりアタマを使おうとしている影響か,しばらく取り組んだあとは完全に思考停止して強烈な眠気がやってきます。2時間が限界です。ふぅぅぅおおおおおもうダメだぁああ,と,気持ちよくなってきます。不便だなあ。

 

次は緑色になれるように頑張ります。ある意味,脳みそにリミッターをつけたハンデ戦みたいな状況なので,ふふふ,病気が治ったらとてもつよいかもしれないよ!(ない)

少し熱が落ち着いたら,また数学と並行して,ゆっくりやっていきたいなと思います。

何ということもない独り言ですが,記録しておきました。

 

手段としての AtCoder

偉そうなタイトルですが,どうもこんにちは,クソザココーダーです。

ずっと休職しているし,そうでなくとも最近は,コードを書く機会も年に数回みたいな感じになっていたので,ちょっと客観的な基準が欲しくて AtCoder に登録しました。

atcoder.jp

 

「手段としての」とか言って,ソフトウェアに関してスカした態度でいた自分が恥ずかしいです。できないから目を背けるって,とってもダサいです。しかも,内心ではもうちょっとできるかなー,と思っていたのが恥ずかしすぎる。あと,自分で意識していた以上にソフトウェア開発の仕事が好きだったみたいです。悔しいです。悔しいです!

とにかく恥ずかしいのですが,ここに現状を置いて,今後がんばっていきたいと思います。

 

競技プログラミングという分野に関しては,関連する記事も多数あり,いまさら私が付け加えるようなことは特にないのですが,あえていうなら,結城浩先生の「プログラマの数学」を読んでおいて本当によかったと思いました。こんな紹介記事も書いていますから,もしよろしければどうぞ。すごくいい本です。

他にも同じく結城先生の「数学ガール」シリーズや,ポリアの「いかにして問題をとくか」には,問題に取り組む姿勢や,視点の切り替え方など勉強させていただきました。

 

さて,競技プログラミングの分野で,初心者から中級者へ至ろうと思うと,きちんとアルゴリズムなども勉強し理解して,適用していかないと厳しそうです。数学との親和性も非常に高いように思います。しばらくは,結城浩先生の著作と,AtCoder の過去問題を並行して勉強してみようと思います。

 

あいかわらずとりとめのない文章ですが,まずは,ここからであります。

いかにして問題をとくか を読んだ

数学ガールの秘密ノートシリーズを読んでいるうちに触発されて,ポリア著「いかにして問題をとくか」にチャレンジしました。

今回もはじめに結論を書きますと,苦しさを乗り越えて読了すると,たいへん素晴らしい本だと実感できます。また,「数学ガール」シリーズは,この本を現代風に洗練させ,さらに物語としての面白さも加えてくださったのだとわかります。

f:id:takumat1982:20190324105914j:plain

ながいたたかいであった

1日に1,2時間ずつ取り組んでいたのですが,実に3週間ちかくかかりました。

さすがに古い本だけあって,正直に申し上げて,決して読みやすい本ではありません。ですが, 内容はまったく古びておらず,たいへんおもしろい本であることも間違いありません。以下,感じたことを書いておきます。

 

考える枠組みと,対話の重要性

もともとは数学を学ぶ若い学生,ないしは数学を教える立場のひとへ向けて書かれた本ということで,私のようなザコが読むには難しいかと思っていました。ですが,必要とされる数学の知識は高校数学の前半くらいまででよく,むしろ思考力をためされるような内容でありました。

本書のすべてのエッセンスは,巻頭と巻末に記された "リスト" に集約されるのですが,本文ではそれらについて,読者の理解が少しでも深まるように,より強く印象に残るように,と非常に丁寧に述べられています。

また,問題をとこうとする人間にたいしては,相手の様子を丁寧に見極め,慎重な対話を通して「本人が考える余地」を最大化するようにすべきだと説きます。そこで例としてあらわれる対話の形式が,まさに数学ガール!非常に腑に落ちます。

 

さらに,ここで対話の相手とは自分自身も含むのだ,ということも示されます。代表的な問いかけとして,「未知のものはなにか」「与えられたものはなにか」「問題をいいかえることができるか」「似た問題をしっているか」などがありますが,これらの問いかけは,自分自身の問題に対する理解がどのあたりにあるのかを知る,よい手がかりになります。結城浩先生がよく書かれている「自分の理解に関心を持つ」ことへつながるのです。

すくなくとも,この本に記載されたリストの問いかけを忘れない限り,問題を前にして「何もできることがない」という状態にはならないことでしょう。

 

大切なことは何度でも 

誤解をおそれずいえば,本書の読みにくさの一端は,Ⅲ部「発見学の小辞典」における,一見とりとめなく並んでいるように思える項目や,参照先のわかりにくさにあるのではないかと思います。

しかし,記述されている内容は素晴らしいです。それに,適切なサイズと難度で,また「問いかけ」の効果を実感できる形の「興味をひく」例題であったり,ほんのりと香るユーモアであったり,著者の思いやりは随所に感じます。

また,項目がアルファベット順に配置されているので,どんどん話題は切り替わっていくけれど,いずれも共通して "リスト" と関連づけた記載がある。曲調は変化していくけれども,同じ主題による変奏曲というか,トランスミュージックの繰り返しが生む浮遊感というか,終盤はなんだか気持ちよくなってきて,そしていつの間にか,"リスト" の重要なフレーズが印象に残っているのです。

冗長になろうと,ていねいに繰り返し問いかけ,読者が理解できているかを自身でたしかめられるように,つまり,著者と読者との対話形式になっているのです。

 

ソフトウェアとの相性のよさ

 先にも述べたような代表的な問いかけに加えて,本書では以下のような記述も出てきます。

  • 方程式をたてるということは,言葉であらわされている条件を数学的記号を使ってかき表すことである。それは日常の言葉から数式という言葉に翻訳することである。

(P79 「方程式をたてるということ」より) 

  • 数学の記号をつかうことは言葉をつかうのとよく似ている。数学の記号は言葉のようなもの,即ちぴったりしたことば,簡明で,明確で,しかもふつうの*1文法のように例外などがない規則にしたがった表現である。
  • よい記号というのは,あいまいでない,含蓄のある,しかも憶えやすいものでなければならない。それはまぎらわしい他の意味を表してはならず,よい意味では,しかしふくみのあるものでなければならない。

(P120 「記号」より抜粋)

  • 類推は一種の類似である。同じような事柄はある点で一致し,にている2つの事柄はそれぞれ対応する部分間の関係が同じである

(P173 「類推」より)

「方程式」「数式」を「ソフトウェア」に,「数学の記号」を「変数名,関数名」に,「類推」を「汎化,継承」に置き換えて考えたくなってきませんか。ほかにも,「条件をいくつかの部分にわけてみよ」ですとか,なんだか,途中から「リーダブルコード」を読んでいるような気分にもなりました。ああ,数学とソフトウェアの相性のよさといったら!いままで数学を苦手としていたのが,ほんとうにもったいなく思えます。

 

これは,私がソフトウェアの人だからそう感じるのであって,他の分野の方にも同じように適用できる考え方がたくさんあるのだと思います。著者自身も述べているように,この本に書かれていることは,「現実の問題」へ取り組むうえでも非常に有用なのだと思います。

 

さいごに

もし,「この本のことを知ってはいるが,敷居がたかく感じられて手を出していない」という方がおられたら,ぜひ購入し,巻頭・巻末の「リスト」だけでも,また本文の一部分だけでもお読みになり,手元においておくだけでもじゅうぶんに有用だと思います。おすすめであります!

全体をとおしていえるのですが,著者のポリア氏は「対象に関する前提知識さえ備わっていれば,かならず問題はとける」と考えておられるのだと思います。なにしろ文章が前向きです。

とにかく,なにかそれらしいことを思いついたり思い出せたりしたなら,あるいは少しでも問題の気づいていなかった点に気づくことができれば,それらはすべて進歩の兆候なのです!

 

 ------

それにしても,長くかかりました。最後に,ツイートでわかるテンションの変遷も記録しておきます。自分がもっと頭がよければなあと思いますが,仕方ありませんね!

 

 

 

 

 

*1:自然言語」のことを指すと思われる

数学ガールの秘密ノート/行列が描くもの を読んだ

今回も,結城先生のあのシリーズから,「数学ガールの秘密ノート/行列が描くもの」です。

先に結論だけ申しますと,今回も最高でした。なぜ今まで行列のことを使いこなすことも,そもそも知ろうとすることさえしなかったのか,後悔してもしきれない思いでした。こんなにも整った概念を使えずにいたなんて・・・

note10.hyuki.net

f:id:takumat1982:20190304171053j:plain

今回も電子書籍で。ノートも新調。カバーは,ほぼ日手帳のTSブラック2009

ところで,実は行列に取り掛かる前に,ちょっとビビッてしまって,先に「丸い三角関数」も読みました。

note3.hyuki.net

こちらも当然のごとく面白かったのですが,三角関数については,仕事で少し馴染みがあったこともあり,比較的すんなりと理解することができました。そして最後に回転行列が登場したところでは,やはり先に読んでおいてよかった,やっぱり刊行順に読んだほうが楽しみが大きくなると思いました。

 

ともかく,今回は行列です。行列には高校のころから苦手意識がありました。そのうえ,大学受験時に,志望校の赤本に「過去,行列分野の出題実績は一度しかなく,ここ10年ほどは出題されていない。出題される可能性は低い」と書かれていたのを信じて分野ごと諦めてしまったのでした。

しかも,実際には,前期試験を受けに行って,数学の問題が配られた時点で,大問 1 に行列が透けて見え,絶望したのでした。

まあ,その,情けない自分語りはともかく(どうして理系を選んだのでしょうね),本題にまいります。この「行列が描くもの」も,すっごく面白かったですよ。

 

f:id:takumat1982:20190304171056j:plain

写経したり地道に計算したり。楽しかった!

行列は難しい?

そもそも,名前からして直観に反するというか,手計算するとなると計算量も多いし,ふつうの四則演算と違って制約も多いし,なんだか覚えることが多くてややこしいし・・・と嫌いになるための理由は探せばいくらでもありました。

ユーリ「うわー!なんだこのややこしさー!手加減なしかー!」

僕「定義に手加減も何もないよ」  ー本文P43より

おまえは身も蓋もないよな,と。まさにこういう気持ちでいました。

 

本書は,行列とはなにかをていねいに定義していくところから始まります。

行列を定義するために,数の世界にも立ち戻りながら,ゼロとはなにか,イチとはなにか,そして行列におけるゼロとはイチとは・・・と考えていきます。

これまでほぼ意識することなく,当然のものとして扱ってきたゼロ,イチ,数,和,差,積,商,逆数,複素数・・・これらの本質を見つめなおし,行列に当てはめ,定義していきます。

 

行列は,架け橋だった

この,いわば「概念を具体化していく」様子には,静かな興奮を感じました。私がソフトウェアを仕事にしてきたからか,オブジェクト指向との関連を自然と意識しました。

「行列」というクラスを定義し,演算子を定義し,実装していく・・・オブジェクト指向言語における「演算子オーバーロード」というものが,初めて知ったときは「よくこんなことを思いつくな」と思ったものですが,数学をきちんと学んでいれば,むしろ自然なことだったのだとわかりました。

行列は,数を継承して定義された概念であり,ベクトルや幾何など他の概念からも参照される,汎用的なものとして美しく設計されているのだ。このことを学べただけで,行列への見方が変わりましたし,知りたい,使いこなしたいと思えるようになりました。

 

行列は,楽しい! 

そして結城先生の手腕により,こんな私でも各章の章末問題がふつうに解ける(かかった時間は別として),投げ出したくならずに楽しく取り組めるようになるのでした。

一般の参考書と違い,説明を端折らない,冗長化しようとも繰り返しを恐れない,非常に丁寧な描写によって,置いて行かれたような気持ちにならず,自分の理解を確かめながら進むことができました。この「秘密ノート」シリーズは本当にありがたいです。

 

------

ここからは,完全に主観による蛇足で,すでに語られているか,または全くの的外れなことを恐れず書きます。

数学ガール」シリーズで,放課後の図書室に集まる面々は,おそらくは,いわゆる「普通の高校生」のなかでは浮いてしまう存在ではないかと思うのです。

しかし,彼らはちゃんと仲間と出会い,放課後の図書室で穏やかに真剣に,数学を楽しんでいます。このシリーズからは,結城先生の「好きなことを追求するのは悪いことではない」「今の環境がすべてではない」「続けていれば,いつか仲間とは出会えるものだ」という優しいメッセージを感じます。各巻のエピローグで,成長した彼や彼女が生徒を優しく導く様子にも,放課後の図書室の暖かさはきちんと残っています。

好きなことを追求する,自分の関心に素直になるのは幸福なことだ,無理に周りに合わせることはないんだと,まさに中学生や高校生に向けて書いてくださっているのではないかと思いました。

------

 

興奮冷めやらぬ長文駄文を失礼しました。この文章は,自分のために書いていますから,ご容赦くださいませね。

さて次は,何を読みましょうか。

 

数学ガールの秘密ノート/積分を見つめて を読んだ

今回は,積分です。いよいよ来たぞ,という気持ちで臨みました。

note9.hyuki.net

 

今回も kindle 版で購入しました。

 

f:id:takumat1982:20190220161932j:plain

ついに積分です

 ただ,やはり kindle paperwhite とは相性が良くないようで,iPadkindle アプリと比べると表示が薄いようでした。kindle (無印) や Fire についてはわかりません。著者の結城先生も仰っていたように,無料の試し読みで確かめておくのがよいと思います。

f:id:takumat1982:20190220161920j:plain

iPad mini (初代) と kindle paperwhite 第2世代 (防水タイプ)

さて,本題ですけれども,今回もとにかく面白かったです。

なんだか,巻を重ねるごとに読了にかかる時間が伸びてしまっています。力不足を嘆きたい気持ちもありますが,もしかすると,じぶんもテトラさんやユーリさんに感化されてきたのかもしれません。「もっと知りたい,きちんとわかりたい」という気持ちや,「いま,じぶんはまだ理解できていない」というときの感覚が鋭くなったように思います。より深く楽しめるようになった,といえるかもしれません。

f:id:takumat1982:20190220173803j:plain

計算してみたり,写経になってしまったり

また,この「秘密ノート」シリーズは,基本的にどの巻からでもたのしめるように書かれていますが,私の場合は「プログラマの数学 第2版」「数学ガールの秘密ノート/数列の広場」「数学ガールの秘密ノート/微分を追いかけて」を先に読んでおいて本当によかったと思いました。本書に登場する背理法,数列,極限,微分に怯まなくなった自分に喜びを感じました。

やはり,この「秘密ノート」シリーズは,以下のような点が非常にうれしいです。

 

1.「おもしろさの説明」にも力をかけてくれる

単なる参考書ではなく,小説の形をとっている利点はここにもあるように思います。本書に登場するガールズは,ときどき,数学好きな人が熱く語る解説や,「面白さ」を理解できなかったりします。そんなときは,概ね読者である私もまだピンときていません。そこで彼女たちは,私に代わって堂々と質問してくれます。そして質問された側は,彼女たちの「わかりたい」という気持ちに応えて,より丁寧に話をします。

この対話がすごくありがたいのです。「わからなさ」を嫌いにならなくて済むのです。

 

2.「考えるための助言」もきちんとしてくれる

前項の内容とも少し重なりますが,問題に対するときの目の付け所,何を目的として式変形していくか,いかにミスを減らすか,などの「考える方向性を検討するための引き出し」も,彼女たちとの会話のなかに自然にちりばめられています。

これがまた,うれしいのです。ぱっと見てよくわからない,という問題に向かうときに,「わからないまま立ちすくむ」という,あの悪夢のような時間を減らすことができます。

結果として問題が解けるかどうかは別の話ですが,武器や道具はひとつでも多いほうがいいし,慣れの問題も確かにあるとわかっているだけでも,気持ちが楽になります。

 

3.対象を複数の観点で捉えて,立体的に感じさせてくれる

特にこの点は,結城先生のご著書に共通する点だと思いますが,ひとつの解法や証明で終わりではなく,別の観点からの説明も用意してくださっているのがうれしいです。「世界を行き来する」と表現されていますが,もうそのフレーズだけでもわくわくしますし,結果が得られる瞬間はカタルシスさえ感じられます。気持ちいいのです。

特に今回は,定積分を数列で離散的に捉えなおす「定和分」なる概念も登場します。区分求積法との類似をなんとなく感じましたが,それはともかく,具体的な数式がひとつも出ないままに当然のごとく計算し,結果が出るさまには感動を覚えました。

他にも微分の公式を図形で表現してくださったりと,こんなにイメージを感じられる数学の本は,ちょっと他にないのではと思います。

 

4.「誰のために書いているか」を徹底されている

そう,わたしのようなものに向けて書いてくださっているのだと思います。

これだけ数学的な内容を分かりやすく,そればかりか物語として,登場人物たちも魅力的に表現するためには,「何を書き,何を書かないか」の取捨選択が相当に慎重に行われているに違いありません。

公式がひとつ登場するだけでも,単に公式を提示して終わりではないのです。登場するガールズは当然のように公式への疑問をぶつけ,式の背後にある考え方,公式が表現しているものについて考えを進めていくのです。数学すらも物語化している,といってもいいかもしれません。ここまでやってくださっているのですから,丁寧に向き合いさえすれば,入門するには最高です。好きになることから始められます。

 

-------

シリーズの総括みたいなふわふわしたことを書いてしまいました。

次はいよいよ「行列の描くもの」へ進むか,それとも「丸い三角関数」へ戻るか,悩ましいところです。いつも「次に読む巻」が最高に面白いので。