日々徒然

プログラミングしたりお酒飲んだりする毎日

未経験からエンジニアになって4年半、運と学びでこれまでを振り返る

どーも、元『#駆け出しエンジニアと繋がりたい』中の人です。

未経験エンジニアと繋がりたかった自分は、その後、独学→プログラミングスクール→ベンチャー→メガベンチャーというキャリアを歩んできた。このキャリアには運の要素がかなり強く、再現性があるかは正直わからない。

エンジニアとして働き始めて4年半が経過し、公務員として勤めていた4年を超えた。このため、自分の社会人経験はエンジニアとしての期間のほうが長くなった。この節目を機に、エンジニアになるまで、そしてエンジニアになった後を振り返りたい。

振り返りのテーマは以下の三つである: - やってきたこと - 学んだこと - 運が良かったこと

対象読者

  • 今からエンジニアになろうと勉強している未経験者
  • 駆け出しエンジニアと繋がりたかったやつがどうなったのか気になる人
  • 巷で話題になりがちなプログラミングスクール卒からエンジニアになったやつのその後が気になる人

簡単な経歴

  • 高専3年中退
  • 4年間公務員
  • 働きながらプログラミングスクールで9ヶ月間勉強
  • 広告系のシステムを開発しているベンチャー企業に転職
  • SaaS開発をしているメガベンチャーに転職

プログラミングを始めるまで

高専を中退して公務員になってからは、仕事と遊びオンリーで過ごしていた。

特に20歳くらいの時なんかは、休みの日は毎日同期と飲み歩いて、「俺は目をつぶりながらでも家から歌舞伎町まで行ける」みたいなことを言っていたのを覚えている。

そして、マッチングアプリを自動操作できるスクリプトを作りたいと思い、プログラミングについて調べ始めたのがプログラミングを始めたきっかけになった。

もともと高校の授業ではプログラミングの単位を落とす程度にはプログラミングが嫌いだったが、大人になってから勉強を始めると意外と面白いことに気づき、いつしかエンジニアになりたいなと漠然と考え始めた。

学べたこと

ここでは特になし 強いて言うなら歌舞伎町のキャッチについて行っては駄目だということ

運の良かったこと

  • 高専で少しプログラミングに触っていたこと
    • 『プログラミングって何???』みたいな全く無知な状態ではなかったこと

独学編

まだ転職する意思は固まってなかったけど、とりあえず独学で勉強することにした。

2019年当時は色々なプログラミングスクールが広告を出しまくっていた頃で、いわゆる未経験からエンジニア転職がバズワード的に拡散されていた。 そして、Twitter(現X)にも大量の 『#駆け出しエンジニアと繋がりたい』 みたいなハッシュタグが流れまくっていた。

多分プログラミングスクールに行くのが早いのかなと考えていたが、Twitterの現役エンジニア達がとにかくプログラミングスクールをdisってるのを見て、「スクールってやめといたほうが良いのかな?どうなんだ?」みたいな気持ちになったのを覚えている。

その頃は特にプログラミングスクール(笑)みたいな風潮があったと思う。 プログラミングスクールに行って失敗しました、人生終わりましたみたいな話もあったりで、とにかく自分はいろいろな情報がありすぎて戸惑った。

結局のところ、単純に遊びすぎて金がなかったので、スクールに40万とか払うの無理だった。

なので、とりあえずProgateや、Railsチュートリアルを始めてみた。 しかし途中で挫折してどうしようかな?と迷ってるときにTwitterで 『有料プログラミングコミュニティ』 的なものを見つけた。 『転職するまでサポート、高い金でプログラミングスクール行くやつはアホ、うちなら5万円だけでOK』 みたいなクソほど怪しい文言に騙されて、パチンコで勝ったお金を握りしめてコミュニティに参加した。 が、当然何も身につかないような環境だったのでドブ金になった。

その後改めて色々考えて 『エンジニアになるなら、実際のエンジニアに話し聞きに行こう』 と思い、connpassでイベントを探し、渋谷のベンチャー企業がやっているイベントに参加した。 そこで自分が卒業したプログラミングスクールを紹介してもらった。 実際にそのスクールに通っていた方が良いところ、悪いところを教えてくださりとても納得感があったし、卒業した方が実際に企業で働かれている点でも説得力があった。 そして、その勉強会の帰り道でスマホからスクールに登録した。 今振り返ると、ここが一つの大きなターニングポイントだったと思う。

学べたこと

運の良かったこと

  • 謎コミュニティから早く抜け出せたこと
  • 良いスクールを紹介してもらえたこと

