« SWOTと因果関係図は相性がいい | トップページ | 【再考】プロセスで品質を作りこむ »

2008/01/12

【Ruby関西】自分のプログラミングスタイルを持とう

Ruby勉強会に行ってきた。
何故か今日も雨でした。
Ruby関西が開かれる日は雨が多い(^^♪

目玉はCuzicさん著作「Ruby on Windows」の基調講演。
講演は「Ruby on Windows」の内容紹介と思ったら、Cuzicさんが貯めてきたノウハウをメッセージとしてプログラマへ贈る内容だった。

1・プログラミングを始めたばかりの人へ
2・プログラミングに慣れてきて人へ
3・プロのプログラマへ

詳細はWikiを見てもらって、感想を書いてみる。

【1】プログラマの美徳は怠惰さ

手作業やルーチンはできるだけ自動化する。
そのためにプログラムがある。
「プログラマの美徳は怠惰さ」はPerlの偉い人の言葉、と彼は引用した。

 「Ruby on Windows」の目的も「RubyでCOM、RubyCLR、Rjbなどを使って、Windows/.NET/Javaを快適に操作しよう」というもの。
 Rubyistは基本的にUnixの世界で生きているが、Windowsの世界で生きている人も使えるし、強力なツールになりうる。

【2】自分の興味・情熱の方向を知ろう

初心者PGへの彼のアドバイスに「学習できない時にその理由を感じ取ろう」というものがあった。
できない言い訳にその人の本心や本質がある、と。
「時間がない」「どうすればよいのか分からない」などの代表的言い訳の裏には、意識化できない感情や衝動がある。
意識されない抵抗を馬鹿にせず、ありのままに感じ取り、自分の興味や情熱の方向を知っていこう、と。

このアドバイスは非常に参考になる。
心の風邪を引いた人は、やる気がない。
そこまでいかなくても、心がざわめいて、仕事に取り掛かれない時がある。
そんな時に、自分のやりたいこと、打ち込めるもののように、自分の方向性を知っておくことは、プログラミングだけでなく生きる上でも大事。

また、Cuzicさんは「すでに出来上がったものの仕組みを知ること」「文法の整合性を調査する」などが好きらしい。
多分僕も殆ど同じで「出来上がったものを使うこと」「仕様の整合性を考えること」も好きかな。
本当のハッカーは「新しいアイデアを考えること」「機能を組み合わせて作ること」が好きなのだろう。

【3】自分のモチベーション向上や集中できる環境を知ろう

中級PGへの彼のアドバイスに「感度が上がると、自分のプログラミング能力が低く感じるようになる。それが成長だ」というものがあった。
つまり、知識が増えて色々経験すると、自分が書いたプログラムが大した事がないように思えてくるが、その理由は、意識のレベルがプログラミングよりも上がったから、と。
それが、学習できない言い訳になる時がある、と。

上級PGへの彼のアドバイスに「どんな時にモチベーションが上がりますか?」というものがあった。
人によって、ハートが熱くなるツボは違う。
レベルが上がるほど、情熱的になれるツボを知って、自分の心をハンドルできるようになることが大事だ、と。

更に「集中するノウハウはありますか?」というものもあった。
理由は、プログラミングは集中力が大切だから。

Cuzicさんの場合、設計は集中できないがコーディングは集中できる、とのこと。
理由は、プログラムを書かないとアイデアが膨らまない、書いていくうちに分かってくる、とのことだった。

僕の場合は逆に、プログラムを書く前にフローやデータ構造を徹底的に考える方がプログラミングがスムーズだった。
プログラムを書くと、詳細に入りすぎて、何を実現したいのか忘れてしまう。
設計には十分時間をかけて、プログラムは一瞬に書き上げる方が僕は合う。

そういう各個人の特徴を知っておくことが大事。

【3】自分のプログラミングスタイルを持とう

彼のアドバイスに「人にコードを見られることを意識することそのものが進歩になる」があった。
プログラミングには癖があるので、他人の批評を受けることで洗練されていく。
Ruby関西の人たちはオープンソースに積極的なので、自分のソースをどんどん公開していく。
また、ライブコーディングといって、観客の目の前でお題を限られた時間でプログラミングするということまでやっている。
彼らは、他人に自分のプログラムを見せたい、という強烈な自己顕示欲があるのだと思う。

また、「サンプルプログラムは、問題を解決するプロセスそのもの」というアドバイスもあった。
実際、プログラムを書かないと分からないことは多い。
解きたい問題だけでなく、ライブラリの仕様や相性なども書いて初めて分かる。

「自分のデバッグ方法をノウハウを持っておこう」というものがあった。
 暗黙知として持っておくのが大事だ、と。
Cuzicさんの場合、pメソッドで変数出力するのが基本。

また、出力から逆算し、通った分岐を推測することもやる、と。
この手法は、バグの症状から逆に、こういうフローで出てきたのだろう、と推理していくこと。
インプットから書き始めるのがプログラミング。
バグ直しは、アウトプットから始める。

自分の興味や集中できるやり方を体を通じて知って、自分のプログラミングスタイルを身に付ければ、更にレベルアップできますよ、という彼のメッセージは非常に参考になった。

Ruby on Windows」もいい本なので是非読んでみて下さい。


|

« SWOTと因果関係図は相性がいい | トップページ | 【再考】プロセスで品質を作りこむ »

コミュニティ」カテゴリの記事

コメント

コメントを書く



(ウェブ上には掲載しません)


コメントは記事投稿者が公開するまで表示されません。



トラックバック


この記事へのトラックバック一覧です: 【Ruby関西】自分のプログラミングスタイルを持とう:

« SWOTと因果関係図は相性がいい | トップページ | 【再考】プロセスで品質を作りこむ »