BЯunoのプロフィールはこちら
Webエンジニア フィヨルドブートキャンプ

WEBエンジニアになるまでとこれから

WEBエンジニアになるまでとこれからWebエンジニア

この記事は フィヨルドブートキャンプ Part 2 Advent Calendar 2020 の8日目の記事です。
昨日は、odaillyjpさんによるコミットを整理してみようでした。

フィヨルドブートキャンプを卒業してから卒業エントリというものを書いていなかったので、それっぽいものを書きつつ、ここ半年を振り返っていこうと思います!

自分の経歴について

まず簡単に自分がどういう経歴を経てWEBエンジニアになったのかを紹介しておこうと思います。
大学時代から振り返るので、少し長いです笑。

  1. 高校卒業後、一浪を経て中央大学法学部に入学。が、法学に興味が持てず、一年で退学。
  2. WEB制作に関して独学で3ヶ月勉強。勉強後は自ら営業して案件を獲得し、案件をこなしつつWEB制作系のフリーランスとして活動。
  3. 約3ヶ月でWEB制作に飽き、WEBエンジニアになることを決意。上京して2ヶ月間独学でRailsを学ぶが、内容に不足を感じフィヨルドブートキャンプに通い始める。(2019年11月)
  4. フィヨルドブートキャンプを2020年4月に卒業。コロナ渦の中就職活動をし、内心微妙だと感じていたが唯一内定がもらえた企業に就職。(6月)
  5. いろいろあって会社がやっぱり微妙なため止めることを決意して、わずか3ヶ月で退職(9月)
  6. フィヨルドに渋谷のベンチャー企業を紹介してもらいそこに転職。現在はそこでWEBエンジニアとして活躍中。(9月〜今)

こうやってみるとなんだかすごく飽きっぽいですね・・
いろいろと自分に合わないと思ったらすぐ辞めちゃってます笑
まあ、そのおかげで望んだ結果にたどり着けているのでよしとしましょう!笑

フィヨルドブートキャンプで苦労したこと

まず言っておきたいのが、フィヨルドブートキャンプは総じてとてもいいスクールでした!

カリキュラムも現場で働くために必要な技術が網羅的に学べるものとなってますし、実際に働き始めてからフィヨルドで学んだことはすごく生かされてるな日々実感します。
本当にお世話になりました🙇‍♂️

またフィヨルドブートキャンプはスクールというよりかは一つのコミュニティになっており、そこも良い点ですね。卒業後もSlackのグループをちょこちょこ覗きつつ、楽しませていただいています笑

以下、自分が苦労した点です。

デプロイ

自分は「デプロイ」のカリキュラムで盛大に1週間ぐらい詰まりました。
具体的に言うとRailsとnginxを連携して、それをCapistranoでサーバー上にデプロイする課題です。(今ではカリキュラムがハズレしまったっぽいです。残念・・。)
これが全く上手くいかず、質問してもなかなか解決策が見当たらず、本当に辛かったです。

最終的にはどうしたかはあんまり覚えていないですが、根性でどうにかした気がします笑
いや〜キツかった笑笑

就活

コロナのせいもあって就活に大変苦労しました。
面接しまくってもどこも通らず、落ちまくりました・・。多分軽く20社以上は落ちてると思います。
応募数は100は余裕で超えてる気がします。

就活時は誰も自分を必要としていない気がして、人間否定されてる感じでとても辛かったのを覚えています・・。

最終的には一社内定を頂きましたが、そこも他のフィヨルド生と比べると全然大した会社でなく、劣等感から一時期フィヨルドに全く顔を出せない時期もありました。

反省点としてはもっと就活を意識して日々学習すれば良かったなと思いました。
具体的にはこの記事の「フィヨルド生へのアドバイス」部分で語ります。

半年エンジニアとして働いてみた感想

結論から言うと前の会社は苦痛でしたが、今の会社はめっちゃ楽しいです笑

今自分はピナクルズ株式会社という渋谷のベンチャー企業で「tebiki」という「現場教育を動画で簡単にする」サービスを日々開発しています。

プロダクトマネージャー、デザイナー、エンジニア全員で新機能についてその仕様などをMTGで議論してプロダクト開発を進めています。自分はMTG内でまだまだ全然発言ができないのですが、全員でユーザーにとって使いやすく分かりやすい機能を作るにはどうすればいいかを議論していて、とても勉強になりますし刺激を受けています。

また、直近で追加予定の大きな機能の実装が全て自分に任されているので、そういう面でもすごくやりがいがあります。プレッシャーも確かにありますが、任されている以上頑張って実装したいです!

以上、ここまで自分の単なる感想でしかないので、この記事を見ている人に少しで役に立つように、前の会社と今の会社で何が違うのかを比較していこうと思います。
これを見れば少しは企業選びの参考になるかも?

