お金を入れてボタンを押せば、飲み物が出てくる装置が、自動販売機。
僕は、これの仕組みについてはよく知らないし、近いものを自作できる自信もない。
でも日常的に利用している。
プログラミングの学習も、最初は内部の仕組みまで理解しないで、利用できれば良いんだと思う。
そして、何度も利用するうちに、一般的な方法以外にも、いろんな柔軟な使い方ができるようになってくる。
何度も利用していれば、少しずつ内部を理解していくんだ。
そして、それに近いものを自作できるようになったりもする。
だから、第1に、利用できるようになる事が大切だ。
それは同時に、ブラックボックスの扱いに慣れる事でもある。
自分と同じように文系出身の人は、これが苦手の人が多い印象だ。
「なぜ」は知らなくてよくて、「何」ができるのかを知るべきなんだ。
まずは、そういうものだと思って進むことが重要になる。
ブラックボックスの中身を理解していく事は、段階的でいいんだ。
ん、使えるだけじゃ不十分だって? 理解しなくていいというのは極論だって?
それも一理ある。
でもこれは、物事に対する学習を深めていくプロセスの話だ。
それには、まず一般的な方法で使えるようにする事が、最初のステップであると強調したい。
そこから、次第に使用上の注意(ほとんどの場合、公式ドキュメントや、Github上のイシューでのやり取り)を読むことも、覚える必要がある。
特に、認証系や決算系などは影響が重大だ。
それは、あなたの体の中に入れる薬や注射と同じように、注意・確認すべきだ。
ここで知っておくべきは、素晴らしい開発者は、抽象化が上手いということだ。
あなたが箱の中の仕組みについて一切知らなくても、簡単に使いこなせるように機能を提供する。
それがブラックボックスであり、適切な抽象化なんだ。
メモ:
最初は理解しなくていい、と言うものの、
チュートリアルやドキュメントで示されている、一般的な方法で利用できるようになった状態は、皮肉にも「完全に理解した」と言われている。