プログラミング、なんとなくコツがつかめた気がする瞬間っていつ来るの?~その1~

プログラミング、なんとなくコツがつかめた気がする瞬間っていつ来るの?~その1~

投稿日: 2024年12月02日

Tips
要約
  • プログラミングの要領をつかむ瞬間は、メンタルモデルが形成されたときである。
  • メンタルモデルは具体的な操作や結果を直感的に理解できる思考回路のことを指す。
  • プログラミングを効率的に学ぶためには、このメンタルモデルを獲得・アップデートしていくことが重要である。

プログラミング学習のなかで「言葉ではうまく表現できないけど、なんとなくプログラミングの要領・感触・勘所がつかめたかも?!」という瞬間は、いったい、いつになったら訪れるのか?について私見を交えながら書いてみたいと思います。あくまで個人的な経験に基づくものなので、参考程度に読んでいただければと思います。

結論を先に述べると「あれ?!もしかして、私、プログラミングのコツがつかめたかもしれない!」という感覚は、頭のなかに「プログラミングのメンタルモデルが形成されたとき」だと考えています。

メンタルモデルとは、自分の頭のなかに構築される「この操作をしたら、こんな結果になる」「この結果がほしいときは、このように実行する」といった直感的な理解を得る思考回路のようなもの?と思ってください。身近な例でいえば「手に持ったコップを離すとどうなるか」「ドアを開けるためには、取っ手を回して押すか引けばよさそう」といった直感に近い予測や判断をしているものがメンタルモデルです。コンピュータに寄せた例で言えば(初めて使うアプリであっても)「横スワイプすると画面が切り替わる」「アバターアイコンは変更可能で、設定の項目から可能」といったことがイメージできるのは、スマートフォン操作のメンタルモデルが形成されている証といえます。

ところで、コップが落下する現象は厳密には物理法則に従うわけですが、別に物理学なんて知らない小学生でも、メンタルモデルがあれば安全な日常を送ることができます。実はプログラミングでも同様で、さほど深く理解を持たなくても、とりあえずのメンタルモデルが構築できれば、プログラミングすることができます。実際に、小学生がプログラミングを行えているのは(プログラミングやコンピュータに関する深い知識と理解を持っているからではなく)メンタルモデルを獲得しているから・・・によるところが大きいと思います。

プログラミングのメンタルモデルとは、具体的には

  • このようにコードを書けば(詳しい内部動作はさておき)たぶん、こんな出力が得られるはずというイメージを掴めること。逆に言えば、こんなコードを書いたら、こんなエラーが発生するよねと推測が付くこと。

  • こんな出力を得るためには、たぶん、こんな感じでコードを書けばいいんじゃない?と方向性がつけられること。

と思ってください。このようなメンタルモデルが頭のなかに形成されると、とりあえずプログラミングができる状態になるので、そのプログラミングが楽しいと感じられる瞬間がグッと増えて、生産性も格段に向上していきます。

メンタルモデルを最初に獲得する瞬間が、学習曲線におけるS字カーブの立ち上がりの部分になるのではないかと思っています。

メンタルモデルは一度構築して終わりというものじゃなくて、経験や学習を通じて常にアップデートしていくものです。

じっくりと育て上げてきたメンタルモデルを、ときには完全にぶっ壊して1から再構築することも求められます(ここは非常に苦しい!)。僕の場合、C言語のポインタを学んだとき、オブジェクト指向プログラミングを学んだとき、関数型プログラミングを学んだときに、ほぼメンタルモデルの再構築が必要でした。

では、初学者(特に大人が)が、このプログラミングについてのメンタルモデルを獲得し、さらに、それを効率よくアップデートしていくためには、どうしたらよいのでしょうか。

次の記事では、具体的なコツやポイントについて書いてきたいとおもいます・・・(続く)

シェア!

Threads
Loading...
記事一覧に戻る
Threads
0