スポンサーリンク

今,Web技術者が「食べていく」ために必要な3つのスキル


「一般のエンジニアに・いつの時代にも普遍して求められる能力」であれば,回答は例えば

のような,正論だが,しごく曖昧なものになるだろう。


しかし,対象を絞り

「Web技術者に」「今(この数年間)」求められる必須スキルとは何か?

という問いを考える。


回答は具体的な3つに限定する。
すると,こんな答えになるのではないか。




今,食べていくために何が必要か?(Web技術者版)

(1) MVCの全部分を透過的にカバーするために,何か1つ以上フレームワークを使い倒すこと


ものごとをスクラッチだけで書き流せる時代は終わってしまった。

保守性,拡張性,堅牢性,加えて構築の速度が,3層でいっぺんに求められるようになった。


「ある特定のプログラミング言語が使える」というだけでは,もはや仕事にならないのが現状だ。


その特定の言語に加えて,Railsなり,CakePHPなり,Struts+Seasarなり,IDEに付いてくるオプション製品なりを使いこなさないと,下手すると「未経験」とみなされてしまう。

この状況は,当事者以外にはそれほど認識されていないように思う。


また,たとえ何かのフレームワークをいじったとしても,浅い理解で留まってしまうと,幾つかの「決まり事」「おまじない」を目にしただけで終わってしまう。


そういう時,自分が開発者ではなく運用担当になったかのような気持ちになってくる。


使うからには,そのツールで実現可能な全機能の把握を含め,使い倒すことが必要だ。



とはいっても「覚えるべき事が増えた」と重荷に感じる必要はないだろう。
この(1)も次の(2)も,エンジニアをアプリケーション開発から遠ざけるものではなく,むしろ究極的な手助けをしてくれるものだ。


この(1)は,どちらかと言えばサーバサイドを含む要素になるだろう。

(2) AjaxDOMを無意識にバリバリ使うために,何か1つ以上ライブラリを使い倒すこと


主にクライアントサイドになる。MVCで言えば,Vと,VCの連携に該当するだろう。操作性,インタフェースの充実に当たる。


リッチクライアントを差し置いてこれらの要素を挙げるのは,何といってもその普遍性・ベンダ非依存性にある。
クロスブラウザの心配はあるが,その心配はライブラリで吸収できる。



ここでいう「ライブラリ」は,最近までは多数使われていた。


まず,prototype.jsが時代を作った。

http://prototypejs.org/core (prototype.jsの起源が分かる)

Sam Stephenson :
Sam created the Prototype JavaScript framework in February of 2005 as part of the foundation for Ajax support in Ruby on Rails. ...


サム・ステファンソンは,2005年2月に,Ruby on RailsフレームワークのAjaxサポートの一部として Prototype Javascript Framework を開発した。...

prototypeには,script.aculo.usなど付加的なツールの出現が伴った。


その後,時代は事実上,jQueryにシフトしつつあると言えるだろう。

これは昨日のニュース。

MicrosoftNokiaが「jQuery」をプラットフォームの一部として採用
http://codezine.jp/article/detail/3097


「jQueryが提供するセレクション・アニメーションの機能は、多くの.NET開発者がASP.NET AJAXに求めていたものであり、ロードマップにも挙げられていたものだ。jQueryは既にそれらを見事にサポートしており、・・・jQueryをそのまま標準ライブラリに含めることにした」。
 Visual Studioのインテリセンスでの対応も予定され、数週間のうちにWebから無料でダウンロードできるようになる・・・


マイクロソフト側がjQueryの「セレクション」「アニメーション」の機能に着眼している,という点が興味深い。

このコメントは「ブラウザ上で要するに何をしたいのか?」「画面開発時に主に何が煩雑なのか?」を伝えているし,と言う事はつまり,「何を押さえれば開発者にとって開発がしやすくなるのか?」という質問のヒントを開発者に与えもする。

jQueryを使おう。



なお,jQueryがprototypeの影響を受けて出現したのは2006年1月あたり。

jQueryの歴史:

History of jQuery
http://docs.jquery.com/History_of_jQuery
An introductory overview of the history of the jQuery library
http://www.slideshare.net/jeresig/history-of-jquery

(3) 上記2つを独自に拡張して便宜を図れる程度まで,スクラッチコーディングとトレンド(含オープンソース)を知ること


自分を他者(そして他社)と差異化して,独特の価値を生むポイントはここにある。


またスクラッチコーディングを勉強するための下地は,既に(1)(2)で整っている。

世間で受け入れられている物の多くは必然的にオープンソースになる。
教科書ではなく,先人の成功した,実際に使われているソースコードを教材にして学び,それを使って遊ぶのだ。

それらが読めるようになる事を目標に設定すると,プログラミングの学習は断然はかどるだろう。


なお,ここで言う「スクラッチ」には,DBの素の扱いも含まれる。

まとめ

  1. MVCの全部分を透過的にカバーするために,何か1つ以上フレームワークを使い倒すこと
  2. AjaxDOMを無意識にバリバリ使うために,何か1つ以上ライブラリを使い倒すこと
  3. 上記2つを独自に拡張して便宜を図れる程度まで,スクラッチコーディングとトレンド(含オープンソース)を知ること


技術的な観点で言えば,枝葉を含めだいたい上記3つのスキルに集約されるのではないか。

プロジェクト内で分業が進んでいて,今のところ(1)〜(3)のどれかしか触れる必要がない,という人であっても,きっとこれら3つのセットが網羅されていれば,今後も困る事はないだろう。



補足

08/10/24:

上の記事は「3つ全部」というものだったが,「10個の中から最低一つ」という場合の記事がphpspotで公開された。

最低でも1つは極めたい、需要の高いWeb開発に関する10の技術
http://phpspot.org/blog/archives/2008/10/web10_1.html