プログラミングスクール編

フィヨルドブートキャンプというプログラミングスクールを紹介してもらい、そこで約9ヶ月間働きながらプログラミングを学ぶことにした。

bootcamp.fjord.jp

(ちなみに具体的にスクール名を出してますが紹介料もらったりとかそういうのは全く無いです。アフィリンクでもないです。)

多分仕事でRubyを触っている人なら聞いたことくらいはあるのではと思う。

ここでWeb開発の基礎を一通り学ぶことができたのはとても良かったし、後々のエンジニアとしてのキャリアにも大きく影響した。

フィヨルドではOSSとして公開されているbootcampというシステムを自分たちで開発するカリキュラムがあり、そこで実際の業務のような流れで開発をすることになる。 例えば自分が作成したPRはこれ

github.com

今あらためて見てみると、未経験が書いたとは思えないし、細かいコードレビューがされてて実際の業務相当の経験がつめたと思う。

そしてこのあたりでコロナが流行り始めた。 コロナでリモートワークが流行りだした時、「自分もリモートワークしたい」と思ったのがエンジニアに転職したいと決心するきっかけになった。

そんなこんなで約9ヶ月でスクールを卒業し、スクールの紹介していた広告系のベンチャー企業に受かった。 この時人生で初めての就活だったのでめちゃくちゃしんどかったのを覚えている。 1年間禁煙していたタバコをストレスのせいで再開した。

ちなみに今は4度目の禁煙中。

学べたこと

  • 基礎的なWeb開発の知識を大雑把に学べたこと
    • 入社後にすぐ開発に入れたのはフィヨルドで学んだことが大きい
  • 勉強する習慣
    • 今思うとフルタイムで働きながら9ヶ月間勉強できたのすごい。勉強する下地がついたおかげで、今もエンジニアとして働けている。
  • Giveの精神
    • RubyコミュニティやOSS開発など、Web開発以外のことについても学べた。誰かが作ってくれたOSSのお陰で、システムが成り立っているし、Rubyコミッター、コミュニティのおかげでRubyで飯が食える。
    • この記事を書いてるのも、自分のキャリアの振り返りとともに、どこかの未経験エンジニアに少しだけでも役に立てば良いなと思ってる。

運が良かったこと

  • 卒業するタイミングですぐに転職先が決まったこと
    • 実は転職先が決まる前に退職届を出していたのですぐ決まらなかったら金銭的に危なかった
  • 一社目の企業に受かったこと
    • 後で書くが、一社目で自分のエンジニアとしての下地がついたので、その会社に入れたことはとても運が良かった

ベンチャー編

入社後まず初めに、すべて Rails で書かれていたサービスをバックエンドとフロントエンドにリプレイスするプロジェクトにアサインされた。 基本的にはすでに書かれているコードを、REST API に置き換えるような作業がメインだった。

リプレイス後は新規機能の要件定義から開発、外部企業とのシステム連携の案件に携わった。 この時、たとえばエンジニア以外の人との調整や、他社との連携など、プログラミング以外のことについて学べたのは後の自分にとって大きな経験になった。

また、自社のプロダクトだったので障害対応や保守など、サービスを運用していくうえで大切なことが学べた。

あと、ヘルプとして新規サービスのQA業務のようなことを少しだけ行ったので、スプシ力とテスト力も鍛えられた。

ちなみにフルリモートの企業だったので、入社から退職までずっとフルリモートで働きました。実際に会社に行ったのは入社日を合わせると2回だけ。 フルリモートでのコミュニケーションとか働き方を学べたのも、今考えると良い経験になったなと思う。

そしてなんやかんやで色々あり、転職活動を始めることに。

本当に色々あった。。。

学べたこと

  • 業務で Rails を書く際のお作法
    • テストコードがかなりしっかり書かれているプロダクトだったので、テストコードを書く癖がついた
  • 業務レベルの Ruby の知識
    • このとき Ruby Gold の資格を取得したのが、後々の Rails 開発にかなり生きた
  • DB周りの知識
    • かなりデータ量の多いテーブルを扱うこともあった。
    • 重いクエリを投げるだけでヒヤヒヤする経験がつめた(実行計画を確認する癖が身についた)
  • フルリモートでの働き方

    運が良かったこと

  • 親身に教えてくれる先輩とか同僚がいた
    • 直属の先輩は技術の話もキャリアの話もしてくれて、いまだにめちゃくちゃ感謝してる
    • 先輩以外は業務委託の方が多かったが、未経験から入った自分にも色々指導してくれた
  • 裁量を持って働けたこと
    • 比較的早い段階で新規開発の担当にしてくださったり、本当に良い経験ができたのは当時の上長や先輩、同僚のおかげ。

