プログラミング言語習得に必要なのは読解力

プログラミング言語を習得しようとしても、どうしても挫折してしまう人が出てくる。或いは続けていてもなかなか上達しない人もいる。そういう人も何年も続けていれば皆いつの間にか一端のプログラマーになっているものだが、苦手意識が拭えず、なかなか実装できない状態を抜け出せない人は少なくない。

プログラミング習得に必要なのは「論理的思考力」だと言う人が多い。それに関連して、乱暴だが「文系より理系」と主張する人も多く見かける。アルゴリズムを組むのだから論理的思考力が必要なのはその通りだが、初心者が初心者を抜け出すのに必要なのは論理的思考力ではないと考えている。

何年もプログラミング初心者を見てきた上で、初心者を抜け出せない人に共通するのは「文章読解力に問題があること」だ。

これは入門書に書いている日本語文章が欠如している場合もあるが、それ以前に「読んでいない」というのが多い。書いていることが理解できないのであれば、図で説明するなり、より平易な日本語で説明するなり、簡単なサンプルコードを動かしてみせたりすることができる。しかし、そもそも「読まない」のはどうしようもない。

こうしたタイプの人は、そもそも長い文章を読む習慣が無く、「すぐに読み飛ばしてしまう」或いは「文章を眺めているだけ」の場合が非常に多い。そして、なかなか習得できないとプログラミングの苦手意識が芽生え、x = x + 1のようなプログラミング特有の表現に対する忌避感で余計にインプットを拒否し、ポインターや参照といった概念を理解する事を諦めてしまう。

文章を読まない人・読めない人に理解させるには、一文一文一文読み聞かせるレベルでの丁寧な解説が必要である。3行程度の文章でも飛ばさずに考えながら読む習慣が無い人は少なからず存在する。そういう人も普通に会話はできるので、音声で一つ一つゆっくりと解説していくのであれば理解できることが多い。勿論、効率は非常に悪い。

そして、読まない人に更に多いのが、問題を解く時に「考えていない」のだ。一見すると考えているように見えるが、画面を眺めているだけであり、当然「読んでいない」し、考えていないから「手も動かない」。思考力が足りなくても、直感で色々と試しながら実装する人の方が初心者レベルの脱出は早いことが多い。後者の方が少なくとも問題は読んでいるし、考えているからだ。

読む・考えるという「行為」の有無が根本的な問題である。大多数の人は何らかの先人のコードを参考に学び、似たようなものを組み上げていくだけである。そこに優れた論理的思考力は必要ない。

About HAL

金融・マーケティング分野の機械学習システム開発や導入支援が専門。SlofiAでは主に海外情勢に関する記事、金融工学や機械学習に関する記事を担当。

View all posts by HAL →