【Webエンジニアとしての2年間】

Carrer
  • URLをコピーしました!

こんにちは。RYOTAです。

当記事をご覧いただきありがとうございます。

Webエンジニアに転職してちょうど2年が経ったので簡単な振り返りを書き留めた記事となります。

目次

はじめに

そもそもRYOTAって何者?という方がいらっしゃると思うので、これまでのキャリアを簡単にご紹介します。

  • 大手重工業企業: 5年半
    • NC機械プログラマー/オペレーター
  • 大手人材系企業: 3年半
    • 新規開拓・法人営業
  • 都内SNSマーケティング企業: 1年半
    • Webエンジニア
  • 都内教育系ベンチャー企業: 半年
    • Webエンジニア(現在)

社会人経験のうちの約半分がメーカー経験なので、どちらかと言うとモノづくり系の人間だと思います。

営業時代にプログラムを使って営業リスト作成の自動化(スクレイピング)を行なったのがきっかけで、後々調べるとこれでアプリが作れるということを知り、いくつかクソアプリを作っては破棄してを繰り返して、気づいたらWebエンジニアという仕事に就いていました。

メーカー時代にNCプログラミングで「順次進行・条件分岐・繰り返し」の考え方が備わってたので、親和性としてはそこそこあったのかなと思います。

Webエンジニアになってぶっちゃけ良かった?

結論から言うとYES

むしろ、もっと早くなっておけば良かったというのが正直な感想です。

メリット

Webサービスが作れる

何と言ってもこれですね。

込み入った機能やこれまで使ったことない技術を使うとなると話は別ですが、サクッと作りたい時に作りたいものを作れるって、凄く便利なスキルだなと思います。

メーカー時代は1億の機械とウン千万の素材があって初めて物作りができる。営業の時は商品ありきのスキルになる。それに対しWebエンジニアはパソコン一台でサービスが作れてしまうのが改めてヤバいですね。

フルリモートで働ける

エンジニア転職した直後からフルリモートになったのですが、2年間で会社に行った回数は10回もありません。初めはかなり抵抗がありましたが、今ではもうこの働き方以外考えられませんね。

コロナ禍でフルリモートになった会社は多いのでWebエンジニアに限った話ではないと思いますが、アウトプットがソースコードという性質上、特にリモートワークに適した仕事なのではないかと思います。

調べる・動かすクセがついた

これは副次的な効果になります。

ライブラリの使い方やメソッドの書き方など、分からないことしか無いので業務時間の大半がググる時間(大袈裟?)になります。

日常生活でも分からないことはとにかくググってしまうので、奥さんから「すーぐググるぅ!!」と怒られることもありますが。

メーカー時代はプログラムがミスった場合、物が壊れるか人が死ぬのに対して、Webプログラミングはそれらが無いので、とにかく動かして試してみることができるのが素晴らしいところですね。

ただし、個人情報や機密情報の漏洩は社会的に死ぬので、その辺りは慎重になる必要があります。

デメリット

会話が絶望的に下手になる

正直このデメリットがデカすぎます。

元営業と名乗るのが恥ずかしいレベルで話すのがド下手クソになりました。

ずっとPCと睨めっこするお仕事ですからね。お察しって感じですね。

腰痛・肩こり

ずっとデスクに座りっぱなしじゃこうもなります。

スタンディングデスクを導入してから比較的楽になりましたが、それでもやっぱりダメです。

人間の身体はじっとしていることに適さない造りなことが分かりました。

気になるお金の話

転職時に200万弱ダウン

営業からエンジニアに転職した際には年収が200万円程度ダウンしました。

異職種×異業種なので人材価値はほぼ0です。

当たり前と言えば当たり前です。

2年間で200万弱アップ

2年経った今、ようやく営業時代の年収に届いてきました。

ただ、これは本業のみの収入で、副業含めるともう少し上がっています。

2年間で経験させて頂いたこと

技術

フロントエンド

  • HTML / CSS(Sass / SCSS) / JavaScript
  • TypeScript / React / Next.js / Vue.js
  • Webpack / Babel / StoryBook / Prettier / ESLint

バックエンド

  • Node.js / TypeScript / Express
  • Ruby / Ruby on Rails
  • Golang
  • MySQL / NoSQL

クラウド

  • AWS ( EC2 / S3 / ECS / RDS / DynamoDB/ Lambda / EventBridge / Route53 / CloudFront )

その他

  • Git / Github / Bitbucket / Gitlab
  • Docker / VirtualBox
  • Backlog / Jira / Trello
  • Figma / Miro

経験

カスタマーサポート

SNSマーケの会社に入社してからは3ヶ月程カスタマーサポートと開発を兼務。

日々の問い合わせ対応をしていたのですが、ユーザーの操作状況をウォッチする中で「確かにこの挙動だと分かりづらい」「もっとこんな表示の方が分かり易くないか?」といったUX観点の気づきを多く得ることが出来ました。

今はただデザイン通りに実装するのではなく、ユーザー体験的に問題になりそうな表示や挙動をデザイナーさんと擦り合わせながら開発が出来ています。

タスク設計とプロジェクト進捗管理

エンジニアになって半年経った辺りから、機能単位での開発責任者を任せて頂けるように。

デザインを頂いてからページURLやコンポーネント設計、APIとDB設計を行いそれぞれの工数を計算してから実際のカレンダーに落とし込む。それぞれのタスクの進捗に対して現時点の状態をチェックしスケジュールに間に合わせる。開発をしながらディレクションっぽい立ち回りもやらせて貰えたので開発全体の流れをコントロール出来るようになったのかなと思います。

