習慣化はスキル

心理学とプログラミング

want to doは have to doになるとやりたくなくなる

はじめに

私はプログラミング学習者です。

同時に公認心理師(心理の国家資格)保持者であり、行動変容の分野が専門です。

いわゆるプログラミング学習は積み重ねが重要で、それは長期にわたります。

プログラミング学習の習慣化はいわばほぼ必須であり、息を吐くようにプログラミング学習できるようになるのがベストだと思います。

その中で、習慣化の手助けになればと思い、この記事を書きました。

そもそもなぜプログラミングを学習したくなった? (want toを思い出す)

さて、なぜ勉強していますか?

  • 転職のため
  • 就職のため
  • 在宅で仕事したい
  • 起業したい!
  • 雇われたくない
  • 時間の切り売りでなく、成果報酬性に飛び込みたい

などさまざまな理由があると思います。

この段階ではみなさんわくわくしていたのではないでしょうか。

では、いつからやりたくなくなったのでしょうか。

いつやりたくなくなった?(やりたくなくなった理由を考える)

  • 勉強時間がとれない
  • ゴールがみえない
  • カリキュラムをこなす気になれない
  • 他にやりたいことができた
  • プログラミングは向いていないと感じ始めた
  • 英語がわからん

などなどの理由が考えられます。

この状況は、

テスト前日に絶対に勉強するべきなのに、

「ちょっと部屋が散らかっていて勉強に集中できないから掃除をする」

みたいな感じと似ています。

転職や就職をしたいという大きな(テスト勉強をするという)目標よりも、目先の小さな問題(部屋の掃除)にフォーカスしています。

これは「クリエイティブアボイダンス(creative avoidance)」と言われています。

  • クリエイティブ (Creative): 創造的な、新しいアイデアやコンセプトを生み出す能力。
  • アボイダンス (Avoidance): 避けること、回避すること。問題や課題に対処する代わりに、それらを避けようとする態度や行動を表現します。

したがって、「クリエイティブアボイダンス (creative avoidance)」は、創造的な活動や仕事から逃れる傾向を指す言葉で、難しい課題に直面したときに、 その解決を避けたり、仕事を先延ばしにすることを指します。

そもそもプログラミングを勉強するにあたり、時間が必要なこと、英語が必要なことなどなどは知っていたはずです。

ではなぜプログラミングを習得して、人生を変えようと思っていたのに、創造的にそれを避けてしまうのでしょうか。

want to do は have to doになるとやりたくなくなる

あなたはto doリストを作っていますか?

やることを一覧にしてくれる便利な管理ツールですよね。

プログラミング学習はto doの連続です。

その先には自分の目標としたプログラミング生活が待っているかもしれません。

このto doリストですが、実は2つのto doが混じっています。

  • want to do
  • have to do

の2つです。

例えばReactの習得がto doに入っていたとします。

これはwant to doですか?

それともhave to doですか?

「カリキュラムに入っているからやらないといけない」という人はhave to doです。

「Reactを習得できる!ひゃっほい!」という人はwant to doです。

中学生だった自分を思い出してください。

わい「ゲームやりすぎたな、そろそろ宿題やろか」

おかん「あんた、いつまでゲームしてるの!宿題やりなさい!」

わい「あー、今宿題やろうと思ったのに!もうやる気なくした!おかんのせいや!」

という経験はありませんか?

私はありません。(ないんかい)

これは

「そろそろ宿題やろうかな」

というwant to doを、

おかんの

「宿題やりなさい!」

という言葉でhave to doに変えられた結果、やる気がなくなってしまいました。

おかんのことばは、魔法の言葉ですね。

人間の心理として、選択肢があって、自分でそれを選んでいるという感覚があると障壁はないのですが、

選択肢がなく、それしかできないとなると、「違う方法があるのではないか?」とクリエイティブになってしまうそうです。

その結果、クリエイティブにアボイダンスしてしまうそうです。

どうすればhave toにならない?

「そんなこといったって、Reactを習得できる!ひゃっほい!」

って精神状態に持っていくのは難しいぞ!という声が聞こえてきそうです。

ごもっともです。

have to doにならなくするコツは、want to doを強く意識するということです。

俯瞰(ふかん)という言葉があります。(おかんではありません)

これは状況を上から見下ろす、というような意味があります。

抽象度を高くする、いった感じです。

例えば。

「Reactはカリキュラムに入っているからやらないといけない」

と思ったとします。

そこで初心の

「在宅で仕事したい」みたいなwant to doを持ってきます。

在宅で仕事をしている私を想像します。

そして、カリキュラムをこなした後の自分と重ねます。

「あのときReact勉強したからすらすらコードが書ける!ありがとう!あのときの私!」

と情動を追加します。

