未経験エンジニアはきつい?3ヶ月間の研修と実務体験談
初めに
こんにちは。
22新卒でじげんに入社した浦崎です。
ライフサポートDiv.でエンジニアをしています。担当サービスはリショップナビです。
エンジニアの研修も終了し、入社して3ヶ月が経ったということで、この3ヶ月を振り返って感じたことや学んだことを書きます。
最近は、大学の専攻が情報系ではなく、独学で勉強をしている未経験の方がエンジニアを志望する傾向が多くなっていると感じます。
私自身その中の1人でした。
未経験エンジニアとして就活していた際に以下のような不安を実感していました。
- 研修や実務ではどんなことをするのか
- 未経験だと実務でついていけなくてきつそう
- どんな技術を使っているのか
- 他の新卒の技術レベルってどのくらい高いのか
未経験だけどエンジニアになりたいと考えている方に1番近い立場で、実際の未経験エンジニアの現状を伝えられると思いこの記事を書きます。
エンジニアとしてのバックグラウンドがなく、じげんに入社して初めて実践的にプログラミングをする。そんなプログラミング未経験な私のワクワクドキドキな3ヶ月です。
本題
バックグラウンド
1.入社前の技術レベルや背景
私はいわゆる未経験エンジニアです。
大学では理学部で化学を勉強していました。大学2年生の終わり頃まではパソコンを触ることなどほとんどなく、授業のレポートでワードを使うレベルでしたが、大学3年生から独学でプログラミングを勉強しました。
勉強内容としては、プロゲートをやってRubyとRailsの参考書を合計3冊、その後にRailsチュートリアル(難しくて途中で挫折)をしました。
一通り勉強すると、次は自分でゼロからwebアプリケーションを作りたいと思い、Railsチュートリアルを参考に自作でアプリケーションを作成しました。
入社前の技術力としては、HTML、CSS、RailsとSQLを使って、簡単な掲示板のサイトを作れるくらいのレベルです。
2.なぜじげんに入社したのか
プログラミングの勉強をするにつれ、コーディングだけでなくビジネス視点も身につけ、いつか私が考えたビジネスを私の手で1から作ってみたいという思いを巡らせるようになります。
そしてこの思いが、そのまま以下3つの就活軸となりました。
- エンジニア力だけでなく、ビジネス力も身につけることができる。
- エンジニアとして成長できる環境がある。
- 裁量権を持って仕事に取り組むことができる
以上を就活の軸として就活していたところ、ベストマッチしたじげんに入社することを決めました。
入社して今までやったこと
入社してから行ったことは以下の4つです。
1.全体研修
新卒入社をした全員で2週間、会社のことや社会人としてのマナーなどを学びました。
また、事業を立案するワーク研修もあり、4人1組のチームで新しい事業を考え、要件を決め資料を作り発表するということをしました。
ビジネスを深く考える機会がなかった私にとっては刺激的でかなり勉強になる内容でした。
2.エンジニア外部研修
外部講師の方からRailsの基礎やプログラムの考え方について学びました。
3.エンジニア内部研修
人事課題を解決する社内ツールを、ヒアリング(要件定義)からリリースまでを1人で担当するというものでした。
4.実務
実はエンジニア研修と実務が同時に始まりました。1日の半分は実務、半分は研修という形です。
環境構築を行い、簡単なタスクから始め、だんだん難しいタスクを任されるようになりました。
たった3ヶ月ですが学ぶことがとても多い濃密な期間でした。
次は、実務と研修の中で特に重要だと思ったことを書きたいと思います。
実務
使っている技術やどんなことをしているか
使っている技術
実務では以下の技術を使用しています
- Laravel(PHPのフレームワーク)
- jQueryやVue.js(WebのUIなどを開発する際に使われる、JavaScriptフレームワーク)
- Docker(コンテナ型の仮想環境を作成する)
- AWS(Amazonが提供しているサービス)
などモダンな技術を取り入れています。
どんなことをしているか
初めは環境構築を行いました。
Dockerで環境構築を行うのですが、もちろん初めて触る技術で全くわかりません。ですが、上長や先輩社員がしっかりサポートしてくれて、なんとか3日ほどかけて実際に動く環境を作ることができました。
環境構築を終えると早速タスクを与えられました。
初めはCSS(scss)を変更して色や見た目を整えるような簡単なものでしたので、タスクをこなしながら、先輩からもらった参考書を片手に業務中に勉強をしていました。笑
次第に任されるタスクも難易度が上がっていき、任されるタスクの幅も保守、開発、SEO改善、業務効率化などを行っています。日々学ぶことが多く充実していました。
簡単すぎるものや難しすぎるものなどがなく、私のレベルより少しだけ高いレベルのタスクという感覚があり、無理をすることなく業務に励むことができました。
実務に入って1ヶ月程経つと、本格的にフロントエンドやバックエンドを実装するタスクを任されるようになりました。
バックエンドでは、CRUD処理(4つの基本機能である、データの作成(Create)、読み出し(Read)、更新(Update)、削除(Delete)の頭文字を繋げたもの)、フロントエンドではVueを使用してUI作成など「未経験の新卒にここまでやらせてくれるのか」と驚くぐらい、色々なタスクを任せてもらえています。
学んだこと
初めに
私は実務ではLaravelというPHPのフレームワークを使用しています。実務で使用しているLaravelは触ったことがなく、完全に初めての状態でした。今まで独学で勉強していたものはRubyのフレームワークであるRuby on Railsです。研修でもRailsを使用しているにもかかわらず、実務ではLaravelというびっくりなことが起きました。
今回学んだこととして、新しい技術を学ぶときにどうしたらいち早くキャッチアップできるかという内容を書いていきたいと思います。
キャッチアップの方法
私は実務をやりながら、参考書を購入し、一通り勉強する。そして実務や参考書の勉強でわからなかったことがあればその場ですぐに調べる。調べてもわからないことがあれば、すぐ上長や他の先輩社員に聞くということをしていました。
実際に自分で手を動かして考える。これが一番身に付くと思います。
じげんの良いところは上長や先輩社員がとても優しく、私の成長を考えてくれて、すぐに答えを教えるのではなく、ヒントを与え自分で考える力を身につけさせてくれます。
そして、私も聞くときは答えを聞くのではなく、自ら調べて出した考えが当たっているかどうかで聞いています。
そうすることで考える癖がつき、記憶に定着し、覚えが早くなると実感しています。
独学の時とは違い、聞く人がいる状態でサポートがあるので、思ったよりもLaravelに慣れるのが早く、成長している実感を得ることができました。
難しかった点
難しい点はサービスの規模が大きいため、何をどこでどの処理をしているのか把握する点です。
Laravelは自由度が高く様々な書き方ができます。また、PHP特有の関数やLaravel特有の書き方、関数があり、自分で勉強した書き方や関数を参考にしても、初めて見るものが多く、1つひとつ理解するのが難しく感じました。
また、独自の関数を使用していたり、参考書には乗っていないような書き方があるので、1つの処理を理解するのにも時間がかかってしまいます。それに加えデータベースの関係性も理解した上で実装に取り組まなければならないので、まずリショップナビのLaravelの特徴を理解するのが難しかったです。しかし、タスクをこなしていくうちに書き方の決まりや関数を覚えるので、理解すると実装がとてもしやすくなりました。
感想
実際に実務をやってみて感じたことは、私のレベルより少し高いタスクをこなすことで、急速にレベルアップできるということです。
入社前はスキルに自信がなく、未経験にはきついと感じることもあると思っていましたが、私のレベルに合ったタスクを任せてもらえるので、「辛い」や「きつい」といったことはありませんでした。
もちろん、難しいタスクもありますが、裁量権を持って成長できるという面では、良い環境だと思います。
プログラミングも言語なので、英語でも現地に行って実際に話した方が覚えも早いように、1人でただ闇雲に勉強するよりも、実務で実際に使った方が成長するスピードは上がります。
英語でも現地に行って実際に話した方が覚えも早いです。
例えるなら、じげんはアメリカに先輩社員と留学するような環境です。じげんは実践的で未経験でも成長できる環境だと思います。
エンジニア研修
研修の内容
研修は人事課題を解決する社内ツールをヒアリング(要件定義)からリリースまでを1人で担当するというもので、目的はゼロから1を作ることでした。
自分でスケジュールを組み、いつ誰にヒアリングするか、頻度はどのくらいかなど全て1人で行わなければなりません。
- 人事の方にアポイントをとりヒアリングする
- 課題に感じていることを聞き出す
- 要件にまとめる
- 設計書を書く
- 実装する
このような手順で作業を行いゼロから1人でツールを完成させました。
学んだこと
今回の研修を通して、ヒアリングや要件定義、設計の大切さを身にしみて実感しました。
エンジニアの仕事のイメージはコードを書くことが主な仕事だと思っていました。おそらくそのイメージは間違いではないと思います。
しかし、その主な仕事を効率よく楽にするには、要件定義やヒアリング、設計書をしっかり決めることが大事ということを学びました。
なぜかというと、要件定義のところで、一番大事な「誰の何をどのように」を明確にするところが甘く、研修が終わる2週間前に要件の内容を変更し、かなりツメツメで実装して、自分で自分を追い込む状態になってしまったからです。
難しかった点
プログラミング未経験の私は、もちろん要件定義やヒアリングなどしたことはありません。
1人で勉強して1人でコードを書いている人でしたので、他の人が求めているものを作るということをするのはかなり難しかったです。
エンジニアは要件があってその要件を満たすようにコードを書くので、その要件がしっかりしていないとコードを書く際に苦労します。これは研修の時のみではなく、実務の方でも実感しました。
感想
この研修では、上流工程と言われる段階から下流工程まで1人でゼロからプロダクトを作る経験を得ることができました。
こういった経験は普通にエンジニアとして働いている中で新卒がやることはまずないと思います。その中で、要件の内容を途中で変更してしまって、実装面できつい思いをしましたが、私自身甘くみていた要件定義の重要性に気づけたことはとても良い経験になりました。
実務でも今後立案して要件定義を行い実装するということもすると思うので、今回の研修を活かしていきたいと思います。
まとめ
3ヶ月経って考え方や感じ方が大きく変わりました。
入社前は独学でしか勉強していなくて、実務で迷惑をかけまくったらどうしよう、きつかったらどうしよう、と不安でしたが、入ってみると全く触ったことのない Laravel を使いゼロスタートで始め、今ではCRUD処理やVueを用いてUIを作成することもできるようになりました。
実務では、わからないところはまず自分で調べる、その上でわからないことは調べた内容を元に1つ以上仮説を立ててそれが当たっているかどうか上長や先輩社員に聞くようにすることを心がけました。未経験でもしっかり自分から学ぶことを怠らず周りを活用することで、キャッチアップも早くでき、実務でも通用することができると思います。
じげんでは裁量権を持って業務に取り組むことができ、早い段階で、実践的な経験をつむことができます。使用している言語はモダンで周りのエンジニアのスキルレベルも高く、成長できます。
未経験でも、自分から積極的に学ぶ意識があり、スキル的に難しいことでも自分のタスクはやり遂げるという責任感と周りに素直に積極的に質問できる人であれば、実務でも通用できるように成長できると思います。
いち早く自分の市場価値を高めたい方には最適な環境だと思います。
未経験でも、自分で勉強でき、それを継続的に自走できる人は、じげんという恵まれた環境でエンジニアとしてキャリアを築き上げることをおすすめします。