独学でプログラミングできるようになるためにやったことは、教えてもらうことではない
@nabeemichi です。
プログラミングなんて基本的に習ったことないけど、 フリーランスで週3日ほど働けば、とりあえずご飯を食べれて普通に暮らせるくらいにはなった僕は、 今でも独学でプログラミング勉強したり、プロダクト作ったりしてます。
最近独学で勉強してることは、プログラミング系だとVue.jsとかNuxtjsあたりです。
誰に教えてもらってないけど、Google先生がいれば動くものは普通に作れますね。
趣味系だとファミリーキャンプなるものを始めたので、こちらも独学中。ソロは問題ないけど、ファミリーってなると考えることが変わってくるわけですね。
僕がプログラミングを独学で勉強できるようになるために鍛えたのは、プログラミングにかかわらず、他のことでもそうだと思うが、当たり前のことを当たり前にするってことです。
プログラミングを教えてもらってもできるようにはならんのです。
当たり前ってのはどうゆうことかというと、まずは
ゴールを設定すること
なわけです。行き先わからないのに走り出したって、前進してるのか後退してるのかわからんのです。
だって、ゴールがないからね。どっちに進んでも前進しているか?の判断基準がないのですからね。
なーに普通のことを言ってんだよ!って感じですが、これできるやつ少ないんですよ。
ゴール知らないのにいきなりコーディングするやついますからね!ちょちょちょ!何するか理解してんの? って聞いて初めて考える始めるやつとかいますから。ペアプロとかして新人を見てきた結果、これするやつ多いから。
プログラミングに特価して書くと、「画面で入力されたデータをデータベースにインサートする」みたいなことを具体的に文字に起こせるようになるってことです。なぜこれをするのかまで文字に起こすことができるようにならないと、何していいのかわからず、目的地を把握しないままコーディングし始めて、結局何も動かないものを作ったりするのです。
現状を把握すること
自分のレベルを把握することですね。
何を理解していて、何を理解できてないのか?
自分の武器として使えるのは何なのか?を把握するのです。
例えば、Javaはできるしデータベースって単語と役割は人に説明できる。
だから、データベースにデータをインサートする事もできるし、サーバサイドの実装もできる!
っていう自分の今できることを把握するのです。
多分大丈夫っしょ!ってことじゃなく。
ゴールと現状のキャップを洗い出すこと
ゴールを設定して、現状を把握すると、あとはゴールを達成するために必要なものを洗い出すだけです。
洗い出したら、それをできるようになればいいだけなんです。
今の僕のゴールは「画面で入力されたデータをデータベースにインサートする」ってことだから、僕の武器として足りないものは画面からのデータの受け渡し方法なんだよな。
ここまでくると、Google先生への質問の仕方は具体的になります。
具体的なわからないことがわかると検索単語も具体化する。そうすると検索がヒットしやすくなる。
検索してヒットすると、どんどん知識がつながってきて、ゴールに近づいていく。
ここまでくれば独学で新しい技術もキャッチアップできるようになってくるのではないでしょうか?
まとめ
独学でプログラミングする力がほしいなら、有名な先生やいろいろ教えてくれる人に教わるのはなく、
- ゴールを明確化する
- 現状の把握
- ゴールと現状のギャップを洗い出す
- ギャップを埋める
ということを正確に一人でできる訓練をしたほうがいいと思う。こんなこと教えてくれるプログラミングスクールがあるなら行ってもいいと思うが、 あるんかね?