見出し画像

決してキラキラしていないweb系エンジニアまでの私の道のり

未経験からエンジニア転職してちょうど3年目になりました。今までを振り返れるくらいには余裕が出てきたので誰かの参考になれば幸いです。プログラミングスクールやインフルエンサーの方々が推奨するような綺麗なジョブチェンジではなく、割と泥臭く耐え忍んできた感があるのでこんな感じでもエンジニアになれるよという話です。

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

最初に私についてですが年齢は現在32歳で既婚子供はいません。理系の私大を卒業しており、2013年卒として大手通信系の企業になんとか就職しました。理系の大学を出ていますが情報系ではなくこの時はプログラミングの存在すら認識してなかったと思います。入社した会社も別にIT系というわけでもなく個人宅向けの営業を主にやっていました。

同年代の友人たちと比べても給料は高い方だし、仕事はキツイけど一応大手なので福利厚生などは手厚いし、職場の先輩たちも怖い人も多かったけど面白い人たちが多かったし、頑張ればインセンティブつくしで特に辞める理由もなかったためダラダラと続けていました。

プログラミングを始めたのが2019年ごろ。同期やよく遊んでいた先輩たちも辞めてたり、異動したりで連絡を取らなくなってしまったり、私自身異動したりで昔ほど人と遊ばなくなり、良く言えば私生活が落ち着いてきましたがなんとなくつまらなさを感じている頃でした。

ちょうど結婚を考えている時期で彼女がアウトドア趣味が多く、田舎暮らしがしてみたいと冗談なのか本気なのかわからないことを言っていて、田舎で暮らすならリモートで仕事できないと無理だよなーとなんとなくリモートの仕事を探していました。とりあえずパソコンの仕事だなというのは察し、プログラミングが一番稼げるみたいな記事を見てとりあえずやってみようかなという気持ちになりました。(今思えば多分マナブさんの記事)

プログラミング独学開始

彼女は微妙なリアクションでしたが中古でMac airを購入し、とりあえずHTMLの入門書で静的サイト作ったり、アニメーションつけたくてcreate.jsの本とJavaScriptの入門書買ってみたり(今思えば無駄)、自分でまあ考えて1つ静的サイト作るところまで大体半年くらい。

「未経験 プログラミング 言語」みたいな検索をこの頃は無限にしていてちょうど勝又さんのYoutubeに出会いめっちゃ説得力あるすげーみたいに思いRubyをやることにしました。Rubyの入門書と速習Railsをやってちょうど仕事で使っていた契約する時のアプリを真似事で作り転職活動を始めました。ここまででちょうど1年くらい。

一応、ここまでの勉強時間が平日2-3時間と土日は5-6時間くらい。仕事を辞める選択肢はなかったですし、高いお金払うのやだし、自分でやりたかったのでスクールは全然考えてなかったです。仕事行く前と仕事終わりでずっとドトールいました。土日も。あ、でも通勤中とか外回り営業なので暇な時とかはドットインストールみたり、Youtubeとかずっと調べごとしたりはしてました。(ドットインストールで構築したvagrant良くわからないで使ってたなー)progateは一回触ったけどあんまりやらなかったです。(今ほどコンテンツがたぶん充実してなかった)

転職はエージェント1社登録してWantedly乱れ打ちしました。多分100社くらい応募して面談までできたのが5社くらいだった気がする。エージェント経由でJavaの受託企業から内定もらい、勝又信者だった私は「Javaはレガシーだからなー」と全力で抵抗しようとしましたがこれ以上続けてもSES以外無理そうだなと思い内定を受け入れました(ちょうど結婚もして嫁とこのことで口論することもあり、出来立てのSES企業よりは給料的にも良かったのも理由)。今思えばまともなテック企業から返信をもらえる程の成果物もポテンシャルもなかったのであのまま続けてもだいぶ厳しかったと思う。。今の未経験の方でReact + Rails(API) + teraformでECS構築してデプロイしてますみたいな人もいるんだろうなと思うとほんとレベル高いと思う。当時の私はRails + slim + EC2でこれでさえすごい苦労してデプロイした気がする。

エンジニア1年生@何もわからない

