一年ほどのブランクの後、Excel VBAで、プログラミングを始めたばかりのころは、とにかくやりにくかった。
しかし、だんだん勘が戻ってきて慣れてきたころ、不思議なことに、同じものを見て感じることが変わった。
なんというか、モノの輪郭みたいなものが、強調されるような感覚。
この状態になってきた時、不具合が起きたときの対処が格段に早くなった。
デバッガ使うまでもなく、どんな処理がされて、どんなバグが起こっているか、想像できるようになっていた。
プログラミングはセンスって言われる。確かにそうだと、実感として感じた瞬間である。
論理の組み立てではなく、感覚でわかる。
おもしろいことに、将棋や、囲碁なんかでも、強い人ってのは、感覚というか右脳も使っているらしい。
考えていくと、イメージってのがまず先にあって、論理ってのは後付けなのかもしれない。
これは、論理が劣っているとか、そういう話ではない。
ソースコードそのものは、イメージとか感覚とかでは絶対なくて、論理として記述されている。
ってことは、イメージをいかに論理として変換して、論理をいかにイメージに戻すかが、重要と言える。
右脳だけでは、伝えられない。左脳だけでは、理解できないのである。
2009年7月12日
コールドリーディング
コールドリーディングをご存知だろうか?
コールドリーディング -- Wikipedia
僕は、一度、これモドキを仕掛けられたことがある。
配属の時に、同期のS氏に。
S氏の言葉は、確かに「当たった」
しかし、信じそうになったというより、彼のナルシストっぷりも手伝って、キモかった。
そして、コールドリーディングというものを知って、気持ち悪さの正体をがわかった。
信頼感0の相手に使ったところで、キモいだけの技術。
今となっては、0どころかマイナスである。
とはいえ、学問として捉えれば、興味深い技術でもある。
僕なんかは、投機実行なんかに、応用できないかってことを考えてしまう。
コールドリーディング -- Wikipedia
僕は、一度、これモドキを仕掛けられたことがある。
配属の時に、同期のS氏に。
S氏の言葉は、確かに「当たった」
しかし、信じそうになったというより、彼のナルシストっぷりも手伝って、キモかった。
そして、コールドリーディングというものを知って、気持ち悪さの正体をがわかった。
信頼感0の相手に使ったところで、キモいだけの技術。
今となっては、0どころかマイナスである。
とはいえ、学問として捉えれば、興味深い技術でもある。
僕なんかは、投機実行なんかに、応用できないかってことを考えてしまう。
2009年7月7日
洗礼
まず、コンパイルできないという洗礼を受けた。これは、聞いたらすぐ解決した。
次に、起動しても、異常終了して、終わるという洗礼を受けた。
環境のインストールからやり直し、レジストリの値まで、チェックしていって、
起動を成功させるのに、結局3日かかってしまった。
原因は、ファイル一個。
副産物として、不具合らしきものを一つ見つけて、無事(?)起動に成功。
やっと、スタート地点である。
次に、起動しても、異常終了して、終わるという洗礼を受けた。
環境のインストールからやり直し、レジストリの値まで、チェックしていって、
起動を成功させるのに、結局3日かかってしまった。
原因は、ファイル一個。
副産物として、不具合らしきものを一つ見つけて、無事(?)起動に成功。
やっと、スタート地点である。
2009年7月2日
C#
ラダー&ハードウェア-> Excel VBA + SQL -> C# + SQL + ...
と、ロボットを扱うことには変わりないんだけど、
ハードウェアエンジニアから、ソフトウェアエンジニアに急激に変わった。
学生の時やってたことからしたら、戻ったの方が、正しいかもしれない。
Excel VBAでは、関数渡しの類いが無くて、苦労したが、
C#(2.0)では、関数渡しどころか、無名デリゲートが、使えるようである(Javascriptとかそういう世界)。
逆に、高機能に苦しむ可能性もありえる充実ぶり。
とは言え、様々な言語を渡り歩いてきた身としては、まったく新しい概念があるわけでもなし、
プログラミング自体としては、むしろ、ホームグラウンド。
と、ロボットを扱うことには変わりないんだけど、
ハードウェアエンジニアから、ソフトウェアエンジニアに急激に変わった。
学生の時やってたことからしたら、戻ったの方が、正しいかもしれない。
Excel VBAでは、関数渡しの類いが無くて、苦労したが、
C#(2.0)では、関数渡しどころか、無名デリゲートが、使えるようである(Javascriptとかそういう世界)。
逆に、高機能に苦しむ可能性もありえる充実ぶり。
とは言え、様々な言語を渡り歩いてきた身としては、まったく新しい概念があるわけでもなし、
プログラミング自体としては、むしろ、ホームグラウンド。
2009年6月9日
2009年6月7日
マウス運
ディスプレイといっしょに、当然、キーボードと、マウスを揃えたんだけど、
キーボードはまあ、アップル製でいいとして、マウスは正直、こりごりだったので、他社製を選んだ。
デザインに惹かれて、Scope Nodeを買った。見事に失敗した。
まず最初に、失敗したのが、右利き用ってこと。
ちょっとぐらいは、大丈夫だろうと思っていたら、想像以上に、左で使いにくい。
それと、カウント数が多いからか、動きが、ちょっと速すぎる。
そこまでは、許せたので、使い続けていたのだけど、今度は、クリックが変になって、
一回クリックしただけなのに、複数回になるってことが、ときどき、起こりだした。
おかけで、いきなり、開きたくもないファイル開いたりとか、
致命的に許せなくなった。
結局、ごく普通のマウスを買いなおした。
僕は、マウスに関しては、運がない。
で、話は変わって、アップル製マウス。
Mighty Mouseは、最初は感動したけど、最後まで、使いやすいと思えたマウスは、皆無だった(気がつけば、4回も買い直していた。今更ながらに、正直アホ)。
ノートパソコンのトラックパッドは、いいのに、なんで、マウスは、こんなにダメなんだろう?(マイクロソフトは、真逆で、マウスはいい)
あくまでも、普通のマウスはいやみたいなので、ここで提案してみる。
いっそ、マウスじゃなくて、トラックパッドにする。
ノートパソコン用の、テンキーを薄くして、キーの部分をパッドにするイメージ
キーボードにくっつけても、案外、いいかもしれない。
グッドアイディアかもしれない。
キーボードはまあ、アップル製でいいとして、マウスは正直、こりごりだったので、他社製を選んだ。
デザインに惹かれて、Scope Nodeを買った。見事に失敗した。
まず最初に、失敗したのが、右利き用ってこと。
ちょっとぐらいは、大丈夫だろうと思っていたら、想像以上に、左で使いにくい。
それと、カウント数が多いからか、動きが、ちょっと速すぎる。
そこまでは、許せたので、使い続けていたのだけど、今度は、クリックが変になって、
一回クリックしただけなのに、複数回になるってことが、ときどき、起こりだした。
おかけで、いきなり、開きたくもないファイル開いたりとか、
致命的に許せなくなった。
結局、ごく普通のマウスを買いなおした。
僕は、マウスに関しては、運がない。
で、話は変わって、アップル製マウス。
Mighty Mouseは、最初は感動したけど、最後まで、使いやすいと思えたマウスは、皆無だった(気がつけば、4回も買い直していた。今更ながらに、正直アホ)。
ノートパソコンのトラックパッドは、いいのに、なんで、マウスは、こんなにダメなんだろう?(マイクロソフトは、真逆で、マウスはいい)
あくまでも、普通のマウスはいやみたいなので、ここで提案してみる。
いっそ、マウスじゃなくて、トラックパッドにする。
ノートパソコン用の、テンキーを薄くして、キーの部分をパッドにするイメージ
キーボードにくっつけても、案外、いいかもしれない。
グッドアイディアかもしれない。
2009年6月6日
SQL Join
要素にIDを付けて、テーブルには、IDを登録している。
IDから要素が知りたい時、Joinを駆使すれば、連想配列の類いを使わなくても、SQLだけで、実現できることに、いまさらながらに、気がついた。
他にも、Joinで、今まで、Excel VBAでやってた作業が実現できることを発見
こうなると、SQLだけで全部実現したくなってくる。
SQLを使いこなせるか以外の問題は、実行コストだけど、どれくらいになるのだろう?
問題ないなら、かなりの部分を、データベースエンジンまかせにできる。
こうなると、インタフェース(Excel)を別のものに変更することも、容易になる。
IDから要素が知りたい時、Joinを駆使すれば、連想配列の類いを使わなくても、SQLだけで、実現できることに、いまさらながらに、気がついた。
他にも、Joinで、今まで、Excel VBAでやってた作業が実現できることを発見
こうなると、SQLだけで全部実現したくなってくる。
SQLを使いこなせるか以外の問題は、実行コストだけど、どれくらいになるのだろう?
問題ないなら、かなりの部分を、データベースエンジンまかせにできる。
こうなると、インタフェース(Excel)を別のものに変更することも、容易になる。
登録:
投稿 (Atom)