何が分からないのか分からない
コード書くこと自体が好きで、分かんなくても辛くない人や楽しめる人もいるらしいと聞いたことがあります。でも私は「何が分からないか分からない」時は最悪な気持ちになりやすいです。「もはや自分が何者かも分からん・・・私は、なぜ、ここにいるんだろう」とか思い始めて分からない沼にはまっていくときもあります。
しかしながらプログラミング学習をしているとこのような状況があまりに多いのでこのままではよくないなと思ったのと、Fjord Boot Campでも「このような状況の解決方法を身につけることも勉強のうちだ」とアドバイスをいただいて、試行錯誤してみました。その結果として“「何が分からないのか分からない」から辛いんだな”と少し客観視するといくばくか気持ちが穏やかになるということに気づきました。
それに加えてこれまで、Fjordの駒形さんや夫、そして様々な勉強会で教えてくださる方々が「何が分からないのか分かる」ための対応について教えてくださってきました。そのことを踏まえ、自分で見つけた解決方法をメモしておきます。
冷静な時は「何だ、こんなの当たり前じゃないか」って思うんですけど、沼にいるときには頭の中からスッポリ抜けてるので、そういうときに読み返す予定です。
前提としては日本語です
答えにたどり着く一歩手前を目指す対応です
パターン1:単語の意味が分からない
対応
- 意味がわからんと思う単語を列挙する
- 書籍、辞書、google等で調べる
- 図を探してみる
- 書き留める
- (自分の言葉で言い換える)
1.だけでもやると、例えば「いつもこの言葉がわからないな」と意識できる。調べる気力がなかったり調べてすぐにわからなかったとしても、単語を意識するのはとても有効な気がします。
もしくは調べたけど書きとどめられないとか、自分の言葉にまでは落とし込めないなとかも、やろうとすると認識できるので、より具体的に「“どのくらい”自分がわかっていないのか」を知る有効な手段になります。
それから、図はかなりいいです。
パターン2:文の意味わからない
対応
だいたい単語の時と同じ。
- ブログや記事を読んでみる
- 書籍、辞書やグーグルで調べる
- 図を探してみる
- 書き留める
- (自分の言葉で言い換える)
パターン1と2で違うなと思うのは、パターン1は「概念」という物を落とし込めるかどうかっていうのがキーで、パターン2は「その概念の使い方」がわかっているかどうかというのがキーなのではないかということです。あるいは方向性やゴールと言ってもいいかもしれないです。
パターン3:やり方がわからない
ゴールや方向性がわかっていても「どうやって?」というのが分からないとたどり着くのは困難なので、やり方を知るのはもっとも重要かもしれません。しかし、ここらへんから、誤った情報を採用しないという見極めと判断が求められる気がしています。そしてそれが難しい。 したがって、正しい情報にアクセスするという点で順に列挙します。
対応
誤った情報を採用しないという観点から、なるべく1.や2.がいい。やり方を調べる中でも単語や文章レベルで調べることを繰り返すことになるとは思います。 ドキュメントやソースコードなどで解決できるのが一番だと思うけど、私は今の所それだけだと自力で解読できず・・・。何言ってるんだこの人たちは、ってよく思っています。 だけど、その中で「ここはわかる。ここまではできる」「ここがうまくいかない」等どこまで自分ができるのかあるいは全くても出ないのか知ることはかなりの前進です!!!!
パターン4:目的がわからない
私のなかで、これが分からないと道を誤りやすいなと感じたのがこれ。 目的を分かってて作業するのと分かってないままやるのではだいぶ変わります。
対応(というか確認すること)
- 「私は今全体の中の〜〜の部分について◯◯ということをするために作業しています」
- 「◯◯な状態にしたいので、〜〜を△△に変更します」
- 「□□と△△ではうまくいかないのですが◯◯という観点ではどちらがいいでしょうか」
とか。◯◯の部分が目的。
特に私としては、学習していることや調べていることについて、1.や2.を自分で認識するように心がけるようにしています。
「何が分からないか分かる」と答えは近い
パターン1〜4のなかで自分がどれに該当するのか。
「単語レベルではわかるけど文章としてはわからない」かもしれない。
「単語、っていうか、もう何なら読み方もわかんない」かもしれない。
「何がしたいかわかない」かもしれない。
どんな状態だったとしても分からない自分を分析していけば「何がわからないか分かる」という状態に上がっていけるはず。
そしてそれができればもう答えに辿り着いているに等しいとも言えるのではないでしょうか。
何かを学習するということ
私は結構やりたがりで社会人になってからも新しいことをバンバン初めているタイプの人間です。なので学ぶことには慣れているつもりでした。この記事に書いたことはプログラミング以外の学習にも通じると思います。 でも特に、プログラミングにおいては、重点的に意識することが自分には合っていると感じています。