はい、現実に帰ってきましょう。

するとどうでしょうか、

「Reactを習得できる!ひゃっほい!」

ってなってませんか?

なってませんよね。(ならんのかい)

でもhave to doからwant to doに傾いたと思います。

まとめと解説

この手法は、コーチングでいうアファメーションという手法です。

脳は、現実と空想の区別がつきません。

例えば、この文字を読んでいるあなたも、空想の世界にいます。

この文字はスマホやディスプレイの光点の集合であり、一つ一つは何の意味も持ちません。

小説(文字列の羅列)に涙し、映画(光点の集合と波の振動)で笑うのも、脳が現実と空想を区別できないためです。

つまり、ゴールの自分を明確にイメージすることで、ゴールの自分にフォーカスすることができます。

できない理由にフォーカスするのではなく、やりたい動機にフォーカスすることができます。

さらに、情動を交えると効果は上がります。

これは脳の扁桃体という部分は情緒を司り、さらに記憶の定着も促します。

石器時代の人類を想像してください。

野生の猛獣に襲われた記憶は忘れるわけにはいけませんよね?

なので、強い情動を感じた場面は、脳は「これ重要!」と判断します。

その結果、長期間記憶をされたり、無意識が重要度をあげたりします。

現代では野生の猛獣に襲われることはなかなかないですが、この機能は現在の人類にも存在します。

一緒に空想と現実を行き来しながら、学習習慣をみにつけましょう!

あとはGPTにでも相談してください。

プロンプト案

「プログラミング学習を習慣化したいんですけど、want to がhave toになってやる気がおこらんのですわ。

なんかいい案があったら20くらい箇条書きしてください。理由も添えたって」

最後に

これは「Happiness Chain Advent Calendar 2023」の4日目の記事です。

Happiness Chain Advent Calendar 2023 - Adventar

重要事項のコストは最小化、阻害行動のコストを最大化にする

はじめに

著者はプログラミング勉強中の公認心理師(国家資格です)です。 主に行動変容、動機付けなどが専門です。 自分がプログラミング習慣を身につけるために、心理学や行動変容の知識を使ったアプローチを説明します。

習慣化は環境づくりが10割

前回は意識と無意識の話をしました。

この無意識が自動的に起こす行動のことを習慣といいます。

例えば車の免許取り立てのときは、意識的にミラーよし、シートベルトよし、エンジンをかけて、、というように一つ一つ意識に上げる必要がありますが、1年も運転すればそれらの一連の行動は「夕ご飯何にしよう?」と考え流れでもできるようになります。 これを習慣化といいます。

ということで今回は習慣化についてです。

例えば毎日数時間、プログラミング学習をする習慣が身に付いたら、「息を吐くように」学習することができます。 ではその領域に達するにはどうしたらいいのでしょうか。

今回の行動変容のアプローチは「重要事項のコストは最小化、阻害行動のコストを最大化にする」です。

自分の習慣化したい行動と阻害行動を洗い出す

人間は1ヶ月くらい行動を繰り返すと、ある程度は習慣化することができます。 効率よく繰り返すには、

  • やりたいことを低コスト化する
  • やりたいことを阻害していることを高コスト化する

ことが効率的です。

例を挙げます。

  • 夜なかなか眠れない
  • 寝る前にスマホを見て眠れなくなる

という状態だとします。 それだと

というアプローチをとります。 スマホがある部屋にいかないと、スマホを触れませんので阻害行動の高コスト化に成功しています。

ここで無意識はこう考えるかもしれません。

「いや、私はスマホを目覚まし時計がわりにしているから無理だ」

「緊急の連絡があったときに困るから、スマホは枕元に必要だ!」

なるほど、もっともです。

そういった無意識の反論も用意しておく必要があります。

「だったら目覚まし時計を買えばいい」

「緊急の連絡は頻繁にあるとしたら、その事実が睡眠を阻害している可能性がある。今まで緊急の連絡がほとんどなかったなら、これからもほとんどないから無視していい」

みたいな感じです。

プログラミングをする時間が取れないということを考える

ではプログラミング学習をするコストのできるだけ下げるアプローチを考えてみます。

空き時間で学習できるようにする。

事前に空き時間に対応した5分、15分、30分、1時間のタスクを用意しておく。

空き時間ができたときに、何をするか考えるのはダメです。事前にタスクを用意しておきます。 5分:本を読む(今のプラクティスや、今後のプラクティス関係の課題図書) 15分:動画を1本見る。 UdemyやYouTubeはオフライン化しておく。 外出先では通信量がーという無意識の反論を押さえておく。 (YouTubeプレミアムに入るとオフライン化ができます。こういう課金は躊躇しない) ワイヤレスイヤホンを持ち歩く。 30分、1時間:コーディングをする。

