ようこそ!浜村拓夫の世界へ

    ブログ内検索

    最近の記事

    ブックマーク数の多い記事

    Blog Translation

    Powered By FC2ブログ

    Powered By FC2ブログ
    ブログやるならFC2ブログ


    FC2ブログ LOGIN

    with Ajax Amazon

    プログラミング上達のコツ

    このエントリーを含むはてなブックマーク はてなブックマーク - プログラミング上達のコツ あとで読む
    コンピューターのプログラムを作るとき、思い通りのものをすぐに作ることができなくて、もどかしい。
    自己評価では、自分のプログラミングのスキルは低い。

    人生は有限だから、もっと早くプログラムを作れるようになりたい。
    死ぬまでに、いくつプログラムを作れるだろうか?

    ●先達に学ぶ
    人間の能力を高める秘訣は「称賛」にある。

    称賛力 - 浜村拓夫の世界

    称賛は、他人の長所を肯定することによって、その長所と同じ状態に向かう行動を起こすことができるようになる。



    プライドが高いと他者を称賛することができず、他人の長所を吸収することができない。
    プライドは、ヤカンのフタのようなものであり、フタをしたヤカンには水を注いでも入っていかない。
    ちっぽけなプライドは、何の役にも立たない。
    プライド=傲慢さを捨てて、他者の長所を称賛し、学び、吸収し、自己の成長の糧としよう。

    アイザック・ニュートン - Wikiquote

    私がさらに遠くを見ることができたとしたら、それはたんに私が巨人の肩に乗っていたからです。
    If I have been able to see further, it was only because I stood on the shoulders of giants.



    ●プログラミング上達のコツ
    プログラミングの上達のコツを、先達に学ぶ。
    Googleで「プログラミング 上達」等のキーワードで検索すると、いろいろなアドバイスが出てきた。
    自分に足りない点、課題を見つけたい。

    プログラミング上達のコツ

    ITエンジニアとしての道を究めるには(4)

    (1)プログラムの制御をとらえる前に、プログラムの構造をイメージせよ
    (2)プログラムとテストプログラムを同時に作成する
    (3)プログラムを書く際に、何通りかの書き方を考える
    (4)プログラムを書く際に、何通りかの書き方を考え、その長所・短所を比較し、最も適した方法を選ぶように心掛ける。これはかなり時間がかかるように思えるが、習慣付ければ上達する



    プログラミングがある程度上達したころには、プログラムの構造をイメージでとらえていた。それはオブジェクト指向言語を使う前、C言語やアセンブラを中心に開発していたころである。多少プログラミングが上達してからは、データ構造に深く興味を持ち、どう設計すればいいのかにこだわりを持つようになった。そのデータ構造にアクセスする関数を明確にした。データ構造を取り巻く関数グループを頭の中にイメージとして焼き付けたのである。

     オブジェクト指向言語を使うようになってから、このイメージはさらに強まることになった。現在では、プログラムを考えるとき、何らかの意味を持つオブジェクトらを頭の中に鮮明に焼き付けている。そのオブジェクト同士の間を、何らかのサービスを実現するため、メッセージが飛び交うというのが私のプログラムのイメージである。

     実際のデータや制御処理は、意味を持つオブジェクトの中に隠ぺいされ、必要なときだけ、オブジェクトの名前により連想されるのである。この方法で頭にイメージしたプログラムは、非常にシンプルであり、プログラムの実現すべき全体構造は意味のある概念(オブジェクト)の構造に細分化されており、その世界は非常に安定している。なぜなら、プログラムの実現すべき要件を、人が理解しやすい「意味のある概念の組み合わせ」で表現しており、それを頭の中で仮想的な現実として認めることができるからである。



    プログラムは、(1)「データ」と(2)「処理」という二つの構成要素から成っている。
    ・まず初めに「データ」ありき。データには、構造や型がある。
    ・次に「処理」が登場する。=処理は、関数やオブジェクトのメソッドである。

    プログラム(=データ+処理)の全体像をイメージして、細分化していくと。
    細分化の過程が、具体的な実装に近づいていくことでもある。
    このイメージトレーニングが足りないのかな?

    皆さんも、プログラムの制御にとらわれずに、プログラムの構造をイメージする訓練をしてみてはどうだろうか。そのための方法としては、下記のことを実践すれば効果が上がるだろう。

    * パソコンのキーボードから離れて、頭の中だけでプログラムをイメージする
    * 帰りの電車の中、お風呂の中などで、常にプログラムをオブジェクトの集まりとしてイメージし、その中をどのようにメッセージが流れるか考える
    * 頭の中でUMLを書き、それを実装し、動かす。UMLを清書するのは、ある程度ソフトウェア構造がしっかりしてきてからでいい。それまでは、UMLをイメージし実装して、改善するプロセスをできるだけ多く繰り返す。UMLで設計する際には、検証された設計を行うという意識を持つ
    * オブジェクトの名前は非常に重要。最も分かりやすい名前を付ける
    * 最もシンプルでかつ要求を満たすオブジェクト構造を作れるようにする



    OOPにこだわる必要はないと思うけれど、何通りも実装を考えて、最適解を考える訓練は必要だと思った。

    シャドープログラミングのススメ - 浜村拓夫の世界

    イメージの中でプログラミングを行う。
    それはまるで、そろばんの暗算やシャドーボクシングのようだ。
    イメージの中で仮想的にプログラミングを行うことを「シャドープログラミング」と名付けてみた。



    ・シャドーテスト
    ・シャドーレビュー
    も必要かな?

    達人プログラマー―システム開発の職人から名匠への道達人プログラマー―システム開発の職人から名匠への道
    アンドリュー ハント デビッド トーマス Andrew Hunt

    ピアソンエデュケーション 2000-11
    売り上げランキング : 10382

    Amazonで詳しく見る
    by G-Tools
    関連記事

    コメント

    コメントの投稿


    管理者にだけ表示を許可する

    トラックバック

    トラックバックURL:
    http://hamamuratakuo.blog61.fc2.com/tb.php/587-66d9543f

    FC2Ad