生きづらいぼくたちが生き抜くために
ひとつでも多くの知識を
知恵にできますように

プログラミング学習における引き寄せの法則

f:id:HrkPPOI:20190227171628j:plain あるていど楽に生きたいと願い,元気よく過ごそうとゆるく心に決めた皆さんにあっては,よく学ぶ ことが最大の関心ごとのひとつかと思います。そして,そんなみなさんなら よく学ぶ についてはいくらでも聞いてみたいところでしょう。

ぼくもそうです。楽に生きるためには,自分が強くなるしかありません *1。どうやってみんなが強くなっているのか,興味津々です。

いきなり言います。プログラミング学習には,引き寄せの法則があります。

向き不向きだの適性だの自頭の良さだの,そんなものは引き寄せの法則の前では無力。 絶対不変の法則 です。

今日はこの法則について ガツンと気付かされた話 を書きます。

この記事を最後まで読めばあなたも「そんなの当たり前じゃん!」と一瞬憤ったり,「いやでも,ゆーて自分も当てはまってるときあるわ……」と背筋が伸びたりすることでしょう。

プログラミング学習における引き寄せの法則とは?

結論から申し上げます。

「○○したい」と願って学習をすると,願いは叶い,○○できるようになる*2

ことプログラミング学習においては,願ったことは 絶対に 叶います。

  • 理解したいと願って学習すれば,理解できます
  • Web サービスを作りたいと願って学習すれば, Web サービスを作れます
  • 目の前の課題(や仕事)を終わらせたいと願って学習すれば,目の前の課題(や仕事)が終わります

ぼくはとある新人を見ていて,この法則に気づかされました。

プログラミング学習における引き寄せの法則は,スピリチュアリストの売り文句でも,机上の空論でも綺麗事でもありません。現場レベルで強いインパクトを持つ思考ツールなんだと思い知らされました。

※ 以下の話はフィクションです。実在の人物や団体などとは関係ありません。個人情報などにうるさいご時世ですので, お察しください

似ているが,まったく違った 2 人の受講生

ぼくがとある新人研修現場で Java の講師をしていたときの話です。

研修室全体で受講生は 30 人ほどですが, 2 名の学習進捗が芳しくありませんでした(この 2 人を仮に秋山澪さん・平沢唯さんと呼ぶことにします)。

  • オブジェクト指向で戻り値を使いだした頃から顔色が曇り始める
  • 継承や集約といった用語が出たときには完全に混乱状態
  • 2 人とは業後に個別対応

こんな状況です。

秋山さんと平沢さんは,ほかの受講生と比べて毎日 1 〜 2 時間も長く学習しています。

プログラミングは適性がすべて。適性のある人間とない人間では,生産性は 10 倍以上開く。 1 〜 2 時間の残業では変わらない

仕事として学習している以上,要求された成果を出すのが当たりまえ。そもそも新人研修で扱う内容に向き不向きなんてない。やれ。できるようになるまでやれ

IT 業界のツワモノからは上記のような反応が返ってくるかもしれません。

実際はどうなったのか。

この 2 人の理解状況には,徐々に,しかしはっきりと変わっていきます。

間違い続ける秋山さん

ハッキリ言いますが,秋山さんの理解状況は当初「なにも分かっていない」に限りなく近い状態でした。

ぼくの説明に対して「じゃあ,これはこう言うことですか?」と聞いてくる確認がことごとく間違っているんです。逆に不思議になるくらい間違っています。

ぼくが話すと, 2 つか 3 つ確認する。違う。また 2 つか 3 つ確認する。違う……。ぼくも持てるスキルを総動員して,「違う」ということをポジティブに伝えてその都度解説をするわけですが,それでもだんだんボルテージが上がってきて……

じゃあ,これも実引数ってことですか ?!(怒)

それは仮引数です……ちょっと待って,怒らないで!💦

いまにして思うと,感情表現の豊かな秋山さんだからこそ,「じゃあこれは?」「じゃあこれは?」と臆せずに質問し続けることができるんだと思います(むしろぼくが問い詰められている恐怖を感じていました)

