質問: railsチュートリアルや他のrails使ってみよう的なサイトでツイッターのようなサイトを作っているんですが、 その内容はどの程度まで理解できていればいいのでしょうか? 一切何も見ないで同じようなサイトを作れたら? コードの細かい書き方はともかく、その構造が理解できたら? 理解することはだんだんできてきたのですが、「じゃrailsでオリジナルのサイト作ってみよう!」となるとなかなかできません。
回答: Railsに限らず何を持って「ゴール」と言えるかは難しいところです。プログラミングの世界ではやればやるほど多くのできていないことが見えてきて、その先はどんどん遠ざかっていくからです。一生掛けても最終地点などと言うものに達することはできないと思っています。 さて、そんなことは言っても何らかの指針というか、段階は必要かと思います。私は初心者と初心者から脱した人達についての違いは下記の2点だと思っています。 * 自分は何ができないかを知っている。そして、**それができるようになるためには何をすべきかも知っている。** 単に「まだ作れない」という話ではなく、「今はこの技術についての知識などが欠けているから、これは作れない。これを作るにはここら辺を勉強する必要がある」となっている事です。何かを作るために何をしたら良いのかわからないのが初心者であり、何をしたら良いのかわかっているのかが脱初心者だと思います。同じ「できない」状態でも、この違いは非常に大きいです。 * 自分が作りたいものを**独力で**作れる。 インターネットや書物、リファレンスなどを見ないで作れるという意味ではありません。試験では無いのですから、そういったものに頼ることはカンニングでも何でもありません。大切なのは人に頼ったり、教えて貰ったりせずに自分一人で成し遂げることです。私はこれが「一人前」の条件だと思っています。最初は誰かに教わる立場だとしても、やがて自立し、一人で問題に立ち向かう必要が出てきます。そのとき、それをクリアできるかどうかが重要です。だからこそ独力で何かを作れることは大事なことです。 また、ここで重要なのは自分が作りたいものを作れると言うことです。既存の何かを写経のように写して終わりのようなものでは意味がありません。すでに存在するのであればそれをそのまま使えば良いだけです。重要なのは、実現したいことを実現するには、何をしたら良いのかを自分で考えられるようになることです。 今の状態は、自分がどこまでできるのかわからない、かといって、後何をすればわからない、そんな五里霧中と言ったところだと思います。安心してください。**その霧は永遠に晴れることをありません。**いつまでもちょっと先しか見えない霧の中を彷徨うしか無いのです。ただ、自分の足下は見えているはずです。まずは、今自分は何ができるのかを自問してください。そうすると、自然と、逆に何ができないか、そのできないことをするには何が足りないかが見えてきます。あとはその足りないところを補強していけば、自然と自分が作りたいものも作れるようになると思います。 もし、そういったものが見えてないのであれば、足下すらよく見えてないというのであれば、単に知識を詰め込んでいるだけ、理解しているつもりになっているだけかも知れません。もう一度自分自身を見直してみてください。単に教科書を読んでいただけ、チュートリアルを写していただけでは無いですか?ひとつひとつについて、今何をしているのか、なぜそうするのか、そういったことを考えながらしなければ、何も身に付くことはありません。 なお、「○○まで覚えたらOK」とか「○○まで理解したらOK」と思っている内は何も作れるようになりません。きっと知らない何かにぶつかって、そこで止まってしまいます。必要なのは壁を乗り越えるための手段自体では無く、その手段をどうやって得られるかを掴めるようになることです。