見出し画像

未経験からエンジニアへ転職して6ヶ月

こんにちは、すなです。

今回は未経験からエンジニア転職して6ヶ月が経ったので振り返りをしていこうと思います。

結論、本当にエンジニアになってよかったなーと思うし毎日が楽しくてしゃーないです。笑

その分勉強することは山ほどあるけど勉強好きな人なら本当にオススメ。

以下では詳細に振り返ります。

1日の業務の流れ

基本的にやるべきことはBacklogっていうタスク管理ツールを使っています。
そこにチケットとして実装すべき機能や必要な修正とかを全部起票して管理。

1日の作業は優先順位などを確認した上で、ひたすらこのチケットを処理していく感じ。

あとは週2回勉強会があって、知りたいことについてテーマを決めて全員で議論する。テーマは誰が選んでもよい。これ結構楽しくてよき。

半年間でやったこと

・Amazon Connectを使ったコールセンターの構築
・新規サービスの要件定義(他の業務優先になったので保留中)
・Reactでの機能実装
・TypeScriptでの記述
・認証の仕組みについての理解
・PHPで書かれた関数をGolangでAPIに切り分け
・AWSのコスト最適化

上2つは以前のnoteに書いたので省略

Reactでの機能実装
ここ数ヶ月はReactでの実装がメインでした。
おかげでだんだん1人で実装できるようことが増えてきたと思います。(パフォーマンス意識した実装は課題)

RESTでのリクエストやApolloでのGraphQLリクエスト、useContext, useReducerを使った実装もできるようになりました。

今新規機能のリリースに向けて実装してますが、入力値テストとか自分が予想していなかった漏れみたいなのいっぱいあって、考慮不足を突きつけられてる感じがしますね。笑

パッと見機能追加できたように見えても、バグがあることも多いのでこの辺は課題です。

とりあえずReact書いてて楽しいので好きです。

TypeScriptでの記述
初めはとっつきにくかったけど、今ではTypeScriptの方が好きです
VS Codeだと色々補完してくれるので便利。

ただまだ使いこなせてる感は全然ないのでここもこれからの課題。

認証の仕組みについての理解
複数アプリの認証を一元的に管理する認証システムを実装したんですがこれはかなり勉強になりました。
local strage、cookie、jwt、アクセストークン、リフレッシュトークン、クロスドメイン、クロスサイトスクリプティングなどなど

はじめましてな単語ばかりでしたが、おかげで通信する際にどうしたらセキュアになるかなどを知れたのはとても良かったです

PHPで書かれた関数をGolangでAPIに切り分け
既存サービスがPHPで書かれていて、そのバックエンド部分をGolangでリプレイスするってことをやっています。

静的片付け言語やってなかったからか、Golang難しいなーと。。。
まだまだこれから理解してかなきゃならないです。

AWSのコスト最適化
これはまだちょっとしかやってないけど、RDSのパフォーマンス見てインスタンスタイプ下げるとか、あとはCLBをALBに移行する作業の調査とか。

最近AWS関係で調べて欲しいと言ってもらえること多くて嬉しいです。

これは間違いなくAWSのSAA取ってた影響が大きいと思うので取ってて良かったです。

先輩が参考にしてたQiita記事が僕が書いたものだったことも発覚しました。笑
直近では厳しいですが、SAAの次の資格にも挑戦しようかと目論んでます。

どんなことを意識して仕事をしたか

半年間で色々なことをやらせてもらえたなーと思ってますが、当然分からないことも多かったです。というか今でも多いです。

初歩的なことでも聞かなきゃいけないことが多くて本当ごめんなさいって感じなんですが、その分コーディング以外の部分で貢献することを意識しました。

具体的には以下のようなドキュメント関連が多いです。

・会議の議事録を取る
・みんなが参考になりそうな情報はドキュメントにまとめて保管する
・社内説明のための資料を作る

色々情報が変わる中でその情報をドキュメントとしてまとめておくことって本当重要だなと思うんですが、めんどくさいんで誰もやりたがらないんですよ。。んで後であれ?どうなったっけ?みたいな

なのでこういう情報はドキュメントなりスプレッドシートなりでまとめておくことを意識しました。

これエンジニアとしてのスキル関係なくできるんでかなりオススメです。

何が大変だったか

過去形ではなく現在進行形で大変ですが、主に以下のことですかね

・仕様、既存コードの理解
・コードレビュー
・本番やメンテナンスを意識した実装

仕様、既存コードの理解
やっぱり1番は既存のコードを読んで理解することかなーと
その上で仕様の理解は不可欠ですし、それもまた分からないことだらけで大変です

事前に聞いてはいたものの、綺麗なコードばかりではないし数千行のコードとかも平気である中で、それを読み解いて処理の流れを理解した上で機能を実装するってめちゃくちゃ大変です。