4 日か 5 日が経ったころ,異変が起こります。

秋山さんの「こうですか?」が合っているのです。

そう,合ってます!すごい,完全に分かってきている流れじゃん!

興奮しすぎて敬語も崩れます。「どうして分かるようになったの?」と聞くと,

「あれだけ親切に解説していただいたので……」と応えたあと,ポツリと漏らしていました。

必死だったので……

このとき,ぼくは「秋山さんはもう大丈夫だ」と確信しました。

その後は徐々に質問が減り,ピンポイントな解説をすれば理解できるようになっていきます。本人は知らないかもしれませんが,育成御担当者様の間ではちょっとした話題になっていました。

固まり続ける平沢さん

反対に,改善の兆しが最後まで後倒しとなってしまったのが平沢さんです。

秋元さんが鬼のように質問し続けるのに対して,平沢さんは基本固まっています。

「固まっている」というのは比喩じゃありません。本当に,指も,目線も口も,固まっているのです。

ぼくからすると,考えているのか,目を開けて寝ているのか,途方に暮れているのか,なんなのか,サッパリわかりません。こちらから「いま何がしたい?」「どこを理解しようとしたところで止まった?」など色々手探りで秋元さんの様子を把握していき,一緒に考えながら必要に応じて解説します。

ここに何を書いたらいいのかが分からないんです

なるほど。やりたいことは分かるけどプログラムの書き方が分からないですか?それともそもそもやりたいことが何かわからないですか?

書きかたが分かりません

OK。じゃあ,ザックリでいいので,なにがやりたいのかを日本語で説明してみてください

(沈黙のあと)継承?

そうですね,継承ですね。クラスを継承して,*ここ* では何をしたいんでしたっけ?

(長い沈黙のあと)すみません,分かりません

大丈夫,そしたら一緒に課題文読んでみましょう

ええと……オーバーライド?

そうですね。スーパークラスのメソッドを,オーバーライドするって書いてありますよね。ちなみにオーバーライドって分かりますか?

分からないです

じゃあそこからやりましょうか。ちなみに,オーバーライドの前提が継承で,継承の前提がクラスですけど,どの辺りから怪しいですか?

クラスからよく分からないです

最初に質問していた内容と,本当に分からない内容が乖離している ことが伝わるでしょうか?

乖離していることは問題です。でも,この乖離は問題の表層に過ぎません。問題の本質は,なぜ乖離が起きるのかです。そこに,平沢さんの抱えている本当の問題があります。そしてその問題こそ,平沢さんと秋山さんとの大きな違いなのです。

2 人の違いは何なのか?

2 人の違いはなんでしょう。

もちろん表面に出てくる行動は違います。かたや鬼のように質問をしてくるし,かたや固まっているので。でもその根底にある違いはなんなんでしょうか?

作業の目的

研修も終盤に差し掛かったある日,平沢さんから,こんな提案を受けました。

何が分からないか分からないので,先に課題の解説をもらって,その解説を読んで分からないところを質問するほうが,(効率が)いいような気がするんですけど……

ぼくは衝撃を受けました。

それ,講義でずっとやってます。講義では,テキストのサンプルコードを読む時間を特別に設け,分からない箇所を質問できるようにしています。つまり,課題の解答解説を読んで分からないことがあるならば,それは,その前工程,テキストのサンプルコードを読んでいるときにその疑問が出るべきなのです。

f:id:HrkPPOI:20190227172738j:plain

これがあまりにも衝撃的で「えっ,もしかして誰にも伝わってない?」と思って何人かの受講生を捕まえて確認すると,ちゃんと伝わっている。

先輩講師に相談すると,

そう。平沢さんね,作業の目的が分かってないから,なんとなく作業しちゃうんだよね。課題解いてるときも,「課題を解く」ことが目的になってるから,答えを聞くような感じになってるんだよ。
ちゃんとその辺は本人に伝えてるんだけど,目の前に終わらない課題の山があるからさ,もう本人の中で意識を変えられないんだよ。

