Date2009-05-23

2009-05-23の買い物

以下に加えて、ヴァレリー・アファナシエフが07年に東京オペラシティで行ったシューマン子供の情景」「交響的練習曲」のライブ録音CDも購入(Amazonにないので記録できなかった……)。『デジタル・ナルシス』は、昔、ウェブとか全然見たこともなかった頃に読んで感銘を覚えた本だけど、わりと最近、岩波現代文庫に入って2度目の復活を遂げたようで、また読み返すのもいいかなってんで買ったもの。Linux本は、そのあたりのことを知っておきたいなあと思うので。Matzさんの本は、正直タイトルと表紙はどうかと思いますが、中身は普通に面白いです。

Atavism

Atavism

デジタル・ナルシス―情報科学パイオニアたちの欲望 (岩波現代文庫)

デジタル・ナルシス―情報科学パイオニアたちの欲望 (岩波現代文庫)

Linuxカーネル2.6解読室

Linuxカーネル2.6解読室

  • 作者: 高橋浩和,小田逸郎,山幡為佐久
  • 出版社/メーカー: ソフトバンククリエイティブ
  • 発売日: 2006/11/18
  • メディア: 単行本
  • 購入: 13人 クリック: 189回
  • この商品を含むブログ (116件) を見る

まつもとゆきひろ コードの世界?スーパー・プログラマになる14の思考法

まつもとゆきひろ コードの世界?スーパー・プログラマになる14の思考法

2009-05-23の日記

12時前に起床。少しネットを見たりした後、外出。ジュンク堂へ。お金がなかったので書籍を1冊だけ買って、降ろしにいく。蛸薬師の松屋の前を通ったら、マグロづけ丼というのが出始めたとのことで、食べてみた。大盛りで780円。ちょっと高い。またジュンク堂へ戻って、本を2冊購入した。

帰宅して、買ってきた本を読みつつ、洗濯。しばらくすると、MさんがSさんと一緒に買い物をしていて、ごはんを食べようというので、18時半頃に外出。タワレコで買いたいCDがあったので、寄る。久しぶりに行ってみたら、アファナシエフの新譜が出ていたので、すかさず購入。

藤井大丸の前で待合せ。寺町のゲーマーズに寄る。「けいおん!」プッシュしまくりでうける。声優やアニメソングのコーナでSさんからレクチャを受ける。勉強になります。まあ特に何も購入しなかった。「苺ましまろ」のキャラソンCDが欲しかったのだけど。

Sさんが、先斗町においしいすき焼き屋があるというので、酒も飲まないのによくそんな店知ってるなと思いつつ、行ってみた。先斗町の中頃にある「葱屋平吉」という店。名前の通り、葱や玉葱を使った料理や、鍋等を出す店で、出てくるものがいちいちおいしくて、とても幸せな気分になった。また行きたいなー。↓この葱、お店のひとがこんなにも盛って出したもの。あほかってぐらいの量。しかもこれで2人前という。さらに、この他に明らかに使いきれないほどの量の葱も出されていて、葱好きの僕は狂喜乱舞した。

f:id:antipop:20090523201813j:image:w400

帰宅して、ビールを飲みつつ、買ってきたCDを聞いたり、学習用の調査のため、本を読んだり調べ物をしたり。

体系的な知識・技術を身につけるための学習法について

体系的な知識や技術を身につけたいと思っています。たとえばプログラミングに関していえば、これまでたまたま興味を抱いたところをつまみ食いしていて、小手先の技術が少しは身についたものの、もうちょっとなにか深いことをやろうとしても、それだけではなかなか難しい。とはいえ、教育機関のようなところでやり直すわけにもいきませんし、かといって、なにかをただ作ったりしているうちにいつの間にか体系的な知識や技術が身につくというのも、そういうひともいるかもしれませんが、あまり考えられないことです。ではどうすればいいか……?と考えていたのですが、先日ちょっと思いついたので、とりあえずまずは実践してみたいと思いました。

というのはつまり、学習したいと考えている、なにかそれなりに大きな規模の分野について、自分で本を書くつもりで、あるいは、こういう本があったら体系的な知識を得られるだろうなあという本の目次を自分なりに書き出していって、あとはその内容を埋めるつもりで学習を行っていけば、自ずと体系的な学習になってしまうのではないかという方法です。それがうまくいくかどうかはわかりません。しかし、まあやってみる価値はあるんじゃないかという気もしています。

たとえば『Tokyo Tyrantのようなものを作ってみよう』みたいな本があったとして、それがもろもろの必要な知識、技術を解説し、学んだことを活かしながら実際に少しづつ実装を進めていくというようなものであったら、それを読むことにより、様々な知識が身につくのではないかと思います。これはなにもプログラミングに関することのみならず、色々な分野に適用可能な方法なのではないかという気がしています。たとえば音楽理論を体系的に学びたいなら好きな交響曲を分析するための知識を洗い出してみる、とか、建築について学びたいならコールハースのある建築を実現するために必要な各種工法、素材、歴史、法規、デザイン等についてとか、ともかくそれらの入門書のようなものを書いてみるつもりで、まずは目次を作ってみるわけです。そして、その目次に沿った内容を、実際に書くかどうかは別として、埋めていく要領で学習を行っていきます。

そこで、まずは以下のような架空の目次を作成してみました。今後は、もちろん目次を作成する際の知識不足により、検討外れであったり不十分であったりする項目もあるので、目次そのもののブラッシュアップを図りつつ(そのこと自体も学習の役に立つでしょう)、基本的にはそれに沿って学習を行い、まとめていく作業を行うことで、なにかしら「体系的な学習」に近いことを実践できるのではないかと期待しています。もちろん、誰かよくご存知の方が実際にそういう本を書いてくださるのが一番早いわけですが。

TokyoTyrantみたいなのを作ってみよう』という架空の書籍の目次(暫定版)

  1. データベースを作ろう
    1. データベースとは?
    2. データベースへの各種操作
      1. 検索
      2. 更新
      3. 削除
    3. ストレージ
      1. 各種ストレージの特性
      2. キャッシュ
      3. メモリ
      4. HDD
      5. SSD
    4. ページ管理
    5. バッファ管理
    6. メモリ管理
    7. アルゴリズムとデータ構造
      1. ハッシュ法
      2. B+-tree
  2. ネットワークインタフェイスを作ろう
    1. ネットワークの概略
    2. ネットワークプログラミングの基礎
      1. システムコール
      2. 各種ライブラリ
    3. 可用性を高める
      1. ログ管理
      2. バックアップとリカバリ
      3. 同時実行制御
      4. レプリケーション
        1. マスタ/スレーブ
        2. デュアルマスタ
      5. 対障害性
        1. フェイルオーヴァ
  3. 各実装の検討
    1. memcached
    2. TokyoCabinet + TokyoTyrant
    3. その他

© 2020 栗林健太郎

Theme by Anders NorénUp ↑