「日本で最も育成する会社」のテキストを読み終わった

「日本で最も人材を育成する会社」のテキスト (光文社新書)

「日本で最も人材を育成する会社」のテキスト (光文社新書)

思ったよりもあっさりと読み終わった。
さすがに自分で日本で最も社員教育に力を掛ける会社を目指すと豪語するだけ合って、
いろいろ研究して、実際に様々な方法を試して評価して経験を蓄積している。

良い社員教育とはどんなものかを考える参考になると思う。

まあ、結局のところ大切なのは学習者の意識という事かな。いやいや押しつけられても意味は無い。
そこを教育する側はどう乗り越えるか。
あるいは、教育に掛けられるリソースは有限なので、ヤル気のない人の優先順位を下げるのも手なんだろうな。

社員教育の仕方

少し前に買って読み途中。

「日本で最も人材を育成する会社」のテキスト (光文社新書)

「日本で最も人材を育成する会社」のテキスト (光文社新書)

社員教育の方法を考える側でなくて、受ける側の人が読んでも役に立つと思う。
効率の良い学習の仕方のヒントにもなると思う。

この本によると組織には学習能力の観点からみて、勝手に勉強して育っていく「積極的学習者」が10%、役に立つことが明らかだったり報酬があれば学習する「消極的学習者」が60%、創造的な事が嫌いで言われたことだけを過去の習慣通り行うことを好む「学習拒否者」が30%いるらしい。

自分は消極的学習者かな。学習拒否者にはなりたくないものだ。

腕立て伏せ

ジョギングは週に40kmぐらい行っているが、体脂肪率が下がらないので少しずつ筋トレも始めた。
(体重はジョギング始めてから増加し続けてる)
筋トレを始めた日には腕立て伏せが3回できなくてビックリした。
腕立ては数年間やって無かったし、力使うことも無かったのでまあ当然だろう。

3回できなかったことを何人かに話したら、みんな驚いていた。
理解してくれる人が1人はいた事が救いだ。

とりあえず、10回連続でできるようになった。
目標は連続20回だ。

GDBデバッギング入門読み終わり

GDBデバッギング入門

GDBデバッギング入門

この本の作者ってStallmanだったんだ。
後半は結構斜め読みしたけどGDBがすごいいろんな事ができることはわかった。
そのためには覚えなきゃいけないことも大量にあることもわかったが・・。

まあ簡単な事から使っていけば良いだろう。
いい本なのだが、書かれたのが少し昔なのでi386の事が書かれていたり情報が古いと感じる箇所が多かったのも事実。
定期的に改訂されていればさらに良かったのだが。

がんばってprintfデバッグの量をすこしずつでも減らしていこう。

頂はどこにある?

頂きはどこにある?

頂きはどこにある?

そこそこ有名な本らしいので勢いで買って読んでみた。
薄かったのですぐ読めた。

こういう前向きになれる本は時々読んでおくとよいね。
特に現状を嘆いている人には読むことをお勧めしたい。

社内プログラムコンテスト

社内でちょっとしたプログラムの最適化コンテストがあった。
優勝するとお年玉がもらえるらしく10人以上は参加したはず。
全員の中間結果の発表を聞いて、その数値よりは速くできたので優勝できるかもとか思っていたが・・
結果はトップの人にはダブルスコアの差を付けられて負けた。
やっぱり5時間ぐらいで組んだプログラムじゃ駄目か。

自分はまだまだだなと再認識する良い機会になったので参加して良かった。

最近使ったSSEのintrinsicsのメモ

思ったよりも使った命令の種類少ないな。

128bitのload(アドレスは16byteにアラインされている必要あり)
__m128i _mm_load_si128(__m128i * p)

128bitのstore(アドレスは16byteにアラインされている必要あり)
void_mm_store_si128(__m128i *p, __m128i a)

m1の上位8個の8bitとm2の上位8個の8bitを交互に並べる
(m2を0にすればcharからshortへの拡張が行える)
__m128i _mm_unpackhi_epi8(__m128i m1,__m128i m2)

m1の下位8個の8bitとm2の下位8個の8bitを交互に並べる
(m2を0にすればcharからshortへの拡張が行える)
__m128i _mm_unpacklo_epi8(__m128i m1,__m128i m2)

m1+m2(32bit)
__m128i _mm_add_epi32(__m128i m1, __m128i m2)

m1-m2(16bit)
__m128i _mm_sub_epi16(__m128i m1, __m128i m2)

m1の8個の16bitとm2の8個の16bitをそれぞれかけて、8個の積を求めたら隣接する2つの値を足し合わせて、
4つの32bit値を求める。
__m128i _mm_madd_epi16(__m128i m1,__m128i m2)

128bitで右シフト。下位には0が入る。
__m128i _mm_srli_si128(__m128i m, int imm)

128bitでのor
__m128i _mm_or_si128(__m128i m1, __m128i m2)

全ビット0を返す
__m128i _mm_setzero_si128()