昨年末から、Visual Studio .NET 2010や2005等を使ってWindows用のアプリケーションの作り方を学習中です。私はプログラマーでは無いので込み入った仕様になれば、本職のプログラマーに依頼するのが合理的だと考えていますが、ちょっとしたツール的なアプリケーションなら自分で作れる方が便利だし、多少なりともプログラミングスキルがあれば、プログラマーとの話もスムーズに出来るかなと考えてのことです。
さてそんな私が現在気づいた事は、Visual StudioというMicrosoft社の開発環境は非常に使いやすいと言うことです。今まで使ったのはVS .NET(2002)、VS 2005、VS 2010で併用していますが、Core i7でもモッサリ動作のVS 2010は確実に使い勝手がよくなっています。軽快に動作するVS .NET(2002)では実現していない気遣い(お節介)が実現されています。
とは言うものの、Visual Studioは複数のプログラミング言語を選べるので、Visual Basic、C#、C++などからどれを学習するか迷いました。VB(Visual Basic)はビギナー向けという位置づけらしいですが、実際にコードを読んでみると理解し難い部分が結構ありました。私にはC#が一番しっくり来る感じだったのでC#を選びました。
さて全く分からない状態でビギナー本を数冊入手して手順を真似してみたところ、非常に退屈で仕方有りませんでした。自分が作りたいものとは全く関係の無い「課題」をやってみても面白くありません。ただ、そこから得られる基本的な概念は汲み取らなくてはなりません。それが出来たらビギナー本はほぼ価値は無いと感じました。一度社会人になって自分の考えで目的を実現する方法を試行錯誤しながら最短で実現するという事を経験してしまうと、学生の時の様な一方的に教わるという事が苦痛になります。ビギナー本はまさにこの一方的に教わる形態なので、社会人経験が多ければ多い程しんどいと思います。
結局、私はビギナー本を半分位読んだところで飽きてしまい、自分が作りたいツールを作ってみる事にしました。分からないことだらけですが、どこかでやったと言う記憶が有れば、ビギナー本から探します。そしてその手法を使って実現出来るならそれを応用して使用します。全く手法が分からない場合は、Googleで検索します。すると非常にセンスよく詳しい解説をして下さっているサイトを見つけることが出来ます。
どうやら私は、課題をクリアする事に没頭するのは苦にならないタイプで、それを実現する手法を調べる為に、目的から手法を調べられる書籍が向いているっぽいです。逆引き辞書的な本なら凄く参考になりそうな感じです。
これから学習を始めようと思っている方は、Visual Studioは現在2010がExpress Editionという無償版をMicrosoftが公開してくれているのでネットからダウンロードして使用するか、書籍にDVD-ROMが付属している入門書を購入するのがオススメです。一般論として新しいVSの方が親切に作られているのでオススメですが、PCの処理能力(要求スペック)も高くなっているので、必ずしも2010でなくてはならないという訳ではないと思います。
但し今後の情報収集でバージョン違いに右往左往させられるのは不本意なので、少なくともVS 2005以上で始めるべきでしょう。間違っても「Visual Studio .NET」や「Visual C# .NET」の本は買わない様にしましょう。これは2002が省略された最初のVisual Studioなのでかなり古く互換性面で辛い思いをします。最初の学習だけと割り切れば、Windows XPの頃のPCでも充分動くので快適といえば快適ですが(私は失敗しました)。
さて、Visual Studioを使ってみて一番便利だと思ったことは、GUIを非常に効率よくデザインすることが出来る点です。過去にPHPやHTML+JavaScriptでWebアプリを作っているのを見る機会が結構ありましたが、お世辞にも洗練されたデザインではありませんでした。最低限必要なボタンやテキストフィールドが有るだけで、例えばそのボタンは使い勝手から考えて右側に配置して欲しいなと思っても、いちいちソースを買い換えるのが面倒だという理由(らしい)でなかなか変更して貰えませんでした。
反面、VSならビルドしなおす必要はありますが、非常に柔軟にボタンの位置やサイズなんか変更できてしまうので、見た目をまず作ってから、後にボタン等のオブジェクトにクリックした時のアクションを追加実装して行く手法で意外と複雑な動作も組めてしまいます。Visual Studioの良い面は、見た目のソースと、動作のソースが別々に分かれていて、それらをあまり意識する必要が無いことです。使っている内になんとなく関連性がわかってきます。
逆に言うと、VSなら見た目だけをまず作ってしまうことも可能です。処理機能を実装していないモックアップも容易に作れてしまいます。Visio等を使わなくても仕様を説明するGUI画面を実際に先に作れるのはかなり有利ですね。
まだ、オブジェクト指向のプログラミングが完全には理解出来ていないので現時点それについては何も記すことが無い状態ですが、クラスやインスタンスの概念はしっかりと理解しておく必要はあるとなんとなく感じています。それが次の段階のより複雑なアプリケーションを容易に作れるか否かの分岐点だとなんとなく思うからです。
最後にプログラミングのプラットフォームについて記しておきます。私はVSでWindows用のアプリを作る学習からプログラミングを独学中ですが、実際にリリースすることが出来るスキルまでこぎ着けたなら、Webアプリケーションの優位度は非常に高いと思われます。つまりインターネット上に公開するアプリケーションであれば、多くの人に使ってもらうことが可能です。Windowsアプリケーションを配布してインストールして使ってもらうより断然有利です。Webアプリケーションは基本的にWebブラウザだけで使うことが出来ますからね。
その為には、Web系で有利なPHP+JavaScript+HTML(CSS)はおさえておきたいスキルです。私の場合はPHPとJavaScriptがビギナースキルなので課題です。しかしWeb系は多くのAPIサービスがありますので、マッシュアップで容易に実用度の高い情報ツールを作成することが可能な事を考えるとどうしても身につけたいスキルでもあります。アイディア次第で多くの人に便利を提供できる可能性があるからです。
よって今はVS C#で学習していますが、またPHPやJavaScriptの学習にも戻らなくてはならないと、私のやりたい事から考えるとそう自覚しています。あとはプログラマーでないエンジニアが何処までプログラミングに首を突っ込むかという度合いを図るのが課題ですね。まぁ当分先だと思いますが。
コメント