#5848

学ぶことを許されない部屋


今日の出来事

憧れの東京に住み、そして趣味で認められた分野の業界に入る。
順風満帆に思えた2019年の転職生活の先に待ち受けていたのは、息苦しい現実でした。

この会社では2ヶ月間の研修期間が存在し、
その間に主に4つの分野のプログラミング言語の教育を受けた後、他社に派遣されます。
IT企業ではあるけれども自社開発はしていない、いわゆるSESというシステムを採用した会社です。
これが業界における底辺の立ち位置であることは知っていましたが、
なにしろ中途で採用してもらうには実務経験がなくては話になりません。
この会社は研修にかなりチカラを入れていて、そういう意味では入口としては最適でした。
少なくとも入社前はそのように思っていました。
業績もうなぎ登りで社員数・資本金も順調に増えていっている。
ということは、ベースになっている「教育」がしっかりしているのだろう、と思いました。

……しかし、実態はまったく異なるものでした。

最初の基礎研修はまったく問題ありませんでした。
2週間でクリアすべき課題を2日で突破し、早々に応用研修コースに入ることに。
しかし、そこで待ち受けていた教官は、自分のもっとも嫌いなタイプの人間でした。

プログラミングというのは個性が出る作業です。
ひとつの答えを出すにしても人それぞれで途中式は違い、しかし答えは同一のものに収束する。
関数も、同じ動作をする関数が同じプログラミング言語でいくつも用意されていたりします。
ループ関数のfor、foreach、whileなんかは良い例です。
もちろん、関数には適材適所があり、こういうときにはこっちを使った方が良い、
というのが業界の暗黙の了解で決まっていたりします。

応用研修でやることは、教官の作ったテキストを読み進めていき、
各チャプターの最後に記述されている「練習問題」を解くという繰り返し。
練習問題にはご丁寧に教官の自作と思われる萌えキャラが描かれており、
教官のパソコンからはアニメソングが延々と流れています。そんな職場です。
練習問題はかなり抽象的かつ日本語が不自由な記述と言ってしまえばそれまでのお粗末な作り。
これの主語は何なのか、結局何が言いたいのか、という日本語の読解から始めざるを得ません。
そして、練習問題は完成するたびに教官に提出する必要があります。
見せに行くと大抵言われるのがこのセリフです。

「俺の意図する通りになっていないからダメ」

そう、この会社の研修は、テキストを読み取って自分なりの答えを出すことは求められていません。
あくまでも出題者の意図を汲み取り、模範解答と寸分違わぬ答えを出すことが求められます。
自分なりに工夫してコードを短縮できたとか、習っていない関数を使って突破したとか、
そんなことは微塵も期待されていません。
ただただ、教官の思い通りになっていればOK、そうでなければNGという分かりやすい世界です。

自分はこの教官のスタイルが、どうしても教育的に有益だとは思えません。
無数にある関数を学ぶ機会、頭を使ってコードを組む技術、
そして何よりもプログラミング言語を学ぶのに必須の好奇心を端から削いでいるようにしか見えない。
実際、自分はこの教官にぶち当たってから学習意欲は一気に落ちました。
言われた通りのこと以外をすれば怒られるのだから、当たり前です。
この人は教育に関しては素人なんだなと思わずにはいられませんでした。

百歩譲って、そういう姿勢が分からなくもないという部分はあります。
なにしろプログラマーという業界は、他人にコードを理解してもらわなければ連携ができません。
自分オリジナルのコードを作る能力というのは、そもそも求められていないのです。
自分だけが分かれば良い、というのはあくまで個人開発だから許されたレベルであって、
本当に業界でやっていこうと思ったら、それでは許されません。
だから、オリジナリティを排除して客観的に読みやすいコードを追求せよ、という言い分は分かる。
ハッキリ言って研修テキストは日本語が不自由でお粗末な出来ですが、
それよりも難解な指示書が現場に行ってから手渡されるなんていうこともあり得なくはないです。
そういう「おかしな指示書」を読み解く力を求められているのも理解はできる。

