質問: プログラミングを学ぶ上で、上達するためのコツや、やっておくべきこと、学ぶ上ですべきでない、上達できなくなってしまうことを教えてください。 言語を問わない汎用的なやり方、プログラミング別でのコツ、気を付けるべき点、特にphp、javascript、C#関連でお願いします。
回答: > > プログラミングを学ぶ上で、上達するためのコツ > > > 「**分割統治**」と「**共通規格**(化)」でしょうか。 > > 「小さな作業に分けてしまえば、難しい仕事なんてとくにない」 > > (ヘンリー・フォード) > > > 自動車王の名言です。プログラミングやアルゴリズムの本質だと思います。 > > 上達できなくなってしまうこと > > > 上の逆で分割統治と共通規格化をしないこと。 「木を見て森を見ず」で、行き当たりばったりにやること。 「バッドノウハウよりグッドラッパー」の逆をやること。 あえて具体例は示しませんので、何がそうか探してみてください。 > > 特にphp、javascript、C#関連 > > > それら現代のメジャーな言語は、オブジェクト指向をサポートしてますね。 オブジェクト指向は責務の分散協調システムですが、 それもけっきょく、分割統治と共通規格化の一種だと思います。 たとえば、複雑なif文をポリモーフィズムに分解するのがそうです。 広く普及したオブジェクト指向言語も、最近流行の関数型言語も、 「手続き型」から「宣言型」へと向かう方向は共通してます。 これは機械語から高級言語へ向かう流れに沿っています。 分割統治と共通規格化を突き詰めると、宣言的な書き方に行き着きくのです。