![見出し画像](https://assets.st-note.com/production/uploads/images/6332971/rectangle_large_73c0436000a7c444165b7fbf42564f66.jpg?width=1200)
車輪を再発明してみませんか?
ソフトウェアの世界ではよく、「車輪を再発明」(“Don’t reinvent the wheel.”)するな、って言葉を耳にします。車輪のように昔からあるものはとっくの昔に発明され、何度もの改良を経て最適化されているので、同じことを再発明せずに人の作ったコードを利用しようというわけです。
これ、もちろんソフトウェアだけではなく、どんなことにも当てはまります。僕ら銘銘が今更ゼロからスピーカーとか自転車とか、はたまたラーメンの作り方とかを再発明してもしょうがないわけです。どれもこれもすでに製品化されていて簡単に買えるか、食べ物ならレシピがそこいらじゅうに転がっているわけです。
ですから何でもかんでも再発明するのはアホウのすることです。
しかしですね、時には一度苦労してゼロから再発明してみると、仕組みがよくわかって非常に勉強になる、ってことがよくあるんです。特にソフトウェアの世界ではこの傾向が顕著です。こう思っていたらタイムリーにマナブ@バンコク(@manabubannai)さんからこんなツィートが流れてきました。
昨今はネット上にあまりにもテンプレートやサンプルコードが落ちてますし、ライブラリやフレームワークなども充実していますので、なんかよくわからなくても切り貼りしてそれなりに動くもの作れちゃうんです。
しかしそうすると、中身はブラックボックスのままでよく分からないってことになりがちです。拾ってきたテンプレやコードを自力で直そうとしても、何が何だかさっぱり分からなくてそこで止まってしまうなんてことがよくあります。
これではいつになっても自分の意図したものが作れるようになりません。組み立て家具なら作れるけど、板切れから家具が作れないようなものです。組み立て家具が悪いわけじゃありませんが、自分や顧客のニーズにぴったりとあったものを作れるようになりたかったら、一度板切れから自力で全部作ってみると、非常にたくさんの学びがあります。
ゼロから自分で作ってみる
では何か実際にゼロから作ってみるとします。そんな時にはなるべくシンプルで、最少限度のことができるものを始めてトライしてみましょう。木工を覚えたいからと言って最初から家を建てる必要はありません。やっぱり椅子やテーブルくらいから始めるのがポイントです。(なお、プログラミングではなくて木工を覚えたい人は、最初は屋外で使うものを作ることをオススメします。素人の手作り家具は、室内使用に耐える見た目に仕上がらないことが多いからです。)
例えば写真をシェアするサイトを作る、とかそのくらいの簡単なことから始めてみるといいと思うんです。この時にどっかに落ちてるテンプレやライブラリの使用は避け、全部自分で手打ちして書いてみます。それだけでもhtml, css, javascript, MySQL, Ruby/Python/PHP あたりの最小限度必要なスキルがなんとなく身につきます。
一度出来上がったら今度はちょっとコメントを付ける機能を足すとか、見た目を少し良くするとかやってみます。あるいはスマホ向けに最適化してみるとか。1ヶ月くらいはすぐに吹っ飛ぶと思いますが、学校でちんたら3ヶ月なら習うくらいの知識はすぐにつきます。しかも、1000パーセント自分のものになっています。足りないところが見えてきたら、そこだけオンラインのクラスなどをとって埋めてもいいでしょう。あるいは自分の一歩先を行く経験者に聞いてみるのも有効な手段です。
なお、これはプログラミングに限らずなんだってそうです。
料理なんかもいつもレシピ通りではなく、自分で考えて作ってみると学びが大きいものです。「なんか違うな?」と思ってから、料理の上手い人に聞いたり、ググってみたりすると、ちょっとしたコツやテクが腑に落ちますし、改めて基本の大切さもわかるものです。
ギターなんかも同じです。タブ譜見て弾いてると、弾けたような気分にはなれますが、いつになってもアドリブで弾けるようになりません。自分なりに試行錯誤しないと、本質的な部分はどうにも身につかないものなのです。
英語は実に役に立つツールです
さて、いくら自分でゼロから始めると言っても、適切な情報がなければ始まりません。こんな時に役立つのが入門書とネットです。入門書はまさしく「入門書」ですから、最初にどうしても必要な「いろは」がうまくまとまっています。あまりにもド素人なうちは、一体何を調べていいのかすらわからなかったりしますから、最初の第一歩は入門書の活用をオススメします。
そしてベーシックな知識がついたら、あとはネットで十二分です。それは分野を問わずで、音楽だろうがDIYだろうがプログラミングだろうが文章の書き方だろうが、なんでもかんでもネットで良質の情報が手に入ります。
さらに、英語ができると情報の質と量が著しく上がります。特にプログラミングはこの傾向が凄まじく、英語とプログラミングは切っても切り離せないくらい関係にあります。再び前述のマナブ@バンコクさんのツィート。
これには同意しかできません。英語でググれば大抵のことが解決すると言っていいくらい有益な情報が瞬時に手に入ります。以前、「エンジニアこそ英語を身につけて海外に行こう!」という記事を書いたことがありますが、まさしくその通りなのです。
「英語」というと腰が引ける方も多いかもしれませんが、英語で検索し、検索結果を読んで理解できればいいだけなので、流暢に喋れるようになる必要もありません。早く読めること。内容が正確に理解できること。これだけです。それからさらに書いて質問ができれば鬼に金棒ですね。フォーラムなどで質問できると、情報収集力がさらにアップするからです。
それから、英語ができるとアメリカの大学とかがオファーしているオンラインクラスなども受講できるようになります。また、無料でプログラミングが学べるWebサービスも存在します。
この方、こうしたサービスを利用してカナダで就職を果たしてしまったんですねえ。これが英語の威力です。そしてもちろん、本人の努力の賜物ですが。これこそが21世紀の学びの姿でしょう。
車輪を再発明してみよう!
去年、世界最長老のアプリ開発者、若宮正子さんが82歳でアプリをリリースして大きな話題になりましたが、彼女も80歳過ぎてから何度も車輪を再発明し、ついにはアプリのリリースに漕ぎ着けました。おまけに国連の舞台で、英語でスピーチまでしています。TEDにも登壇しています。本当にすごいですねえ。
そんなわけで車輪の再発明、チャレンジしてみませんか?
流した汗はウソをつきません。
PS1:英語をがっつりと学んでみたい方は、僕がやっている Brighture English Academyまでぜひどうぞ。オンラインでもセブ校と全く同じ授業が受けられます。無料体験レッスンも受けられますので、ぜひお気軽にどうぞ!
もしこの記事を気に入っていただけましたら、サポートしていただけると嬉しいです!