
現在、組み込みエンジニアをしている社会人、
あるいはそれに準じた研究をしている学生だけど、
WEB系への転職や就職を考えているという人に向けた記事です。
働き方の違いや、組み込みエンジニアとして高めたスキルは活かせるのかという内容をまとめていきます。
目次
WEBエンジニアの仕事

WEBにつながるシステムやアプリケーションに携わるエンジニアです。
一般的なシステムエンジニアの業務フローに似ているのですが、
サーバーの選定やデザイン、SEO(Search Engine Optimization:検索エンジン最適化)、WEBマーケティングなどの検討が求められます。
システムエンジニアについては、コチラの記事で解説しています
サーバーの選定
サービスで必要なスペックを考慮してサーバーを選びます。
近年では、AWS(Amazon Web Servvice)に代表されるような、
仮想サーバーを利用し、フレキシブルに拡張を行うケースも少なくありません。
また、サーバーエンジニアが別途いる場合は、役割分担することも多くあります。
デザイン
WEBページのデザインです。こちらも、別途デザイナーがいる場合もありますが、。
小規模の企業では、求められることがあるので最低げの知識が合ったほうがいいでしょう。
SEO対策
簡単に言えば、Google検索で上位に表示されるための対策です。
どんな検索キーワードで表示されたいのか、
その際に、HTMLはこう出力されたほうがいいなどの、テクニックが存在します。
WEBマーケティング
ローンチしたサービスの利用状況の解析を行い、
どんなユーザがいつ、どれくらい、利用しているかを把握し、
サービスの改善に繋がます。
WEBエンジニアの中での分類
フロントサイドエンジニアとバックサイドエンジニアで業務内容や求められる技術が結構違います。
フロントサイド;ユーザーへのインターフェイス部分を作る
画面の構成や、バックサイドへのデータ要求
バックサイド;サーバーでの処理を部分を作る。
データの扱いや演算
組み込みエンジニアとの働き方の違い

使用言語と付き合い方
組み込み
C言語やアセンブラ、ところによりJavaやC++,、フレームワークやミドルウェアなどは使えない、使いたくないことも多く、自分で低階層の実装が行えることが求められる。
WEB
HTML,CSS,JavaScript,PHP、Ruby、Python、C#などフレームワークを自分で作れることよりも、たくさんのフレームワークを使いこなせることが大事
重視すること(スピードVS品質)
組み込み
品質重視です。これは、組み込み製品は出荷後にソフトウェアの不具合を治すことができないことが多いためです。例外的には、近年のWEBにつながるゲーム機や出荷先の限定された特注の多いような製品では、スピード優先でバグが有っても出してからなんとかなるような場面もありますが、多くの場合、出荷後の不具合はリコール(製品回収)で企業ダメージの大きいものとなるため、時間をかけてテストを行い品質を高めます。また、製品が動くことにより安全性の担保も求められることなども品質重視になる場合もあります。一方で、一度リリースしたあとは、手放しにできることも少なくありません。
WEB
スピード重視です。WEB系の不具合は、リリース後もすぐに治すことが可能です。そのため、形ができたらどんどんリリースして、反響を見ながら修正を行っていくことが多いです。一方で、一度リリースしたあとも改善を続けるという意味ため、保守運用を想定した仕組みづくりが大切になります。
エンドユーザーとの近さ
組み込み
一部のBtoC製品を除き、エンドユーザーの見えない仕事が多いです。
WEBエンジニア
顧客の反響が見やすくやりがいに繋がりやすいです。
組み込みエンジニアのスキルが活かせる場面

プログラミングの技法自体は大きくは変わらないため、スムーズに活かせます
むしろ、組み込み系のプログラミングに比べ、WEB系のプログラミングはラフな記法が多かったりと、
なれてしまえば楽になることが多いように思います。
ミドルウェアやフレームワークなどに問題が合った際にも、
低レイヤーでの設計に慣れている分、組み込みエンジニア時代の知識をもとに、
ミドルウェアの解析を行い、問題解決につなげることもできるでしょう。
WEB系転身時に勉強すべきこととその方法

必要なスキル
組み込みエンジニアのスキルセットで不足している可能性があるのは次の4つです。
データベースやデータ構造に関する知識
近年では、組み込みシステムの中でもデータベースを利用することも多くなってきましたが、WEB系では必須です。どのようなデータベース構造にすれば、軽量、高速、柔軟に運用できるか基礎を抑えましょう。
セキリティに関する知識
組み込みシステムに比べて、WEBシステムは常に全世界に公開されているため、攻撃されやすいです。
そのため、より一層のセキリティに関する知識は必要です。
WEBやネットワークなどの通信に関する知識
HTTP通信などの、WEB上でのデータのやり取りやブラウザの機能など、WEB上での通信構造やデータの流れについて理解しましょう。
HTMLやCSSなどWEBページの記法に関する知識
これは、フロントサイドむけですが、WEBページを書くための基礎知識を見につけましょう。
勉強方法
基本的に現在組み込みエンジニアをしている人は基本ができているかと思うので、
書籍を参考に簡単に簡単なシステムを作ってみるのが良いと思います。
まとめ
この記事では、組み込みエンジニアからWEBエンジニアへの転職についてまとめてきました。
WEBエンジニアと組み込みエンジニアでは仕事の仕方が幾分か違いますが、
組み込みエンジニアとして培ったスキルは活かせる場面が多いです。