相変わらずな人

相変わらず

この人ずいぶん昔にmixiでも似たようなことを書いてるんですが,この人ローレイヤー(やっている|知っている)人は偉いなわけです(さらに質も高ければなおよし)

デバッグプリントは9600bpsのシリアルポート経由で表示されるので、毎フレーム表示しようとすると確実に処理速度が落ちます。

  これはデバッグプリントがシリアルポートと同期する際、CPUがACKを待つまでクリティカルセクションで割り込みブロックされ、タスクスイッチされなくなるからです」

もちろん今のOSとIA-32ではCPUレベルの防護策が二重三重にめぐらされているのできちんとOSを作ればこんなことは起きません。これはこのCPUとOS特有の現象でした。ハードウェアレベルの知識がなければわからない問題です。

他の例をでっち上げてみる

例えばMIDI楽器の演奏のようにリアルタイムに波形を動的生成するような場面で困ったという人が出てきました.

「ある曲を演奏していたら1分30秒の辺りがバリバリって音が鳴るんだけど何でかわかりますか? そこしか出ないんですよ」

デジタル音響を素人レベルでも多少かじってたら「オーバーフローじゃね?」とか推測できます(本当にこういうケースがあった場合,別の原因かもしれませんし,たまたま原因がそのパターンでは? ということに気づかないことはあるかもしれませんが).
それと同じレベルの話です.アセンブラ機械語も「言語を知っているから,熟知しているから」という範囲では何も関係ありません.
例に出てきているi386でもイーサでホストと繋いでアルゴリズムの研究を10年くらい続けるとかやってる人は気づかないかもしれません.あるいは題材が題材なので結果的にイーサも遅いから気づくかもしれないけど,例えばホストとの接続方法が別の場合…例えばホストとのリアルタイムな接続がなく,外部デバイスとしてフラッシュメモリーのリーダーが標準搭載でそれからから全プログラムを読み込んでオンメモリで動作するようなテストをしているなら一生気づかないかもしれません.
しいていうとそういうローレイヤーやっている人なら上記のようなケース(あるいは類似する,関連性を気づくことができるケース)を経験していることが多いだけです.

アセンブラやっている人よりLL(Javaとかも含んでもいいや)でシリアルポート直接ごにょごにょする人って割合でいうとマレですからねぇ.

ようするにどういうことかというと,こういうことを書く彼もずっと前から変わってなくて,それを野次馬する私も変わってないんだなぁということを実感したりしただけの話でした.

突然余談ですが私とアセンブラとプログラミング

ちなみに私は10歳でBasicを知り,小学生を卒業する頃にちょっとしたクソゲーを作ることができるようになりました.その後中学生のいつぞやにZ80(MZ-1500!!)の脳内アセンブル(アセンブラ持ってなかったので16進数でプログラミングしてた)をしてゲームモドキを作ったという始まり,27歳でSEGAをやめるまで公私共にアセンブラを使っていました.とかあるといってもだからすごいって気はあまりしないですね.

私が技術者として学んだことがあるとしたら本質は言語より環境かもしれない

個人的にはアセンブラ自体というより15年でローレイヤーな環境もそこそこ経験したこと,当時まだ新しいCPU,SH-4とかでグダグダだった開発環境,GD-Rを1枚持ってきて「***で止まるんです.どうにかなりませんか?」とかゲーム開発関係者担当者が席まで来たこととかは問題点を見つけ出す速度をあげる経験のひとつになったと思います.

ちなみにSEGAをやめた年末に入社したHDEでははじめてPHPを使いました.ちょっとした配列のデバッグに1ヶ月かかって「俺ホンキでだめなやつだ」って落ち込んだことは自分の中では昨日のことのようです(HDEは配列を特殊に扱うクラスがあったのでよけいややこしかったのはありますが).

技術者として学ぶなら「データ構造」「アルゴリズム」や「サイエンス」,人としてつけるなら「学ぶ力」

ちょうどITProに鵜飼さんが書いていたと思いますが,技術者として高みに上るためには広い意味ではこちらの方が的確ではないかと思います.

 鵜飼氏はハッカーに近づくためには必要なことは「プログラミングを楽しむこと」であるという。同時に「コンピュータサイエンスは重要。データ構造とアルゴリズムをいくつ知っているかで差が出てくる」(鵜飼氏)。

これは非常に重要な要素で,私は早いうちに自分の中で挫折してしまい,天井をあげることができませんでした.ダメエンジニアでごめんなさい.

私は学生時代,「いかに勉強をせずに生きるか」という考え方で人生の選択をしていたため(文字ほど仰々しくないですが)「学ぶ力」を持つことができませんでした.そのため非常に苦手な環境,かつ逃げることができる環境の場合に乗り越えることが非常に苦手です.20代後半の頃に後悔したのは「大学はいかなくていいから受験勉強はしておいたほうがとかったかも」ということでした.必ずしも真ではないですし,隣の芝は青いだけかもしれませんが.

でも実はできれば欲しいのは「ライバル」「蹴落としたい相手」そして「仲間」

残りは「ライバル」「蹴落としたい相手」そして「仲間」.前者はネガティブではありますが,語弊ありで書くと「いかにこいつに勝つか」というわかりやすい目標になります.私には幸い? 20代の頃は「蹴落としたい相手」が沢山いたので,その人をハメるのではなく正々堂々と蹴落とすための対抗スキルを身につけられた気がします.なんか失ったものもありそうですけど(苦笑
最後は「仲間」.私はIT技術の成果(それだけに限らないけど)は人と人が繋がるから意味があると思っています.あるいはできるだけそうあって欲しいなと思っています.それを一緒に目指せる仲間や落ち込んだときにどん底まで落ちる手助けをしてくれる仲間(私は落ち込むときは徹底的に落ち込みたいタイプ)そこからのし上がることに協力してくれた仲間.成功したときに一緒に喜んでくれた仲間.ただバカでどうしようもない仲間.そういう人たちに貴重な時間を別けてもらうことで頑張ってこれました.多分仲間のおかげで今まで人生で一度も精神的な薬に頼らずにすみました.

私は今の職場になってよく言っていることがあります.

今の職場に尊敬できる人はいません.しかし今の職場にはライバルが沢山います.
尊敬する人は追いつくことすら非常に難しいです.しかしライバルは追いつくことも追い抜くこともできると思っています.

私からはこいつ(もしかしたら人じゃないかもしれない)には勝ちたいという「ライバル」を作ることをお勧めしたいな.

#あー殴り書きで支離滅裂だ(苦笑