でも、実態は研修生はただただ怒られるだけの存在であり、
教官は自分の思い通りにいかない行動を片っ端から切り捨てるだけのわがままな王様です。
とてもじゃないけど、「教える・教えられる」という関係が成り立っているとは思えない。
こんなことで2ヶ月間居たところで果たしてスキルアップできるのか、甚だ疑問です。

中でも一番納得できなかった出来事があったので紹介してみたいと思います。
教官は相当エゴサーチしているそうなので、身バレを防ぐために曖昧にして書きますが、
だいたいこんなことがありました。
ある日のこと、自分は練習問題の最初の章をかなり早く終わらせて応用問題に取り掛かりました。
しかしその応用問題というのがかなりの難所で、
結論から言えばこのたったひとつの問題に2週間も躓いてしまいました。
まだ入社3週間なので、これまでの3分の2はこの問題に取り組んでいたことになります。
(といっても、週2出勤なので、実稼働時間は4日に過ぎないのですが……。)

その問題というのが、以下のようなものでした。

大凶、凶、吉、中吉、大吉のいずれかが排出されるおみくじの実装を考える。
配列変数を定義し、各運勢ごとに悪い結果から小さい順に1~100の任意の数を設定する。
(例えば20%刻みの場合、大凶20、凶40、吉60、中吉80、大吉100となる)
また、それとは別に1~100のいずれかの整数が出力される乱数を定義する。
悪い運勢から順に一回ずつ乱数と配列の値を比較したとき、
配列の値の方が大きかった場合に、その運勢の名称を出力するシステムを作る。
このとき、2回目に引くときに限って中吉の出現確率が3倍になるプログラムを作成せよ。
(ただし中吉以外の出現確率は変わらないものとする。
また、変数の値を変更したとしても同じように3倍になるようにしなければならない。)

だいぶかみ砕いてありますが、こんな感じのことが書かれていました。
ちなみにカッコ内はテキストには書いてなく、教官にNGをもらって初めて発覚した追加条件です。
自分は最初、中吉の排出確率を操作する以上は、他の排出確率も必然的に変動すると考えていました。
そこで、中吉の確率が変動してもその確率を取り出せる計算式を定義して、
さらにそれを均等に割って正負を入れ替え、他の大凶・凶・吉・大吉に割り当てて
合計100%を維持するプログラムを組みました。そして、教官のもとへ持っていきました。

「課題完了しましたので確認をお願いいたします」
「ダメだこれ、全然できてない」
「申し訳ありません、どこが不足でしたでしょうか」
「凶とかの確率をいじってるのはおかしい。模範解答はこんなのではない」
「しかし中吉の排出確率を操作したら必然的に他の排出確率が変わりますよね?」
「なぜ?」
「排出率は合計100%でなければならないので、
単純に一要素を3倍にしたら合計100%を越えてしまうからです。
越えないようにするためには他の出現確率を下げなければなりません」
「合計100%にしなければならないなんて書いてないし」
「合計が101を越える場合もあるということですか」
「さあね」
「それはおみくじの実装としては一般的ではないと思いますが。
私の知るソーシャルゲームのガチャシステムでも、
特定キャラがピックアップされれば他の出現確率は減ります」
「でも俺はこういう仕様のガチャ作ったことあるし。
そのソーシャルゲームが特殊な仕様だから、それに考えを引っ張られてるんじゃねーの?」
「そもそも分母が変更されると分子を3倍にしても
それは出現確率としては3倍ではなくなると思いますが」
「確率を3倍にしろなんて言ってないじゃん」
「え? 問題文には『設定された確率を3倍にせよ』とありますが……」
「何が納得できないの?」
「問題文における『確率』という言葉の定義が分かりません」
「それは考えてくれとしか言えないな。これは問題文から意図を読み取る訓練だからね」
「そうですか……。すみません、もう少し考えさせてください」
「まぁこの問題難しいよね」

