人生、徒然なるままに。

IT系の話題をメインに。DIYer。C#er。旅行/天文好き。

VB.netプログラマのキャリアパスについて

今回はVB.netプログラマキャリアパスを考えてみたいと思います。どうやって生き抜いていけばいいのか。

 

VB.netプログラマキャリアパスとは?

プログラムの世界への入り口がVB.net、そんな方ってどれくらいいるのでしょうか。

ネットを徘徊していると、VB.netを用いて積極的に発言している人はそれほど多くない・・・不安になる。

将来を考えてみました。

 

 業務系SEに使われている言語は?

業務アプリInsider 読者調査レポート:業務アプリ開発は5年後どうなると予想されているのか?―― これからの業務アプリ開発についてのアンケート結果(2013年3月実施) ―― - @IT

こちらのページによると、業務システム開発者の間で使われている言語は1位がJavaで38.1%、2位がVB.netで33.6%、3位がC#で24.2%とのこと。

つまり、業務システム開発者の約6割.NET Frameworkを用いて開発していることになりますね。

 

 どんな言語が人気なのか?

【Javaが恐ろしく強い】転職時に希望するプログラミング言語ランキング - paiza開発日誌

3年以上プログラミングを経験している方の、経験言語のランキング(複数選択可)。

1位がJavaで35.8%、2位がPHPで28.1%、3位がCで28%。C#はというと5位で17.2%で、VB.netにいたってはランキングにすら載っていません。(paizaさんでVB.netプログラマがあまり人気ではない、ということかな)

 

これら二つの記事から、業務系システムで使用される言語と人気の言語を鑑みると、比較的多く.NET Frameworkを用いた開発が行われていることがわかります。

確かに、Visual Studioを用いて強力なインテリセンスを使っているとプログラミングが楽で仕方がありません。

Windows系ということでVB.net/C#SQL Serverをワンセットで開発している方も多いのでは?

 

 業務系システムを考える。

さてさて、本題ですが私は業務パッケージの会社へ新卒で就職したため、最初の研修時にVB.netの研修を受けました。それから早1年半。そろそろ次のキャリアパスを考えていかなければならない時期です。

VB.netでメインの知識を取り込んだ後、どのようなルートでプログラミングの世界を渡り歩いていくか、そこが業務システム開発者の生死?の分け目ではないでしょうか。

 

業務システムというと、常に顧客要求によるカスタマイズが発生し、その技術をカスタマイズ製品だけではなくパッケージ製品にも水平展開することもしばしば。

だから、最初に作った基盤を元にどんどん上へ積み上げていく形になるわけで、ウチの商品で使っている.NET Frameworkのバージョンは未だに2.0の製品が多いです。

.NET Drameworkが4.5、4.5.1とバージョンアップしている中、まるで80'sに取り残されているかの気分。

 

せっかくASP.netでMVC4,5,6とかSignalRとか面白そうな技術が出てきても、それを会社で取り込もうとする動きは皆無。学びたけりゃ自分で学べといった感じです。

 

確かに、既存の技術知識で顧客要求を満たせれば、新たな技術の取り込みの必要性もなければ、それに投資しようとするインセンティブも少ないわけです。

業務システムは特にそのような動きが多いのではないでしょうか。如何に枯れた技術でシステムを発展させていくか。その場限りで考えればリスクが少ないかもしれませんが、面白みも少ないです。

 

それに、コードの組み立て方もテストの仕方も各々に任せる始末。エラーもなく動けりゃいいって考えの人が周りに多く、TDDやBDDといった手法は耳にしたことすらありません。

まだ自分自身に知識が少ないせいか、何がベストかとは言い切れませんが、とにかく無駄が多い気が。

 

問題点は?

つまり、マズイのは上記のような旧来のシステム開発の空気に飲まれることだと思っています。

最新技術をばんばん取り込んでいくような会社にいれるのであれば問題ないですが、そのような風潮が全くないと人間的にも、会社的にも腐ってしまいます。

これがサラリーマンの宿命だと考えることもできますが、あまりに面白くない。

 

 

じゃあどうすべきなのか 

そんなわけで、業務システム開発者が多いであろうVB.netプログラマキャリアパスを若いうちから本気で考えていくべきではないでしょうか。

 

ステップ例1・Web業界に身を投じる

業務システム開発者でも、HTML/CSS,JavaScriptの基礎知識程度は保有しているはずですし、ソフト上の世界で生きていくのなら、Webの世界に飛び込むというのも広い道なんでしょうか。

茨の道かもしれませんが、知的好奇心は常に保てるはずです。

 

ステップ例2・ネイティブ寄りの技術を身に着ける

業務アプリ開発者から、マルチタスクな技術者にステップアップするためには、+アルファな技術 ―例えばスクリプト言語を身に着けたりC,C++といったネイティブよりの世界を覗いてみたり― を学んでいくことが大事では。

Win32APIをコールするとき、C/C++を理解していれば重宝されると思います。

 

ステップ例3・.NET Frameworkに身を任せる

最近は、.NET Framework周りの動きが速いです。

Linux/MaxOSでWebアプリケーションを動作させるための方策をMicrosoftが率先して行っていてくれています。(従来のMonoから.NET Coreへ)

 

ASP.net MVCやWeb APIのWeb系の技術から、Windows8~のストアアプリまで、日々VB.net/C#の活躍の場は広がっています。

全てを使えるようになって、それでも会社でやれることがないのなら・・・会社を立ち上げましょう。

 

最後に

自分のいる位置を俯瞰的に把握し、目指すべき技術者への道しるべを見つけなければ、一介のサラリーマンで人生が終わってしまいます。

今の業界に残るのも一つの手ですが、更なる広い世界を目指して頑張りましょう。

時代の波に取り残されないように。