seraphyの日記

日記というよりは過去を振り返るときのための単なる備忘録

雑記

今日は目覚めは悪くなく体調は本調子に戻りつつあるかな、などと思いつつ大江戸線で出勤途中、突如として冷や汗が出て吐き気がこみ上げ、ふと自分の手をみると、いつもよりx0.5ほど白く血の気が引いている。
貧血だ、いや胃酸過多か。自律神経失調症ではないはずだが、ストレスが溜まっているのか、なんのだ?
いや、むしろ自堕落な生活習慣のツケか、などと思いつつフラフラしながら、とりあえず六本木の駅に着くなりトイレで吐く。
結局、朝飯を食ってないこともあり内容物は出なかったが、気分がラクなったのか、急激に血が手や頭に戻ってきてジリジリする感じになり、ホッと安心する。

13:30出社。

今朝目覚めたとき、今日は「ソフトウェアエンジニアリング知識体系(SWEBOK)2004年版」を、ついに購入しようかと、ひそかに心に決めていた。
昨日の夜、山積みの本を見ながら、ぼんやりと考えていたことがある。
この大量の本の、何パーセントかはモノにできたのだろうか。
人は一年に、どれだけ学習できるのだろうか。

高校の教科書だけでもマスターすれば、それなりの「学」がついて、成績もあがって、そこそこメジャーな大学への進学も、その後の就職活動もラクだったに違いない。
小学校から大学までの、すべての教科書や参考書を積み上げても、いまのオレの読みかけの本の「一山」にもならない。
つまり、結局のところ、読めてないし、モノにもできてない。

先々週ぐらいから日経バイトや日経ネットワークの記事を斜め読みしながら思ったことがある。
Smalltalkオブジェクト指向において日本を代表する一人であろうSRAの青木淳先生の連載記事に目が留まる。
最近はアルゴリズムや、その計算コストを計算できない新米プログラマが増えているという。その記事を読んで、「O表記ぐらいなら分かってる」と思いつつ、久しぶりにヴィルト先生の本とか、推薦図書にもされていた「岩波講座ソフトウェア科学3 アルゴリズムとデータ構造」を開いてみる。

…logって何だったっけ?対数だよね?えー、と…。
ちょっとまて、お前は多少は知っていただろう?忘れたのか、…いや、そもそも分かってなかったのか?
orz

ダメぢゃん。薄々分かっていたけど、本当は分かっていたけど、はじめからダメだったんだ。

ぼんやりと工業高校時代を思い返す。電子科だから自然対数とか複素数三角関数をつかわなければ、なにも計算できない気がするが…。あれ〓?
たしかにオレは工業高校でもプログラムと論理回路以外は、つまるところ、難しくも基礎知識である肝心な部分がぜんぜんダメだったんだよなぁ。(微積分の出てくる工業数理、自動制御にいたっては目も当てられない。)
あのときは、基礎なんて無意味さ、ハンダごて握って何ぼ、キーボード叩いて何ぼよ、ぐらいに気楽に構えていたけれど、あのときのツケの重さを今に感ずることができたよ。
あの知識があったからといって、いまの仕事が劇的に改善されるとか、そうゆうことはないと断言できるし、現在の典型的なT型知識体系(部分的専門家)のありかたがもっとも現実的だとは思うけれど。
だが、その次、先に進めない。それを感ずる。

身につけられたモノは少ないかもしれないが、この本の山から得られたものもある。
ソフトウェア業界にきて、まだ5年ぐらいしかないのだが、高校や大学では学ばないことを実務で学ぶとはよく言ったもので、あの当時関心があったプログラミングだの設計だのは、ほんの氷山の一角。しかも、本当に表層的なものにすぎない。
そう考えたとき、「ソフトウェアエンジニアリング知識体系(SWEBOK)」は、まさに、これから進むべき道しるべになりそうで、そして、おそらくは業界人を自認するのであれば知っておかなければならないものではないか、と確信めいてきたのだ。

そして昨日の回想おわり。本日はパチパチと、やはりキーボード叩いて何ぼ、と思いつつ、しかし、やはりオレは何をやっているのだろう、という気持ちは高まる一方だった。どうすればよいものが出来るのか、そもそもよいものとは何か?

コードレビューで判明した某ベンダーのソースコードは、前評判高いところだけあってコーディング基準もしっかりして、わりと美しくしっかりしたコードになっていたが、しかし、最下層へ向かうにつれて再利用された他社製の粗悪なコードがゴソゴソ出てくる。ゴミを埋め立てた上に軽く飾り土をもって、その上に立派な一軒家を建てたような感じで、もし、予期せぬ揺らぎが生じた場合には多大な損害をこうむるであろうことが予想されるものだった。
しかし、すべてスクラッチから書き上げるということが現実的なのであろうか?
時間的・金額的制約を考えると無理だし、それをやったところで本当に品質が上がるかは不明だ。汚くて危なくても、現状ならばという制約つきでなら動くことが検証済のコードを使うほうが品質的にも経済的にも合理的であるのか。
綺麗なコードを書いたところで、それが十分に検証されていなければ品質的には何の保障もないことを考えれば。

本当に時間が足りない。何がよいのか明確ではないにも関わらず、キーボードを打つ速度も思考する速度にも限界があり、本当に見えない理想に追いつくことなど、このままのやり方では不可能だということは分かる。
なにかを変えなければならない。
もっと現実的な目標、これで十分だ、という確証のある身近な目標を見つけるか、もしくは考え方を転換する必要があるのか。

そんなことを思いながら24時ぐらいに退社する。