転職活動編

『未経験』の称号が外れてから初めての転職活動。

転職活動を行っていた2022年前半頃はいわゆるエンジニアバブルの時期らしく、転職サイトに登録すると、自分のような経験の少ないエンジニアでもかなりの数のオファーが来た。

エンジニアバブルは2015年頃から2022年10月末まで続いたと言え、上記のバブルと比較をしてもかなり長かったと捉えています。長期に渡ってのバブルだったため、しばらくは余韻が続くものと考えられます。

note.com

そしてそのオファーも、エンジニアであれば名前は聞いたことがあるような大きな会社も何社か含まれていた。 結局カジュアル面談では20社程度と面談し、その後の選考は以下の通り。

一次面接: 8社

二次面接: 5社

最終面接: 2社

内定: 2社

自分はフロントエンドの知見が殆どなかったので、それに対してミスマッチな企業はことごとく落ちた。 一応職務経歴書やカジュアル面談の時点で『フロントエンドの知見が無いです』とは表明していたが、いざ面接になると React について細かく聞かれたりした。 そういった企業は当たり前にすべて落選した。 また、一社はバックエンドの技術試験で落選した。 システム設計に関する試験だったので、そういったところに自分の弱みがあることが分かったので、今考えるとこれはこれで良い経験になったのかなと思う。

で、最終面接で2社とも合格し、今働いているメガベンチャーのオファーを受けることに。

まわりに話したところ驚いている人も多かったので、多分今の自分の技術力では、分不相応な会社なんだろうなとは自覚していた。 それでも今の自分がどれくらい通用するのか知りたかったし、エンジニアとして成長できると思い入社を決めた。

一度、カジュアル面談で大遅刻をかまされた上に、学歴を猛烈にdisられたことを未だに根に持っている

学べたこと

  • 実際に転職活動をしてみないと、自分の市場価値は分からないということ
    • 自分のエンジニアとしての市場価値は、自分じゃなくて周りが決める
  • 落選はその時の企業の欲しい人材と、今の自分がミスマッチなだけ
    • 落ちる企業もあれば受かる企業もある。当たり前なことだけど、身を持って学ぶことができた
  • 本気で取り組んだ仕事は経験として話せるし伝わる(気がする)
    • 自分が頭を捻って、本気で取り組んだ仕事は面接の時に自分事として色々話せた。
    • 逆に、その場しのぎで取ってつけたようなフロントエンドの知識とか技術に関しては全然話せなかった

運が良かったこと

  • メガベンチャーに転職できたこと
    • 少なくとも新卒では絶対に入れない会社に入れた(そもそも高専中退なので新卒とは?って感じだが)
  • 転職当時の、いわゆるエンジニアバブル的な時期と転職のタイミングがちょうど重なったこと
  • 当時の外部要因が転職という判断の不安要素にならなかった
    • たとえば結婚していたり、小さな子供がいたり、親の介護があったり、そういうい外部要因が全く無かったので、何も気にせずにチャレンジできた。

メガベンチャー編

まず初めに入った部署では技術的負債解消プロジェクトにアサインされた。 入社後いきなり社内でも歴史の深い比較的かなり大きめなプロダクトの担当になった。 正直最初のキャッチアップはかなりしんどかった。 入社前に持っていた『メガベンチャーは最新技術使いまくり、みんな技術力高すぎる』みたいなイメージは入社3ヶ月くらいの段階で消えて、結局泥臭いプログラミング業務がメインなんだな〜と実感した。

だいたいその案件を3ヶ月ほど担当した後、別プロダクトのヘルプ人員として3ヶ月ほど新機能開発を行うことになる。 そこで同じ年の有名大卒のエンジニアを見たときに、同世代で比較にならないくらいレベルの差があることを実感した。正直『エンジニアとして働くなら、同年代のこんなに優秀な奴らとずっと競うことになるのか。。。』とめちゃくちゃ萎えたのを覚えてる。

ただ、入社して初めての半期評価ではそれなりに評価してもらえたので、今後少しだけやっていける自信がついた。

その後は技術的負債解消チームに戻り、約1年半負債解消活動を行った。 部署をまたいだ横断的なプロジェクトであったため、業務側、プロダクト担当の方々との調整など、プログラミング以外のスキルが必要になる場面も多かった。 また、ここまで巨大で複雑なコードを保守して、リアーキテクチャしていく経験はこの規模の会社でないと得られない経験だったなと思う。

