1年半の文系卒エンジニアが効果があったと感じた学習習慣
文系卒エンジニア1年半です。独学でいろいろ難しかったりしましたが、振り返ってみてやってよかったなと思った事です。フェーズごとにあった学習方法は変わっていくので比較的初期の人のためのまとめです。
1.簡単な事から理解する
難しい設計に見えていた事も、超基本的なメソッドの10個くらいの組み合わせだったりします。10個が無意識で使えるくらいになってからまた見ると、複雑に見えていた事も簡単に見えるようになります。「自分は難しい事を読み解いて理解したすごい」という感覚になっていたら多分遠回りしています。
2.片っ端から理解する
最初は目的に必要な事から逆算して理解しようとしていましたがうまくいきませんでした。理由は、圧倒的に常識がないからです。例えば、集合論を理解しようとするときに、代数学は関係ないからと言って足し算を知らなくていいかというと、そんなことありません。足し算は直接関係ないですが、足し算や引き算の概念がないと話になりません。学習して1年くらいはずっと足し算引き算すらわからないような状態です。どう役立つかは見えなくても、ほとんどが最低限必要な知識なので、片っ端から理解していけばいいと思います。ただし、優先順位は,1の簡単な事から。
3.公式リファレンスを読む
できるだけ公式リファレンスにあたりましょう。gemの使い方、メソッドの使い方、ツールの使い方など、ありとあらゆる事でです。公式リファレンスには、「なぜそうなのか」など、体系的な説明とともにプログラムが書いてあります。Tips的なものをググっているだけではその辺の知識が積み重なりません。そしてググった知識は体系に組み込まれない無いのですぐ頭からこぼれ落ちていきます。リファレンスは慣れるまでつらいですが「リファレンスを読める」のも身につけるべき技能です。慣れるまで根気づよく読んでいきましょう。
4.書き写す、書き換える、自分で書く
必ず調べたメソッドなどは自分でも書いて動かしてみます。ただし、書き写すときの注意点は、「自分で考えている」感覚を感じながら書く事です。思考停止で書き写しても学習効率は悪いので、書き換えたり、自分で思考プロセスをたどりながら書くとよいです。何度も何度も書き直しているとスラスラかけるようになります。
5.タイポに注意する
プログラミングで一番時間を無駄に消費するのがバグです。(プログラミング作業を録画して計測すると、6割くらいバグに費やしていたりしました。)。そして意外と見つからず厄介なバグの原因がスペルミス(IDEだと発見してくれますが)。思考と関係ないミスのタイポで時間を失うのは非常にもったいないです。タイポを減らすには、指をばたばた動かさず最小限に動かす、ホームポジションを意識するなどを心がけるといいでしょう。
逆にやらない方がいいこと
1.MSDNのリファレンスを読み込む
リファレンスを読み込んだ方がいいといいましたが、マイクロソフトのMSDNは読むのが難しすぎました。体系が複雑すぎる気がします。自分はあのリファレンスでけっこう時間浪費したので、ああ普通に読めるなってタイミングで読めばいいのかなと思います。
2.ゲーム
やめましょう。はまって後悔しました。時間と金返せパズ○ラ。
3.知識習得すべきか悩む
「この知識いるのかな?効率悪くないかな?」そんなよくある悩み。悩みたくなる誘惑と戦い続けましょう。判断すらできないひよっこのうちは足りない知識だらけ。とっとと習得してしまいましょう。悩んで何もせず時間浪費するより、知識を習得してから後で不要だったとわかった方がずっと成長しています。そして、応用の効かない知識などほぼないので安心してください。コネクティングドッツ。
総評
まとめると、簡単な事から体系的に理解して慣れるを大量にってことですかね。