2007-09-14

http://anond.hatelabo.jp/20070914021435

システム機械語レベルの挙動を意識するとどういうところが気になるようになるか、それを現代の環境ではどう教えるか、という点が問題でしょうね。

メモリレジスタ幅(桁数)と情報の規模の関係を意識する - まあ、Oracle は 64bit OS で使えとか、xfs を 32bit OS で使うと(atomic な部分の更新が泣き別れになって)クラッシュ危険が高いとか

API 仕様を意識する - 上の例の続きだけど、パッチのあたってない古い gzip で 2Gbytes 以上のファイルが圧縮できないとか

コードを展開した結果、関数の出入りやインタフェースでどう膨れ上がるか、リソース解放がどれだけ無意味になりうるかを知っている - C++ とかの場合。Tomcatクラスロード(とリソースの確保も -- 追記)で1時間待たされるとかくだらないことが起こるけど、開発効率と運用トレードオフだからなぁ

・(Ruby, PHP, Java などの)VMに頼るべきでない場合が何かを知っている - 速度もだけど、VMバグ持ちの場合、デバッグが困難を極めることもある

ビット操作系のコードを書けないと困る - まあ、ioctl や fnctl で苦労したことがあればどういうものかは判ると思うけど

・(追記)strace とか ldd とかくらい言われる前にやってほしい - 実際 JavaPHP しか知らないと本当にこの辺はできない

・(追記)497(×10^-n)日で落ちた、と言われた瞬間にカーネルバグを疑ってほしい - lbolt 溢れ系のバグは本当にありふれている

いまどきは障害対応系の運用をやったほうがプログラマとしてコード書くよりもこの辺の問題に詳しくなれる気がします。

追記:「こういうこともわからん子供たち」をうまく使って利益を上げる会社と、「こういうこともわからん子供たち」を教えるのにフラストレーションを感じるハッカーがひとりで回している会社、どっちが上記のようなことを学びやすいかというのは難しいところです。SUSv3 (昔のオライリーPOSIX 本でもいいけど)を面白いと思えない人に正直あまり細かいことを学べるとは思えないし‥

記事への反応 -
  • d:id:shi3z:20070913 言いたいことはわかりますよ。スタックを知っていれば、レジスタを知っていれば、メモリ管理の仕組みを知っていれば… そういう知識があればあるほど、問題に遭遇し...

    • システムの機械語レベルの挙動を意識するとどういうところが気になるようになるか、それを現代の環境ではどう教えるか、という点が問題でしょうね。 ・メモリやレジスタ幅(桁数)と...

    • そうそう。無自覚な「昔は良かった」臭が滲んでる。 エントリの論理で求めているのは、必要なことを学ぶ事なのに、実際は、自分と同じ体験をさせたいというのが無自覚な本音という...

      • 必要なタイミングに、必要なことを、必要なだけ、適切な時間内に、学べることが大切であって、好奇心と探究心がありさえすれば、本質を知るために無限に没頭していいわけではないん...

    • 言いたいことはわかりますよ。故人と親しかったのであれば、故人に優しくしてもらったことがあれば… そういう思い出があればあるほど、お墓の前で泣きたくなる。 そういった記憶を...

記事への反応(ブックマークコメント)

ログイン ユーザー登録
ようこそ ゲスト さん