組み込み制御系からWeb系に転身して感じたこと
はじめまして。テクニケーション エンジニアのOです。
組み込み制御系(C言語)から、Web系(Java)にキャリアチェンジしました。
この記事では、組み込み制御系からWeb系へ転身したいと思っているエンジニアの方々の参考になればと思い、キャリアの振り返りを記してみました!
目次
学生時代(組み込み制御系をなぜ選択したか)
工業大学の電子系の学科を中退して、IT関係の専門学校に通っていました。就活の際に大学は中退したものの、少しでもプラスにできないかと考え、組み込み制御系であれば、電子関係の学科にいたことを伝えることができると考えました。そのこともあり、組み込み制御系の業務ができる企業に絞って就活をしていました。
新入社員
三ヶ月の研修ののち、自動車の制御系の開発に配属されました。この現場では、自動車の安全面を考慮したC言語の組み込み制御系の業務を担当することに。運用保守をする際の様々な問題に対して、要件定義からシステムテストまでを行っていました。他の現場も経験してみたいと考えていたのですが、部署異動を願い出ると、現場を続けるか転職の二択を迫られたため、転職を決意しました。
一回目の転職
転職するなら、開発以外の現場も経験してみたかったので、IT業界で開発以外の業務をさせてもらえる企業に就職し、そのタイミングで横浜に引っ越すことになりました。この現場では大量のデータに対してExcelでVLOOKUPなどを使用してデータの整備をする業務を担当しました。
会社に対しての不満
数ヶ月間勤務したものの、「飲み会での社長や上長の下ネタが多く気分が良くなかった」「保険証を二、三ヶ月渡されなかったものの、給与からは保険料が引かれている」「社員寮が合わなかった……」など会社への不満が溜まり、再度転職することになりました。
二回目の転職
前回の反省を生かして、転職サイトや企業のWebサイトを参考に面接を受け、SES企業に正社員として入社しました。研修・自己学習をしたのちに現場に参画。この現場では、独自のスクリプト言語を使用した帳票の作成など担当しました。そこで経験を積んだのち、現在のテクニケーションに転職することになります。
三回目の転職(テクニケーション)
テクニケーションへの入社後、参画した順に記していきます。
(1)C言語の開発
質問した際に担当者から「俺はお前のwikiじゃねえ」と言われたのは忘れないと思います…。この現場でC言語を使用するのは最後にしようと思いました。
(2)証券会社のWebサイト制作
初めてWeb系の開発の現場に参画しました。jspを使用してコーディングしていました。この現場では、一緒に参画した方々にたくさん助けていただいて大変感謝しています。
(3)既存システムの内製化
Pythonの現場でテスターとして参画しました。
(4)Webサイトの制作
初めてのSpring Bootの現場でした。こちらの現場では、他の言語が使用された既存システムをJava(Spring Boot)に移行するという内容でした。自分には初めてのことばかりで大変でしたが、質問がしやすい環境だったため2年間ほど参画させていただくことができました。また、新しいことを取り入れている現場で楽しかったです。
組み込み制御系の現場とWeb系の現場で異なるところ
(1)組み込み制御系時代は、SQLを使用しない現場だった
他の現場ではわからないですが、私の配属された組み込み制御系の現場ではデータベースの知識が必要ない現場だったので、ペーパーテスト以外でやっていなかったので、完全に失念していました。基礎的なことを忘れていないか、確認して事前に予習するべきだったと思っています…。
(2)画面を見て確認できる
実際に書いたコードを確かめたいときに画面をみて確認できる点は、組み込み制御系からWeb系に変えて良かった点でした。組み込み制御系の現場では、変更したコードの確認を他の部屋に移動してやらなければならなかったので、気軽に確認できませんでした。
(3)実機では確認ができない
Web系では、実機(PC・スマホ)で確認しますが、組み込み制御系の現場では、自動車系だったこともあり、実機で確認することができませんでした。シミュレータを使用してテストを実施しており、シミュレータでは成功したけど、実機では失敗したというケースもあると聞いたことがあります。
(4)テストの量が少ない
Web系ではリリースした後にすぐに確認できるので、テストの内容が組み込み制御系と比べて比較的少ないと感じています。
(5)技術の移り変わりの早さ
組み込み制御系時代は、新しい技術を取り入れることはほぼなかったのですが、Web系では新しい技術や作業方法を取り入れて業務することが多いです。
(6)障害が発生した際の対応
私は経験していないのですが、Web系では上位の方が動いているサービスで障害が発生したら、夜中や休日も対応していました。組み込み制御系では、リリースしたもので障害がおこると回収しなければならず、仕事する側にとっては弱みでもあると思います。
(7)ユーザーが規定通りの使用をしなかった場合の考慮
Web系はあまり関係ありませんが、組み込み制御系時代はユーザーが説明書通りに使用しなかった場合の考慮をしていました。
組み込み制御系の現場とWeb系の現場で共通しているところ
(1)「プログラミングをする」ということに違いはない
組み込み制御系もWeb系も仕様書をもとにプログラミングをし、テストで確認するというところに大きな違いがないと感じました。現場の違いでルールや作業の進め方などは違いますが、組み込み制御系やWeb系特有のものによる違いではないです。
(2)タイミングの確認
組み込み制御系では、更新のタイミングや割込みなどについての配慮が必要で、それが大変だったとWeb系の開発の仕事に就いた友達によく言っていたのですが、更新のタイミングを意識しないといけないのはWeb系も同じでした。今、思い出すと友人に話していた自分が恥ずかしくなります……。