勉強を続けるための、ほんの少しのきっかけ
技術者として多くのことを学び身に付けていくことは、非常に大切です。ですが、業務に必要な部分のみ注力して、それ以上のことについては手を出さない方が多いのではないでしょうか。
時間がない、日々の業務で忙しいなど、いろいろな事情はあるかとは思いますが、さまざまな分野で活躍している、技術に秀でた人々も条件は同じです。彼らは、同じように時間がない中で、それでも多くのことを調べて多くのことを学び、身に付けているのです。この違いはどこにあるのでしょうか。
私は .NET の界隈の中で比較的人目につかないWorkflow Foundationという部分に興味を持ち、少しずつながらも調査を行ったり、実際に試したりしながら、分かったことを自分のブログなどにまとめています。
Workflow Foundationは、コンポーネント指向と呼ばれるもので、極論を言えば「部品化されたコンポーネントを組み替えて利用していきましょう」というものです。世界で、今までも同様の考え方は多くありました。
しかし、.NET の Workflow Foundation が他と異なる点は、より分かりやすい形にビジュアライズされており、その環境自体も一般の開発者へ向けて公開されている点です。ロジックでどうこうする世界とは異なり、完全にビジュアライズされて、デザイナー上で全てを済ませるのを初めて目にした瞬間、ものすごく興味を惹かれました。このような状況もあり、非常に興味を持ったのでいろいろ調べて、使えるのであればぜひ使いたい、と考えるようになったのが始まりです。
恐らくはここで「調べてみる」ことが、何においてもスタートとなるポイントなのではないかと思います。興味を感じること、これは技術的な面だけに限らず、人間的に成長する上でも非常に重要なのではないでしょうか。
しかし、最初に興味を持つ点も大事なのですが、そこからがもっと大切であり、もっと大変です。私たち技術者の原点として、自分でいろいろ試してできた時のうれしさが、モチベーションを維持する要因の1つだと言われています。ここで感じた楽しさが、さらにこれからも続けて調べたり、試したりするための大きな栄養素になるのだと思います。
実際、私が調べているWorkflow Foundationは、検索しても日本語の情報はかなり乏しく、ほとんどの情報は海外に頼らざるを得ません。その理由の1つに、Workflow FOundationは略称をWFと呼んでいるのですが、この略称はすでに大きなイベントで利用されていたり、ウォーターフォールの略称として定着している背景があり、単純に検索してもWorkflow Foundationの情報は見つかりません。時には「もしかして:WPF」などと言われる程です。
このような状態を続けて味わっていると、モチベーションを維持していくのは非常に大変となり、そのうち手を付けることもなくなってきてしまいます。こうなってしまうと、いくら最初に興味をもって調べ始めたことであっても、継続することを断念してしまうのです。
そこで重要になってくるのは、コミュニティなどが開催している「勉強会」です。正直言うと、ブログで公開しているだけでは、ほとんど反応らしい反応は返ってきません。扱っている領域がニッチであればあるほど、反応があることは非常に稀で、日々のページビューも惨たんたる有様です。
ですが、勉強会などの場で発表することができると、その場で参加者から反応を示してもらえることがあります。これがあると、今まで調べてきてよかった、これからももっと調べていこう、と思えるようになるのです。
実は 7月16日に、私が参加しているCLR/H という北海道の技術系コミュニティにて、Workflow Foundation について1時間弱セッションをさせてもらう機会がありました。その場で反応を示してもらったり、Twitter上でつぶやいてもらえたことは、私にとって非常に嬉しい出来事でありました。この反応があると、これからももっと多く調べてもっと多く話してみたい、そう思えるようになるのです。
もしかすると、ずっと続けて勉強していける人たちと、多くの人たちとの差はここにあるのかもしれません。自分がやってきたことに対して何かしらの反応を示してもらう、その嬉しさを知っているから、日々忙しい中であっても継続して調べていくことができるのではないでしょうか。
幸いにも、最近は多くのコミュニティにて Lightning Talk(ライトニングトーク)として、5分間限定の発表する場面が用意されています。まずはこの LT で自分が興味を持っているものについて話してみる、それは非常に今後につながるエネルギーを得ることができるのではないか、と思います。
5分という、長いようで短い時間ですので、最初のうちは話したいことをうまく話すことができないかと思います。ですが LT はあまり真剣になりすぎずに気軽に挑戦できるのが大きなメリットです。ここを読まれている方で、LTをやられたことがないのであれば、ぜひ一度挑戦してみてほしいと思います。その一度の挑戦が今後へつながるエネルギーとなるのは間違いありません。
そして幸いにも今月、8月20日と8月27日に、全国に存在する技術系コミュニティが協力し TechParty 2011 というイベントを行うことが決まりました。例年行われていたMicrosoftの TechEd が今年は行われないのを残念がり「それならコミュニティで連携して何かできないものか」という気持ちから始まったイベントです。
北海道からは私も参加させてもらっている「CLR/H」が出ます。その他にも
- 北陸:「hokuriku.NET」
- 東京:「COM+(こみゅぷらす)& C#ユーザ会 & codeseek」「RIA Architect & SQLTO & System Center User Group Japan」「スマートフォン勉強会@関東」「わんくま同盟」「ブラウザー勉強会」「.NETラボ」
- 大阪:「スマートフォン勉強会@関西 / Silverlightを囲む会」
- 広島:「.NET勉強会ヒーロー島 & OITEC」
と、多くのコミュニティの方々で協力して実施する運びになりました。Ustream でも中継を行う予定ですので、開催地が遠い方でも、ぜひ参加していただければ幸いです。
開催地が近い方は是非参加してみてください。自分の経験上なのですが、継続して続けることができているのは、恐らくほんのささいなきっかけの差だけだと思います。そのきっかけを見つけに勉強会やイベントに参加してみるのは、非常に良いことなのではないでしょうか。
コメント
インドリ
Ahfさんこんにちは。
コラムの内容には同意しているのですが、ちょっと気になった事がありましたので書く事にしました。
>ロジックでどうこうする世界とは異なり、完全にビジュアライズされたデザイナー上で全てを済ますことが可能となっている
間違っているというほどではありませんが、これは少し誤解を招く言い方だと思います。
私が思うにデザイナーで済ますのは開発環境の特徴であって、WFそのものの本質ではないのではないでしょうか?
もし仮にそれを言うのであれば、他の技術だってRapid Application Developmentやアプリケーションフレームワークで同様の事が言えてしまいます。
あくまでも私の解釈なので恐縮ですが、WFを一言で表現するとオブジェクトなオートマトンだと思います。
用意されたものだけを使用するだけならば、全てがデザイナーでOKかもしれませんが、それだけでは済まないと思います。
たとえば、独自アクティビティを実装する場合ロジックを考えてなくてはなりません。
独自アクティビティを実装する必要性を疑問視するかもしれませんが、ドメイン特化開発をする場合こういった事はよくあります。
上手く表現できませんが、Windows Workflow Foundationの魅力はそこじゃないと言いたくなりました。
Ahf
インドリさんコメントありがとうございます。
私も上手いこと言い表せないのですが WF をしばらく触っていて感じるのは、これは「非開発者向け」の技術ではないか、という点です。
そう思う理由として、開発者が利用するのであれば WF は非常に効率が悪くなるのがあげられると思います。極端な話、開発者自身がコーディングした方が早く楽に作成できると思うのです。
デザイナー部分については私の不勉強が大きいので他の技術でどのように提供されているかは知りませんでした。ご指摘ありがとうございます。
WF では Visual Studio で提供されている環境にかなり近いものを、極少量のコードで利用可能になる部分がメリットと感じています。デザイナー部分であれば、1行で利用可能、というのは他にはないのではないか、と。
インドリ
Ahfさん返信有難うございます。
コラムの本筋じゃない所を言うのはどうかなと思ったのですが、WF好きに出会えたので嬉しくてコメントしました。
確かにWFはデザイン面の表現力はあるかと思います。
言われてみるまで気づきませんでした。
私は基本的にデザイナが面倒で、テキストエディタで開発するのが好きな人間なのでデザイン的発想が湧きませんでした。
(WPF、Windows Formなども全部自分でプログラミングしたいタイプ)
ただ、非開発者向けというのは違うかなと思います。
ドメイン特化開発を目指している宣言型アクティビティ指向プログラミングを体現する技術なので、バリバリ開発者向けだと思います。
(ドメイン特化開発ではアクティビティを自分で実装します)
WFが提供する機能も開発者向けです。
継続、制御フローのオブジェクト化、トランザクションの管理、並行処理の隠蔽、ブックマーク・・・ものすごく開発者向けだと思います。
デザイナなしでプログラミングをしてもらえば開発者が好きな香りを感じると思います。
ぜひ、独自アクティビティを実装したり、WFのオブジェクト群を見て下さい。
宣言型アクティビティ指向プログラミングの世界が見えてきます。
オブジェクトなオートマトンというしかない、非常に抽象度が高く奥深い世界が待っています。
同じWF好きとしてお勧めします。
Ahf
インドリさん、コメントありがとうございます。
今まで私の中で「非開発者向け」というイメージで固まっていましたので、
今回指摘いただいた開発者向けの視点は非常に参考になりました。
少し前の .NET の更新により、WF3 で利用できていた Statemachine も
普通に扱えるようになりましたし、このあたりも含めて色々調べていきたいと思います。
Ahf
επιστημη さんコメント有り難うございます。
私は CLR/H で WF ハンズオンをやらせてもらいます!
他の地域で行われる内容も、かなり興味深い話満載ですし、
是非とも盛り上げていきたいですね!