1. ゆるITエンジニア道場
  2. インフラエンジニアからアプリ..
2025-09-20 09:47

インフラエンジニアからアプリエンジニアにジョブチェンジしたらめっちゃ大変だった

riddle です。


インフラしかできなかった頃に、いつかはアプリケーションを描けるようになりたいとずっと思っていました。縁あってその機会が来て、意気揚々と挑戦したのですがめっちゃ大変だったという話をします。


--------------------------------------------------------------


riddle : https://x.com/riddle_tec

ひびの : https://x.com/nasustim


番組へのお便りはこちら:https://forms.gle/gp78XNFgERDFDkb88

サマリー

インフラエンジニアからアプリエンジニアへの転職は多くの挑戦と苦労を伴っています。特にGo言語の習得やソフトウェアアーキテクチャの理解が難しく、デバッグや環境構築でも多くの壁に直面していますが、最終的には成長を実感し、チャンスを見出しています。

ジョブチェンジの挑戦
こんにちは、シニアソフトエンジニアのriddleです。このポッドキャストは、IT業界のいろんな話やリアルをお届けします。
今回はですね、私がインフラエンジニアからアプリケーションのエンジニアにジョブチェンジをした時に苦労したこと、というテーマでお話ししたいと思います。
ここではですね、アプリケーションエンジニア、もしくはバックエンドエンジニアという職種なんですけれども、
私がですね、ミクシーという会社で働いていた時にですね、もともと採用はインフラとかSREだったんですけれども、バックエンドもやってみたいなという思いがありまして、
縁があって、ちょっとプロジェクトの中でやらせていただくことになって、ちょっと挑戦したというところの話をしたいと思います。
結果的にはですね、この選択はすごい正解で、今もうインフラプラスバックエンドみたいなところを中心として仕事をしていて、
やっぱりその2つができると結構幅が広がるというか、インフラもやっぱりその上で動くものありきですし、
バックエンドもインフラがないとそもそも動かせないので、両方できるに越したことはないかなと思っています。
ただですね、やっぱりインフラとバックエンドの開発って全然経路が違うものなので、簡単にできるものじゃないんだなということを骨身に染みています。
じゃあどういうところが大変だったのかっていうところをちょっとご紹介したいと思います。
ちなみにですね、私はそれまでバックエンドになる前までは、エクセルのマクロを書いたりとか、簡単なスクリプトをGoやPythonで書くみたいなことはできていたので、
完全にプログラミングができないわけではなかったんですね。その上でどうだったのかみたいなところをお話ししたいと思います。
本当にね、いろいろできなかったですね。いくつかあるんですけども、まず最初、私がやったのはGoだったんですけれども、
そもそもGoのコードの読み方がわからなかったです。Goはですね、シンタックス種が少ないですし、
文法もそう多いものでもないので、誰が書いても大体同じようなコードになりがちなんですね。なので非常に初心者向けの言語ではあるんですけれども、
そういう意味で取っ付きやすいはずなんですけれども、まあGoを読んでも何やってるのかよくわからなかったですね。
まあ今でこそ第一級関数みたいなもので、関数の受け渡しをするみたいなことはなんとなくわかってますけど、
当時はね、そういうのよくわからなかったんで、クロージャーとかそういうものが急に登場してくると、
え?これ何やってるの?とか、プログラミング言語としてわかんないことなのか、なんかちょっとプログラミング言語が発展的に使っているライブラリの話なのか、
もしくはソフトウェアのアーキテクチャーとしてそうなってるのかとか、なんかそういういろんなわからないが積み重なりすぎて、全然コードが読み進められませんでした。
しかもですね、最初やってたのがソーシャルゲームの裏側だったんですけども、そのソーシャルゲームの仕様も知らなかったので、
何をやりたいのか全然わからないし、何をやってるかっていうのもわからなかったですね。そういうこともあって、だいぶ最初は読み方に苦労しました。
結局どうやって改善したかというと、プルリクをとりあえず覗きまくってレビューしまくってみる。
レビューつっても自分がアプローブするというよりかは、他の人がアプローブしたやつを読み込んでみて、どういうコメントをもらってるかとか、
技術的な困難
どういう内容です、どういう修正をしているのかみたいなことを逐一チェックしたりしてました。続いて、コードがそもそも書けなかったですね。
スクリプトが書けるんで、別にコードも書けるでしょって思ってたんですけど、これがね、なんか全然違うんですよね。
いわゆるスクリプトって、上から下までやりたいことを羅列していくだけで片付く。部分的にですね、関数使ったり、まとめて処理を
こうスモールにしたりとか、使い回せるようにしたりみたいなことをしますけど、やっぱり大規模なコードを、まあこれいう大規模って言っても、
10人いかないチームで開発管理するぐらいのコード量ですけれども、それぐらいだったとしても、複数人で開発するとなると、
ある程度のソフトウェアのアーキテクチャーを適用するみたいなケースが多いかなと思います。いわゆるMVCだったり、クリーンアーキテクチャーだったり、レイヤードアーキテクチャーみたいなものですね。
そうなると自然的にコードの量が増えますし、一定の押さ法に則ってコードを書くので、その押さ法自体を知らないとコードの読み方もよくわかんないんですよね。
別にIDEの使い方とかも全然知らないので、コードジャンプとか、どうやったらこのインターフェースを実装しているところに飛べるんだろうとか、
そういうのが全然わかんなくて、コードを書けないし読めないしということで非常に苦労しましたね。
例えば、あるAPIを作りたいとしても複数の階層に分かれていると、今までのスクリプトみたいにずらずらと書くんじゃなくて、
まずは例えばドメインに使いたいドメインモデルを定義した後に、それをユースケースから読んであげて、ハンドラーからユースケース読んで、
データベースのアクセスはリポジトリを別に作った上でどうのこうのとか、
Goのコードは結構コードの自動生成を使うことが多いので、先にコードを生成しておかないと作れないよとか、
外部のAPIについてはオープンAPIのスキーもあったり、GRPCとプロとバフでやってるみたいな感じなので、
そこのコードをジェネレートを先にしないといけないよみたいなこともいろいろあったり、
とにかく複雑度が段違いすぎて、まずそこに慣れるというか、それを理解するっていうところに一山も二山もありましたね。
はい次ですね、次はそもそも自分が書いたコードの実行の仕方とかデバッグの仕方が全然わかりませんでした。
今ではね、VS Codeを使って、Goだとデルブっていうデバッグ用のツールがあったりして、それをVS Code系で呼べたりすることがよくわかっていて、
愛用しているので何にも困らないんですけど、当時はね、そもそもなんかブレイクポイントみたいなものをどうやって設定するかもわからないし、
今まで例えばですけど、普通のメモ帳とまではいかないですけど、Sakura EditorとかVIとか、
ちょっとリッチなもので作ってたとしても、あんまりそういうデバッグをしたことがなかったので、いわゆるプリントデバッグぐらいですよね。
ってなると、うーん、なんかどうやってやるんだろうみたいなこともわかんないし、なんかみんなは当たり前にそういうことをやってるから、
そこで困るとも思ってないんですよね。なのでそういうところもだいぶ苦労しました。あとはですね、環境構築も苦労しましたね。
Goの場合はシンプルでよかったんですけど、Railsを探したときはRailsのなんかGEMのインストールとかが全然うまくいかなくて、
自分が当時M1MacっていうARMのCPUのMacが登場したときで、みんなはx86-64のCPUのものを使っていたので、
そこのCPUアーキテクチャの違いでツールが入ったり入らなかったりみたいなところで結構苦労して、環境構築全然できなくて、そもそも開発に参加できないみたいなこともありましたね。
経験と成長
いやー、使ったことないツールでトラブルとやっぱり何とかするにも時間かかりますし、特に新規参入者チームだとなかなか周りに相談するっていうのも大変だったりするので、苦い思い出ですね。
という感じですね。最初にジョブチェンジをしてみて、バックエンドエンジニアとして働き始めてみたら、もう本当に基本動作から全然わかんないんですよね。
しかもそれなりのキャリアで入ってきているので、これって1年目よりも酷いんですよね。
特にメガベンチャーのミクシーみたいなところだと、もうインターンとかで入ってくる子たちはですね、既にある程度開発の経験をしているので、数年間とか、
全然もう基本動作としての開発の仕方とか、コードの読み方とか、デバッグの仕方とか、そういうのって大体は身につけたりするんですよ。
語言語をやったことがなかったとしても、他の言語で身につけているので、自分でもやり方を調べられるし、
もしくはピンポイントで先輩に聞くみたいなアクションも簡単にできるので、割と詰まること少ないんじゃないかなと思うんですけれども、
自分ぐらいですね、それこそ10年ぐらいやってて、入ってみてそれできないってなると、なかなか厳しいので、本当に最初は大変でした。
その後ですね、フロントエンドとかモバイルとかも経験したんですけれども、多少フロントエンドとかモバイルのアプリの構築の仕方というか、流儀とか、
プログラミング言語の特性の違いとか、いろいろありましたけど、結局はサーバーで培ったような開発の方法が結構適用できることが多くてですね、
その後はその道の詳しい人に、モバイルってこういうところ独自そうだけどどうやってやってるの?みたいな話とかを何回か聞けば、
なんとなくこんな感じなのかなみたいなのがわかるようになったので、やっぱりアプリケーション開発とインフラだとそこ結構かけねえあるなと思いました。
ということで今回は私リドルがですね、インフラのエンジニアからアプリケーション側のエンジニアにキャリアチェンジをしたという話と、
それに伴ってこういう苦労があったよという話を紹介しました。大変でしたけど個人的に振り返ると、キャリアチェンジして旅行できるようになった今っていうのはとても素晴らしいと思っていますし、
もっとその広げていきたいなと思っているのでですね、もしインフラからバックエンド挑戦してみたいという方はですね、ぜひチャンスをつかみ取ってみてください。
このポッドキャストは、ハッシュタグUITで皆様からの感想やコメント募集しております。
またチャンネルの概要欄にGoogleフォームのリンクもありますのでそちらからのご投稿も大歓迎です。ありがとうございました。
09:47

コメント

スクロール