2020年4月で入社でしたがちょうどコロナが一番やばい時期で2日目から完全リモートになりました。最初かるく課題的なことをやってそのあとは社長率いる社内アプリのチームに入りましたがもう不満しかなく1年我慢して辞めようみたいに思っていました。以下覚えている限りの当時の不満

  • 支給のPCが年季の入ったWindowsデスクトップなこと(せめてメモリを上げてくれれば、、)

  • 社長が結構昔の技術屋思考ででワンマンだから(まあそんなもんか)

  • こっちから何か聞かないと基本放置(これもまあそんなもんか)

  • 技術がレガシー(コードのバージョン管理がSVNなのが割とびっくりした.ほぼGithubだと思ってた)

1-2ヶ月社長の元でやったあと新規の案件が入ってきたのでそのチームに入り、やっと開発っぽいことができるように。言語がJava11でフレームワークがSpring Boot(JVM言語では良く使われるwebフレームワーク.Rubyでいうrails)でDBがMySQLでインフラはAWSでコード管理はGithubでドキュメント管理はSVN使ってタスク管理はBacklogだったので全然モダンな方だったと思う。月一で稼働するバッチ処理とその管理画面を作るプロジェクトで管理画面のサーバー側の実装を任せてもらえたがほんとに何もわからなかった。

  • そもそもチャットツールすら使ったことなくSkypeの使い方から戸惑った

  • 何をどこにどうやって書いていいのかマジでわかんない

  • ServiceとかRepositoryとかインターフェースとか言われても良くわからん

  • DTOって何??DAOって何??ほぼ見た目一緒じゃん

  • ローカルでDB構築してって何すんの??

  • ラムダ式とストリームの書き方が全然わかんない

etc.
上記のように基本まじわからん状態だったのでコードは別プロジェクトのコードを参考という名のコピペをし、テストもほぼ適当だった。それでも担当機能の実装が終わったらプルリクを出させていただき50ヶ所くらいコメントをいただけた。(本当に感謝しかない。)わからなかったけどちゃんと学びながら実装できていたし、レビューもしてもらえるし、大変だけどそれなりに楽しく仕事していた。

ただ、最初はロジックもそんなに複雑じゃないユーザー系の機能だからできていたわけで、フロント側の表示にもろに関わる部分の実装やバッチ処理の方と絡んだ機能のところはどんだけ考えてもわからなくて苦し紛れな実装を無理矢理してレビュー出してた。ちょっとこの頃は担当機能の実装がいくら考えてもわからず、でも終わらせないとスケジュールやばいのループで本当に死にそうだった。さすがに嫁も一日中夜遅くまで仕事してやばいよみたいな感じで言い争うことも多くホントに辛かった。

同じ様な既婚者で未経験からエンジニア転職する方は本当にここは気をつけたほうがいいと思う。特にお子さんまでいるなら尚更。家族優先しつつで独学でキャッチアップするには時間が足りなすぎる、少なくとも私は。全部うまくやろうとすると絶対病む。30代で家族がいるなら焦ったりするだろうけどまあ、今やれることをコツコツやっていつか安定したエンジニアライフを送れれば幸せだねくらいの余裕がないと精神持たないと思う。スクール通わなかったのも初期投資を最低限にしとけば「何十万も払ってるのだから諦められない、一刻も早く一人前のエンジニアにならないと」みたいな焦りを感じないかなと思ったのもある。

ただ、今はMentaみたいなサービスもあるしネットから学習できることも多いし、ちゃんと努力を続けられる人でそんなに追い詰められずにできる人なら大丈夫。それでも、家族がいるならちゃんと大変だと思う!!っていうのは伝えたほうが良い。そして、それでも挑戦したいと伝えましょう。

そんなこんなで、ごまかしごまかしでやっていたところも最後の方に全部バレて、結局リーダーが作り直してくれて本当に生きててごめんなさい状態だった。そこからはもうメンバーからもリーダーからも信頼はほぼ0で毎日与えられたタスクをただひたすら頭捻ってこなしていく日々でした。(ちょうどこの頃の面談で早くもグレードの降格の話が出てるみたいな事言われた、知らんがな)

で、まあなんとかそのプロジェクトも終わって別プロジェクトにアサインしてもらった。こっちは昔に作ったアプリの改修というかほぼ作り替え。前の案件ではフロントはthymeleaf(JVMで良く使うテンプレートエンジン), Bootstrap, jqueryみたいな感じで割と適当にやってたけど今回はReact使ったアプリらしく少しテンションは上がった。

