マシン語の話
まず
だいたいそういう人達は人ハードウェア知識云々をもとより人から言われるまでもないだろうし
shi3z氏が檄を飛ばす想定読者もおそらく俺のようないわゆる受託業務システム開発を
しているような人間たちだ。
べつに低レベルアーキテクチャの知識はあればあったで困らないのは事実だし
プロなら最低限は知っとくべきレベルというのは実際あるし
無駄だと言う気はまったくない。
ただ
もし、仕事でその知識を認められたい、あばよくば給料やキャリアの足しにしたい、
などという下心があるのなら、下記のことは知っておくべきだ。
『少なくとも自分のいるチームのNo.1にならなければほとんど評価すらされない。』
はっきり言うと俺らの世界では
規模と場合によっては会社に一人か二人いれば十分なんである。
ある意味ではフルタイムで雇うほどの需要すらないとさえいえる。
たまに必要なときだけ相談したり調査を頼めればすんでしまうわけで、
地味なプログラムを組んだりしてるのだ。
ましてチーム全員がプロファイラやデバッガを使いこなせる必要なんか全然ないんである。
上で書いた「プロとしての最低限のレベル」ってのは
バイナリハッカーに相談すべきときに相談できる判断力があるかってことなんである。
(故にそれはできて当たり前であって評価の対象にはならない。)
しかし別の面から見ると
shi3z氏みたいなバイナリハッカーだけでは全然足りないのだ。
DBのインデックスやパラメータの最適化や分散設定ができるやつは身近にいるか?
Apacheやルータ、ロードバランサの設定や専門家は回りにいるか?
先輩から教わったCVS(やSubversion)の使い方がどうもgoogle様の
ご宣託と違うような気はしないか?
共通ライブラリやお仕着せのフレームワークの仕組みや動作に疑問はないか?
等など、、、
状況によっては
むしろ自分にとって手の届くニッチ(はまりどころ)があると喜ぶべきかもしれない。
上記のほとんど全部をこなせるような人間が稀にいないわけではない。
しかし臆することはない。
目と手は2つづつしかついていない。
人の時間とモチベーションは有限かつ希少な資源であり、