プログラミングの次のステップを目指す君たちへ

「プログラミングを学んでみたけど、何を作ったら良いか分からない。」 そんな質問を最近よく受ける。そのたびに僕は「何かアプリを作る。とか、競技プログラミングをする。とか・・・」という曖昧な答えをする。なぜ、曖昧な答えをするのか。それには一言で答えられない理由があるからだ。それを、ここに記したい。

はじめに

僕はここ数年、次に何を作ったらいいか。と迷うことはない。日々、アイデア・仮説が浮かんでくるからだ。しかしそんな僕も昔は、悩む彼らと同じ、もしくはそれ以上だった(3年くらい同じ悩みと向き合ってきた)。そのとき僕も同じように有識者に相談した。しかし、彼らの答えといえば「作りたいものを作ればいいじゃん」だった。「いや、その作りたいものがないんだよ!」とは言えず、路頭に迷っていた。

正直今も自分の人生を掛けるほど何か作りたいものがあるわけではない。しかし、小さなことだけれども、あれを試してみたいな。とか、プロトタイプを作ってみたいな。と日々思う。そう成れたのは主に2つの理由があると思う。

  • 技術の理解
  • 生き方の理解

それぞれについて少し考えてみたい。

技術の理解

今振り返ると、作りたいものがなかった頃は、技術の理解が足りていなかったと思う。その頃は、せいぜい様々なプログラミング言語の文法を理解しているレベルだった。しかし今は、コンピュータ技術の根本や背景を理解できている。また、コンピュータがやるべき仕事 も理解できている。特に大切なのは後者で、プログラミングができる。とか、プロトコルを知っている。ではなくて、コンピュータがやるべき仕事は何か、これからコンピュータをどのように使っていけば良いか。を理解することが大切であると思う。そのためには、表面的な知識・理解ではなく、技術の歴史・背景・考え方を学ぶ必要があるし、それらを理解するためには(堂々巡りのようだが)、表面的な知識の圧倒的理解が必要である。

例えば、僕はここ2年くらいはlive coding(メディア・アート)やそのツール開発をしている。その理由は主に以下のようである。

  1. プログラミングがシステム開発の道具だけになりつつある現代へのアンチテーゼ
  2. プログラミングを理解している人が、理解していない人へ自然言語で説明することが求められている現代へのアンチテーゼ
  3. コンピュータとアートがこれから結びついていく将来への展望

このように、細かな技術どうこうよりも、これからのコンピュータ技術のあり方、コンピュータってこんなことできるんだと!ということを考え・発信していきたいと思い活動していると、その情熱が枯渇しない限りはアイデアが止まることはない。

作りたいものがない。という人達に足りないのは、ビジョンだと思う。そしてビジョンを描けるようになるためには、それ相応の知識が必要である。アウトプットができないのは、インプットが足りないからである。だから焦らず、学び続けることを大切にして欲しい。

生き方への理解

悩んでいた当時の僕にもアイデアも少しはあったと思う。しかし、それを形にできなかったのは、時間をかけて上手くいかなったらどうしよう。とか、もう誰かがやっているよ。というもう一人の自分の声が聞こえてきたからだと思う。そんな当時の僕は、ポール・グレアム氏のエッセイが指南書だった。

今、何を、どうやってすればいいかって? まず興味の持てるプロジェクトを選ぶことだ。ある分量の資料を研究するとか、 何かを作ってみるとか、何かの問題の答えを見つけてみるとか。 ひと月以内で終わらせられるようなプロジェクトがいい。 そして、ちゃんと終わらせられる手段があるようなものにする。 少しは頑張らなくちゃならないようなものがいいけれど、ほんとうに少しだけでいい。 特に最初はね。もし二つのプロジェクトのどっちを選ぶか迷ったら、 面白そうな方を選ぼう。失敗したら、もう一方を始めればいいんだ。 これを繰り返す。そうすると次第に、ちょうど内燃機関みたいに、 このプロセスが自分で走り出すようになる。一つのプロジェクトが次の プロジェクトを生み出すようになるんだ。(そうなるまでには何年もかかるけれどね。)プロジェクトが君の将来目指すものにあまり関係なさそうだったとしても、 心配することはない。目指すものに到達する道っていうのは、君が思うより ずっと大きく曲がりくねるものなんだ。プロジェクトをやることで、道は伸びてゆくんだ。 一番大事なのは、わくわくして取り組むことだ。そうすれば経験から学ぶことができるからだ。

当時は理解できなったが、今では本当にその通りだと思う。現在は歳を取って、一ヶ月くらいあっという間に過ぎる。だから、やってもやらなくてもあっという間に過ぎるなら、やってみるかとなる。

また、アイデアの循環ができるようになってきた。何か作り始めたら、途中でアイデアが生まれ、次に作りたいものができるし、作り上げたものから話が広がり、別の仕事を受けることもある。

何かを作ったら終わりではなく、次に繋がるようになる。それは少し経験がないと理解できないと思うが、やり始めなければ永遠に理解できない。上手くいかなったらな。とか、時間を無駄にしてしまってはな。とか嫌なことが頭を過ることは分かる。しかし、実際失敗することはないし、今見えていない次のアイデアは絶対にある。だから、とりあえず手を動かしてみたい。これを人生の早い段階で気付けると後々楽になる。

まとめ

何を作ったらいいか分からない。は、技術者的理由と人間的理由があると思う。というのが僕の意見だ。

本当に今は楽しい。次々アイデアが浮かんでくる(そのためにそれ相応の努力をしているが、その話は別途としよう)。自分が昔憧れていた側に回れているいることは、とても不思議だし、とても自信になっている。今悩んでいる子たちも、自分でブレークスルーを作り、こちら側に来てくれることを願う。