難しいことを目指してしまう原因について(自己分析、反省)
注意
(2020/11/19)
> これ、久しぶりに振り返ってみたんだけど、思考回路の黒歴史っぽさがありますねぇ。まあ当時はごちゃごちゃ考えすぎていたということで…(今もだけど)
> 自分が自分のために書いたメモが元になっているので「指示的な」言葉が多くなっています。「人に読んでもらうため」という文脈ではあまりなくて、「あとで自分が振り返るための日記」という感じです。とはいえ、強い言葉が目立つので反省。
これは自己反省の記事です。
「今の自分」を基準に書いた記事ですので、他の人、あるいは「未来の自分」には全く当てはまらないかもしれません。
また、科学的根拠は全くなく、あくまで「思ったこと」をつらつら書いているだけなので、間違いも数多くあるかもしれません。
ということを念のため書いておきます。
燃えたくないので。
難しいことをしようとしすぎていませんか?
難しいことを目指すこと自体は良いことですが、最初から完璧にしようとして手が止まるのは、勿体ないです。
本当に些細なことでいいから、進捗を出しましょう。
進捗が出れば、モチベーション上がりますし、理解も深まります。
…と頭では思っているものの、難しいことをついつい目指してしまいます。それはなぜでしょうか。
また、それぞれの原因に対しては、どうアプローチしたら良いでしょうか。
ちょっと考えてみました。
難しいことを目指してしまう原因
1.怠惰(面倒くさいのは嫌だ。一発でドカーンと解決できないか?)
怠惰からエレガントな解法が生えることもあるので、一概に悪いとは言えません。
しかし、一発でドカーンと解決することは、一般に凄く難しいです。
一つ一つ分けてコツコツ解決した方が、大抵楽だったりすることは、頭に入れておきたいところです。
例えるなら、崖を1回で登るか、100段の階段を使って確実に上がるかの違いですね。階段登りたくなくて辺りをうろついていたら、エレベーターを見つけちゃうこともありますが。そんなときはラッキー!
2.焦り(こんな悠長にやっていては間に合わない!など)
こちらの方が深刻です。
焦りから自分に難しい課題(例えば、1日8時間勉強する!など)を課してしまうことは多いものです。
しかし、それは「頑張ろうとしすぎてしまい」、それが重圧となって手が動かないことが多いです。結局、何やったらいいか分からないというのもありますし、すぐできることではないから手を動かす気力が起きないのです。
しかし、「もっと頑張らなきゃいけないのに、何もやってない」という思いは募るので、段々重たい気持ちになっていきます。
要は、ハードルを自ら高くしてしまって、跳び越えられなくなっている状態です。
もっと軽く始められる仕組みを考えましょう。
経験的には、すぐに達成できる目標を立てるとよさそうです。
目標の高さよりも、目標の軽さを意識しましょう。
ぱっと手が動くとよく、PDCAサイクルを素早く回すのがコツです。
最初は「え?こんな簡単なことでいいの?」という目標で良いです。
目標が低くとも、素早く達成してしまうことの方が大事。
また、疲れすぎると、次やりたくなくなってしまうので、疲れを取れるときは、しっかり休みましょう。
3.ソースコードが汚くなるかも~みたいな懸念から手が動かない
一度書いたソースコードを修正するとき、1日で書けないプログラムを作るときは、勇気がいります。あとでぐちゃぐちゃにならないか、という不安が漠然とあり、手が動かないことがあるようです。
原因として、
- シングルタスク。整理整頓が苦手
があるような気がしています。
大きなプログラムを書くには「構造を切り分けること」が大事になってきます。
これは、ものを整理するときと似ていて、「これはどのタンスにしまっておこうか」
といった思考をよくします。
これが苦手だと、けっこう辛い。
振り返ってみた点として
- 頭だけで考えている。
がありました。
考えすぎている、というよりは、考えたことを記録していないことで何度も考え直しが発生していることが問題な気がします。
自分の記憶力は信用できない。
「記録をつけよう。一枚でいいから設計書を書こう! 」
あとは、バージョン管理ですね。「元に戻せる」という安心感があるだけで、だいぶ違います。
- Gitを使おう(僕はprivate repositoryというのを使っています)
ただ、Gitにpushし忘れたり、commitのときのコメントで何を書くべきか分からなかったりしがち。
これは、お困りです。
4.そもそも問題をどう分解したら良いか分からない、問題を論理的に整理できない
論理的に整理できない。これはしばしば起きることです。漠然としていて、全然話が進まない…といった場合です。
これは、論理的に考えるのが比較的得意であるなら、改善できます。
いくつか方針があって、例えば
・なぜその問題を解決したいのかを探ること、
・大事な要素を列挙→抽出すること
・具体例を挙げること
・フォーマルな形で示すこと
などがあります。
また、長いプログラムを書く場合など、長期的な取り組みの場合は、たとえアルゴリズムが自明(やるだけ)に見えたとしても
・設計書
を書いた方が良いと思います。ラフでも良いです。
これによって、イメージが鮮明になります。
複数人に指示を出すとき…これは大の苦手なので何とも言えませんが、
1つコツとして挙げるならば
・マルチスレッドプログラミング
だと思って設計することです(は?)。例えば
・ダイアグラム(時刻と人の表)
を書いてみるなど。(それはそう)
5.根本的に分からないところがあって、手が止まっている
例えば、AtCoderの過去の順位表を100倍速でアニメーションするWebアプリを作りたいとします。
AtCoderの提出履歴からアレコレ集計して、表示して…って、あれ?AtCoderの提出履歴ってどうやって取ってくるんだっけ?
色々調べてみたが、思ったようにコード(ほぼサンプル)が動かない。Webの仕組み、どう頑張っても理解できないし、サンプルコードも転がってないんだけど、どうしたらいいんだ(絶望)
あるいは、「運動向けの音質の良いイヤホンを調べて欲しい」という要求に対して、「イヤホン」の音質の違いがどうしても分からないといったことがあったとします。
つまり、問題は分解できているものの、「分からない」ことがある場合です。
この場合、詳しい方が近くにいたら、多少申し訳ないですが「素直に聞いてみる」のが良いと思います。このとき、「何がしたくて、そのために何をしようとしているのか、どこまでできてて、どこが分からないのか」あたりは明確にしておくと良いかもしれません。
詳しい方が近くにいない場合は、とりあえず分かるところ、できるところを何らかの形で作ってしまいましょう。
そうすれば、イメージが湧くと思います。
やはり、何もない状態で考えるというのはしんどいです。しんどいことはしたくありません。では、何かある状態にしてしまいませんか?
「あとこれさえあればできるのにー」という状態にしておけば、調べる気力も湧いてきます。人にも相談しやすいです。
ここでポイントとして、作るものは「ラフイメージ」の方が良いということです。
労力が小さいというのもありますが、なんというか、作り込みすぎると
「分からないところ」の内容によっては、作りを変えなければいけないことがあります。その場合に、手直しがしづらくなってしまいます。
手戻りという奴です。
また、質問は早めにできたほうが嬉しいです。
だから、頑張って作り込もう!とはしなくて良いです。いいですね!
6.ムキになりすぎている
真面目な人にありがちです。僕もそういう傾向があります。
いくら試しても上手くいかない、頑張ってスライドを作ったらかえって分かりづらくなった。
そんな経験、ありませんか?
ありますよね。
そう、あるんです。
こんなとき、真面目な人はムキになって、今のやり方をもっと頑張ろうとしてしまいがちなのですが、それはかえって悪手なこともあります。癖がつくとか、そもそもやり方が間違っていたとかです。
・こんなときは、落ち着いてください。
ゆっくり落ち着いて、まずは深呼吸をするなどしましょう。
そのあと、今とは別のやり方を試してみましょう。
別のやり方を考えるコツは、そうですねぇ…、問題に目を向ける、簡単なやり方から試す…とかですか。
ここら辺色々分かっていると良いですが。
・あるいは、外に出て散歩してみる、お風呂に入るのも手です。
リラックスできます。
・他人に意見を求めるのもアリです。
自分には見えなかったものがあっさり見えます。
・目的と関係ないことでも、遊び心は消さずに、膨らませましょう。
半分ふざけた意見が重要なアイデアになることもあります。
・楽をしてみましょう。
楽をする、というと「怠惰」なイメージがつきものですが、
もっと簡単にできないか、あるいは、今のやり方は「ここ」がしんどい、
と思ってみることで、「工夫」ができます。工夫チョー大事。
・目的に戻って考えてみましょう。
今やるべきことを「どうやったらいいか」に固執して、「なぜそれをやるか」「それをやると何が嬉しいのか」が抜けちゃうことがあります。
もしかすると、もっと良い手段があるかもしれない。これは本当に重要なのか?
たまに目的に立ち戻って、根っこから考えてみましょう。
・たまに面倒くさがる
面倒くさいから「やめておこう」「今考えるのはやめよう」
これを「常に」やっていると、ただの怠け者ですが、たまに実行してみることは大事です。思考の枝刈りになります。
何かをやること以上に、何かをやらない判断は大事。
見通しの悪いやり方はどんどん切っていきましょう。
・一番大事なことは何かを念頭に置く、要約を意識する
真面目な人間、あるいは、よく知っている人ほど「何でもかんでも」言いたくなります。しかし、それでは人に伝わりません。
自分でさえ、何が重要な話なのか分かりません。
これが「指示」だった場合、全部は無茶だよ~ってなって、よく分からない方向に行ってしまうこともあります。
船頭多くして船山に上る、ですね。
沢山のことを言えるというのは素晴らしいことですが、一番大事なことは何なのかを意識しましょう。部屋が散らかっていては見栄えが良くないのと同様、主張が散らかっていては頭も冴えません。この記事も、だいぶ散らかっていますが(ア
執着しすぎない
一つのやり方に執着するのは、精神的にも、局所解に陥るという点でも、一般に良くないです。
深く追求できることが強みな方にありがちですが、たまに幅を利かせましょう。
頭が冴える行動を取る
運動をする、早く寝てみる、お風呂に入る、など