はじめに

新人教育などの授業用に書いたもののうちからいくつかをここに置くことにしました

実際に授業に使ったものもありますし、書いただけで使っていないものもあります。中にはずっと昔に書いたものもあるので幾分古い感じのするものもあるかもしれませんが現在でも有用そうなものを選びました

プログラマの仕事

プログラマの書くプログラムというのは必ず誰かの為に書くものです
そしてその誰かは必ずしもプログラマではありません
相手はプログラマでない以上、プログラマが望む精度で仕様が出てくることはありません
それを引き出すのもプログラマの仕事です

プログラマに何かを頼む相手は何か困っていることがあってプログラマに要求を出してきますが、相手はプログラマではないので、困っていることと要求との論理的整合性が取れていないことがあります
プログラマというのは論理を扱う仕事ですが、プログラマでない人は必ずしもそうではありません
ですから、要求の通りちゃんと作ったのに満足してくれないというのは、正しい要求をしてこない相手が悪いのではなく、正しい要求を引き出してあげられなかったプログラマが悪いのです

まずは困っていることをちゃんと聞いてあげること、そこから最適な解決方法を提示してあげること、その解決方法を実装してあげること、それがプログラマの仕事です
またここで、プログラマが最適だ思う解決方法が難しすぎる、あるいは面倒くさすぎるという反応がある場合もあります
これは相手が面倒くさがっているわけでも理解力が不足しているわけでもありません。これはプログラマが相手の作業や業務への理解が足りないために起きることです
最適な解決というのはプログラマにとっての最適ではありません。相手にとっての最適です
ですから、何か困っている相手のやっていることを相手以上に熟知習熟することが重要です
例えば、デザイナの使うツールを書くのにデザイナのやっている作業について何も知らないので話になりません
相手より習熟して初めて相手が今どの程度の段階にあるのかを判断できますし、相手のやっている作業手順に組み込むのに最も負担の少ない方法は何かということもわかるでしょう
プログラマの仕事はプログラムを書くことだけではありません

またこういったことはプログラムに関することだけではありません
会社組織や社内手続きなどといったこともそうです
プログラマでない人は、何か面倒だと思ってもそれを論理立てて説明してその解決方法を提示するというようなことができない場合があります
そういったことに対しても、問題を相手の理解できる単位に分割して、その解決方法を提示し、実際に問題を解決する
プログラムの設計も組織設計も同じことですね

面倒くさい使いづらいと思ったことを文句を言う前に改善すること
それもプログラマの仕事です

嘘を教えること

教える人がよく調べもしないで思いこみで嘘を教えるようなことがあってはいけませんが、しかし、教える側も人間なのでうっかりミスが紛れ込んでしまうかもしれません
ここに載せているものにもうっかり嘘が紛れ込んでいるかもしれません

そういった間違いによる嘘とは別に、新人さんへの授業では敢えて嘘を教えるという場合があります
細かい具体例を挙げるなら「goto は絶対に使ってはいけない」というようなことでしょうか
こういったことは嘘ですが、まだ自分で判断できない段階の人に対しては敢えて嘘を教えた方がいい場合もあります

ここに載せているものの中にもうっかりミスではなく敢えて嘘を書いているところ、敢えて一面からの見方だけを書いているところ、敢えて間違いを入れて抜きを作っているところがあります
気付いた人はどうしてそうなっているのか、自分ならそれをきっかけにどんな授業をするだろうか、と考えてみてください

ところで授業などでそういった部分に気付いた人にはきちんと本当のところを教えるようにしましょう
気づいた人にまで嘘を教えるのは意味がありませんからね

さて、こうした嘘や間違いの部分をある程度指摘できるようになった人についてはそれを認めて指導の段階を進めることになりますが、ここで少し気を付けなければいけないことがあります

指導がより詳細なレベルにまで及んだときにそれを、間違いを指摘した自分への嫌がらせだ、ととる人がいるという点です
自分が間違いを指摘したから自分のコードのどうでもいい細かいところに難癖を付けて嫌がらせをするんだ。と思うような人が実際にいます
こういった誤解が生まれてしまってからではそれを解消するのはなかなかに面倒なので、はじめから誤解が生まれないように、最初の授業の前や指導方法を変えるタイミングなどでは、指導する側の意図を伝えてあげるように気をつけましょう

コンテンツの利用について

パブリックドメインに置くものではありませんが
コードの一部または全部をそのままあるいは改変して組み込んだり公開したりしても構いません
コード以外の部分についても同様です
私用商用等問わずご自由に


ただし、ご利用にあたって直接または間接に生じるいかなる損害についても当方は一切の責任を負いません
予めご承知おきください

仕事の依頼について

面識のない方からのネットワークを通じてのご依頼はお受けしておりません

日付について

日記ではないので日付に意味はありません
連番にしています

広告について

広告は自動的に入るもので当方では一切関知致しません
この下に「ダウンロード」「続きはこちら」などと出ている場合がありますが、それは広告です