サッカーと旅を愛するエンジニア

新米のRubyエンジニアが、フリーランスで生活できる一流エンジニアを目指す! ※発言はすべて個人的なものであり、属する企業の意見を代表するものではありません。🇯🇵🇺🇸🇭🇰🇲🇴🇲🇾🇮🇩🇸🇪🇩🇰🇫🇮🇳🇴🇧🇪🇦🇹🇨🇿🇩🇪🇪🇪🇪🇸🇬🇷🇭🇺🇳🇱🇸🇰🇷🇺🇵🇪🇧🇴🇦🇷🇵🇾🇧🇷🇰🇷🇻🇳🇹🇭🇸🇬

転職準備編 〜転職準備時にやっておくべき4つのこと〜

皆さんは本当に今の仕事に満足していますか?

皆さんは本当に今の仕事に満足していますか? 満足してる人も勿論一定数いるでしょう。 しかし、いざ配属されたら、多くの人が就活で思い描いていた理想の仕事とは異なってることは多いかと思います。

自分は新卒で入社した前職ではやりたいことができずに満足できていませんでした。

knsg16.hatenablog.com

上記のリンクでも紹介したように、 新卒で入社した大企業を1年2ヶ月で退職し、どうやって晴れて希望していたRubyエンジニアになることができたのか?を共有します。

今回は、転職準備編ということで、 前職に在籍していながらも、どうすれば転職への良い準備ができるのかをお話します。

この記事を読むことで、転職活動への良い準備ができて、一人でも多くの人がやりたい仕事(= Rubyエンジニア)に就くことができればと思います。

転職活動を始める前にやった方がいいことまとめ

結論としては以下の4つです。 - 本当にやりたいことが何なのかをはっきりさせる - 家で自分でプログラミング勉強する - 今の環境で自分がやりたい仕事を作り出す - その会社に居続けることで、自分のやりたいことが本当にできるかを判断する。

この記事を読んで伝えたいことはこれらの4つです。 これら4つのことを実践することで、 自分は転職へのいい準備をでき、実際にRubyエンジニアになることができました。

具体的には、転職活動時に以下のような3つのメリットがあります。 1. 転職の決心がつく 2. 転職の軸をブレることがない 3. 転職時の実績を作ることができる

転職活動時に話すことがないのではなくて、自分で事前にじっくり考えて、実際に行動することで、アピールすることができる実績を作りだすのです。

転職の話をする前に自分の新卒での就職の話をします

新卒では、大手ERPパッケージメーカーに入社しました。その理由は、「自分でプログラミングをして開発して社会問題の解決」をできる人材になりたかったからです。

社会人になることってどういうことだろうって自分なりに考えてみて、「社会の問題を解決する人」が社会人だという結論に達しました。

社会の問題のどういう問題を解決したいのかは、その当時決まっていなかったのですが(今もそこまで良くわからないですが...)、自分で問題を見つけて、自分で解決できたら達成感もあって面白いだろうなと考えました。

実際に問題を解決をする手段としては、色んな解決方法があります。自分がITを選んだ理由としては、様々な原体験があるのですが、ここでは割愛させて頂きます。大まかな理由としては、手に職をつけることができインパクトの大きい解決ができる、かつ、市場価値の高い人材になることができるという3点で、エンジニアになることを決意しました。

研修で下手こいて配属先は品質保証部

前職の大手ERPパッケージ会社は面白い会社で、かなり変わった研修でした。研修という名の、テストみたいなもので、「○○を解決するソフトウェアをつくれ」というお題を一文だけださます。そのお題に対して、自分で企画書を書いて、自分でプログラミングをして開発して、審査員に対して、お題の問題を解決することが証明できれば研修が終わりです。

その研修は、順位で競うモノであり、早く解決した人が早く研修を終え、希望の部署へ配属されるというものでした。自分は色々あって、研修で失敗してしまい、自分が希望する実際にプログラミングを書くことのできる部署への配属を逃してしまいました...

自分が配属されたのは、品質保証部でした。 品質保証部は、商品であるソフトウェアのプロダクトの品質を保証するために、テストを実施、設計する部署です。そのテストを作成するために、ユーザーの業務をヒアリングして、ユーザーの業務がバグなく実行できるための動作保証をするためのテスト設計などをメインで行っていました。

仕事はやってみると意外に楽しかったのですが、「本当に自分がやりたいことって何だったっけ?」「自分って何のためにこの会社に入ったのだろう」と考える日が続くようになりました。

自分で勉強する

プログラミングをして実際に開発したいのですが、仕事でできないので、自分の家で勉強してやってみることにしました。

