【無知の知】何がわからないかわかる方法【資格・プログラミング・バグバウンティ】

f:id:NickShadows:20190622115433j:plain




わりと様々なところでこのような意見を聞きます。
「何がわからないかわからない」


私にもこのような悩みを抱えたことがあり、今は解消できたので参考になればとがてら記事にします。



結論 ~とりあえず実践~

f:id:NickShadows:20190622125507j:plain:w600

「気になっていることをとりあえず実践する」




この悩みが出るときはだいたい、実践していないです。
最近調べたのですが、「ダニング=クルーガー効果」というのが近いと思います。
この効果はざっくりいうと「能力が低い時は自信が高い」というものです。


ja.wikipedia.org





厳しい言い方になってしまいますが、「対象の分野に対して知らないことがない」状態になってるがゆえの悩みだと思います。
何の分野においても全知全能になることはありえないので、勘違いであることがわかります。




なぜこのような状態になるのか?
それは、「実践」が出来ていないから。
真に必要な「知識」がわかっていないのです。




なので、この悩みを持ったら、実践しましょう。




前提 ~1つのステップを越えている~

f:id:NickShadows:20190622125626j:plain:w600

この悩みにたどり着いたということは、1つのステップを越えていると思います。
「最低限の知識を学ぶ」ということです。




最低限の知識を学んだため、むしろ学びたてだからこそ「わからないことがわからない」のです。




学生時代、テスト前に勉強した時は自信満点でいました。
しかし、実際テストが始まってみるとわからないところが多いのです。




学生のころは「テスト」という実践によりわからない点を強制的に出させられました。
学生でなくなった今、誰もそんなことはしてくれません。





しかし、停滞しているわけでもありません。
一歩踏み出せていることは確実なのです。
もう一歩踏み出す、それだけなのです。




体験談

f:id:NickShadows:20190622125641j:plain:w600



具体例として、私の体験談をいくつか書いていきます。
後から思い返してみれば、どれも「実践」が大切でした。
少なくとも、全く役にたたないわけではなかったです。



資格勉強



今は以下の資格を持っています。


  1. ITパスポート
  2. 基本情報技術者
  3. 情報セキュリティマネジメント
  4. Oracle Java Silver SE8



ITパスポートに関しては、参考書を中心に勉強していたところ、1回落ちました
最初の国家資格ということもあり、勝手がわかっていませんでした。
勉強している感覚としては、「書いてあることはだいたいわかるから大丈夫だろう」です。



勉強法を真逆に変え、いきなり問題を解いてみる方式に変えました。
どう使うかわからない知識を事前につけるより、必要な知識を把握して学ぶようにしました。



2、3、4はおかげで一発合格でした。
現在進行系で安全確保支援士には落ちているので、必ず一発とは限らないですけどね。
ただ、落ちてはいますが知識は定着しています。



「なぜ必要なのか?」が問題を解くという実践により把握でき、それにより知識を着実につけることが出来ました。



プログラミング



資格勉強と少しかぶりますが、仕事で開発をしていたことがありました。
内容はJavaを使ったものであり、資格も基本的なものは持っているから大丈夫だろうと思っていました。




全然ダメでした。



基本的な仕事のやり方を知らなかったのです。
そして、それは仕事が始まるまで知らないということを知りませんでした。


知らなかったことを列挙してみます。


  1. JUnitの存在
  2. バージョン管理ソフトの存在
  3. フレームワークの存在
  4. ビルドの存在
  5. Antの存在
  6. リリースの概念



何も出来ないと同義ですね。


やりながら詰め込み、基本的なことは上司にお願いすることで仕事は回りました。
実践により、プログラミングの知識だけをつけても仕事は出来ないと学べました。




バグバウンティ



始めた当初は、ビギナー向けの記事や初心者向けのCTFなどを使って勉強していました。
書いてあることや答えの通りにやれば想定される結果が出ました。




常に想定される結果が出たので、何をやっていけばいいかわからなくなりました。
XSSのペイロードを打てばXSSがでて、SQLインジェクションの箇所はちゃんと出る。
気分は全知全能ですね。なんでも壊せそうな気がします。
知識に関しては、満足してしまいました。




バグバウンティに関しては上2つよりこの状態になっている期間は極端に短かったです。
数日くらいじゃないですかね。
答えは簡単です。




「実際のサイトで調査しても出ないから」です。




なんで出ないか?簡単に見れることろは対策、または既に報告されているからです。


なんで見つけて報告している人がいるか?速度が早いか、深いところを見ているからです。


他の人はどうやっているの?レポートやブログにて方法が数多く残されています。多くは英語ですが。


どうやって見つけたら良いか?これに対してはわかりません。対象を調査して、仕組みを把握して、勘で深掘りするしか無いと思ってます。




疑問は死ぬほど出てきます。
本当に自分にできるのか悩み通しました。




しかし、私のこの段階は既に「わからないことがわからない」ではないのです
わからないことだらけなのが判明しました。




では、次どうするか?
地道に1つずつ潰していきます。
コツや近道などない、もはやそう思ってます。




余談ですが、バグバウンティの初心者グループも、わからないと思ったことをすぐに誰かに聞けるように作りました。
初心者を中心としているのは、同じ疑問を持つ人はいるだろう、と思ったからです。


このグループが成功かどうかはまだわかりません。 ただ、多くの方の役に立てるよう、改善を続けていきます。




最後に

根本的なこととして、「やりたいこと」であること、というのがあると思います。
頑張って実践しなければ成長は難しいとは思いますが、無理してやるものではないです。




自分が楽しめるものをやりましょう。
楽しくないと思ったら死なない範囲で取り組むのをやめましょう。




楽しんで、生きていきましょう。