ぼくは再び衝撃を受けました。

そして,それまで感じていた疑問がすべて解消されました。

願いが,叶う

秋山さんは鬼のように質問をします。質問の対象は「それが課題で問われているか」とは無関係です。そこまでの学習内容すべて です。思いつくままに,いや, 思いつく限り すべてを確認していました。

なんのために?

課題を解くためじゃない。 理解するため です。

理解したいと願って,学習した。願いが叶い,理解できた。

では平沢さんの願いは?

推測ですが「課題を終わらせること」だったのでしょう。

課題がたくさんある。みんなが終わっているのに,自分は終わらない。だから, 課題を終わらせたい と願ってしまった。

課題を終えたいと願って,学習した。願いが叶い,課題が終わった

理解はできていません。理解したいとは,願いませんでしたから。次の課題でも,その次の課題でも理解できない状況が続き,理解できないから時間がかかり,ますます「課題を終わらせたい」と願ってしまったんでしょう。

秋山さんと平沢さんの違いは,学習時に何を願ったかでした。

「平沢さんも,理解したい と願うべきだった」のかどうかは分かりません。ひとがなにを願うかを,他人が決定するべきではないからです*3。ですが,「願ったことが,願った通りに叶う」ということを知っていれば,よりクリティカルな願いを抱くことができたに違いありません。

最後に見えた希望

この話には後日談があります。

最終日,ぼくたち講師が現場を引き上げる際に,秋山さんがぼくのもとに来ました。

復習しようと思うんですけど,何から始めればいいか分からなくて……。

このとき,確かに平沢さんは次のステージに上がったのです。

今日で講師がいなくなる。明日からは自分でやらなければならない。どうすれば自分でやれるようになるんだろう。そうした課題意識を持ったのでしょう。そして,自分でやれるようになりたいと願って質問したのでしょう。

平沢さんの願いは,叶うはずです。

その願いを研修期間中に持たせてあげられなかったことは力不足であり,申し訳ない気持ちはいまもあります。

ですが,なにはともあれ,平沢さんは自分でやれるようになるでしょう。本人がそう願う限り。

まとめ - 新人にできていることを,ぼくらはできているのか?

これは「心地よい挨拶をする」「相手の話をよく聞く」と同じジャンルの話です。

そうしたほうがいいことくらい,みんな知っているんです。なんなら,気をつけているんです。

ですが, 100% 徹底できていますか?

ぼくはできていません。

ですが,あの研修現場のなかでは,秋山澪さんという,新卒の, 23 歳の,もしかすると偉いオジサマたちからは「学生気分が抜けてない」と言われていたかもしれない彼女は,100% 徹底していました。

最近の新人は凄いです。

新人研修現場からは以上です!

---------- ✂︎ ----------

【概要編】SE・プログラマ向け新人研修でメイン講師をするまでに読んだ本を,1年半前にIT業界に来たぼくが紹介します!! - あるていどらくにいきたい

【技術書編】SE・プログラマ向けの Java 研修でメイン講師をするまでに1年半で読んだ本をまとめてリストアップします! - あるていどらくにいきたい

SIer 業界に就職・転職するなら,プログラミング言語をいくつも勉強してないで「『なぜ』本」を一通り読むべし!! - あるていどらくにいきたい

*1:スライムLv.5 と戦ってラクだと感じるためには,自分が Lv.40 くらいになるしかないのです。単純作業を機械が取って代わる,変化し続ける現代において,学ばない( = 変化しない)という選択は「遅かれ早かれ機械に仕事を奪われたい」という意見表明だと,ぼくは思っています。もちろん,それが悪いことだとは思っていませんが。

*2:必要な時間はひとによって異なります。その必要な時間の長短が「適性」と呼ばれるものの正体だと思っています

*3:それをやったら「支配」です。ぼくは「支配」はしないべきだと考えています