具体的には、ProgateとRails tutorialを始めました。その2つが終わったら、実際に自分でオリジナルのアプリをRuby on Railsで開発していきました。

Ruby on Railsを勉強始めた理由は、よく分からなかったので、なんかRuby on Railsを勉強しておけば色んな仕事が今はあるっぽいくらいの情報をググって見つけたからでした。

Rubyエンジニアとなった今では、RubyPHPの違いとか、Pythonはこういう言語だとか分かるようになったのですが、正直この段階ではそんなに分かっていませんでした。Rubyの情報は日本語で多いから、使ってる人が多い、つまり、Rubyの案件が多いだろうくらいの推定でRubyを始めました。

大事なことは、 「やりたい」ではなくて「やっている」ということです。それを継続して続けることができているか、すなわち、今回の場合に当てはめると、「Rubyをやりたい」ではなくて、「Rubyの勉強を自分でしていて、業務で使ってみたい」と説得力を持たせて他人に説明できるだけの根拠があるかどうかです。

採用担当をしている現職の同僚のエンジニアに聞いた話ですが、「実際に行動できている人、つまり、独学でいいからコードを書いてる人とコードを書きたいと思ってる人の差は大きい。コードを書きたいと思ってるだけの人は、もし採用したとしても、自主的に勉強しないようなタイプだろうし伸びしろが少ない。」と仰っていました。

上司に相談しても、会社で実装できる部署はあまりない

実際にRuby on Railsの勉強を進めて、実績もできてきたので、上司にアピールをして、移動願い(転部)を部長に出しました。

自分の頑張りを部長は認めてくれて、実際にその願いを叶えてあげたいと行ってくれました。しかし、大きな問題があったのです。

全社的な方針として、 実際にプログラミングを書く業務は、インドに発注することに決まっていて、日本では仕様の設計などがメインになるとのことでした。

この知らせを聞いた時は正直途方に暮れました。今まで自分が勉強した意味は何だったのか?そもそもこの会社に入社した理由はなんだったのかを、この事件をきっかけに考えるようになりました。

この会社に残り続けて自分のやりたいことを実現するためには、数少ない日本の開発部署に移動するか、インドに移動するかの2つしか残されていません。

その難易度は非常に高く、いつになったら実現できるのか検討もつきませんでした。そうした時に、初めて転職ということが頭によぎりました。この会社では、プログラミングを書く仕事に就くのは難しいけど、他の会社ではどうなんだろうとか思うようになりました。

自分でツール作成で、無理矢理プログラミングをする仕事を作り出す

実際にプログラミングをする部署へは移動できないどころか、実際にプログラミングをする部署がほとんど国内から消えるという事実を知って、途方にくれていたのですが、ひょんなことから、品質保証部にいたまま、プログラミングをすることができる機会を得ることができました。

品質保証部では、バグの管理を行っているのですが、 3ヶ月ごとにどんな種類のバグがどれくらいあるのかを示す報告書を作成していました。その資料を元に偉い人達が製品をリリースしていいかどうかを判断するといった具合です。

その資料の作成は、かなり憂鬱で、偉い人たちが見るので集計にミスがあっては駄目なのですが、かなり大きい製品を扱っていたので、バグの種類や数は膨大でした。

Redmineというバグを管理するシステムを使用していたのですが、csvでバグの情報を吐き出して、そこからローカルのExcelで集計結果を得るために加工していくという手順でした。

ある日、上司がこれ自動化できたら便利だなと言ってたのを思い出し、全く経験もなかったのですが、自分で自動で報告書を作成するツールを作ることにしました。

業務以外の時間を使って、 ツールを作り出し、3ヶ月後に完成しました。 効果は絶大で、報告書の作成工数を約70%削減することに成功しました。この成果は認められて、品質保証部内で新人賞を獲得することもできました。

この当時は、 自分で開発経験もできたし、部署内の問題も解決できてみんなハッピーだし、表彰もされたしで満足していました。しかし、全く予期していなかったのですが、この成果は転職活動時に最も評価されたポイントでした。

成果のポイントとしては、 1.実際にプログラミングを書きたいという気持ちが伝わる。 2.自分で問題を見つけて解決した。 大きく分けると以上の2点でした。 このことは、別の記事で詳しく触れます。

自分が本当にやりたいことは何だったのかを再認識する

品質保証部内でプログラミングをする機会を得ることができたのは良かったのですが、そのプログラミングは、業務レベルからはほど遠くツールとしては、不完全なモノでした。

周りにプログラミングをかける人がいないので、どうやったらもっとよくなるのかを自分ひとりで実行するのは限界だと思い、やっぱ転職して、開発部署に入りたいと再び思うようになりました。