みたいな感じです。

この技術は以下の書籍で学びました。 https://amzn.to/3sFEWpS

起きたら即勉強をできる環境を作る

ノートPCは作業状態のまま、ウインドウを閉じずにスタンバイ状態にします。 そうすることにより、いちいち作業状態を復元する必要がなくなります(コストを下げる)

起きたらベッドの上、布団でPCを触るようにします。 起きたらノートPCを開く、作業状態は昨日のまま、という低コストの動作を1ヶ月続けます。 そうすると、起きたらPCを開くという習慣ができます。 その習慣の後ろに他のプログラミング学習の習慣を加えると成功率が高まりそうです。

勉強を阻害する行動のコストを上げる

勉強を阻害する行動といえば、例えばオンラインスクールをやめるということです。 やめるコストを上げるには、「課金すること」が効果的です。 私の場合は「 Udemyの課題をすべて一気に購入した」ことにより、やめるコストを上げました。

他にも高額コンテンツを購入するとかもありだと思います。 もちろん、自分の許容範囲内です。

現状では無料で、プログラミングを学ぶことが理論上は可能です。 しかし、無料コンテンツで学習すると無意識はきっとこう言うでしょう。

「無料でいつでもできるなら、べつに今やならくてもいいんじゃない?」

「そんなことよりおもしろい動画があるよ!」

課金した場合は、無意識をこう納得させることができます。

「いや、もうお金払ったから今やるよ」

「そのおもしろい動画こそ、いつでも見ることができるわ!」

「月謝制だから、早く習得した方がお得!」(早く終わるが最優先事項になると、それはそれで問題ですが💦)

みたいな感じです。

仲間を作ると辞めにくい

いろいろな人と交流すると、辞めにくくなります。

みんチャレというアプリがそれを具体化したものです。

minchalle.com

コメント欄に習慣化で困っていることや、疑問点などがあれば書いてください。 そうして「仲間」になって、一緒に勉強しましょう!

無意識と意識 プログラミング学習の習慣を身につけよう!

はじめに

著者はプログラミング勉強中の公認心理師(国家資格です)です。 主に行動変容、動機付けなどが専門です。 自分がプログラミング習慣を身につけるために、心理学や行動変容の知識を使ったアプローチを説明します。

意識と無意識

心理学の領域では、意識と無意識という分類があります。 例えばダイエットをしたい人がいるとします。

意識は

  • 痩せたい
  • 明日から毎日運動をする
  • 早起きして筋トレをする

と考えていても、次の日には、無意識が

  • お腹すいたから食べる
  • 今日は寒いから運動はパス
  • 眠いから二度寝する

という選択をとってしまうことが多々あります。

無意識はやらない理由を無限に作り出します。 (クリエイティブアボイダンスといいます)

テスト前日に、勉強をしたくないので、部屋の掃除をした経験は誰しもあると思います。

無意識は獣、意識は獣使い

よく無意識は獣、意識は獣使いと言われます。

直接対決すると絶対に勝てません。

しかし上手に手なづけると、獣は獣使いの言うことを聞きますので、強力な味方になります。

プログラミングの勉強でいうと、 意識(獣使い):毎日5時間プログラミングの勉強をしたい!1000時間積み重ねたい! 無意識(獣):スマホいじりしたい!遅くまで起きて、ギリギリまで寝たい!目先の楽しいことをしたい! みたいな状態です。

プログラミング(デバッグなど)でも、大きな問題は小さく切り分けることを求められると思います。 プログラミング学習の習慣の確立も同様に、問題を小さく切り分けましょう。

なぜ無意識は学習をしたくないのか、真剣に向き合う

上記の例では、意識はプログラミングの勉強をしたいのに、無意識はスマホでだらだらしたいそうです。 これはなぜでしょうか。

  • 今までの惰性である
  • 学習するという行為に対するコストが高い
  • スマホでだらだらする、という行為のコストが低い
  • プログラミング習得後のメリットを忘れている
  • 中長期的なメリットより、目先のメリットを優先している
  • 現状維持バイアスがかかっている corp.miidas.jp
  • 成功体験が少ない。学習性無力感がある。 www.mitsumura-tosho.co.jp

などなどです。 これらを真剣に向き合うことで、少しずつ解決できると思います。

気合いと根性は一番ダメなアプローチ

気合いと根性で乗り切る!ということは、無意識を完全無視して意識だけで行動するということです。 後ろから獣が追いかけてきているのに、最後まで全力で走り切る、みたいな感じですね。 短期間なら可能かもしれませんが、プログラミングの学習は長期間にわたります。

無意識を味方につけて、低コストでプログラミング学習を「息を吐くように」できるような習慣をみにつけたいですね。