納得できずに席に戻った自分は、それからも「教官の意図」を割り出すべく考えに考えて、
結局中吉の排出確率をただ3倍して、その分だけ分母を増やす方法でOKをもらいました。
問題文の「例」の通り全部20%ずつだとすると、
大凶から順番に20%→20%→20%→60%→20%となるのが正解だったというわけです。
しかし計算するとすぐ分かりますが、こうなると分母が140になるので、
中吉の排出確率は「42.9%」それ以外は「14.3%」になり元々の20%の3倍になっていません。

ですが教官の頭の中にはそもそも「排出確率」というのはこのことを指していたのではなく、
変数そのものを3倍にすることだけを求めていたようです。
結局自分は厳密に考えすぎていたために、2週間ものロスをしてしまいました。

果たしてこの2週間は自分の為になったのかというと、
まったくもって為にはなっていないと思います。教官に振り回されていたどころか、
正しい道を延々と迂回して、間違った道に辿り付いたに過ぎません。
敢えて反省点を述べるならば、「指示書に書いていない行間は読み取るべきではない」という教訓。
空気なんか読めない方がこの業界ではやっていけるのではないか、とさえ思いました。
「自分なりの解釈」が邪魔になってしまう世界が、本当にwebプログラマーの実態なのでしょうか。
だとしたら、自分はちょっと自信を失ってしまいます。
この不合理な世界が、研修室の中だけであることを切に祈るばかりです。

教官はこんなことも言っていました。
「正解を持ってこられても困る。間違いを指摘するのが俺の仕事なんだから」
要は、教えられる側が何を知らないのかを把握して、それを伝える、
それ以外は関与しないという姿勢なのでしょう。
勉強意欲がどうとかといった精神作用についてまったく考慮していません。
結局、この教官は研修生をモノとしか見ていないんだろうなぁと思わされる印象的なセリフです。
こんなのでモチベーションを保てる人がいるのだろうか。

ちなみに余談ですが女の子には超やさしいです。

まぁ、端的に言えば今度も上司ガチャは大ハズレを引いてしまったという感想です。
前の会社の上司とはまた違った方向性で非常に厄介……
というか、今度の上司は頭の回転が非常に速い分、前の会社の上司よりも厄介なのかもしれません。
前の会社はぶっちゃけ頭の良い人なんていませんでしたからね。だからこそブラックだったわけで。
今度の上司は頭はめちゃくちゃ良さそうで、意識も高いです。
研修生の発言一言一句に対してすばやく論理的な穴を見つけてそこを突く思考回路は見事で、
口論になったらとてもじゃないけど勝てません。
プログラミングスキルも相当のもので、
趣味でやってきた程度の自分の遙か上に立ちはだかっています。ついでに萌え絵も描けます。

そして今、その頭を使って研修生を見下し、自分の思い通りにいかない行動をすべて切り捨てている。
悔しいですが、今の自分には手も足も出ません。すべてにおいて負けています。
しかしこの人は教育という観点から言って絶対に間違っている、ということだけは言いたい。

ちなみに、研修期間はその人のスキル次第では延長する可能性もあるとのことですが、
風の噂によると、規定のスケジュールで研修が終わった試しは過去ほとんどないそうで、
ほぼみんな延長することになるそうです。冗談じゃない……。

プログラミング言語の勉強をただすれば上に行けるというのであれば自分も頑張りますが、
求められていることはすべて教官の頭の中にしかないので自主学習のしようもありません。
まさか、こんな形で序盤から行き詰まるとは思っていませんでしたが、生活もかかっています。
研修さえ終わってしまえば教官との縁は切れるので、
そういう意味ではここが踏ん張りどころなのかもしれません。

0

コメントを残す