新規プロダクトを一人で開発

現在の会社に入社して最初に任せて頂いたタスク。入社4日目に環境構築を始めてました。

当初は「このプロダクト来月リリースになってるんですよね…正直言って無茶振りだと思うけど可能な限り頑張ってほしいです…」と任せて頂いたのですが、やれば出来ちゃうものですね。翌月にはリリースしちゃってました。(笑)

うまく行ったポイントは二つで、

一つは初動を早めたこと。アサインされてすぐDB設計とベースの環境構築を進めておけたので、プロジェクトオーナーとの顔合わせ直後から即、機能開発に移れたのが大きかったです。

もう一つは優先度が高いことだけを実施したこと。ユーザーにとって今必要ない機能を”必要ないから今じゃなくて良い”と言い切って、ドライブ出来たのが良かったのかなと思います。

古のプロダクトの改修

本番環境で誰もログインできない + ステージング環境は死亡 + 開発環境は誰も起動すら出来ないプロダクトの息を吹き替えすという、今までで一番しんどいタスクでした…

rails newをして少しずつ移植を行う。常に真っ赤な画面から少しずつコメントアウトを外しながらバグを消していく作業。ついでにReactコンポーネントも全て書き直し…

メンテしないとプロダクトは死ぬしエンジニアも死ぬことがわかったので、とても良い経験ができました。(笑)

ブロックチェーン技術を使った機能開発

現時点では詳しく言えませんが、今はブロックチェーン技術を使った機能開発なんかもやらせて頂いています。

某技術書の著者と一緒にお仕事出来てるので経験値がヤバいです。(でも難しくて吐きそう…)

今後の課題

技術

TypeScript

フロントエンドではほぼ必須で、TSさえ書けてしまえばバックエンドの実装やスマホアプリも開発できてしまうので、正直コスパが良いです。

ライブラリやフレームワークの使い方を覚えても、流行り廃りが早く陳腐化し易いですが、言語としての特徴や性質を押さえれば新しいライブラリが出ても大丈夫だろうと思ってます。(知らんけど。)

DevOps

継続的かつ迅速にプロダクトを成長させていくにはDevOpsが必要不可欠なので、自身でも少しずつ導入できるようになっていこうと考えています。

CI/CDはもちろんですが、インフラのコード化による保守性の向上と再現性の向上にも貢献できるよう知識をつけていきたいです。

インフラ・セキュリティ

これは語ることもありません。知識が無さすぎる。以上です。

その他スキル

コスト算出力・見積もり力

色々な機能開発をさせて頂きましたが「ぶちゃけこの機能使われてなくない?」みたいな機能も少なからずありました。しかもそういった機能に限って無駄に開発工数をかけてたり…。

今ある技術で何を作るかという視点も大切だと思うのですが、そもそもユーザーが求めていないものにコストをかけるべきではないので、コスト/メリットの観点から”それ必要ですか?”であったり”もっと〇〇の方が良いのでは?”と提案が出来るエンジニアになっていこうと思います。

駆け出し期を乗り切るのに必要な力

周りで挫折する人を多く見てきた中で、続けていくには下記の力が必要なのかなと思いました。(※あくまで個人的な見解です。)

汲み取り力

メーカー→人材→ITと経験してきましたが、IT業界は他者に情報を共有するという文化があまりないように感じています。(ベンチャーだから特に?)

作業手順書やノウハウ集みたいなものを残す文化が醸成されていなく、他の人に情報を共有する文化もないので参画直後は結構しんどいです。

仕事の進め方もプロジェクトによってバラバラなので、お作法などを汲み取る力が乏しいと相当ストレスが溜まると思います。

読解力

2年経験して分かりましたが、コードは書けるより読み解ける方が大事です。むしろ読めないと何も出来ません。逆に読めて理解が出来れば、パクって応用することが可能です。

新しい言語やライブラリに触れる際にもQiita等のサイトでは限界が来るので、公式ドキュメントからインプットする必要が出てきます。公式ドキュメントを正しく読み取って必要な情報を取得する力を付けるだけで、ストレスなく仕事を進めることが可能です。

質問力

基本的なことになるのですが、何をしようとして、どこで詰まり、何を試してみて、どんなエラーが出ているか、を言語化して要約する力がないと結構キツイです。

質問相手(先輩エンジニア)も忙しい中で質問に答えてくれるので、相手が理解しやすい情報を端的に伝えるよう意識することが大切です。

さいごに

ここまでお読みくださりありがとうございました!

最後に”ぶっちゃけWebエンジニアってどうなん?”をまとめて終わりにします!

形になっていくプロセスが楽しい!

新しい機能をどんどん増やしていけるのがとにかく楽しい!

エラー格闘8割、スムーズに動く時が2割ぐらいですが、動いた瞬間に脳汁が出まくる感じがたまりませんね!

学ぶことが多すぎて飽きる暇がない!

新しい技術が出てくるスピードがエゲツない!

常に新しいことを学び続けなければいけないので飽き性の人にはとてもおすすめ出来る仕事だと思います!

以上です!

まだまだ解らないことばかりですが、2年経験してみてようやくWebシステムの全体像や使われる技術の種類がわかってきたので、これからは深い知識を身につけていこうと思います。

当記事をご覧頂きありがとうございました!

Carrer

この記事が気に入ったら
フォローしてね!

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次