新・闘わないプログラマ No.41

教えるということ


私、なぜか会社で研修の講師とかにかり出されることが多いです。先日までも、今年の新入社員に対して研修をやっておりました。今回の担当は、C言語がメインで、あとUNIXの使い方、シェルプログラミング、それから、コンピュータネットワークの基礎、というあたりです。
今回の新人研修は、担当部署ではなかったので、私自身は内容については発言権は無かったのですが、やたらいろんなことを詰め込んでいるだけで、受ける方からすると大変だったような気がします。C言語とcshとawkとperlと、言語仕様がよく似ているところがあるので、受講生はかなり混乱していました。

そもそも、私、研修とか講習とか、そういうのを受けるのが大嫌いなんです。あの、じっとして話を聞いているのがたいへん苦痛なんです。しかも、講師が「○○さんは、△△のことずっと仕事でやっていて詳しいから」という程度のレベルで、内容的にもお粗末なものだったりすると・・・・。
以前、強制的に出席させられた研修で、講師が、前の講師用のテーブルに座って、下を向いてテキストを延々と一字一句そのまま読んでいるだけ、というあまりにあまりな研修もありました。こっちが質問しても、全然要領を得なかったですし。まぁ、これなんかは極端な例ですが、プレゼンテーションの技術、というかそういのが身に付いていない人が多いです。
あと、問題なのが、体で仕事を覚えてきたようなタイプの人間です。プログラマって、知らない人から見ると知的で、論理的な思考に優れているように思われる(思われないか・・・)かも知れませんが、どうしてどうして、体で覚えている、というか「こういう場合は、とにかくこう書く」みたいなことを、ほとんど条件反射的にやっているプログラマがいます、というか、実際非常に多いです。こういう人たちは応用がききませんし、まして他人に分かりやすく説明する、ということが出来ないんですよね。
まぁ、人のことをあれこれいうだけで、「じゃあ、お前の講義はどうなんだ」と言われるとつらいところではありますが、自分自身が研修を受けることが苦痛であるため、出来る限り自分の講義を受ける受講生にはそういう思いをさせないように努力はしています。出来る限り目で見て分かる、楽しく理解できるように工夫はしているつもりです・・・・どこまでうまく行っているかはわかりませんが。

今年の新人研修で、C言語のテキストをどうするか、という話になったときに、新人研修の実務担当者はC言語の入門書のような本を何冊か持ち出してきて、このなかから選んで欲しい、と私に言いました。
その何冊かの入門書、持ち帰ってざっと目を通してみたのですが、いや凄いですね。何がって、うそを平気で書いているし、例題のプログラムは環境依存だったりするし、こんなん使いたくないなぁ、と思ってしまいました。私は、それまでC言語の入門書ってほとんど目を通したことが無かったのですが、噂ではかなり質の悪い本が多いらしい、という程度の情報は耳に入っていました・・・でもこれほどとは。「char型は8ビットで0〜255の数値を現わすことが出来る」などと平気で書かれているのを見て、私は脱力してしまいました(なんてこと言っても、C言語を知らない人には意味不明ですね、とにかくこの説明の中には二重の誤りがあります)。こんな理解の仕方をしている人にはプログラムを作って欲しくないです。尻拭いさせらたらたまらん(^^;)
まぁ、そんなこんなで、私はK&R(「プログラミング言語C」)の第2版の原著を強引にテキストにしてしまいました。「そんなむずかしい本、使うな」とかさんざん言われましたが・・・。でも、K&Rを「難しい」と表現したその人って、結局、自分がK&Rを読んだけど、何が何やら全然分からなくて挫折してしまった、という暗い過去を持っているだけだったりしますけどね(^^;)
まぁ、確かにプログラムを作った経験の無い人間がいきなりK&Rを読んで理解できるか、と言えば、まず出来ないでしょうけど、テキストとして使うにはいいと思うんです。「あの本が理解できないような奴はCプログラマとして向いていない」とか極論する人もいるようですし。
ま、C言語のテキストの話は、またいずれ別の機会に書きたいと思います。

最近、うちにはいってくる新入社員は、プログラミングの経験のある人物と無い人物が、まぁ、ほぼ半々です。では、プログラミングの経験のある人間の方が、無い人間より研修の成績がいいか、というと、必ずしもそうでも無いのが、面白いところです。まぁ、経験のある人間はそれだけ有利な位置にいることは確かなのですが。ちなみに、私が見た今年の新入社員の中で、プログラミング能力という面で一番優れていたのは芸術系の学部を卒業した女性(プログラミング経験なし)でした。
結局プログラマの能力の差って、経験のある無しよりは、「センス」とでも言ったらいいのでしょうか、そういったものに左右されるようです。私は、この能力差って100倍くらいはあるのではないか、と個人的には思っているのですが、こればっかりは、研修でなんとかなるようなものでも無いところが、講師をやっていてつらいところではありました。
そういう目で見たとき、K&Rはプログラミングセンスのある人にとっては、非常にいい教科書ですね(逆に、そうでない人には辛いのかも知れません)。

    void strcpy(char *s, char *t)
    {
        while (*s++ = *t++)
            ;
    }

プログラムを出してしまって、C言語を知らない人には申し訳ないのですが、K&Rに載っている上の例なんかは、センスのいい人にとっては興味深いはずです(もちろん、仕事でこんな書き方するかどうかは別問題)。でも、そうでない人は

    void strcpy(char *s, char *t)
    {
        int i;

        for (i = 0; t[i] != '\0'; i++)
            s[i] = t[i];
        s[i] = '\0';
    }

なんて地道にやるのをお勧めしますが :-)

ところで、話はがらっと変わりますが、いつの時代でも廃れないことば、それは「近頃の若い者は、云々」(^^;) 私ももう、新入社員とは10数歳離れてしまっていますから、この言葉を使う権利(?)があるのではないか、と確信いたします(そんなもん、確信してどうする?)。
「わたし的にはぁ、ぜ〜ったい間違ってないと思うんですけどぉ。動かないんですよ、このプログラムぅ」
「Leptonさ〜ん、しっつも〜ん(^^)」 (明るく手を振りながら)
「ねぇねぇ、Leptonさん、見て見て! ほら、動いた動いた」 (と、自分のプログラムを動かして)
「きゃはは、や〜だぁ」(私が間違いを指摘したとき、私の背中をひっぱたいて言った言葉)
(ちなみに、上の例はぜんぶ女です)
こ、こいつらいったい何物だ? まったく近頃の若い者は・・・・

[前へ] [次へ]

[Home] [戻る]


mailto:lepton@amy.hi-ho.ne.jp