@hanadix REBOOTED

音楽好き(聴く書く演る)なイット系労働者の日常と妄想

講師(なぜかする側編)

まあ、年齢やポジションを考えれば、教育というものもする機会はないでもなかったのだけど、あくまでプロジェクトについての教育だったりしたのだが、今回新人教育の2コマ1日分の講師をやることになった。

いろいろ考えたのだが、いわゆる「普通の教育」というのは眠いものであるとしか思えない私が「普通の教育」をやると講師であるにも関わらず眠らずにいる自信がないので、自分ならが「これなら寝ない」というやりかたを考えてみた。もちろん人それぞれなので、よくないということもあるかもしれないが、自分が受けたくない講義を自分がやるというのは一番よくないことだと思う。というわけで以下。

テキストの内容+α

午前中はドキュメントの書き方で、一応テキストがあり、内容的に悪い教材ではないと思う、というか割とよいと思う。
それでも「自分の一言」を付け加えることにしようと思う。例えば「ループを100回まわる」という記述は99.9%悪いドキュメントだと思われる。なぜなら、そんなことはソースに書いてあるのである。「ここでループを100回まわる」のは「処理すべき○○データが100個あるため」なのか「回転木馬が遊園地で」回るのか、「子供が遊んでくれというから振り回す」ために回るのか、それを書くのがドキュメントであり、コメントだろう。何のためにドキュメントを読むのか。概略設計のため、詳細設計のため、トラブル時の原因報告のため、いろんなシチュエーションが存在し、それを体験してきたとき「何だこのクソドキュメントは」と怒りに震えた体験を伝えようと思う。書き方の前に、なぜ書くのか、それが書かれなかったために起こった体験を伝えようと思う

テキストの内容+寄り道

午後はC言語でのファイルIOについてなのだけど、これを半日でやるのは無理がある(テキストが40ページぐらいある!!)なので、内容は絞らないといけない。だけど、寄り道をしたい。
白状すると、低レベルファイルIO の open()/close() は、あくまで UNIX System call であり、ANSI C では定義されていない。そして fopen()/fclose() は標準ライブラリであり、ANSI C で定義されている、ということを今回テキストを読んで初めてちゃんと理解した。
新人に ANSI って何か知ってる? と聞いてみよう。ANSI C とは、まあ C99 もあるんだけど、普通 C89 のことで、その前に K&R があって…とまでいくと年寄りの昔語りになってしまうと思うのでやめようと思うけど、man open と man fopen してみることを勧めてみよう。LANG=C man open することも勧めてみよう。技術ドキュメントの英語が読めるか聞いてみよう。読めないというなら、普通の英語よりは読みやすいと言ってやろう。英語の技術ドキュメントが読めれば技術情報の一次情報に辿り着ける可能性が桁違いに高くなることを伝えよう。

最後に

ドキュメント書きや実装はあくまで手段であり、重要なのは、システムを作り上げること、トラブルを解決することであることを伝えよう。だけど、それにはドキュメント書きや実装が「当たり前」にできることが必要だと思うことを伝えよう。自分でも出来ているか? と聞かれると胸を張って出来ますとは言えないけど。でもドキュメントはともかく「プログラミングができないSE」がごろごろしているこの業界は決して健全とは思えない。釘がまともに打てない棟梁に誰が家を建ててくれと頼むだろうか。

…という予定ですが、めんどくさくなってやめるかもしれません。以上。