前の会社

  • モダンな開発環境が整っていない。(CI/CDパイプラインがない、仕様がドキュメントにまとまっていない、GitHubでプロジェクト管理していないなどなど)
  • 技術的にはモダンだった気がする。(AWS、Docker、Rails、Vueで開発してた)
  • 教育というものが一切ない。入ってすぐやれって感じ。その割には求められる水準が高い。単純にキツい。
  • コミニュケーションが硬い。チャットに絵文字や伸ばし棒(〜)とかが一切ない。
  • 最初からフルリモートワークだったので他の社員のことが全くわからない。人間関係が全く構築できない。

今の会社

  • モダンな開発環境が全てちゃんと整っている。(CI/CDパイプライン、esaにドキュメントがまとまっている、GitHubでタスク管理してアジャイル開発をしている)
  • モダンな技術がてんこ盛り。(AWS、Docker、Rails、Golang、Vue.jsなどなど)
  • 現場教育がメインの会社なだけあって、教育がちゃんとある。サービスのコードの中身やインフラについて少しずつ徐々に教えてもらえる。
  • チャットでのコミュニケーションが柔らかい。絵文字や伸ばし棒などを全員が使う。また普段の会話で互いへのリスペクトが感じられる。
  • 基本出社なので、他の社員がどんな人かよくわかる。人間関係がちゃんと構築されている。

両者を比較して一番の違い

これはやっぱりHRTの精神かな〜と思いました。

ちなみにHRTとは謙虚(Humility)、尊敬(Respect)、信頼(Trust)のそれぞれの頭文字三文字をとった言葉です。読み方は「ハート(heart)」というらしい。
詳しく知りたい方は「TeamGeek」という本がおすすめです。

今の会社では互いを会話内で互いをリスペクトしていることがとても感じられ、それが精神的安全性に繋がってると感じます。

例えば、自分的にはそんな大したことないと思っている機能でも、実装後は営業の人達やデザイナーさんにとても褒められます笑。「いや〜!これでまた便利になったね〜!!」って感じで。
これ、前の会社では一切なかったので、自分的にはすごく嬉しいですし、やる気につながってます。
本当にいい会社に入れて良かったと思ってます。

これから先、どうなりたいか

エンジニアとして、3年や5年先はどうか分かりませんが、とりあえず1年後ぐらいには自分がどうなっていたいかを語っていこうと思います。

設計力を磨きたい

設計力の大切さは日々感じています。
自分は変化に強い、保守しやすい、分かりやすい、依存が少ない、そんなコードを書けるようになりたいです。

そのためにはまだまだ勉強が必要だなと感じています・・。

  • リーダブルコード
  • リファクタリング
  • クリーンアーキテクチャ
  • コードコンプリート
  • オブジェクト指向設計実践ガイド

などなど、いろいろな書籍をこれから読んで、「設計力」を磨いていきたいなと思っています。

ユーザー目線を大切にしたい

今の会社でサービス開発を通して、UI/UXがすごく考えられてるなと感じてます。(これは主にデザイナーさんの力なのですが・・)

デザイナーに関して、自分は本当に尊敬していて、ユーザーの行動を考え抜いて少しでも分かりやすく使いやすいサービスにしようとする姿勢は見習わなければといつも思っています。

自分もユーザー目線に立って、一つ一つの機能を考えられるようなエンジニアになりたいです。

非機能要件ってやつを常に考えるようにしたい

機能を実装するだけでなく、それに伴ってコードの実行速度や拡張性、セキュリティなど、細かい部分まで考えて実装ができるエンジニアになりたいです。
これもまだまだ知識が足りないので、本をたくさん読んで勉強ですね・・。

フィヨルドブートキャンプ生に少しだけアドバイス

たかが卒業生の分際でアドバイスなんて偉そうにするなって話なんですが、一応卒業生なんで何かしらお伝えできればと思い、書かせていただきます・・。
参考程度にしていただければ・・・。

できるだけ公式の情報を参照するようにしよう

何か詰まった時にまあ大抵ググると思うのですが、Qiitaとかはてなブログとかの個人が書いた記事が検索結果として引っかかってそれを皆さん参考にすることはよくあると思います(自分もよくします)

ただここで注意して欲しいのが、個人の書いた記事の内容が常に正しいとは限らないことです。実際いい加減な記事もあります。
間違った情報を元に問題解決をしようとすると、その分時間を無駄にしてしまいます。

そんな時に思い出して欲しいのが、公式の情報です。
例えばGemの使い方だったらGitHubの公式ページと見るとか、新しいライブラリやフレームワーク(Vue.jsなど)を使うときは公式のDocsを見るとか。
結局、公式の情報が絶対的に正しくて常に最新にメンテされているのが、それを参考にするのが一番安心だよね、ってことです。

ですので、概要を掴むのにさっとQiitaの記事とかを見るとはいいと思うのですが、詳しく調べるときは必ず公式の情報に目を通すようにしましょう。

そんでその時に重要になるのが、次の話です。

英語は大事

