Going my way

いいなと思ったことをメモしていきます。

プログラムが書けるようになるということ。


Advertisements


プログラミング言語の習得は、スポーツの練習と似ている。

そのことに気付かずに、新人時代はひどく苦しんだ。

 

初め、僕はプログラミングの勉強を受験勉強的に捉えていた。

早く1冊の本を「こなす」ために、できるだけ書かずに読んで済まそうとしていた。

手を動かして中にあるサンプルコードを書くよりも、読んで次々と進めていったほうが、圧倒的に早かったからだ。

そのような学習では、マークシートの試験に対応はできても、実際にプログラムを書くことができるようにはならない。

山になるくらいの本を読んで、結局何も身につかなかった。

読んだだけの知識は、現場で全く役に立たなかったのである。

 

プログラミング言語は、頭で覚えるものではなく、手を動かして体で習得するものだと気付いたのは社会人2年目になってからだった。

僕はバスケットをやっているのだが、バスケがうまくなっていく過程ととてもよく似ている。

 

バスケのシュート練習をするときに、本だけ読んですます人はいない。

最初は手本を見る。もしくは、誰かに教えてもらう。

でも、見るだけですましはしない。

その後は、何度も何度もリングに向かってシュートを打つ。

一日500本以上、繰り返し繰り返しシュートを打った経験だけが、実践(試合)で活きてくるのだ。

そして、何度も何度も基礎を繰り返しているうちに、少しずつ応用できるようになってくるのである。

 

最初はレイアップシュートを身に付け、レイアップが完璧にできるようになったら、次はダブルクラッチをしてみようとか、

ちょっとスナップを効かせてディフェンスごしにループシュートを打ってみよう、と応用がきくようになってくるのだ。

 

そしてこの応用技術も、日々の練習で何度も繰り返しておかないと、試合では使えない。

本やビデオでプロの動きを見たからといって、自分で動いて練習することなしに、自信を持って試合で使うことはできないのだ。

 

これをプログラミングの学習に置き換えて考えてみる。

まず本でサンプルをを読む。これは、手本を見たり、人に教えてもらうことと同じだ。

僕は以前はここで終わっていた。「プログラミングでこんなことができる」という知識はあったけど、実際に何かを作れるようにはならなかった。

 

サンプルを読んで、真似をして、実際に手を動かして書いてみる。

これはバスケでいうと、実際のシュート練習をすることだ。

一度シュートを打っても身につかないように、何度も繰り返し手を動かして、サンプルを動かさなければならない。

「コンパイルして、プログラムを動かす」というのは、リングに入るシュートを打つことと同じだ。

 

そして、練習で身に付けた技術だけが試合で活きる。

つまり、現場(業務)で活きるということだ。

手を動かして技術を身に付けないと、評論家にしかなれない。

素人の観客がプロの試合にケチをつけることができるように、

自分でプログラムを書けなくても、評論することはできる。

SIerでは、プログラムが書けないのに、誰かが書いたコードに文句をつけるのが仕事になっている人がたくさんいるが、そのような人はこれから必要とされなくなるだろうと思っている。

僕は居酒屋でプロに文句をつける観客ではなく、プロのプレイヤーになりたい。

 

バスケの練習に近道がなかったように、プログラミングの学習にも近道はないに違いない。

愚直に手を動かして、小手先の知識偏重主義から抜けださなければならない。

地道に技術を身に付けて、世の中に貢献していきたい。