担当はAPIの作成だったけど、この頃から「何となく実装したいものがイメージできるようになったというか、何がわからなくて、何がわかるか」がわかるようになってきた気がする。実際、プルリクのコメントのやり取りもだいぶ少なくなり、周りの信頼も少しは得られたような気がしていた。で、なんやかんやで怒涛の1年が終わった。

エンジニア2年生@再びrubyエンジニアになるために

2年目突入するととりあえずやってみてわかんなくなったらちょっと質問してみる感じでタスクこなせるようにはなってきた。コードの質とかは全然まだまだだろうが最低ラインでは作れるようにはなったと思う。

余裕も出てきたので転職の準備として、railsでポートフォリオリベンジすることにした。ジャケ買いしたRiot.js本が楽しくてrails + Riot.js + dockerでポートフォリオ作ることにした。仕事の合間を縫ってちょこちょこと

ちなみに余裕が出たからといってプロジェクトの方はこの頃大炎上していたので朝方5時ごろまで働いて少し寝て9時からまた仕事したり、14連勤くらいした時もあった。

ポートフォリオが完成したので今回はエージェントなどは使わずドラフト会議を使ってみたところ5社ほどオファーをいただけて、希望年収あえて書かなかったけど5 - 600万前後のオファーだったのでめちゃくちゃ嬉しかったが、全て開発言語がJVM系の企業でrubyのオファーはなかった。

オファーもらえたらほぼ内定だと愚かな勘違いをしており全部カジュアル面談したあと選考希望したけど4社落ちた。(何でやねん)残った1社が一番スタートアップな感じだったけど一番中身のある面談だった気はする。

もう一度Javaをやるのは考えていなかったけどkotlinとかscalaのオファーもあってそのパターンは考えてなかった。カジュアル面談の時に「なんでruby何ですか」って聞かれてあんまりうまく答えられなかった。逆に「うちはkotlin推し」と言われて興味があったので何となくサーバーサイドkotlinの入門書を購入してみたところかなり楽しかった。IDEが強力なのもあるけど型推論効いてそんなに型意識しなくてかけるし、ほぼJavaって言ってたけどラムダの書き方とか全然Javaっぽくないしこの時点でkotlinやろってなってた。で、そのまま選考続けたら内定もいただけた。

最初の転職の時もそうだったけどとにかく時間を有効に使いたく、今の職場での成長に限界を感じていたのと一刻も早くいわゆるweb系の職場に移ることが一番成長できると思い内定を受けることにした。(つまりrubyを完全に諦めた)

エンジニア3年生@そしてこれから

転職したては色々大変だったけど開発自体はまあやることはあまり変わらない。ただ開発環境はモダンだし、支給のPCなんて性能上がりすぎてびっくりだし、色々融通効くし、ステキな福利いっぱいあるし本当転職できてよかったなと思う。3年目にしてようやくスタートラインに立てた気分。

今の職場も余裕が出てきて、これからのことを考えると勉強したいこともまだいっぱいあるし、やりたいこともあるし、あとこの業界への貢献というか自分と同じようにエンジニアを目指す人を応援したいなという気持ちが意外とありびっくり。

最初に転職した企業のCTOは手取り足取り教えてくれる感じではなく、言い方も少しきつい時があったけど、ちゃんとレビュー依頼は中身を見てくれていた。めっちゃコメントきて全然マージできなかったけど、見捨てたりはしないでいてくれた。(見捨てられかけたけど)自分の成長もわかってくれて殻を破ったって名指しでいってくれた時はマジで嬉しかった。本当に師匠のように思っていてこの人に出会えていなかったら今の自分はないかもしれないと思うと自分も師匠と同じようにしないといけないと思ったりするのだと思う。

あとはSNSとかで未経験からエンジニアを目指した人が諦めたり、職場に恵まれず業界を去ることにしたみたいなのを見ると本当に寂しいというか勿体無いというか悲しい気持ちになる。自分も辛い道のりではあったから共感もできるしだからこそ諦めてしまうのが悲しい。それに、辛いことも多いけどプログラミングは楽しいしこの業界はステキだしこの業界を目指す人が増えるのはやっぱり嬉しい。

という、今まで私が関わった人たちとこの業界への感謝と自分と同じような経験をしている人やエンジニアを目指したけど挫けそうな人、頑張っている人たちを応援したいという何だかエモい気持ちになったのでこのnoteを書いてみたりしました。この記事が誰かの役に立てば幸いです。

最後に、Javaを馬鹿にしたらダメよ


この記事が気に入ったらサポートをしてみませんか?