2010-01-06
僕に足りないもの
雑感 | | ![]()
足りない物はいろいろあるけれど勉強ログなので、そういう方面に限ってのメモ。
今年というか来年度の勉強のための指針。
特に足りないと感じているのは基礎的な部分。計算機科学・計算機工学の基礎。
この分野の基礎とは何か。まずここから始めなきゃならないけど、細かいことは無視してよく重要と言われる分野を列挙してみる。
誤解の無いように書いておくと、以下に列挙した物はカテゴリとして分けたけれど、互いに深く関連しているし、僕がいい加減に分けただけなのでアカデミックな意味では全く正確ではない。
こんなところかな。
数理論理学(記号論理学)
ブール代数とかも含める。
数理論理学と記号論理学が同一のものを指すのかどうかよく分からないけど、 Wikipedia には同じものを指すような記述があったので、それを信用して見る。
一応記号論理学はセマンティック・タブローでやった。普段必要なレベルの知識は持っているつもり。
というわけで、もっとやりたい分野。
離散数学
離散数学という言葉一つにまとめてしまって良いのか知らん、と思うほど多彩な内容が含まれていて、しかも、どれもすっげー面白い。
一応この分野も一通り目を通したつもりだった。でも改めて見てみると、やってないことや分かってないことも多い。
基礎的な話では、例えば、群・環・体論はよく分かってないし、グラフ理論も中途半端にしかやってない。最近では符号理論の講義を受けていたけど、これもよく分かってない。
もっとやりたい。
計算理論
まず O 記法がよく分かってないw
これは致命的だよなぁ。アルゴリズムを勉強したとしても評価の仕方が分からないのでは意味がない。
それから数理論理学のところにも書いたけど、計算可能性の話も勉強してないし、形式言語やオートマトンなんかについても同様。
コンピュータアーキテクチャ
上の 3 つの分野と比べるとちょっと毛色が違う。上記のものは理学というか理論だけど、コンピュータアーキテクチャはどちらかというと工学。
プログラマという観点からは一番重要な分野だろう。実際の計算機の動きというかちゃんと仕組みを知らないと、どこかでハマるのは確実。
この分野も楽しいんだけど、細々していて覚えるのが大変。
まとめ
非常に大雑把で不正確なカテゴライズをしてみたけど、改めて眺めてみると、やっぱりまだまだ知らないことが沢山あって楽しそうだなーという印象。
僕はアプリケーションや Web サービスなどのエンドユーザ向けの話にはあまり興味が無いので、こんな感じのメニューになったけど、そういう方面に興味がある人は他にも UI 設計とかデータベース、ソフトウェアテストなどなど他にも沢山楽しそうなことがある。あ、テストは僕もやったほうが良いけどね。
もちろんエンドユーザ向けサービスの開発においても理論は役に立つ(と思うよ)。
個人的には役に立つか立たないかという基準はあまり重要じゃないくて、面白いかどうか、楽しいかどうかが重要なんだよね。
ある友人には、手段と目的を混同している、と注意されたりもするけれど、もともと目的がないんだから仕方ないね。
絵を描いたり、楽器を演奏する楽しさと同じなんじゃないかな。
参考リンク
Leo’s Chronicle: ぜひ押さえておきたいコンピューターサイエンスの教科書
- 2 http://d.hatena.ne.jp/nowokay/20100106
- 2 http://search.minakoe.jp/rsss/rsss.asp?qry=domain:hatena&adv_ok=0&multi=1
- 1 http://a.hatena.ne.jp/Hide_and_Seek/
- 1 http://blog.search.goo.ne.jp/search_goo/result/?MT=戸田山和久&from=web&da=all&dc=10&st=time&tg=all&ts=all&fs=all&rm=1&pg=5
- 1 http://d.hatena.ne.jp/keyword/アルゴリズム
- 1 http://d.hatena.ne.jp/keyword/フーリエ変換
- 1 http://d.hatena.ne.jp/nowokay/
- 1 http://d.hatena.ne.jp/nowokay/20081007
- 1 http://d.hatena.ne.jp/nowokay/20091214
- 1 http://d.hatena.ne.jp/nowokay/20091216