misc.log

日常茶飯事とお仕事と

IPAの研修ロードマップに従って研修しているのに大脱線する(4月24日)

エンジニア基礎 / データ表現

序盤は鳥取島根。ラクダ。講義前の会話からラクダ、鳥取、そして島根。そこから出雲大社ルートの神社仏閣でアニメ漫画多いよね、の流れ。

るるぶ鳥取 大山 蒜山高原 水木しげるロード'20 (るるぶ情報版地域)

るるぶ鳥取 大山 蒜山高原 水木しげるロード'20 (るるぶ情報版地域)

浮動小数点型の誤差実験

VBAで、Double型(倍精度浮動小数点型、データサイズ64bitの浮動小数点数)で足し算を繰り返すと誤差が出るサンプルは下記の通り。

Public Function CalcCorrectnessTest() As Double
 
    Dim result As Double
    Dim d As Double
    Dim i As Long
    
    d = 0.1
    
    For i = 1 To 10000
        result = result + d
    Next
    
    CalcCorrectnessTest = result
    
    'MsgBox result
 
End Function

Doubleの場合、1万回、0.1を加算すると「1000.00000000016」になります。逆に「Single(32bit浮動小数点型)」でやるとどうなるか、試してみても面白いかも知れません。 さらに、二進化十進数を使って誤差が出ないようにしたバージョンはこちら。

Public Function CalcCorrectnessTest() As Variant
 
    ' VariantはVBAの「何でも入るデータ型」
    Dim result As Variant
    Dim d As Variant
    Dim i As Long
    
    d = CDec(0.1)   ' CDecで数値をDecimal型(二進化十進数)に変換
    
    For i = 1 To 10000
        result = result + d
    Next
    
    CalcCorrectnessTest = result
    
End Function

Excelで操る! ここまでできる科学技術計算 第2版

Excelで操る! ここまでできる科学技術計算 第2版

初学者に教えるという作業をなめないで欲しい

ほんと、いい加減にしてほしいんですけど。

まだ勉強を始めたばかりの人を煙にまくような説明をして、生き残った人だけを「精鋭」とするような虎の穴的な研修を目指すのなら好きにしてください、ってところですが、そんな贅沢をしている余裕がない会社や組織の場合、隅々まできちんと配慮して教える必要があります。私が思う「初学者に説明する際の注意点」は下記の通り。

  • 相手が知らない単語、知らないかも知れない単語は使わないか、説明してから使う
  • 複数人のうち1人に説明する場合でも、ほかの人がわかっていない可能性があることを考慮する(とくに経験者などの場合、知識に差がある。でも、そこはあえて説明する。ほかの人を置き去りにしないため。できない人を振り落とすならば逆をすればふるいにかけられます)。
  • 指示をするなら「なぜならば」を、初期の間だけでいいのできちんと説明する。
  • やり方を教えたいならば一気に結論にいかず、順を追う。作業をさせたいなら結論だけでもいい。

なぜ、というところは重要で、これを教えることで類似した事例やシチュエーションで自律的に動ける人になってくれる可能性が上がります。これは最終的に自分たち先輩勢の作業を減らす(問い合わせや確認の手間を省く)ことにもつながるので、序盤は絶対にやるべきです。ただ、「なぜ」が自分でも説明できないのならば、そもそも指示内容や作業が無駄であるか、自分が理解できていないということです。教育のついでに自分も勉強しましょう。こういうことを繰り返すと、教えることを通して自分も学べ、さらに先へ進めます。

ほんと、仕事を5年10年やってりゃこれくらいわかるだろうに……。

いちばんやさしい教える技術

いちばんやさしい教える技術

ハンズオン系の講義に必要なTips

朝から興味深いまとめを作られてる方いらっしゃったので見てました。

ayatokura.hatenablog.com

実際に各種のカンファレンスや外部セミナーで思うのは、「上手だなー」ってことと「あー、やっぱり難しいよね」ってこと。なかなか実際は思っていたとおりに行かず、想定外の事態が発生するものですが、そのあたりの対応は経験と準備がものを言うと思います。

社内とかでもなかなか難しいのが「遠距離、小さいディスプレイで小さいプログラムソース」というやつ。なかなかプロジェクターでデカデカと映せない場合も多く、かといって拡大機能で大きくすると長いコードなどが読めなくなるなどの弊害が。やはり、表示する機材や倍率などにあわせてサンプルコードを簡単にしておくとか、いろんな準備が必要だなぁというのはやってみないと判らないもの。

この辺、わからずに「実習形式で新人に教えればいいじゃない」とか言われるとちょっともやっとしますが、まぁやってない人にはわかんないし説明しても実感してもらえないので、出来る範囲でやるようにしています……。

エプソン プロジェクター EB-W05 (3300lm/WXGA/2.5kg)

エプソン プロジェクター EB-W05 (3300lm/WXGA/2.5kg)