プログラミング学習は作りたいものがないと飛躍的に難易度が上がる
プログラミング学習って作りたいものがないと飛躍的に難易度が上がりますよね。
これ2ちゃんねるを作ったひろゆきさんが動画の中で言ってたことなんですけど、まさにその通りだと思いました。
(その動画っていうのはこれ。5分くらいのところで出てくる話です)
これから書くことは十中八九動画の受け売りなんですが、さも自分が考えたかのように書こうと思いますw
===
プログラミングって、結局何を作るかじゃないですか。
僕はまさにこの方針で、とにかく手当たり次第に作ってきましたし、今でもそうです。
このことはブログで何回も書いてきたんですけど、学習の面でも「何かを作る」ってことは大事ですよね。
僕が最初に作ったのはビルメンネットってWebサービスで、これはPHPで作りました。
んで最近はUnityってゲームエンジンを使ってアプリを作ってるんですが、書いてる言語はC#です。
でも「じゃあPHPとC#どっちも出来るの?」と言われればそんなことありません。
習得度合いで言えば2割くらいじゃないですかね。
これ大げさでも何でもなくて、その言語を使って出来ること全てを10としたら、僕が知ってることは1~2だと思います。
ズバッと言い切りたいんですけど、プログラミング言語を完全にマスターするのは無理でしょう。
どんなにすごいプログラマでも、完全にマスターしてる人なんて、まずいないと思います。
完全にマスターしようとする行為って、英語辞典の端から端まで全て覚えようとするのに近いです。
これは相当に難易度高いし、普通は挫折しますよね。僕なら100パー挫折する自信がありますよ。
ただ、辞書を完璧に覚えるのは無理でも、例えばアメリカのレストランに入って食事をするのは簡単じゃないですか。
「ハロー」って挨拶して、「これください」って言って、「ごちそうさま」って言うだけですからね。
これ英語に限らず、どの言語でも簡単だと思います。
英語を覚えよう→英語辞典を完璧に丸暗記しよう
ではなく
アメリカのレストランで食事しよう→使う単語だけ覚えよう
こっちなんですよね。
プログラミングもまさに同じです。そのときどきで作りたいものがあって、そのために分からないことを調べるっていうのが健全な流れでしょう。
別に分からないことなんかあっていいんですよ。どうせググれば大体出てきますからw
この考えを持ってから、ようやくProgateを何周もしてる人の心理が分かったんですよ。
Progateってめっちゃいいサービスだし、入門に最適だとは思うんですが、そんなにやりこむことはないじゃないですか。
レベル100だか何だか知りませんけど、たまに何周もされてる方いるでしょう?
正直な話、ああいう方の心理が分からなかったんですよ。「なんで必要以上に繰り返すのかな?早く何か作ればいいのに」って思ってたんですが、ああいう方はあれなんですね。その言語をマスターしようとしてるんでしょう。
例題が出てきたときに、何も見ずにスラスラ書けることを目的とされてるんじゃないでしょうか?
それは無駄と言うかあれですよ。
全部コピペでOKです
一度出来るようになったらもうOK。あとはひたすらコピペしましょう。過去の資産をフル活用すればいいんです。
僕なんかまさにそれですからね。一度何かを作ったら、そのコードをガンガン流用しています。
多分、他の方々もそうですよね。すでに経験のあることをイチから書くなんて滅多に無いでしょう。
ユーザー登録画面作ったら、他のサービスでも使うわけですよ。
お問い合わせページ作ったら、それも流用するわけです。
何も見ずに書くのではなく、すでに書いたものをコピペ連打ですよ。
だからあれですね。漢字読むのって簡単ですけど、その漢字を書くのって難しいじゃないですか。
薔薇って字は読めても、これ書ける人なんてそうそういないでしょう。
プログラミングもそんなノリでいいと思うんですよ。読めればOK的な。
全部を覚えようとしてはダメです。完全マスターは基本無理ゲーですから。
そうではなく、そのときどきで作りたいものを先に考えて、分からないところだけ学習しましょう。
言語自体をマスターするのではなく、徐々に作れるものの幅を広げるって方が20倍いいでしょうね。健全です。
P.S.
「作りたいものが全くない」って人の気持ちも分かるんですよ。
僕はアプリ作り始めたときが、まさにそうでした。
「絶対に挫折しないアプリ開発」みたいな本を買ったわけですよ。
んで、さすがに分かりやすい内容で最後まで読めたんですが、そこから何を作ればいいのか分からなかったんですよ。
一応基本的なことは覚えた。AppleないしGoogleへの開発者登録の方法も載ってる。でもじゃあ何を作ればいいんだ?って状態になったんです。
本に書いてる内容があまりに基礎的すぎて、今の自分に何が作れるのか分からなかったんですよねw
「とりあえず楽しそうだからアプリやろ」ってノリで始めてたので、具体的に作りたいものはなかったわけですよ。
ただ、実際に作ることで飛躍的に理解が深まることは分かってたので、無理矢理探しました。
結果的にはドットインストールの「おみくじアプリを作ろう」とか、そういうのを見ながら適当に変えて作った覚えがあります。
本当に小さいものでいいんで、1個作ると次作りたいものが出てくるんですよ。もうそれの連続ですよね。
だから、作りたいものが全くない人は無理矢理でいいんで、簡単なものを作りましょう。
掲示板とか、ジャンケンアプリとか、そんなやつでしょうか。
それで1個完成すると、次のものが3個出てきます。
それで3個完成する頃には10個あるでしょうね。
その10個が完成する頃には30個あって、、、
まあ基礎的なことは俄然マスター出来てるわけですよw
最初は作りたいものがなくてもいいですが、最終的には作るループに入ることをおすすめします。