基礎的な動きをある一定時間やったり、基本問題を続けて解くといった行動を「練習」といいます。不安なので一応、新明解国語辞典で調べておくと、
技術や芸術などが上達するように、同じ事を難度も繰り返して習うこと。
とあります。今日は、練習の大切さを書いていこうと思います。初学者や初心者は、とにかく、このプロセスを省いてはいけないのです。
同じ事を何度もやることが練習です。これが、非常にわかりにくかったりします。無駄なことをやっているような気がしてくるからです。場合によっては、退屈な時間が流れて、どうしようもない思いになります。
そのように、練習を無駄に感じてしまうような人は、安心してください。基本的には、あなたのやっていることは80%くらいは必要ないです。練習は必要ありません。正確にいうならば、必要なくなります。
質の悪いアドバイス
話題変えて、先輩・上司の悪いアドバイスに、「もっと頭を使えよ」というものがあります。代替の人が言われたことあるのではないかと思います。これを言わされているように感じている先輩・上司と、聞かされていると思っている下の人、どっちも残念ですね。
まず、先輩・上司は、ひどいことに自分が頭を使っていないこと。どうやったら相手ができるようになるのかを全然考えていない。人の頭の使い方を解っていないことが丸解りなアドバイスですね。こういう人は一生気づかないでしょう。可哀想な人です。
そして、当然、下に付く人は、そういう先輩・上司の下ですから、成長するべくもなく。同じく、可哀想な人です。今すぐ、その先輩・上司の下を今すぐ離れるべきでしょう。
「頭を使いすぎ。もっと頭を使うな」と。先輩・上司は、こういうべきでした。
人間の脳はMIMD
基本的に人間の頭脳は、MIMD (Multiple Instruction Multiple Data、ミムディー) 型のプロセッサです。並列の情報(Data)を並列の命令(Instruction)で処理することができます。なので、食事中に口を動かしながら新聞を読んだり n次元ちゃんねる を観たりできるわけです。これができないと、FPSで、逃げながら敵を撃ち落としたり、戦いながら隠れ場所を探すことができないことになります。
この頭脳の働きを上手く利用していくことが、人生を有利に進めていく上で非常に重要になります。僕の母校に入る人は、この働きを上手く活用している人はすごく多い気がします。
ここまでが、無料分です。有料会員は、全て読むことができます。とてもいい内容なので、是非購読してください。
並列に情報を扱えるのが、頭脳の基本的な働きでした。ですが、実際に、2つ3つのことを同時にやってみると解るのですが、意外と難しいということが解ってきます。
例えば、数学を勉強しながら国語を勉強したり、本を2冊同時に読んだり、複数の株価指標を同時に読み解いたりといった課題です。
メインスレッドとサブスレッド
実際に、メインスレッド(顕在意識)が同時に複数現れるわけではないです。同時に複数の意識が現れているような人は居るのかもしれませんが、ちょっと信用できないかもしれません。どうしてもサイコパスのようなものを感じてしまいます。
プログラミングを行う場合、メインスレッドとサブスレッドという概念が必要となります。メインスレッドは、メインルーチンを動かします。メインルーチン内でOSとシステムコールによって対話を行ったり、サブスレッドの管理をしたりします。
重たい演算などは、サブスレッドで行います。サブスレッドでの演算結果をメインスレッドに投げることで、メインスレッドだけでやっていた演算処理を結果的に軽くするということを行います。
人間にも、メインスレッド(顕在意識)とサブスレッド(無意識)があり、メインスレッドだけではなく、サブスレッドを如何に活用するかをポイントとなります。メインスレッドは、生命時間や物理空間と同期して行わなければいけない処理を担当しています。サブスレッドは、メインスレッドから切り出して並列で行う処理を担当します。
例えば、新聞を読みながら、ご飯を食べているシチュエーションでは、新聞を読むことがメインスレッドで、ご飯を食べるために口や箸を動かすことがサブスレッドになります。ひょっとすると、人によっては逆かもしれませんが。
サブスレッドで処理する
サブスレッド上で処理がなされるとき、無意識で行うことになります。無意識でおこなうために処理を翻訳して上げないといけません。そのために必要なプロセスが、今回のメインテーマである「練習」ということになります。
練習というのは、処理をサブスレッドに載せられるだけ、量をこなすためにあります。量をこなすことで、呼吸をするようにいつでも同じ動作をできるようになります。「習うとは慣れること」という言葉がありますが、習うというのは練習のことです。練習することで慣れていき、当たり前の動作、思考法になっていきます。
サブスレッドに処理を任せることで、メインスレッドに本当にやりたいこと、やらなければいけないことを集中させるのです。他の仕事と並列させたり、酒を飲みながら何かをしたり、寝ながら何かを想像したりといったときには、必ず処理がサブスレッドで動いています。
例えば、僕は、複数の案件を回しながらどうしようもなくなったときに、あえて睡眠を取ったりします。そのときに大事なのが、「A案件のBコントローラの設計が思いつかないから教えて」のように祈って眠りに付きます。祈りの強さは、サブスレッド上で処理を走らせるときには非常に重要なようです。
サブスレッドが上手く活用できないと、メインスレッドを酷使することになり、いつも一生懸命やらなければいけなくなります。慣れた作業は極力サブスレッドに回してしまうことです。
サブスレッドは間違える
では、全部サブスレッドで行えば良いのでしょうか。そういう訳にはいかなそうです。サブスレッドに落とした仕事は、どうも質が下がるようです。間違えたり、プロダクトの質(そして量も)に影響してきたりします。
どうするのか。バリデーション(検査)が必要となります。確認、テスト、検算、そして調査などに置き換えてもよいでしょう。メインスレッドで必ずバリデーションを行なうことで、質を担保しましょう。
バリデーションの手法に関しては、後々書いていきますが、継続することが大事で習慣づけといつもブラッシュアップしていくことを心がけてください。こまめにチェックするなど、自分なりに方法を模索していくことです。
サブスレッドによって得られた結果は恐らく、求めるものの 90% くらいでしょう。その 90% を100% にしていくのは、メインスレッドの仕事です。バリデーションによってきちーっとしたプロダクトに仕上げていきましょう。
ここでこの記事は終わりですが、「考えることをやめろ。」は非常に難しくて解りにくいテーマです。もう少し深く考察しようと思います。