2020-07-21

スクールには行かずにプログラマになって3年で年収が2倍になった

異業種の時の年収は300万届かないぐらい。3年程たって今年の査定で年収が異業種の前々職と比較して2倍になって現在は600万。正確には580万ちょっと。プログラマの相場的にはそこまで多い方ではないけど翌月の生活を気にする毎日は脱したと思う。年齢は29歳。性自認は男。社交性は乏しく秀でたものも特に無い。無名地方国立大卒の実家は貧乏で疎遠。


プログラミングスクールに通うほどの金銭的余裕がないのでいきなり未経験で飛び込んだ。駆け出しエンジニアみたいなハッシュタグで繋がる程のコミュ力なくて未経験者同士の友達で慰め合ったりみたいなことはしたことない。


TwitterもGitHubもやっていて会社のブログとかにも名前が出ていて、身の上話で知られても嬉しくないので増田で書く。

アラフォーからプログラマーに転職して1ヶ月経ったけど、正直な感想書いてみる(https://shimasei.hatenablog.com/entry/2020/07/19/195857)

この記事を見て書くことにした。異業種からプログラマになりたい人の背中を押せるような記事であれば嬉しい。件の記事はアラフォーですけど自分は20代後半からの転職なのでアラサー。

大学を卒業してから地元でメディア運営をしている会社に就職した。媒体は色々あるがネットメディアの運営を行っている部署だった。希望の業界だったので収入は少なくても毎日楽しかったが、任される仕事は増えても給与はほんの少しの昇給のみ。役割や役職が増えたり上がったりしても収入にさほど反映されないのはブラック企業なら稀によくある。転職前計算すると286万で、20代半ばでこれか、と悲しくなったのを覚えている。来月の生活を気にする毎日と中長期の自分の将来を悲観して異業種の転職活動をすることに決めた。希望した業界なので収入がもう少しあったらブラックでも良いからずっと続けたかった。

ネットメディアの運営を行う中でJavaScriptやHTML、CSSを触れる機会があったこと、自分の役職が管理職になっていた(ブラック企業は昇進が早いイメージ。なお給料は大して変わらない模様)ので、開発を行っている会社の社長とかと付き合いがあったことから、簡単に始められそうなプログラミングをやってみることにした。当時の職の伝手を使ってやる気があるなら無料で勉強させてくれると言ってくれた知り合いの社長にお願いしてその会社に早朝から寄らせてもらって出社前に勉強していた。

会社には仕事に影響を与えないようにするために管理職の後任を探して自分は一人の作業者として働くように整えて、日中は紹介してもらった会社に行って勉強、夕方から朝方まで夜勤で出社して仕事をした。給与は安いものの会社的には収益の柱の部署の管理職ということもあり難色を示されたが、得たスキルは会社で活かすことができる等と言って押し通した。立場は多少悪くなったが自分がいなくなったら部署の運営がきつくなるぐらいには人員が足りていないのを知っていたので割と交渉は強気だったと思う。

三ヶ月ぐらい勉強をさせてもらってプログラミングが続けられそうだなと思えるぐらい楽しめたこと、睡眠時間以外は仕事と勉強しかしていなかったので著しく体調が悪化したことを理由に会社を辞めて、勉強させてもらいに行っていた開発会社に転職した。

その三ヶ月の勉強中にやったことを列挙する。

  • CASL Ⅱというアセンブリ言語の学習。これが実質まともに勉強した初めてのプログラミング言語
  • 基本情報技術者試験の勉強。受験が目的ではなくプログラミングに関わることの薄い知識があると良いと言われたので勉強した。
  • プログラムはなぜ動くのかという本を読んだ。メンターっぽい人にすすめられた。
  • Progateを一ヶ月だけ契約してRuby、RoR、JavaScript、PHP、jQuery、Javaのコースを一通りやった。
  • AWSのEC2インスタンスのアクセス権限を渡されたのでここにNginx + Unicorn + Railsでアプリケーションの開発環境を構築するのを10回ぐらいやった。メモは見ないようにやったので毎回違う所でハマって辛かった。
  • プライベートの時間はRoRでゴミアプリを書いたり、ライブラリのコードを読んだりしていた(ライブラリのコード、難しくて理解できてなかったのでほぼ無意味だったと思う。なんもわからんことがわかった) 。

勉強したことはすべて公開した。コードはGitHubに、学習したことのアウトプットはQiitaとブログに。環境はその会社のエンジニアの真似をした。Emacsを使うところまで真似しなくても良かったかなと今でもちょっと思ってる。そのせいで今でもviやVimが苦手。

転職してからやったことは2つ。

  • Ruby on Railsで社内向けのアプリケーション新規開発、その後の保守
  • サーバーサイド、ネイティブクライアント側両方を担当して新規サービスの開発(一次フェーズ)

メンター的な立ち位置で自分と関わってくれた人がいたが、基本的に質問はNGで独力で解決するよう指導されたので同じ問題に数日かかることもよくあった。仕事外ではコードを書くか、ライブラリのコードを読むか、開発に関わる本を読んだ。趣味以外は基本的にこれのどれかをやっていた。

新規サービスの一次開発を終えてある程度スキルが身についたと思っていたこと、転職先の会社もブラック気味で収入が相場と比べて低めだったこと、日本のプログラマは他の業界と比べると雇用の流動性が高くて未経験の給与テーブルと実務経験のあるプログラマの給与テーブルに大きな差があることをネットの情報から知っていたので転職活動をして転職した。この時初めてレンタルではなくスーツを買ったけどスーツを要求される会社は一つもなくて金の無駄だった。この時の提示額は450万に少し満たないぐらい。それでも前職と比べて150万給与が上がったので大きな不満はなかった。

転職先(現職)ではネイティブアプリエンジニアとして働いている。現在2年目。自社サービスを運営するイケイケの会社ではなく受託開発でご飯を食べている会社に転職した。自社サービスの会社しか経験がなかったため、受託開発を経験してみたかったこと、サービスを作る過程や、サービスを作った結果お客が満足してくれたらそれで十分楽しくて作ったサービスには微塵も興味が持てなかったので受託開発の会社のみを受けて回った。

異業種からの転職の理由は毎回聞かれた。公開していたアウトプットの反応が特に良かった。面接の時の身の上話は多少盛って苦労人を演じた。合計で7社程受けて、書類選考で門前払いが一社。六社は合格。落ちた所はダメ元で受けたがやっぱり駄目だった。落ちた会社に今後の糧にしたいので率直に落とした理由を教えてくれませんかと連絡したらメールで教えてくれた。これもダメ元で聞いたので嬉しかった。ディスプレイに付箋で貼って毎日仕事をする前に見ている。今の会社に決めた理由は給与。開発自体が楽しいのでどこいっても楽しいだろうと思ってたため、給与以外どうでも良かった。

受託開発は納期もそこそこキツいがPMやデザイナー、一緒に働いているチームのプログラマに助けられながら1年間続けた。テストも存在しない案件ばかりだったがどの案件も最終的にはCI/CDに乗せて継続的に品質の維持・向上ができる環境にして新規の部分に関してはテストを書きながら機能開発をしている。既存の変更はテストがないので、バグを作ってしまう恐れがあると思って多めに見積もっている。既存のコードに手を入れるためにリファクタリングに関する本を読んでいるがまだ読み終わっていない。読み終わってリファクタに取り組める自信がついたら既存のコードもテストを書きつつリファクタするかもしれない。

テストやCI/CDに拘る理由は注意力散漫な自分が全く信用できないので不安なところはテストしたいと思っているから。毎回案件にアサインされる度に同じことをするため、普通にやっていたら初速が出ない。でもテストを書ける環境だけは作らないとお客さんに出せる品質で納品できる自信がなかったので、業務時間外に事前調査を行って滞りなくできることを確認して業務を導入を進めた。正直めちゃくちゃきついので残業したいが、転職先はホワイト企業なので残業をし過ぎたら何事かと1on1を設定される。それは避けたかった。

受託開発以外に、強制ではないが評価には繋がるということが結構ある。コミュニティでの活動などいわゆるアウトプット、というやつだ。ホワイトめのWeb系でも多分存在する評価基準だと思う。強制ではないもののプラスの評価にはなると聞いていたので、年間を通して続けた。部署内であった大抵のヘルプや人手の募集には手を上げたと思う。同じ領域のエンジニアの中の誰よりも定量的に見れるアウトプットは多くなるようにした。プログラミング自体が楽しくて業務時間外の学習や調査、開発は全く苦ではないので、プライベートな時間では趣味で始めたゲーム以外は基本的にプログラミングに関わることをしている。当然時間がなくなるので、健康を考慮して睡眠以外の時間を可能な限り削る生活をしている。食事と家事の時間を減らせるものは何でも買った。支出は増えたが宅配食(ややまずい)や完全食(くそまずい)、購入した家電のおかげで勉強の時間は多少捻出できた。それでも時間が足りないので、社内のSlackの技術的でない雑談には一切参加していない。見積もりより早く終わらせるよう努めて運良く余った時間を自己学習に使っている。そのせいか入社して仕事中に自発的に雑談をした覚えがない。

結果として出せた定量的・定性的なアウトプットが評価されたみたいで来季の年収が150万あがって600万近くになった。プログラマになる前が300万近くなのでこれでタイトル通りのはず。今のキャリアで進みつつコンピュータサイエンスを学ぶために大学に入り直したいと今は計画していて、働きながらが理想だけどちょっと厳しそうなので貯金中。CSを独力で学びなおしている人がいたら具体的な方法を教えてほしい。とりあえず今は土台の高校数学のチャート式を毎日やっている。

プログラミング初心者の人で異業種から転職したいと思っている人へ

スクール以外の方法でプログラマになった自分のここまでを書きました。冒頭に書いたけどコミュニケーションがあまり得意でないこともあって、駆け出しエンジニアと繋がりたい、みたいなSNSのハッシュタグは避けてたので転職するまでプログラマの知り合いはゼロです。馴れ合いにさえならなかったらモチベーションの維持にも役立つと思うので社交性のある駆け出しエンジニアの方々がうらやましいです。自分みたいなパソコンの前で長時間ぐらい座ってられるぐらいしか取り柄がない自分でもご飯を食べていけるぐらいには人手不足なのでスクール等好きなやり方で転職活動頑張ってください。適正があれば魅力的な業界だと思うので自分の文章でプログラミングのモチベーションが上がってくれたら何よりうれしいです。

ただ、人手不足というのはプログラミングが苦じゃなくて、自走できるプログラマが不足しているというのが限られた経験から感じるこの業界の人手不足と思ってます。多分プログラミングが苦痛に感じたり、プライベートの時間を学習に当てるのが苦痛に感じる場合苦労すると思います。学生の時にきちんと勉強して卒業後もプログラマとして働いている人たちと競争することになるので、ある程度の収入を得られるスキルを身につけよう思うと犠牲にしないといけないものもあると思います。自分の場合はそれが時間です。正直プログラミングを含む開発自体が楽しいと感じられなかったらこの生活は無理だなと自分でも思います。

それと、雇用の流動性がすごい高い上に、釣った魚には餌をやらない会社がほとんどなので大抵の会社では給与が上がりにくいです。不満があったらいつでも転職できるように準備することを勧めたいです。一般的な日本の業界だとその会社に不満をもったら会社を変える努力をしろみたいなことを言われがちですが、幸か不幸かこの業界にそれは当てはまらないと思います。

最後に、未経験と経験者の給与テーブルの差は残念ですが存在するので一通りスキル積んで給与上がる気配がなかったらすぐに転職しましょう。二度目以降の転職活動の給与アップは全員に保証できないけど、未経験から経験者では明らかに待遇が変わります。多くの初心者の人たちが入ってこれることで競争も激しくなりますが量から質が生まれると思うのでこの業界に入ってくれる人が増えるほど嬉しく思います。いつか一緒に働けることを願ってます。

  • スクールヘイトなのか宣伝なのか

  • 長すぎて所々しか読んでないけど、昨今珍しい真っ当な努力家で草生えた アセンブリから勉強する人は珍しいねw

  • このご時勢でハローワールドがアセンブラってよく辞めなかったな

  • スクール卒業してホワイト企業に転職しました!みたいな互助会ブログに比べたら苦労が目に見える ここまでプライベート犠牲にしないと600もいかないの日本のいっと業界終わりすぎ

記事への反応(ブックマークコメント)

ログイン ユーザー登録
ようこそ ゲスト さん