プログラミング自体は作業
やりたい事がないの呪縛
ホリエモンの「とにかく遊べ」は一理ある
まとめ
なぜプログラミングを勉強しても何も作れないのか。
これは作りたいものがないからという単純な答えでしか無い。
もちろんプログラミングを勉強してすぐに何か作る人もいるので全員が当てはまるわけではない。
そもそも今一般的に言われているプログラミングはプログラムを書く行為そのものだ。
つまりプログラミングはソフトウェア開発の中で最も作業寄りにある。
大事なのはそもそも何を作りたいか、作りたい欲求に対し作りたいものの難易度は高すぎないかを考慮することだ。
例えばカレーを作るとき料理に凝っていない人はカレールウを買うしレトルトを買う人もいると思う。
でも料理に凝っていて、料理を通じた創作的な営みを味わいたい人はブイヨンから作るだろう。
Youtubeの料理動画とかでもよく見ると思うがターメリックやクミンなどを石臼で挽いたりとかもするかもしれない。
だが料理の入門者に最初からそこまではやらせることはないと思うし、やっても石臼を挽いてるときになんでこんなことしてるんだろうと思い始めるかもしれない。
プログラミングもこれと同じと思う。
入門者にC言語をお勧めする人は最近は減ったが、PythonやRuby On Railsを勧める人は未だに多い。
だが作りたいものが何なのかが重要なのだ。
GoogleAppScriptやExcel・Accessを使ってのVBAですむものも多い。
WebサイトだってWixでいいかもしれないし、ブログだってWordpressなんか使わなくてもnoteの方が決済機能も付いているしいいかもしれない。
おそらく大半の人がプログラミングをやる理由は「流行っている」からなのだと思う。
AIで仕事が奪われる、プログラミング覚えてフリーランスになって月収100万、ソシャゲで一発当てて売却して億万長者。
などを考えている人も多いかもしれない。
私はこれらの傾向も悪いことだと思わないが、学び続けるのは辛いと思うし本当にプログラミングを生業としている人と同じフィールドで戦うことも厳しいと思う。
プログラミングを始めることの目的をもう一度考え直しても良いかもしれない。
多くのプログラミング初学者がProgateやドットインストール、入門書やプログラミングスクールで学ぶのだと思う。
だがこれらでプログラムを書く作業は覚えられる、ある程度どのような動きをするのかは覚えられると思う。
だが次の段階では「何を作りたいか」が求められるようになる。
「何を作りたいか」これが答えられない、悩む人はもともとプログラミングを始める目的がなく、プログラミングを覚えることが目的になっていた人だ。
前述の通りそのような人は多いのだと思う。
ここで大体の人が好きなものは何か、趣味が何か、あったらいいと思うサービスは何かといった事から想像するが、何もアイディアが浮かばずつまづく人も多い。
結果として、twitterっぽいアプリや画像の投稿ができるアプリ、電卓やストップウォッチなどが出来上がる。
できたときの喜びもあまり得られない人が多いと思う。
本来はやりたいことがあってそれを実現するためにプログラミングが必要である事を忘れているとこういったことになる。
こういった人にまずお勧めしたいのが、一旦プログラミングという作業から離れる事だ。
プログラミングから離れて作りたいものを見つける作業を先にやる。
作りたいものを見つける方法のお勧めは自分のスマホにインストールしているアプリでこうなって欲しいものを見つける事だ。
例えば私の場合はこのようなものがある。
・noteの記事の見出しを3階層まで作りたい
・Reduce GOの加盟店をGoogleMapで表示したい
・Googleカレンダーで予定の場所を登録したら乗り過ごし防止のために1つ前の駅で通知して欲しい
・NewsPicksの検索で各国の政府が出しているデータ全てグラフで出力して欲しい
などがある。
こういった「こうして欲しい」という欲求を日頃からメモしておく習慣をつけておくのも良い。
やりたい事と考えるよりも「カスタマイズ欲求」みたいなイメージで考える方が良いと思う。
サービスを作りたい、アプリを作りたいというのは自分の部屋のインテリアをどのようなテイストにしようかワクワクしながら夢想する感覚に近いものだと思う。
ただ次の罠がある。
これらを作るときに流行っているただフレームワークや流行っている言語で作ろうとしないことだ。
大事なのはとにかく簡単で楽な方法で作るのだ。
GasやVBAで作れるならその方が良い、ウェブで公開したいならwixで作れないか、自分で作るより利用できるAPIがあれば使う。
そうしていく中で上記で採用した「簡単な楽な方法では実現できないカスタマイズ」をしたい欲求が出て来る。
それらが出てきたらかなりいい傾向であり、サービス、アプリ、システムを作る事に夢中になれている可能性が高い。
欲求の赴くままにカスタマイズを続けて行くことだ。
ただこの時も忘れてはならないのは、できるだけとにかく簡単で楽な方法を選び続ける事だ。
ただこのやり方をやってみたいという欲求があれば「とにかく簡単で楽な方法」でない手段を選んでみるのも良い。
プログラミングとはサンドボックス(砂遊び場)なのだ。
個人でやる分には欲求の赴くままに設計していい。
ホリエモンはとにかく遊べとよく言う。これには以下の3つ理由があると私は捉えている。
①娯楽産業はソフトウェア産業の様な最適化の勝負ではなく、多様な正解がある。つまりブルーオーシャンがなければ自分でオーシャン自体を作ることが可能。
②娯楽産業は不幸を減らすソリューションではなく、幸福を増やすソリューションのため、裕福な層を相手にでき利幅を取りやすい。
③遊びから熱中しそれが仕事になる事例が昨今増えている。
私はこれらにはプログラミングで作りたいものを見つけるためのヒントがあると思っている。
今回この記事で注目したいのが③だ。①②の説明は申し訳ないが一旦割愛する。
③について、これをホリエモンは素人革命とよく言っている。
Tiktokやshowroom、Youtubeでは無名な個人が動画を配信して広告料を得られる。
spoonや17liveでは投げ銭など得られる。
instagramのインフルエンサーがTVにでて、クラウドファンディングで資金を集めて起業する人も増えた。
この手の市場参加型のコミュニティはうまくいくとものすごい勢いがある。
オープンソースのコミュニティとやや似ている部分があり、消費者と生産者の垣根がなってきているのだ。
つまりサンドボックス(砂遊び場)での創作的な遊びはカスタマイズ欲求を生む。
カスタマイズ欲求があると上述したとおりにやりたいことが生まれる。
つまり創作的な遊びは好奇心や創作心を育てる有効な手段なのだ。
もちろん遊びにはただ受け身になって消費するだけの遊びもあるので、遊び方もある程度の考慮が必要だと思うが、それはまた別の記事で書く。
以上がプログラミングを勉強してもアプリやサービスが作れない理由の説明とその解決策になる。
創作的な遊びから派生したサービスやアプリなどの事例などもかければよかったが、またこの記事を更新するタイミングなどで盛り込んでいきたいと思う。