Progate の JavaScript で for が出てきたとき、私は画面を見ているだけで眠くなりました。
書いてあることは読めます。 カッコの中に三つ書く形も、そのとおり手を動かせば動きます。 ただ、なぜここでこれが出てくるのかが分かりませんでした。 どこで使うのかも想像がつきません。
HTML と CSS は同じ教材で進んでいました。 色を変えれば色が変わりますし、並べれば並びます。 JavaScript に入った瞬間だけ、手応えが消えました。
理解力の問題だと思っていた#
その頃の私は、自分の頭の問題だと考えていました。
理系でもなければ、数学が得意だったわけでもありません。 向いていないのだろう、と片付けるのがいちばん簡単でした。 実際、そこで一度やめています。
同じ結論に何度か戻りました。 入門書を買い直しても、動画講座を最後まで見ても、作れるようにはなりません。 説明が理解できないわけではないのに、手が動かない状態が続きました。
二年後に同じforが入ってきた#
二年ほど空けてから、paiza で Python の問題を解き始めました。
入力が与えられて、この出力を作れ、という形式です。 最初は素直に、一行ずつ同じ処理を書いていました。 入力の数が増えると、同じ行を何度も書くことになります。 そこで初めて、まとめて回す書き方が欲しくなりました。
そのときに出会った for は、Progate で見たものと同じものです。
違ったのは、私の側にすでに困りごとがあったことでした。
Progate は何も隠していません。 コードは全部画面に出ていますし、一行ずつ説明も付いています。 それでも入らなかったのに、二年後には入りました。 隠されていたから分からなかった、という説明ではこの差を説明できません。
答えが先に来ていた#
いま私は、この差を順番の問題だと考えています。
for は、同じ処理を繰り返したいという困りごとへの答えです。
困っていない人に答えだけを渡しても、それは答えとして受け取られません。
記号が並んでいるだけに見えます。
眠くなったのは、集中力が足りなかったからではなく、自分の中に受け皿がなかったからでした。
paiza では先に困らされて、そのあとに for が来ています。
順番が逆になっただけで、同じものが別の届き方をしました。
技術は、それが答えになる困りごとを持ったあとでしか入ってきません。
そう考えると、私が繰り返し買い直していた入門書が全部同じ順番だったことにも説明が付きます。 教材を変えても、答えを先に渡す形は変わっていませんでした。
何から確かめるか#
もし同じところで止まっているなら、教材を変える前に、直前に自分が何に困っていたかを思い出してみてください。
何にも困っていない状態で構文の説明を読んでいたなら、詰まったのは順番の側です。 私はそこを二年間、自分の適性の話だと思い込んでいました。