こんな事書いていいのかなぁ
ズバリ言うと、他人のプログラムを見たからです。少なくとも僕は、そこから始めました。
僕はPC上で動くプログラムしか書かないから、web系はよくわかんないんだけど、プログラムではあるので、似たような方法なんだと思って書いています。
会社で、何かプログラムを書けと言われて、一番手っ取り早いのが、似たようなプログラムをもってきて、それを改良するやり方です。ここで明暗を分けるのが、誰のプログラムを持ってくるかですね。社内のエンジニアを見渡して、一番できる人のプログラムを、まず、参考にします。ここで、いい人そうだからといって、ダメエンジニアのプログラムを読んではいけません。時間の無駄です。そして、まず、全体がどうなっているか把握します。処理ごとのまとまり(クラス、関数、変数、データ構造等々)を完全に理解します。入出力処理の方法とか、どんなライブラリを使っているのかとかも、とにかく全部隅から隅まで完全に理解します。次に、このプログラムを今の仕様に書き換えるにはどうするかを考えます。プログラムを読み込んでいれば、そのプログラムにふさわしいコードの書き方(流儀)があるので、それにのっとって書いていきます。こういう経験を積んでいくと、だんだんプログラムをコードじゃなくて、全体でとらえる事ができるようになっています。
次に、Githubとかネット上にあるプロジエクトのプログラムを読んでいきます。そうすると、こういう処理は、こう書くのかとか。こんな考え方があるのかとか、こういうライブラリがあるのかとか、社内のプログラムだけでは得られなかった事もわかってきます。参考になるなと思ったら、これらも、ありがたくコピーさせていただき、自分のプロジエクトで使わせていただきます。
ここまでくると、社内のプログラムであれば、そこそこ書けるようになってきていて、アルゴリズムそのものに目がいくようになります。こういう計算は、こういう方法でやると早いとか、計算誤差がどれくらい出るかとかが気になってきます。そうなってくると、根本原理がしりたくなって、数学の理論書とかアルゴリズム本を読み始めます。これらもありがたく、コピーして自分のプログラムで使わせていただきます。
デザインパターンとかも気になるでしょう。使えそうだと思ったらコピーして、自分のプロジエクトで使えるようにしようとするんですが、もはや、会社の仕事は定型業務をやっているだけと思って退屈になるかもしれません。
そして、OSSに参加しちゃう?的な悪いアイデアが浮かんでしまった人が毎年ブラックホールに引き寄せられて別な世界に消えてゆくのです。
0 コメント:
コメントを投稿