ウェブやスマホなどのアプリを作っていると、ユーザーからのフィードバックを受けます。自分が作ったものが誰かのためになったり、誰かを楽しませたということがわかることほど嬉しいことはありません。一方、自分のために作ったものについては、「この経験によって勉強になった」という実感を持てない限り、なかなかモチベーションが上がらないかもしれません。

学ぶことを目的に作る

150331build_to_learn002.jpg

小規模で特に発表の予定もない個人レベルのプロジェクトを企画するのは、勉強やスキルの幅を広げるとても良い方法です。読書や理論からではなく、実際に手を動かして新しい物を構築する学習は、より感覚的であり、それまで得た知識を実用化することにつながります。Richard Branson氏は次のように言っています。

いったんルールは忘れて、直接経験から学んでください。「正しい」とされる方法を机上で学ぶのではなく、自分なりに試行錯誤して学習した方が、ずっと多くのものを得ることができます。

たとえば、あなたが新しいテクノロジーを試してみたいとします。最新のツールを手に入ったばかりかもしれませんし、新しいプログラミング言語に興味を引かれているかもしれません。そこで、現実の世界を実験室として、小さなプロジェクトを立ち上げます。小規模なだけに簡単に始められますし、自分の時間の大半を実地で学ぶことに使えます。

このレベルの専門性を持ちながら新しいテクノロジーで「遊ぶ」ことができるのは、初心者には味わえない贅沢です。何であれ自分の専門分野で経験豊富なクリエイターであるなら、新たな領域を開拓したり疑問に答えたり自分のスキルを向上させるのに役立つ小さなプロジェクトを企画立案するスキルを、すでに持ち合わせているはずです。

教育者や心理学者は、実践による学習「体験学習」と呼んでいます。1984年に、心理学者のDavid Kolb氏は4つ段階がある体験学習論を展開させました。

150331build_to_learn003.jpg

よりシンプルに説明するなら、体験学習の4つの段階は次のように進みます。

1.具体的体験:まず、何か新しいことを体験する。

2.考察的観察:体験したことについてじっくり考察する。

3.抽象的概念化:考察したことを既存の知識と結びつけて概念や理論にしていく。

4.積極的実験:最後にその概念や理論を別のプロジェクトに応用する。

ここで重要な点は、自分が将来考えつくアイデアの土台は、何かを実地で行った経験から発生しているということです。

David Smith氏は経験豊富なiOSディベロッパーですが、Apple社から出た新しいテクノロジーを試したい時は、「実践による学習」と呼ぶ、前述の方法に近いアプローチをしているそうです。

たとえばApple社が発表した新しいAPIについて、David氏が知りたい時は、その製品の説明書を熟読した上で、実験のための小さなプロジェクトを立ち上げます。そのプロセスによって彼が新しいテクノロジーを概念化することができるため、将来的には彼がユーザーに提供する製品を開発する下地となります。

練習するためにプロジェクトを作る

150331build_to_learn004.jpg

何かの分野の熟練度を本当に上げたいと思うなら、システマチックな練習が必要です。システマチックな練習とは、習熟する必要のあるスキルにフォーカスした練習を反復することです。

たとえば、ピアノの練習の際に、よく知っている曲を弾くよりも、音階練習をしたり、なかなか上手く弾けない小節だけを集中的に練習するのがシステマチックな練習に当たります。これは苦しいですし、退屈であることも多いのですが、この訓練を経てきたかどうかが、プロとアマチュアを分ける所でもあるのです。

私がiOS開発を学び始めた時点では、大きなプロジェクトを構築する上で、自分がとりわけ苦手としている細かい作業をどのように習得すればいいのかがわかりませんでしたが、自分が作っている製品の範囲で起きた問題を解決した後は、同じことが起きてもすぐに対応することができるようになりました。

しかし、学習した新しいスキルを計画的かつ定期的に実践したり、反復してテクニックを鍛錬する機会を持たないと、それに関する洞察力をあっという間に失ってしまいます。その結果、次に同じ問題が発生した時も、最初から全部やり直すはめになります。これに対する効果的な解決策は、自分個人のための小規模かつ難易度の高いプロジェクトをいくつも立ち上げることです。

