孤独なおちんちん

かなり恥ずかしがり屋な30代独身男性の孤独なブログ(U)主に自己啓発系の書評や自分の人生について語ります(U)

手を動かして学べるプログラミング関連の本を6冊買ってきた。あと数学とプログラミングの勉強方法の事とか

広告

明日から3連休なのでプログラミング漬けの引きこもり生活をしようと思って参考書を何冊か買ってきました。

f:id:mowan:20161205151338j:plain

『JavaScript Web開発パーフェクトマスター』

『15時間でわかる JavaScript集中講座』

『独習JavaScript 第2版』

『アリスとボブのGit入門レッスン』

『スッキリわかる SQL 入門 ドリル215問付き!』

『反復学習ソフト付き 正規表現書き方ドリル』

 

なぜこの6冊を選んだかというと、全部これまでN予備校で学んできたものだし、全部ドリル形式になっていたからです。

つまりこれまで学んだ事を網羅的に手を動かしながら勉強できるから。

N予備校でプログラミングを勉強していて、手を動かす重要さがよくわかったので本を選ぶ際もそこを基準にしました。

JavaScriptの本が3冊あるのは、とにかくドリルの種類と量を増やしたかったからです。

動物の絵が描いてある本(オライリー本?)は読んでたら眠くなって3連休を無駄にしそうな気がしたので、また今度の機会にということで。

なぜ3連休にこんなことをしようと思ったかというと、この記事に影響されたからです。

www.webprofessional.jp

・プロジェクトに飛びつくのが早すぎる=罠

JavaScriptを学ぶ上で多い失敗のひとつに、どの概念が必要なのかを理解する基礎知識が十分にないままプロジェクトに飛びついてしまうことがある。自信喪失やあきらめにつながりやすい

 ・概念を先に学び、そのあとでプロジェクトに挑戦する

プロジェクトの罠に引っかからないように、先に概念を学んでから、その知識に基づいたミニプロジェクトを始める。こうすれば理解度や記憶力が高まり、勢いもついて進みが速くなる。作業に圧倒されてしまうことも少なくなる

・実社会同様に練習する

現実と同じように練習を重ねるほど、チュートリアルから卒業したときに困ることが少なくなる

たしかにN予備校のカリキュラムはこの通りに進行しているんですよね。

実際sifue先生も共感のツイートをしておりますし。

 逆に言えばN予備校のカリキュラムをきっちり繰り返し手を動かして学んでいれば十分な面もあるとは思うのですが、とりあえずせっかくの3連休なので合宿的に気分を変えることと、手数を増やすことを意識して、どこまでこなせるかはわかりませんが寝ないつもりでやってみようと思ってます。

元ネトゲ廃人として、何かを手に入れようとしたら金と時間を惜しまないことというネトゲ以外で何の役に立つのかわからなかった教訓をここで発揮しようと思います。

 

ちょっと話が関係ない方に飛びますが、このプログラミングの学習方法って、中高生が数学を身に付ける時に重要となるポイントに似ているなと思いました。

数学が伸び悩んでいる生徒さんは、前提となる概念をちゃんと理解する前に次々と先に進んでいってしまう事が多いです。

でもそれだと、直感的に概念がわかってしまう天才型の子じゃない限りはいずれ行き詰ることになります。

ひとつひとつの概念がわからないまま問題を進めていっても、その問題をパーツとして使う事になった時にわからなくなります。

どこでどう使うかわからないパーツは何の役にも立ちません。

これは数学とプログラミングに共通するところだなと。

プログラミングも油断していると、なんとなく書き方がわかったな、くらいで次に進んでいってしまいたくなります。

そもそもそのパーツがどういう意味を持っているのかを理解してから、実際の小さなプログラムを書いてみる。

小さいプログラムで実際に概念と動きを理解してから次に進む。

数学も、概念を理解したら工数が少ない問題を数パターン練習する。

慣れてきたらもう少し工数の多い問題パターンで練習する。

そうやって段々大きくしていけば本当の応用力が付いてくる。

 

あともうひとつ、

・実社会同様に練習する

現実と同じように練習を重ねるほど、チュートリアルから卒業したときに困ることが少なくなる

この部分も本当に数学学習とプログラミング学習の共通点だなと。

まあ正直今回僕が買ってきた本の中には環境構築をしなくても済むようにしてある本もあるのですが、そこはちゃんとN予備校で環境構築を済ませてあるので、それこそ「実社会同様」進めていこうと思っています。

N高校・N予備校は非常につまずく原因になる環境構築をすっ飛ばすことなく、きっちり時間をかけて学んでいきます。

そこを乗り越えた時の自信というか安心感はものすごいです。

だっていくら学んでも実際に環境構築ができなくて動かせなかったんじゃ何の役にも立たないし、プログラマーとして何の意味も無いですもんね。

これは数学の学習でも、というか受験勉強においても非常に大事なポイントになるんですが、勉強しているのに点数が伸びない、って言っている子の大半は過去問をちゃんとやっていないんですよね。

プログラミングでいう環境構築が実社会だとしたら、受験勉強の実社会は過去問になるんじゃないかなと。

実際に出てくる問題を無視して関係ない問題練習をいくら繰り返したってそりゃ効率悪いだろうと。

大学受験の場合、目指している大学の赤本を当たり前のように20年分くらいさかのぼって繰り返し解いている受験生もいれば、まったく赤本を開きもしない受験生もいます。

当然歴然とした差が開きます。

 

プログラミングでもこれができていなくて行き詰っていく人が多いんだろうなと。

初心者だからといって、最初の環境を整えるところで楽をしてしまうと後々行き詰ることになってしまう。

苦しくても現実に即した練習をすることが大事。

 

とかなんとか考えながら口だけにならないように今日の夜からプログラミング個人合宿を頑張ってみようという決意表明も兼ねてこのエントリーを書きましたとさ。

おわり。