コードレビュー
分からないことがまだまだ多い中でレビューって分からんて感じ。笑

ざっと見て動作確認してokだったらokみたいなことも多々あります(反省)

本番やメンテナンスを意識した実装
例を挙げると以下のような感じ

1. コードとしては動くけど、今後機能追加したらまたコード変更する必要があるからよくない
2. リリースした後にもしバグがあって元の状態に戻さなければいけなくなった時に、できるだけ影響範囲が小さく、迅速に元に戻せるようにしておく
3. コードは問題ないけど、何かあったときのためにログを取れるようにしておく

これは本当に実務経験しなきゃわからないことだなーと。

動けばいいやじゃダメで、後々のメンテナンスとかまで考慮した実装が求められるということを学びましたね。

業務以外で勉強したこと

これまで書いてきた通り、分からないことだらけなので業務時間外の勉強は必須だと思います。

やって良かったなーと思う書籍の一部を紹介

・キタミ式 基本情報技術者
・リーダブルコード
・新しいLinuxの教科書
・マスタリングTCP/IP 入門編
・webを支える技術

他にも色々ありますが、言語依存のものだったりするので省略
この辺は需要ありそうなら別途紹介します。

キタミ式 基本情報技術者
基本情報技術者試験用の本なんですが、試験受けないにしてもオススメ。
エンジニアとして必要な基礎知識を幅広く知ることができます。
業務やってて、「あ、聞いたことある」ってこともたびたび出てきたのはこれのおかげ。オススメです。

リーダブルコード
言わずと知れた可読性のよいコードを書くための本。
残念ながら現場のコードはこんなに綺麗じゃないし、全部その通りとまでは行かないけれども、意識すべきポイントたくさん書かれてるのでオススメです。

新しいLinuxの教科書
最低限Linuxコマンドについて知っておくだけでも全然違うと思うのでオススメ。難しいところは読み飛ばせばいいと思います。
シェルスクリプト書けるようになったのはよかった。

マスタリングTCP/IP 入門編
webを支える技術
これはネットワーク系。
言語の勉強はスクールなり実務を通してやるけど、ネットワーク系の知識って当たり前のように使われることが多いのに分からないことが多い。。
REST?Cookie?HTTP Only, Same Site?サブドメイン?
横文字ばっかり、なんてナウでヤングでトレンディなんでしょう

書籍で勉強してからは多少わかるようになった(気がする)。

これらが難しければWeb技術の基本てやつの方が易しくてオススメ。
特にwebを支える技術の後半は難しい&あんま必要じゃない気もしたので前半だけでもいい気がする。

色々書きましたが、入社前にやろうと思ってもキリがないので入社後のキャッチアップで全然いいと思います。

ぶっちゃけ入社してどう?

転職時にいくつかいただいた内定先から今のところを選んだ理由は、ReactやPHP、Golangなどを色々経験できるからという理由が大きかったんですが、この選択は自分にとっては本当によかったなーと思ってます。

フロントエンドとかサーバーサイドとか分けてないから色々やってもらうという説明通り、本当に色々やらせてもらえてます。

コーディングだけじゃなくてAWSでのインフラ関連も経験できてるので本当に満足です。

その分やらなきゃいけないことが多くて大変ですし、色々な言語をやると非効率になるというのもその通りだなーとは思います笑
なので万人にはオススメしませんが、個人的には色々なことやりたいし実際楽しいんで全然満足。

開発チーム内では色々聞いたら教えてもらえるし、3ヶ月に一回1on1のミーティングでやりたいこと聞いてくれるし、開発内容もやりがいあって楽しいしとても満足してます。

できないことは山ほどあるので徐々にできるようになっていきたいですね。

感想

総括すると大変なことはたくさんあるものの、毎日楽しいしエンジニア転職してよかったーと心から思っています

前職が機械的作業ばかりだったので自分で考えて色々作業するのは本当に楽しいですね。

ぶっちゃけ個人的な価値観として「エンジニアとしての市場価値は〜」みたいな話には興味がないので(笑)、楽しければそれでいいやと思ってます。

前職が研究職だったので市場価値を考えるならデータサイエンティストになるべきだと思うし、出身研究室の教授にもそう言われたけど今は興味がないのだからしょうがない。笑

ここ1年で価値観色々変わったけど、結局今の自分の価値観としては「楽しければそれでいい」というひどく単純なものに帰着しました。笑

裏を返せば数年後エンジニアつまんないと思ってたら辞めて違うことやってる可能性も全然ある。

めっちゃ飽き性だからその時々で楽しいこと、ワクワクすること見つけてやれてればそれでいいかな。

しばらくは飽きそうもないほど勉強することたくさんあるけど。

おしまい。

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