最近私はリストビューを使う小さなプロジェクトを始めました。そのために、リストのレイアウトを作り、自分が望むような外観のリストを作る練習をいくらか余分にすることになりました(また、余分な練習は私にとって必要なことでした)。

150331build_to_learn005.jpg

まだ私はこれを使って練習する必要があります。ですから、いくつか小さなプロジェクトを作ることで、さまざまなデータを使ったり、細かいバリエーションをつけたリストビューのレイアウト作成の練習を1週間ぐらい続けようかと思います。

もう1つ私が苦手なことは、フィクションを書くことです。練習の方法としては、短い物語をいくつか書いてみるのが良いと思います。それらを発表する必要はありませんが、自分にとって弱点となるスキルを強化する機会にすることができます。

ある物語は登場人物を設定する練習になり、別の物語は文章をわかりやすく書く練習にできます。また、別の物語は厳密にプロットに作り、ストーリー展開の紆余曲折を描く技術を習得する機会にできるかもしれません。

似たようなケースですが、Jennifer Dewalt氏も180日で180個のウェブサイトを立ち上げることで、「ゼロからコード化することを学ぶ」と題したプロジェクトを実践しています。彼女はHTMLしかない基本的なサイトと基本的なCSSの構築から始めて、JavaScriptとRuby on Railsを学び、ゲームと計算機をプログラムしました。Jennifer氏が180日で立ち上げた180個のウェブサイトの1つがこちらです。

150331build_to_learn006.jpg

Jennifer氏はGitHub上で自分のコードをすべてシェアしていますが、先ほどから私が提案しているのと似たプロセスを踏んでいます。つまり、彼女はこのプロジェクトを練習のための機会として使っているのです。

自分だけのために作る

150331build_to_learn007.jpg

実験的なプロジェクトが1つの立派な仕事として公表されることになれば誇らしい気持ちになるかもしれません。しかし、こういった類いの仕事の持つ自由な性質は誰に見せるつもりもないという前提のもとに成り立っている所が多少なりともあるのです。

Jennifer氏は自身のサイトで、「自分が学んだプロジェクトを全部GitHubに載せることはできない」と言っています。

自分のミスや誤解を全部公表するのは恐ろしいことです。

私は自分の仕事を人と共有することには賛成ですが、仕事や実験は学びとは別物です。今自分が着手していることが他人に見られることを知ると、誰でもある程度は必然的な不安を感じるものです。しかし、自分だけのために何かを作るとなれば、そういった心配は一切なくなります。

最初のうちは、自分の仕事を非公開のままにするつもりで始めてください。人にどう思われるかを心配したり、自分が作ろうとしているもので富や名声を築けるかといったことは考えずに、ただ自分に実験をさせてみてください。自分の技や学習、目指しているゴールにひたすら集中しましょう。

これは驚くほど控えめなことですが、ネット上で「いいね!」をもらうことや、他人のフィルターを通して自分自身やその仕事を評価することに慣れきった今の時代だからこそ、自分のためだけに仕事をすることで、根本的に物の見方を変えることができるかもしれません。

自分のスキルを向上させるられないことへの言い訳するのは簡単です。たとえば、「確かにもっとライターとしてのスキルを磨くべきだけど、大変だし時間がかかるし、すごく忙しいから無理」という具合に。

ところが、それに甘んじることで私たちのスキルはアップデートの機会を失い、いつしか古臭くて時代遅れなものになってしまいます。意識的に努力をして新しいことを学び、技を磨いていかなくてはいけないことは誰もがわかっていることです。

さあ、するべきことはもう提案しました。実行に移すかどうかはあなた次第です!

Belle Beth Cooper(原文/訳:春野ユリ)

Title image adapted from MPFphotography (Shutterstock) and geralt (Pixabay). Additional photos by shinealight, hackNY.org, mpclemens (Flickr).