プログラムが書けるようになるということ。
Advertisements
プログラミング言語の習得は、スポーツの練習と似ている。
そのことに気付かずに、新人時代はひどく苦しんだ。
初め、僕はプログラミングの勉強を受験勉強的に捉えていた。
早く1冊の本を「こなす」ために、できるだけ書かずに読んで済まそうとしていた。
手を動かして中にあるサンプルコードを書くよりも、読んで次々と進めていったほうが、圧倒的に早かったからだ。
そのような学習では、マークシートの試験に対応はできても、実際にプログラムを書くことができるようにはならない。
山になるくらいの本を読んで、結局何も身につかなかった。
読んだだけの知識は、現場で全く役に立たなかったのである。
プログラミング言語は、頭で覚えるものではなく、手を動かして体で習得するものだと気付いたのは社会人2年目になってからだった。
僕はバスケットをやっているのだが、バスケがうまくなっていく過程ととてもよく似ている。
バスケのシュート練習をするときに、本だけ読んですます人はいない。
最初は手本を見る。もしくは、誰かに教えてもらう。
でも、見るだけですましはしない。
その後は、何度も何度もリングに向かってシュートを打つ。
一日500本以上、繰り返し繰り返しシュートを打った経験だけが、実践(試合)で活きてくるのだ。
そして、何度も何度も基礎を繰り返しているうちに、少しずつ応用できるようになってくるのである。
最初はレイアップシュートを身に付け、レイアップが完璧にできるようになったら、次はダブルクラッチをしてみようとか、
ちょっとスナップを効かせてディフェンスごしにループシュートを打ってみよう、と応用がきくようになってくるのだ。
そしてこの応用技術も、日々の練習で何度も繰り返しておかないと、試合では使えない。
本やビデオでプロの動きを見たからといって、自分で動いて練習することなしに、自信を持って試合で使うことはできないのだ。
これをプログラミングの学習に置き換えて考えてみる。
まず本でサンプルをを読む。これは、手本を見たり、人に教えてもらうことと同じだ。
僕は以前はここで終わっていた。「プログラミングでこんなことができる」という知識はあったけど、実際に何かを作れるようにはならなかった。
サンプルを読んで、真似をして、実際に手を動かして書いてみる。
これはバスケでいうと、実際のシュート練習をすることだ。
一度シュートを打っても身につかないように、何度も繰り返し手を動かして、サンプルを動かさなければならない。
「コンパイルして、プログラムを動かす」というのは、リングに入るシュートを打つことと同じだ。
そして、練習で身に付けた技術だけが試合で活きる。
つまり、現場(業務)で活きるということだ。
手を動かして技術を身に付けないと、評論家にしかなれない。
素人の観客がプロの試合にケチをつけることができるように、
自分でプログラムを書けなくても、評論することはできる。
SIerでは、プログラムが書けないのに、誰かが書いたコードに文句をつけるのが仕事になっている人がたくさんいるが、そのような人はこれから必要とされなくなるだろうと思っている。
僕は居酒屋でプロに文句をつける観客ではなく、プロのプレイヤーになりたい。
バスケの練習に近道がなかったように、プログラミングの学習にも近道はないに違いない。
愚直に手を動かして、小手先の知識偏重主義から抜けださなければならない。