はい、これです。苦手な人も多いかと思います。
でもですね、エンジニアとしてやってく上で英語めっちゃ重要なんですよ・・。残念ながら。

上記に書いたように公式情報を参照するときは大抵英語で書かれているので、それを読む必要があります。

またエラーで詰まった時に、英語でググれると問題解決までのスピードが一気に上がります。日本語での情報量と比べて英語の方が圧倒的に情報量があるのでね。
例として、「Rails 〇〇 not working」とか。

そうすると、海外のStackOverflowのリンクとかがたくさん出てきます。大抵そこに求めている答えがあります。StackOverflowは宝の山です。

自分はフィヨルドブートキャンプの中でも学習が早い方だと言われていましたが、これは英語力があるからだろうな〜と感じていました。
英語でググれるとその分問題解決のスピードが早いので。

ですので、エンジニアとして働いていきたいなら、英語を読めるようになる努力もしましょう!

遅延評価勉強法を身につけよう

ITの世界は情報量が多すぎます。全てを勉強して理解しようとしていたら、とてもじゃないですが時間がいくらあっても足りません。

そこでおすすめなのが、遅延評価勉強法 という勉強法です。
詳しくはリンク先を見てもらえれば分かるのですが、まあ簡単に言うと「必要になったら、必要なところだけ勉強する」という勉強法です。

全てを理解しようとするのでなく、その知識が必要になった時に初めてそれを勉強するみたいな感じです。こうすることで、効率的に学習を進めていけるようになります。

全部理解しようするといつまで経ってもフィヨルドブートキャンプを卒業できないので、自分はこれでいいと思ってます。
ので、皆さんも是非試してみていただければと思います。

最終ゴール(就職)を意識して日々学習しよう

これは自分がフィヨルドブートキャンプで一番反省していることです。

自分の場合、最速で卒業することだけを考えてしまい、就職は卒業してから考えようとか思ってましたが、これが甘かったです。
常にゴールを意識して学習すればよかったと思いました。

具体的には以下の通りです。

  • 勉強会に積極的に参加して、会社内のエンジニアとの繋がりを作っておく。
  • チーム開発に入ったあたりから同時に就職活動は始める。(企業探し、面接対策など)
  • カリキュラム終盤のポートフォリオづくり以外に他の人と差別化できる要素を持つ。(ブログを毎日書く、LT会に参加して発表するなど)

フィヨルドブートキャンプに皆さんが入った目的はエンジニアとして就職するためのはずで、そして就職しようと思ったら企業の中の人に自分は選ばれなければなりません。

以下の伊藤さんの記事がめちゃくちゃ参考になります。(選ばれるきゅうりになるには、という部分)

なので、現役生は常にこれを意識して日々学習していけばいいと思います。
就活や転職活動ってマジで大変なんで、日頃からタネを撒いておくのは大切ですよ・・。

最後に、最近思うことを少しだけ

フロントエンド超大事

フロントエンド大事だな〜と感じます。VueとかReactとか。

だってフロントできたら画面が作れますからね。バックエンドを簡単に提供してくれるサービスはいくつかあるし(Firebaseとか)、それと組み合わせればサービス作れちゃいますからね・・。
逆にバックエンドができても画面は作れない=サービスが作れないわけだし。

あと個人的に就活してて思ったのが、フロントエンドエンジニアの求人の方が多くない?ということ。

これは最近プログラミングスクールが乱立しすぎて、どこもかしこも教えやすいRailsを教えるから、Railsができる未経験エンジニアは飽和してるのかな〜と。
そしてスクールであんまり教えないフロントエンドは貴重なのかな?と感じております。

正直、TypeScriptとReactができればどこでも就職できる気がする😇

自分はいわゆる技術オタクではない

これは最近超思います。
自分が言う技術オタクっていうのは、一つの技術を深く学ぶ人のことです。

なんかエンジニアのタイプ分けみたいな記事を読んで、エンジニアにもいろいろタイプがあることを知って、自分は「プロダクトづくり」が楽しいタイプのエンジニアだな〜と感じました。
作ってる製品がどんどん発展して使われていくのが楽しいし、いいプロダクトにするためにデザインや機能など考えるのが好きだな〜と。

だからRubyやRailsのコアの部分の技術を知りたいとか、Gemの作り方や中身とか、このプログラミング言語が最高!大好き!!とか、そういうのは一切ないな〜と感じています。

技術はプロダクトを作るためのツールでしかなく、その技術を使うことによって良いプロダクトになるのであれば使いたいって感じですかね〜。

まとめ

以下、超雑なまとめです。

  • フィヨルドブートキャンプ最高。超感謝してます。
  • 今の会社最高。毎日が楽しいです。
  • でももっともっと勉強が必要。頑張らないと。
  • 現役フィヨルド生は頑張って!エンジニアは楽しいよ!!

以上になります。読んでいただきありがとうございました🙇‍♂️

コメント