プログラミングスクールのブートキャンプに通い始めて早くも1ヶ月が経過しました。
最初の週は頭から湯気が出て大変でしたが、徐々に慣れ始めていいリズムになってきました。
1ヶ月経過して学んだことをざっとまとめると
・JavaScript
node, knex, Express
・HTML,CSS
・ベンチプレス55kg
(一応こっちのブートキャンプの経過も入れときます)
こんな感じでした。
このへんの全てを使って、ファンシーTodoリストを作れるようになりました。
課題のタイトルがファンシーtodoリストを作ろうというもので、見た目は全然ファンシーではありませんが。
とまぁこんな感じで、1ヶ月が経過したわけですが、ある事に気付きました。
それは
「プログラミングの勉強って、英語の勉強と似ているなぁ」ということです。
まぁ学習って観点で言えば、そりゃそうだろって話にはなるんですが、ほんとにシンクロする点が多いので、3点紹介したいと思います。
基礎がしっかりできれば、大体のことにビビらなくなる
英語の勉強してるとよく言うじゃないですか
「中学英語がしっかりしていれば、海外でもある程度戦える」って。
これって結構正しいと思うんですよね。
簡単な言い回しでも、使いこなせればある程度はネイティブとも問題なく会話できますし。
(その次のレベルに行くには、中学英語じゃ足りないと思いますが)
けど、実際に英語の勉強をすると、基礎の中学英語を疎かにして、海外ドラマに挑戦!とかしちゃうんですよね。
僕も完全にそうでした。
で、ネイティブと会話してみて、超簡単な言い回しも出てこなくて、かなりへこむというオチです。
結局、簡単な言い回しをどれだけ反射的に使えるようにできるかということが重要かなと思います。
これができるようになると、英語のミーティングとかがあっても、あまりビビらなくなりますね。
この「基礎が一番大切理論」はプログラミングも全く同じだなと思うんですよ。
今まで独学でいろんな教材にチャレンジしては、挫折を繰り返して来ました。
挫折ポイントは、大体少し複雑な問題を解くときに、「あぁこれは難しすぎるから無理だ」と最初から諦めてしまうところでした。
ただ問題は、シンプルに基礎が全くできていないのに、複雑な問題に取り掛かっていたことだと言う事に気付いちゃいました。
ブートキャンプが始まってすぐは、JavaScriptの基礎をこれでもかというほど繰り返して、いろんな問題をときました。
そして徐々に難易度があがって、今までの僕であれば問題をみた時点でお手上げ!というレベルになって来た際に、普通に解けるようになっている事に気付いたんですね。
しかも解き方は複雑な方法ではなくて、一つづつ基本的な構文で解いて行くという方法で。
結局基本的にやり方がしっかり体に染み付いて入れば、複雑な問題でも時間をかければ解けるということがわかったのは大きな収穫です。
基礎的な方法を詰め込んでいるので、長々しいコードになってしまっていますが、ここは英語同様に、今後プロのやり方に近い方法を身につけていければいいのかなと思います。
ということで、まずは基礎をおろそかにしないということが非常に大切ということでした。
実戦で使わないと本当の力はわからない
英語の単語とか文法をどんなに勉強しても、実際にネイティブと会話したり、英語で仕事をしたりする場面で、ちゃんと使いこなせないと意味ないじゃないですか。
また実際に使ってみて、初めて「あぁまだまだネイティブのスピードには慣れが必要だな」とかの気づきが生まれると思うんですね。
これ、プログラミングの学習も全く同じだなと思いました。
今まで独学で散々いろんなことを勉強してきたんですけど、結局それを使ってなにか作ってみようとかっていうのはしてこなかったんですね。
プログラミングってそれを使って、なにかを生み出す為のものなのに、その方法だけずっと学んでいたという事です。
なんとも残念ですね。はい。
ブートキャンプでは、毎週末今まで習ったこれを使って、こんなものを作って来てくださいいう課題が出されます。
実際にものを作ってみると、ただただ一つの処理を行う問題と違って、多くのことを考えさせられる事になり、頭を使う事になります。
またこれにより、自分がいまどの部分をもっと勉強しなくてはいけないのかに、嫌でも気づかされることになります。
結局、単純な練習問題をずっとやって勉強した気になっていても、実戦で使えるようになっているかを試すには、実戦で試すしないというですね。
継続しないと全く意味ない
英語の会話は、継続的に使っていないと、簡単な表現でもすぐに出てこないことがあります。
プログラミングも同様で、独学を行なっていたときに、忙しいという理由で少し時間をあけていただけで、簡単なことが全くできなくなっていることがありました。
結局、また同じ勉強を繰り返すという負の連鎖が続いていました。
ブートキャンプが始まりこの1ヶ月は週末も含めて毎日何かしらコードを書いています。
そうなると、徐々に反射的に解決方法が思いついたりするので、継続は力なりを体感しています。
とりあえずブートキャンプ期間の3ヶ月はGithubのカレンダーに毎日印をつけたいなと思っています。
以上です。
コメント
メンターに聞いたら、プログラムはほとんどGoogleの検索能力で決まるらしい。笑
英語の文献読み込めなくてツライ
それ本当によく言うよね。
Qiitaで大体答え乗ってるんじゃない?笑
カナダ人も検索してるのか。あんか安心したわ。ってかgoogleの天下やな