自己紹介
yukiと申します。DMMWEBCAMPにお世話になって、今はWEBエンジニアをしつつ、自分で仲間を集めてサービス開発したり、プログラミングの家庭教師したり毎日エンジニアライフをエンジョイしています。
本日は未経験エンジニアとして、自社開発企業に就職して3ヶ月の間に何をしたか紹介します。
勤務先にもSNSで身分を明らかにすることは承諾を得ているので、その部分もお伝えします。
会社の紹介
私は現在、株式会社ダイアログという物流×ITの会社に勤務しております。
2020年9月現在、エンジニアの募集はしていませんが、他にも様々な職種を募集しているので、Wantedlyのページをご覧ください。いつか自分のQiitaきっかけで応募してくださる方がいたら、嬉しいなと思います。
さて、ではそんなダイアログで行なったことをまとめます。
1ヶ月目
プログラミングの部分
- 環境構築
- 自社サービスの使用方法、ファイルの場所などの研修
- 【Laravel】CSVファイルの書き出しの際の簡単なロジックの追加
- 【HTML/CSS/JS】でプロダクトのモックを作成
それ以外の部分
- エンジニアの先輩方、部署を跨いだメンターとの1on1面談
- 興味があったので、お客様とのMTGに参加
1ヶ月目は環境構築を終えたのち、大変ありがたいことにサービスの操作方法や関連するファイルの場所などの研修がありました。プログラミングに関してはある程度研修が終わったのち、Laravelを用いてCSVファイルの出力の際に、こういう値がきたらこうする
といった簡単な処理の追加をOJT形式で行わせていただきました。また、個人の案件としてはこれまで学習した知識を生かし、HTML/CSS/JSでモック(DBの複雑な処理などはないが、見た目としてはできているプロダクト)の作成をしました。
それ以外の部分では、メンター制度が手厚く、エンジニアの先輩方に質問しやすい1on1面談があっただけではなく、他部署の先輩が一人ずっとメンターとしてついてくださるので会社の精度などの質問ができました。また、お仕事の部分では開発だけではなく、早いうちからお客様の意見を直接お聞きしたかったので、ミーティングに参加希望を出したところ承認していただきました。
2ヶ月目
プログラミングの部分
- 【Laravel】APIを作成、Service層の切り分け
- 【AngularJS】APIに連携させるフロントエンドの処理を作成
- 【SQL】20行くらいのSQLを教えていただき、理解しながらLalavelの処理の中に組み込む
それ以外の部分
- Qiitaのプロジェクト提案&開始
2ヶ月目に入ると少しだけ難易度が上がり、フロントエンドとバックエンドを分けた開発に携わることになりました。LaravelでAPIを作成し、フロント側のAngularJSと連携させるような実装です。他にも、スクールでは学習しなかった【Service層】という概念を知り、ロジックを切り分けることの大切さを確認しました。また、自社サービスとなると複雑なDBがつきもので、これまで見たことのない(自分にとっては)長いSQLを扱うようになりました。ただSQLがわかるだけではなく、Railsにもアクティブレコードなんかがありますが、LaravelでのORMも同時に学ぶ必要があったので少し大変でした。
プログラミング以外の部分では、社内でこれまでにQiitaを運用したいができていなかったという課題をお聞きできたので、投稿経験もあったため、メリットデメリットをまとめ、スケジュールをひき、自分主体で投稿サイクルを作成するQiitaプロジェクトを提案し、無事まかせていただきました。(まさにこの記事もその一環なので、ぜひLGTMお願いしますっ)
3ヶ月目
プログラミングの部分
- 【Laravel】モデル以外の場所に、より細かいバリデーション(削除の際の制御など)追加
- 【AngularJS】カスタムディレクティブのメリット理解と作成
- ER図の離れたデータの取得の仕方を学習
それ以外の部分
- 社内の懇親会企画
3ヶ月目は、これまでの実装の他に削除制御について機能を実装しました。スクールで学習するレベルだと、モデルに簡単なバリデーションを書くだけでしたが、もっと細かい処理を書く必要があったのでいい経験になりました。フロントエンドの方では、カスタムディレクティブという概念を学び、コードをより短く書くなどリファクタリングと所謂コンポーネントの役割をしっかり決める必要性を学びました。大きいER図を見ながらデータを取りに行くことがあるのですが、その際テーブル同士の関係は非常に重要で、3ヶ月経過した今でも無駄なくそこにアクセスできるように頑張っています。企業にもよりますが、弊社にはER図のまとめがあったので印刷して暇な時に眺めています。
全く話が変わりますが、大学生の頃にボードゲームでたくさん遊んでいた経験があったので、メンターの方と協力して社内の懇親会を企画しました。オンラインが多い現状ですが、いろいろ考えながら引き続きやっていきたいと思います。
やっておいてよかったこと
- 質問の仕方をしっかり身につける
まだまだわかりにくい質問をしてしまっていると思いますが、スクールで学習する際にここだけはしっかりと意識していました。
大体以下のような形で質問しています。
#【何がやりたくて】
#【今どうやってて】
#【どこでエラーが起きて】
#【自分ではこうだと思ったのだけど】
#【うまくいかないのでアドバイスをください】+【あれば参考にした記事】
相手が答えやすい質問をすることはとても大切だと思うので、この辺は早いうちから意識した方がいいと思います。
- フロントとバックを分けた開発を経験していた
ポートフォリオを作る段階で、RailsでAPIを作って、フロントエンドのフレームワークNuxt.jsを使ってバックフロントを分けた開発をしていたので、その辺の合流は思っていたよりスムーズにできていたのかなと思います。これは、他の記事でもまとめておりますので、よければご覧ください。後でリンク貼ります。
反省
以下、反省点です。精進します。
- もっとSQLやDBの学習をしておけばよかった
- 使うフレームワークや言語がわかったら、どんなに期間が短くても深く学んでおけばよかった