プログラムの上達方法? | 熱脳しゃちょのブログ

熱脳しゃちょのブログ

おせっかい焼SE兼プログラマ兼……の辛い日々と、思う事なぞ

中学卒業しているなら、数学はやったはずだけど、どんな勉強法をした?

公式を覚えて、当てはめて、答えを出す反復練習を延々とくりかえした?

その勉強、今役に立ってる?

 

OJTでプログラマになった技術者にも多い「ググって当てはまりそうなソース見つけてコピペして」ってのを延々と繰り返していると、その時はしのげても、長い目で見たらモノにならないです。

実は、数学も、プログラムも上達方法は同じ。

というかプログラミングに限らず、どんな「問題/課題解決」も、数学の勉強方法と同じ。

 

「他の方法はないか?」

 

と考えること。

一つ目の解法で満足しないこと。

 

他の方法を考えられるかどうかは、その問題自体をちゃんと理解できていなければならないという「問題把握能力」と、どう解くかの「問題分解/解法構築能力」にかかってきて、この三つの能力こそが、プログラミング能力に他ならないから。

もちろん、問題を把握したり、分解したり、解法を考えたりするには、その「場(例えばインターネットとか、Bluetoothとか、ステッピングモーターとか)」の基本知識は当然必要だけど、それを知ってるだけだとただの電子辞書とかクイズ王とかと変わらないので。

 

ググルカスは、それっぽい単語で検索して、出てきたページに載ってるソースからそれっぽいのをコピペして動かして、なんとなく行けそう、で誤魔化し続けるけど、そう遠くなく限界が来るからね。

見様見真似でアーキテクトやって、負荷が高くなる時に限って障害を発生させるサービス作って迷惑かけまくって逃げ出すのがオチっすわ。

 

まぁ、「問題把握能力」とかはある程度訓練すれば身に付くけど、確実に身につくというものでもない。

100m10秒以内で走れることという制限がある仕事、みたいなものなので。

走れない人は走れません。

でも、世界で数人しか無理、というものでもない。