業務システムのSE・プログラマーがWeb開発に転職するポイント
「業務系にいるとスキルが錆びつきそうで心配…」
「今からWeb系に転職ってできるかなぁ?」
私は10年ほど業務システム開発の仕事をした後、コンシューマ向けWebサービス開発に転職することができました。
- かんたんだったこと
- 難しかったこと
があったので、それぞれ紹介します。
ポイント1. 同じプログラミング言語の会社ならかんたん
私が開発してきた業務システムのほとんどはWebアプリケーションだったので使っていた言語は
- サーバーサイドがJava
- クライアントサイドがJavaScript、HTML、CSS
でした。
コンシューマ系Webサービスでも同じ言語で開発している会社はたくさんあります。同じ言語であれば、採用されるのも、入社後仕事をしていくのも、かんたんです。
ただし、同じ言語を使っていても、業務系とコンシューマ向けWebサービスには必要な技術に少し違いがありました。それが、
ポイント2. Ajax等のユーザー体験を向上させる技術が重要
業務システムの場合、画面のデザインや操作性はそれほど凝る必要もなく、デザインもエンジニアがやってるプロジェクトが多いかと思います。
テキストボックス中心のフォームをサブミットしてDBに登録するみたいな画面が中心ですよね。
コンシューマ向けWebサービスの場合、画面のデザインはWebデザイナーが行います(会社によりますが)。
UIも単純なフォームのサブミットだけでなく、
- Ajaxによる動的な表示切り替え
- 表示を切り替える際にもフェードイン・アウト等のアニメーション演出
等が多用されます。
私が参加したECサイト開発では7割くらいの仕事がクライアントサイドの改修でした。それだけユーザーエクスペリエンスが重視されているんです。
これらの実装はJQuery等のJavaScriptライブラリを使えばかんたんにできるので入社してから覚えても十分対応できますが、事前に少し学んでおくと面接時にアピールできます。
また、Ajaxで動的に画面を切り替える場合、サーバー側の実装も多少変わります。HTMLをレスポンスで返すのではなく、JSONやJSONP形式で返します。
こちらもSpring MVC等の現代的フレームワークを使えばかんたんにできるので習得難易度を心配する必要はありません。
私が採用担当をする場合は、クライアントサイドの技術に対応できそうかを見ます。そこが、業務系からWebサービス系へ転身できるかのポイントだからです。
ポイント3. 言語が変わっても基本は同じ
私は仕事で使っていた言語はJavaが中心でしたが、趣味でPHPやRuby等も使っていました。
PHPやRubyの企業から採用されたこともあるので、実務経験のある言語でなくても採用する会社も多いようです。
主要言語のほとんどはオブジェクト指向言語という意味で基本は同じなので、一つの言語が使えれば、他の言語へのコンバートもかんたんだろうと考えられているのだと思います。で、実際かんたんです。
現在Web開発で使われてる主な言語は以下のような感じかと思います。
- Java、C#、Scala等のVM系言語
- PHP、Ruby、Python、Perl、Node.js等のLL言語
この中で、言語としてのパラダイムがちょっと違うのはNode.jsくらいです。
Node.jsは
- プロトタイプ型オブジェクト指向言語
- シングルスレッド非同期IOアーキテクチャ
です。
Node.js以外の言語は全て
- クラス型オブジェクト指向言語
- マルチスレッド同期IOアーキテクチャ
です。
じゃあ、Node.jsエンジニアに転身するのは難しいかというと、そんなこともありません。Node.jsはJavaScriptなのでC言語ベースの文法でなじみがありますし、JavaScriptの新しい言語仕様ではclass構文が導入されたので、クラス型オブジェクト指向言語と同等の書き方ができるようになりました。
ですから、基本は一緒、言語が変わったってちょっと文法を覚えれば仕事はできます。
業務系からコンシューマ系への転職は全然いけるんです!