ysleepy
回答4件
同じ開発でも、組込系は少ないメモリや貧弱なCPUで処理をするために高度な最適化のスキルが身に付きます。おそらくC/C++か場合によってアセンブリを使用することになるでしょう。一方Webやモバイルはより高水準の言語、JavaやJavaScriptやPHP等を使って、メモリやCPUに最適化するのではなく変更に強い設計と開発をします。ものすごく私見ですが、前者から後者へのスキル移転は容易ですが、逆はかなり難しいです。例えば今は当たり前のJavaですが、Javaが出た当時は当然専門家はいないので、その時代を支えたのはCやC++のスキルをもった人達でした。その後JavaScriptやPHPなどが出てきましたが、はっきりいってオモチャ感覚でした。一方、JavaやPHPなどから始めた人がC/C++をやるのはものすごく大変です。現在はWebもモバイルもフロントとバックエンドの分業が進み、それぞれ使用する言語やフレームワークも異なってきていますが、組込系で十分なスキルを持っているなら、キャッチアップは容易だと思います。特に良いエンジニアはみんなPolyglotです。 で現実的な話ですが、もし本気でWebやモバイルをやりたければ、本業の脇で自主的に学ぶ必要はあるでしょう。1つ気がかりなのは、中途で転職活動をするときに未経験者と見なされる可能性です。未経験で採用するところもありますが、当然待遇は悪くなります。ですので組込系の経験をうまくアピールして有利な条件を勝ち取る必要はあるでしょう。 最後に、ものすごく個人的な意見ですが、せっかく高度かつ後継者不足で大事にされる技術領域でキャリアを積むチャンスがあるのに、あえて難易度が低く人があふれてる領域に降りる必要はあるのかな、と思いました。すみませんあくまで個人的な感想です。
僕はメーカーで組み込み8年やって、その後スタートアップでWebとモバイルの開発リードを3, 4年ほどやってます。 組み込みから未経験でWeb/モバイルの大企業やメガベンチャーに行くのは難しいですが、創業期のスタートアップであれば気合いがあれば何とかなります。そこで実績を積めばどこにでも行けます。 質問者さんが内定してる会社で実際にアサインされる仕事や会社の研修体制などがわからないので、実体験としてのアドバイスになってしまいますが、 ・コンピュータアーキテクチャ ・メモリやCPUに対するパフォーマンス最適化の方法 ・品質の高いソフトウェアを作る方法(ソフトウェアエンジニアリングと言います) ・非ソフトウェア部門も含めた製品としての開発プロセス を知識として持ってると、かなり重宝されました。これは多くのWeb/モバイルエンジニアにはない、実製品を扱う組み込みエンジニアだからこそ培える部分だと思います。 上記は業務を通して学んで、トレンドのWeb3や機械学習、通信技術など自分が興味ある分野を見つけてプライベートでも開発を怠らないのが最強です。 どの道に進むにしても技術習得を楽しめて自己研鑽し続けられるとどこでも楽しく生きていけるのではないでしょうか。
組込系の悩ましいことは、技術的な高度さ(面倒くささを含む)の割に日が当たりにくいところかもしれません。いわゆるWebモバイル系ばかり脚光を浴びているのを見ると、なんであんなチャチなものがもてはやされているんだろうとやっかみを感じることはあります。 もし質問者さんが強い希望があってWebやモバイルをやりたいのならいいですが、そこまでではなくエンジニアとして食っていける仕事をしたいだけなら、組込も悪くないですよ。なかなか若い人が入ってこないので重宝されると思います。私の会社で組込系をやってる人達は年俸1000万は軽く超えてます(年齢層も高いですが…)。Web系だとおそらく単なるエンジニアでそこまで行く人は少数派だと思います。