プログラムを理解したければエラーを理解すればいい話

2022年8月4日

学習

eyecatch プログラミングが理解できない人を研究している、ユゲタです。 先日、プログラミング学習を始めたばかりの人とお話をさせていただいて、色々な気づきがありました。 まずプログラミングを学習したいと考えた根拠は、最新技術について理解したいという人が、比較的多いようです。 一昔前だと「仮想通貨」、今のトレンドだと「NFT」や「メタバース」確かに、内容も面白そうだし、自分の生活にも直結する内容であれば、 今後未来のために、こうした技術について知っておきたいという気持ちは非常に理解できますね。

最新技術までの道のり

最新技術を理解するために、何をどうすればいいかを考えてみましょう。 まず、技術をまるで知らない人が考えるのは、「パソコン」と「プログラム」を理解すれば、その延長線上で最新技術を理解できてしまうと思っていますが、 この思考で進むと、中間ギャップが大きすぎて、かなり大きな確率で途中で方向性を見失ってしまうでしょう。 では、パソコンの使い方すらままならない人が、最新技術を深く理解するにはどうすればいいかというと、 ゴールからの逆算で学習していくことを、ユゲタはオススメしたいです。 「NFT」であれば、「ブロックチェーン」の仕組みを知って「認証」や「ネットワーク」の学習をしてそれらの理解が深くなってから、本題の学習に取り掛かろうとする人が多いと思いますが、 周辺技術はもちろん大事ですが、そっちを完璧に理解するよりも、NFT自体についての理解を深めていったほうが確実に学習できていきます。 実際に分からないことがどんどん出てくると思うので、その都度軽く周辺知識を調べていくだけで十分に理解出来ていくでしょう。 結果的に、NFTを理解するのに、プログラミングを学習するというのは、あまり関係性が無いという結果にたどり着くでしょう。

プログラミングは技術のワイルドカードなのか?

ITの学習をする時に、必ずと行っていいほど、プログラミングを理解しなければいけないと考えてしまう人が多いようです。 何故か、何かのIT技術の根底はプログラミングで成り立っていると考えてしまうようですね。 ある意味間違ってはいないのですが、「砂糖は甘いけど、甘いものは砂糖だけではない」という理屈と同じだと個人的に感じてしまいます。 この理屈で考えてみると、次のような感じでしょう。 「プログラミングを理解している人はITに詳しいが、ITに詳しい人はみんなプログラミングを熟知している訳ではない。」 確かにプログラミングって広く学習しておくことで、IT全般に強くなりますが、その奥深さはもはやカオスなので、自分の学習する範囲を適切に見極めるという事が必要になりそうですね。 何でもかんでもプログラミング学習で解決しようとすると、カオスを理論化しようと頑張ってしまいがちですからね。

何故プログラミング学習でエラーは嫌われるのか?

正常にプログラムを動かしたければ、正しいコードを書けばいいと考える人も多いと思いますが、 プログラミング熟練者は「間違ったコードを書かない(間違った動きをさせない)」という思考でコーディングする傾向があります。 これ、何が違うの?と思った、プログラミング学習中の人は、この言葉を理解できると一人前だと考えて学習してください。 未来に必ずこの言葉が理解できる日がくるはずです。 プログラミングをしてエラーが出ると、少し心が下がり気味になる人も多いと思いますが、 熟練者は、1つの処理から、どんな種類のエラーが出るかをたくさん想像することができます。 この想像できる種類が多ければ多いほど、スキルが高いと考えていいのですが、要するに経験値を増やせば(エラーをたくさん出せば)このエラースキルがどんどん蓄積されていきます。 とにかくプログラミング学習って、このエラーを嫌って、敢えて遭遇しないように学習しようとする人が圧倒的に多いので、 そうした人は確実に挫折をしてしまうということを教えているプログラミングスクールも少ないのかもしれませんね。 人と人とのコミュニケーションにおいても、相手の嫌がることを知らずにズカズカと思ったことを何でも喋ってしまうと、 知らない間に相手を怒らせてしまったり、関係が悪化してしまうこともあることを考えると、 エラースキルって、コンピュータとの意思疎通で一番重要だと言うことに改めて気が付きますね。

最後に

有名な話ですが、ファミコン時代のファイナルファンタジーの最初の作品で、そらとぶ船を、ファミコン基盤のバグを元に見事に浮いて飛んでいるような表現ができたという伝説は今でも語り継がれていますが、 参考 : https://ja.wikipedia.org/wiki/%E3%83%8A%E3%83%BC%E3%82%B7%E3%83%A3%E3%83%BB%E3%82%B8%E3%83%99%E3%83%AA 最新技術は、これまでのエラー歴史の積み重ねで成り立っているという事も、ある意味理解してみると、 その最新技術が成立しているのも、過去の様々なエラーを乗り越えてきたという歴史であることが分かります。 でも、そういや、エラー辞典っていうのが、インターネットには存在しないな。 プログラミング言語などのリファレンスサイトに、そのメソッドに対するエラーは書かれているが、 それらを組合わせて発生するエラーや、特定環境におけるエラーなどは、どこにも記載されておらず、それらを経験した人達だけの心のなかにスキルとして刻まれているようです。 この辞書あったら、みんな見るのにな〜。 どうやったら集められるかな〜?

このブログを検索

ごあいさつ

このWebサイトは、独自思考で我が道を行くユゲタの少し尖った思考のTechブログです。 毎日興味がどんどん切り替わるので、テーマはマルチになっています。 もしかしたらアイデアに困っている人の助けになるかもしれません。