現在は基盤系プロダクト開発担当になって、Railsで開発されているサービスの担当として働きつつ、Goを使用したマイクロサービス開発を行ったりしている。

また、プログラミング以外では組織の英語化の兼ね合いで英語の勉強を始めることになった。入社前はなんとかなるでしょ!くらいに考えていたが全然そんなコトなかった。 会社で求められる英語力はTOEIC IP700点だが、入社後初めて受けたTOEIC IPは300点台だった。 めちゃくちゃ頑張って700点とることができたけど、仕事をしながら1日4時間とか英語を勉強するのは精神的にかなりきつかったし、猛勉強していた当時はほぼ病んでた気がする。 そんなこんなで現在はTOEIC IP 700点を取得し、社内で求められているその他の基準も満たした状態となった。

ただ英語は未だに全然できない。言いたいことは言えないし伝わらないし、なんなら聞き取れない。 なので会議で話されている英語がぜんぜん聞き取れなくて話がわからなかったり、言いたいことが言えないのでめちゃくちゃもどかしい経験もしてる。

一度社内表彰的なものをもらった際に、表彰対象者と新卒のエンジニア(全員海外出身メンバー)の座談会的なものが開かれたことがあった。 他の日本人のエンジニアは英語を話していたけど、自分だけ通訳の方に入ってもらったときはめちゃくちゃ情けないな〜という気持ちになった。

半分くらいは英語の話になったが、実際この会社に入ってから悩みの8割位は英語なのでこの熱量になった。

日本人の英語は結構聞き取れるけど、それ日本語話せばええやんって気持ち

学べたこと

  • 巨大なコードを保守していく技術
    • コードは追加するより保守していくことのほうが断然難しい
  • 大きなマイルストーンを計画し、実行していく能力
    • 関係者を巻き込みながら、大きな目標に向けてやるべきことをやっていく
  • 新卒で入社してきた同年代とはレベルが違いすぎること
    • 技術力も仕事力も別物
    • 10代後半 ~ 20代前半はもっと頑張るべき時期だった(と思いつつ、その年代でアホみたいに遊んだから今まともになった気もする)
  • 英語を学ぶのはめちゃくちゃ難しい
    • 自分は大学受験してないので、be動詞と中学レベルの単語から勉強し直した
    • TOEICで点取れても実際の会議の英語は聞き取れない、話せない

運が良かったこと

  • 入社後すぐに、自分が比較的得意な領域の仕事をアサインされて、入社後すぐに成果を出せたこと
  • 前職で携わったリプレイス案件と、技術的負債解消プロジェクトが似ていたこと
    • 自分が強みを出せるところをピンポイントでアサインされたことで、なんとかギリギリ成果を出すことができた気がする
  • 体育会系出身でもともとメンタルが鍛えられていたこと
    • ほぼ炎上プロジェクトで残業しまくったり、英語の勉強でプライベートの時間が全くなくなるみたいな状態になっても病まなかったのは、もっときつい経験してたからだと思う

運が良かったことまとめ

特に運が良かったと思ったことをまとめた

  • 高専で少しプログラミングに触っていたこと

  • 良いスクールを紹介してもらえたこと

  • 一社目で親身に教えてくれる先輩とか同僚がいた

  • いわゆるエンジニアバブル的な時期と転職のタイミングがちょうど重なったこと

  • 入社後すぐに、自分が比較的得意な領域の仕事をアサインされて、入社後すぐに成果を出せたこと

  • 学生時代からずっと体育会系な環境で育ったので、もともとメンタルが鍛えられていたこと

多分この中のどれかがかけていたら今の状況になっていないと思う。 改めて振り返ることで、今の状況は本当に運に支えられていたなと実感した。

さいごに

今の自分のキャリアが良いのか悪いのかは客観的に見るとどうなんだろう?と思っている。 自分的には大満足だし、運が良くなければ今のエンジニアとしてのスキルは身についていなかったと思う。 しかし、たとえば自分が卒業したプログラミングスクール卒の方で何名かは有名なカンファレンスに登壇していたり、最初からもっと大きな企業に未経験で転職していたりする。 なので、自分よりもっと凄くて羨ましい経歴の未経験からエンジニアになった人間は大量にいる。 ただ、少なくとも自分が今の会社で働けているのは奇跡のようなものだと思う。 新卒では絶対に入れないし、中途でも英語ができないので絶対に入れない。 運も実力の内とはいうので、今の状況を感謝しつつ、もっと運が良くなることを願っている。

先週、買ってから半年で結婚指輪をなくしたので、来年は運が良くなるはず