プログラミングスキルを向上させるための3ステップです。
私自身が実践していることであり、向上を実感している方法です。
写経
本をベースに写経します。
写し書きをして動いたらOKではなく、以下のような問いかけを常に頭に置きながら行います。
・なぜこの書き方で動くのか?
・本当にこの書き方が良いのか?
写経しても構築した環境の違いでエラーが発生したりするので、
最初は動くようにすることを最優先します。
次に、上記の問いを確かめるべく公式ドキュメントを見て確かめたり、
自分で少し書き方を変えてみて、同じ動作が保証されるかを確認したりしてみます。
改良
写経はすぐに飽きます。
簡単なものが多く、真似すれば大抵動いてしまうからです。
なので次にやることは、写経して学んだことを応用して、自分で何かを作ります。
例えば、for文を学んだのであれば、for文を使った事例を自分で何個か作って
実際に動かしてみます。
Javaで例を挙げるなら、String、Integerの配列で回してみる。
ArrayList、HashMap、HashSetで作ったオブジェクトでfor文を回してみる。
ArrayList、HashMap、HashSetをラップした独自オブジェクトで回してみる。
など。
一つ何かを覚えたら、他の応用方法が無いか探し、
どのように応用できるかを追求してみます。
教える
人に教えることでより深い理解を得ることができます。
教えるとき、自分の知識にあいまいな部分があると、「あれ?どうするんだっけ?」となります。
そのとき、自分で詳しく調べなおしたり、
相手がわかるように更に詳細化してあげたりすることで理解が深まります。
私はJava研修の担当者を経験したことがあります。
元々はPHPerで、Javaは独学で数か月学んだだけで実務経験が無い状態でした。
なので基本的なことでも調べながら教えていましたが、結果的に私自身がより詳しくなりました。
今はこのブログを執筆したり、以前の会社の後輩にプライベートで教えたりしています。
まとめ
・写経は、スキルを身に着けるきっかけ。
ただし、「なぜ?」という問いは持ち続けることが大事です。
・改良は、応用力を身に着けるよい方法です。
自分で調べてより良いコードを書く習慣を持つことが成長につながります。
・教えるのは、より理解を深めるきっかけ。
教えることで自らがより学ぶことにつながります。