ふはは
お酒が回っている状態で書いているので、適当なこと書いているかもしれませんが、別にどう思われてもいいので書きますははは。
価値は見る視点、見る人によって変わる
同じ事象でも、だれにとって価値があるかは異なる。糞コードでも初心者にとっては、理解しやすいコードであるし、逆に上級者からしたらアンチパターンめっちゃ踏んでて拡張性のない糞コードかもしれない。
つまり、糞コードというのはできる人からの視点であるのだと思う。拡張性の高いコードを書くためには、たくさんの「糞コード」を書かないと意味がないわけで、その世界に行くまでにはたくさんの糞コードをみないといけない。というか糞コードを学ばなければ次の次元リファクタリングにまでも手を出せないわけで、糞コードとはある一定段階の習熟度の人にとって、ある意味可読性とアンチパターンの学習として価値があるのかもしれない。
ずっとクソコードでチュートリアルを書いてて、罪悪感を感じてたけど、それが誰にとって価値があり、誰にとってクソなのかがわかってよかった、抽象化は教育者にとっての価値で、学習者にとっての価値はクソコードなのかも知れない。— Dai (@never_be_a_pm) April 5, 2018
教育者は抽象化した視点から教えたがるが、学習者は具体的な視点からしか学習できない
そしてできるプログラマーは、できればできるほど抽象化して意見をしたくなる。それは保守性の話だったりとか、可読性の話だったりとかを教育者の視点で見るからである。だが、その保守性や可読性は学習者にとっては学習のブロックになることが多いことを、実は以外に知られていない。学習をmastery learningで考えると、より一層正しいと考えられる。
教育者は、大量のクソコードを書いてから、たくさんのアンチパターンを学んで教育者になっているから、教育者にとってクソコードであっても、学習者にとっては教材である可能性が出てきた— Dai (@never_be_a_pm) April 5, 2018
学習者は、常に抽象化された正しいことを教えたがるけど、実は学習者としてのUXは最低なのかもしれない。
我々が中学生に不定詞を教えるときに、形容詞的な用法として教えたがるのは、人間が抽象度の高い伝え方をした方が得する(賢いと思われる)と無意識のレベルでおもうが、初学者のUXとしてはそれは割と最悪なのかも。そしてそこに人間が理解できるレベルに落とし込める人がいたら実はとてもよいのでは— Dai (@never_be_a_pm) April 5, 2018
ちょっとできる人は、「能ある鷹は爪を隠す」の心理によってアウトプットしない
そして学習者と教育者の間のちょっとできる人が、通訳をしたらいいと思うのだが、そこに構造的な問題が存在する。それはちょっとできる人は、プログラマーによくある「能ある鷹は爪を隠す」心理特性によって、下手な糞コードを公開しない(爪)ので、初心者がぎりぎり理解できるコンテンツが消えやすい環境にあるのかもしれない。
初心者にとってのコンテンツが少ない心理的な要因が少し見えた。僕みたいに独学だけど一応プロダクトつくれるレベルだと、コードの美しさとか気にしないでつくる。でもガチモンのプログラマーは、クソコード書いて発信するのは恥ずかしい。つまり僕みたいにクソコードで発信する人がそもそも少ない。— Dai (@never_be_a_pm) April 5, 2018
バカみたいな糞コードのアウトプットが実は学習者にとって価値あるコンテンツなのかもしれない
つまり、世間体とか一切関係なく、初心者にとってプロダクトをつくることが一番ハッピーな話だと思って設計しているスケベチュートリアルって、めっちゃくちゃ可能性があるのかもしれにない。
つまり、初心者だけどプロダクト作りたい人と、プロダクト作れて保守性の高いコード書きたい人の中間に、「アホみたいなコードでプロダクトつくれる人のコード」という、初心者にとっての理解できるレベルのチュートリアルが足りてない。— Dai (@never_be_a_pm) April 5, 2018
その中間を埋められる、初心者にとってのプロダクト作れる理解しやすいコードと、上級者にとって保守性の高い実用的なコードの狭間に、実はとんでもないブルーオーシャンがあるんじゃないかという話。そしてそれをビジネスにするには個人じゃないとなかなか難しいという話。検証したいなぁ。— Dai (@never_be_a_pm) April 5, 2018
青い世界には、対立仮説が必ず存在する
「正しい抽象的なコードが教育的なコンテンツとして正しい」と思っている人が多い。そして僕は、初心者にとってはそれは必要ないと思っている。
ある段階に入ってから、正しい抽象的なコンテンツなんて学べばいいと思うし、それよりさっさと失敗して糞コード書けやと思っている。だから正しいことを最初からできるなんて全然思ってない。
それは置いておいて、教育コンテンツが正しいことを抽象的にやると思っているときに、「正しくないことを具体的にやる」ってアプローチでnoteが150冊売れたのは、「青い世界には対立仮説が必ず存在する」という証明だったと思うし、それは常にどの領域でも正しいのかもしれない。
あと、ブルーオーシャンみがある領域には、つねに仮設に対して反対勢力があるんだなぁと感じた。逆にそこのブルーオーシャンみが反対勢力なかったら誰でも手をつけてるだろうしなぁ。面白いなぁ。確かにそうだ。— Dai (@never_be_a_pm) April 5, 2018
誰も手を出さない領域は、ブルーオーシャンみが一般的な仮説とズレるからブルーオーシャンみがあって、逆にいうと仮説どおりになる部分は赤いんだなぁ。— Dai (@never_be_a_pm) April 5, 2018
きっと世界の人は「プロが教えてくれるデータサイエンス」を学びたいと思ってるんだろうけど、仮説として「文系独学初心者でもできる価値あるAIプロダクトを作りたい」と思っていて、それぶつけたら割とそうだったので、青いところは実は埋まってんだなぁ。— Dai (@never_be_a_pm) April 5, 2018
青い世界にたいして、対立仮説を提唱する人はめっちゃ正しい人だと思うけど、その対立仮説を帰無仮説で返せるのってちょっとエロいし、それになりたいなぁと感じる所存。