2021-07-12

いい加減「プログラミング理解できない人はいる」という事実を認め

てほしい。

プログラミング理解できない人はいます。いい加減この事実を認めて下さい。

こういう話になると、やれ「教え方が悪い」だとか、やれ「順序立てて学べば誰でも理解できる」などという輩が出てきますが、それは事実に反します。

まず、プログラミングは手順さえ覚えれば誰でもできるようになると言うものではありません。プログラミング理解するには、一定レベル論理的思考能力を要します。それが身に付いていない人には無理です。また、どんなレベルの人でも、プログラミングで分からないことは出てきますプログラミングができる人は、そういう時に、

といったことをして解決する力があります。そういう試行錯誤をしない人や、複雑だったり抽象的な概念を突き詰めて考えることをしない人に、プログラミング理解するのは不可能です。

たとえば、再帰関数が分からないとしましょう。具体的に何が分からないのかは人によって異なります。たとえば、

など。これらを解決するには、自分で仕組みを突き詰めて考えたり、コードを書いてデバッグしてみたり、調べたり人に聴いたりするしかありません。講師が気の聞いた喩え話などをすれば、たちまち疑問が氷解するなどということはあり得ません。

また、一口に「プログラミング理解する」と言っても、そのレベルは様々です。

  1. 代入や四則演算などが理解できる
  2. 条件分岐や繰り返しなどの制御構文が理解できる
  3. 関数クラスなどのモジュール機構理解できる
  4. 高階関数や非同期処理などが理解できる
  5. 計算量を見積もることができ、効率の良いコードが書ける
  6. ソフトウェア設計理解し、保守やすプログラムが書ける
  7. バージョン管理等の各種自動化ツールOSネットワークデータベース等のプログラミング言語以外の技術理解している

最初の2〜3程度が「自分の思うプログラミングの全て」な人が、軽々しく「プログラミングは誰でも理解できる」などと思わないでいただきたいのです。それは実用上は全然足りていません。サンプルコードをググりながら、やっとこさVBA複数エクセルファイルを集計できる程度の人が「プログラミングできる」気になっていては困るのです。

上記の大部分は、自分プログラム他人に見せるつもりのある人なら十分に習得しておく必要があります。ましてや、プログラミングで飯食おうと言う人間が、FizzBuzzに毛の生えたようなコードを読み書きするのに精一杯で、効率保守性に気を配れないのは論外です。

上記特に後半に書いたようなことは、誰にでもできることではありません。ちょっとしたコツや方針を守れば機械的にこなせるというものではなく、技術力の高い人でも熟考を要することです。彼らは、そうした高度なことを正しく考える力があるから技術力が高いのです。そういう力は、誰かに用意してもらったカリキュラム受動的にこなすだけではまず身に付きません。

  • プログラミング自体は難しくない が、壁に当たったときに試行錯誤できない人には無理

  • 2までは誰でも行けるけど、3からいきなり難易度あがって無理な人続出。

記事への反応(ブックマークコメント)

ログイン ユーザー登録
ようこそ ゲスト さん