新卒で入社をしてからは、あまり社外の人と関わることがなかったのですが、少し気持ちが整理できないので、社外の人に会ってみることにしました。

東京ですと、conpassとかサポーターズで勉強会やミートアップを気軽に見つけ、参加できます。また、大学の同期とか、前職を退職されて仲の良かった先輩などにお話を伺ったりして、当時の自分の状況と気持ちを伝え、相談に乗っていただきました。

心のどこかでは、もうこの会社は自分のいるべき場所ではないということは分かっていたのですが、どこか踏ん切りがつかず、それから何ヶ月も退職しようかどうか悩んでいました。

悩んでいる理由としては、こんな早く転職していいものか?ということでした。自分の経験上、辛くても逃げ出さなかったことで、いい大学にも入れたし、交換留学の審査も通ることができたし、練習が辛いサッカー部でも辞めることなく、最後まで続けることができたという成功体験が自分の決断の邪魔をしていました。

そんな時、前職を退職されて仲の良かった先輩に為末大さんの「諦める力」という本を紹介されて読むことで退職を決心できました。本書では、「諦めることは逃げることではなく、戦う場所を変えること」と説明されていました。オリンピックでメダルを取った陸上選手も、100m走でメダルを獲得することを諦めて、400mハードルに種目変更したそうです。為末大さんの目的は、オリンピックでメダルを取ることであったのですが、身体能力的にも学生の段階で100mで世界を取りにいくのは難しいと気づいたそうです。

大切なのは、目的をどう達成するのかであり、目的を諦めなければ、逃げたことにはならないという考え方です。

諦める力 〈勝てないのは努力が足りないからじゃない〉

諦める力 〈勝てないのは努力が足りないからじゃない〉

自分のケースに当てはめると、 「自分でプログラミングをして開発して社会問題の解決」ができるような人材になることを目的として、前職に入社をしたが、前職では目的を達成できそうではない、つまり、プログラミングを実際することができる環境ではないので、転職をする。転職をすることは、目的を達成するのに、いまの会社(前職)にいるよりも、近道だと捉え直すことにしました。

まとめ

繰り返しになりますが、自分はこのような経験や行動をして、以下の4つが重要であると認識しました。 - 本当にやりたいことが何なのかをはっきりさせる - 家で自分でプログラミング勉強する - 今の環境で自分がやりたい仕事を作り出す - その会社に居続けることで、自分のやりたいことが本当にできるかを判断する。

この4つのことをしたことで、後述します転職活動編で、実際に転職することに成功したのではないかと分析しています。

自分の前職と全く同じ環境にいる人は少ないと思いますが、読者の方々の今の環境で実行できることは多くあると思います。この記事を読んで頂き少しでも手助けできればと思います。

次は、転職活動編です。 読んで頂きありがとうございました。

Rubyエンジニアになって、新規機能をリリースするまでの10ヶ月

こんにちは。knsg16です。 新卒で大手ERPパッケージメーカーに入社し、 1年2ヶ月で退職し、 いまは株式会社おかんでエンジニアとして働いています。 主に契約管理、配送管理の社内システムをRuby on Railsで開発しています。

これから複数回に渡って、 どうやって文系卒の自分が 大企業を1年2ヶ月で辞めて、 Rubyのエンジニアになっていったのかを紹介していきます。

この記事を書く目的

テスターだった自分が どうやってRubyのエンジニアになったのかを紹介することで、 未経験からRubyエンジニアになりたい人への少しでもアドバイスになれば と思い記事を書くことにしました。

この記事を読んで欲しい読者

  • 現状の仕事に満足してなくて、未経験からRubyエンジニアになりたい人
  • 転職活動しようとしている人
  • プログラミングのスクールに行こうか悩んでいる人

内容

この記事を読むことによって 転職を考えている人が、 どうやったらRubyのエンジニアになることができるのか の参考になればと考えています。

転職するまでの流れは以下の通りです。

  1. 転職準備
  2. 転職活動
  3. Tech Campに通う編
  4. 株式会社おかん入社

いま株式会社おかんでRubyエンジニアとして働くことで、 会社に行きたくないと思ったことはほとんどなく(全くなかった訳ではない、めっちゃ眠たい時とかはたまに思う)、 豊かな働き方を実践しつつ、 エンジニアリングを通じて、社内の問題解決に取り組んでいます。

読者の方の転職が成功するために、 これをやっといて良かったなと思うこと、 もっとこうしておけば良かったなと思うことを 具体的な事例を紹介しつつ更新していきます。