スクールでは教えてくれない!27歳未経験エンジニアが1年勤めてみた結果!(実話)

未経験27歳1年間のエンジニア生活を振り返る

みなさんどうもこんにちわ。ぜーたです。
27歳、未経験から某スクールで学びWEB業界に転職し、1年が経とうとしているところです。

この1年間、本番環境への反映を失敗し、30サイトのメール文を手打ちで修正したり、クライアント様からテストが不十分だと暖かい(?)ご指摘をいただいたりしてきました。

早い話、たくさんやらかしてきました。←

とまぁ、大変な1年だった訳ですが、営業からweb系の企業に転職し、もっとこれを勉強しておけばよかったなぁと思うこともある訳です。

私にとっては時すでに遅しですが、これからエンジニアになる方の参考に、また私としても備忘録としてこの1年をまとめていこうと思います。

※間違った情報、質問などがあれば、コメントいただけますと幸いです。

 未経験エンジニアの1日のスケジュールを公開

 新人エンジニアの1日(受託,ベンチャー社員数25人半数リモート)

9:15~メール、業務の確認

9:30~業務開始

13:00~14:00 昼休み

14:00~18:30 業務

残業は30分ぐらいかな。でも全然しなくてもいいみんな帰る。

業務中はほぼ無言です。

  • 業務内容
    • クライアントから依頼のあったシステムの作成をする。新人なので比較的簡単なパーツの実装を任されることが多い。
    • 1人日~5人日ぐらいの実装
    • 予約システムのログイン機能、検索や、情報のスクレイピングなど(動作テストも任されますが、これは企業によると思う)
    • 自社開発サイトの改修
    • 外部の方との連携

 ▼当然知っている的な雰囲気のこと

  • Gitのターミナル操作
  • ディレクトリやファイルの移動や構成(Linuxコマンド)
  • 他の会社はftpソフトとか使うか分からないけどCyberduckやfileziilaなどを知っておけばOK
  • ssh接続についてなど

 ▼入社して驚いたこと

  • 全く知らない(実装方法もわからない)ことを普通にサッと頼まれたりするので、都度ググったりどうしてもわからない場合は質問をする(質問方法も調べた方がいい)
  • オフィスは静かで、ひたすらにコードを書くもしくはググって調べるだけで会話はほぼない
  • リモート可なのであったことない人が数人いる(チャットではやり取りする)
  • 中途採用だからか、ベンチャーだからか分からないが、手取り足取り研修はない。(自分で勉強する)
  • エンジニアの人は人としては優しい人が多い(質問もすれば答えてくれるけど、〇〇でググってみてとかそんな感じなことも汗)
  • 分からなさすぎて不安になることがある
  • 分からなさすぎてとても不安になることがある
  • 分からなさすぎてとても不安になることがあるので、とても不安になる

 毎月の仕事内容の変化と、失敗談など

 入社1ヶ月目

  • 担当業務

    • テスター
    • コードの勉強
  • 困ったこと

    • サーバーに関する知識のなさによる開発環境構築の手間取り
    • 生のコードに関する知識や自分の実力のなさを遺憾なく発揮

 感想

まず、入社してから環境の構築を行います。

Apatchのバーチャルホストの設定を行う訳ですが、webサーバ?バーチャルホスと?何ですかそれは?状態で何も全くわからない。

スクールではとにかくrailsで何かを作ることに注力しており、サーバー周りの知識がほぼ皆無でした。学んできたことはなんだったのかと、少し絶望しました。(この時はまだもっと絶望することを知らなかった)

  • やっておけば良かったこと
    • サーバに関する知識は勉強し始めると終わりが見えませんが、基礎的な部分は学んでおく。自分が入社する企業がどんな環境で開発しているかなどを調べて、少しでも勉強していけば良いと思います。(例:dockerとかバーチャルホストとか)

 入社2ヶ月目

  • 担当業務

    • テスター
    • 社内で使っている日報ツールなどの改修
  • 困ったこと

    • 案件に入ったが、ディレクトリの複雑さに驚愕。
    • Gitの操作に慣れておらず、訳も分からず git pull(※絶対にやめましょう)

 感想

Gitの操作ミスで検証環境が全く見れなくなり、冷や汗ダラダラで先輩エンジニアに相談しました。Gitの操作もスクールで習ったはずですが、あまり理解ができていなかったようです。。。(そもそもgithubデスクトップ使っていたからターミナルからの操作は訳わかめ状態だった)

仕事内容としては、テスターの仕事が多く、あまりコードに触れることがない1ヶ月でした。(コード触りたかった!!)

  • やっておけばよかったこと
    • Gitについての知識、ターミナルでのgit操作に慣れておくこと(超重要)

 入社3ヶ月目

  • 担当業務

    • テスター
    • 受託開発<-new
  • 困ったこと

    • 初めての受託案件、他人(先輩様)が書いているコード半分が理解できず

初めてクライアントの案件を任せていただく(嬉)スクールではRailsに慣れていたが、laravelを実務レベルで初めて触る。そんなに大きな違和感はない。MVCモデルだし、根幹はやっぱり似ているように思う。

納期も長めに取ってもらって、結構ゆとりを持って機能の実装をしていた。あれ?俺ってできてるんじゃね?と思った。(後にgit操作をミスり、本番が見れないようになることを当時は知らなかった)

 入社4ヶ月目

  • 担当業務

    • テスター
    • 受託案件
  • 困ったこと

    • まだまだlaravel(php)の知識が足りない

少し大きめの機能の改修を任された(10人日ほど)要件のみ渡され、DB設計から実装、テストまでを担当したが納期から少し遅れて納品。。。悔しかった。

ちなみに、gitで何回かやらかして時間ロスしたのもある。。。(先輩の時間も奪ってしまい反省)

 入社5ヶ月目

  • 担当業務

    • テスター
    • 受託開発
    • 自社サービスの開発<-new
  • 困ったこと

    • DRYなど、基本的なことをできていなかった

もう受託開発にも慣れてきた。この月も別のクライアントの大きな改修を任せてもらった(12人日ほど)その改修と、先月の実装のチェックバックが溢れ、めためたに忙しい月だった。。

チェックバックを多くもらってしまいました。作って終わりではないことをこの月に学びましたとさ(まじで動作確認は大事だから、動作確認を絶対に怠ってはダメ。絶対にね。)

あと、自社開発のサービスにも少しだけ関わらせていただきました。

 入社6ヶ月目

  • 担当業務

    • テスター
    • 受託開発
    • 自社サービスの開発
  • 困ったこと

    • 仕様に関してのコミュニケーションの難しさを痛感した

自分が担当しているクライアント様の機能追加などをメインに行なっておりました。大きな機能から小さな機能まで、一貫して一人で行うので、正直大変でした。機能が7割ほどできてから、私と上長に仕様の認識ズレがあり、大きく時間をロス。。。

エンジニアにもコミュニケーション力が必要だと言われる理由がわかりました。。。継続してサービスの開発に携われていた1ヶ月でした。

 入社7ヶ月目

  • 担当業務
    • テスター
    • 受託開発
    • 自社サービス改修

自分が担当しているクライアントの、今までで1番大きな改修を任されました。実装は工夫して先輩エンジニアの力も借り、納期より早めに本番に反映完了。

開発のスピードの上がってきました。(まだまだ遅いですが...)慣れもあって余裕も出てきたので、自宅でvueなどを勉強するゆとりが生まれました。

 入社8ヶ月目

  • 担当業務

    • テスター
    • 受託開発
    • 自社サービスの開発
  • 困ったこと

    • git操作がまだまだ慣れない

大きい改修はなく、自社サービスや受託のこまごまとした修正をこなしていました。Gitにて再度やらかし、それほど大きなミスではなかったのですが、今までの自分の8ヶ月はなんだったんだと自己嫌悪に陥りました。

「なぜ俺はあんな無駄な時間を...」と少し思いました(ミッチー)

 入社9ヶ月目

  • 担当業務
    • テスター
    • 受託開発
    • 受託開発のgit管理 <-new
    • 自社サービスの開発
    • 自社サービスのサーバー構築(LAMP環境) <-new

受託開発、自社サービスのいろいろな機能に顔を出して、学びながら実装してきました。今月から担当していた受託企業を引き継ぐことに(汗

引き継ぐってか、Gitの管理(リリース作業)を行うぐらい。といっても、ほぼ自分しか触らない案件だったので、それほどの作業はありませんでした。

また新しくサービスを立ち上げるという話になりまして、私がそのサービスのサーバー構築から、ローンチまでの開発を任せていただきました。とはいっても、コードはほぼ出来上がったパッケージを流用しているので、作業自体は10人日ほどでした。

しかし、自分しか関わっていない自社サービスなので、任せていただいた時は嬉しかったです。(イマハモウウゴカナイ)

 入社10ヶ月目

  • 担当業務

    • テスター
    • 受託開発
    • 受託開発のgit管理
    • 自社サービスの開発
  • 困ったこと

    • サーバー関係のエラーが全く解決できない(サーバー負荷なども解決できるようになりたい)

大きな変化はなく、だいぶ仕事にも慣れてきました。先輩は非常に頼りになるし、聞いたらなんでも教えてくれました。

だいたいlaravelで実装したいことはそれほど悩むことはなくなりましたが、サーバーのエラーなど深い部分でのエラーはまだまだ解決するのに時間がかかりました。ここが課題だと思いました。

というか、先輩エンジニアに聞いたら「これはまだわからんわw」と言われましたが、その領域までいきたいと思いました。

 入社11ヶ月目

  • 担当業務

    • テスター
    • 受託開発
    • 受託開発のgit管理
    • 自社サービスの開発 & ローンチ
    • 新人のメンター<-new
  • 困ったこと

    • 先輩が退職し、払拭できない不安の渦に取り込まれる

私の1年先輩の方が会社を退社されました。その先輩になんでも聞いていたので、非常に寂しいです。その先輩の業務を引き継ぐことになったので、自社サービスのgit管理が増えました。外部の方のコードを本番に反映したり、開発環境を整えたりする仕事です。

コードを書く以外の部分(外部との連携やサーバー関係やgit関係など)での業務も増え、さらに先輩が行なってい業務も降ってくるので忙しい1ヶ月でした。。。

先輩の業務を引き継ぎ、少し忙しくなり変わったことは「絶対に自分ではわからないと思ったらすぐに聞く」ようになりました。それがいいのか悪いのかはわかりませんが笑

この月から「新入社員のメンター」も担当するようになりました。とはいっても質問に答えるのみですが、、未経験の方のコードを見ることは自分にとっても勉強になるので、これから楽しみです。

 まとめ

とまぁ、こんな感じで、忙しい1年がようやく終わりそうです。正直、先輩が辞めたことで、これからが非常に怖いです。恐怖です。自分も成長して、担当するサービスも使いやすくなるように頑張ります。

この記事を書いていて思うのが、やってきたことの棚卸しは必要だということ。自分が何をやってきて、何を学んで、何ができるようになったか。目標はどこか。など、定期的に振り返ることが大事かなと思いました。

 去年1年で困ったこと

  • Gitの操作で検証環境などをぶち壊す
  • サーバーの知識のなさでエラー解決できない
  • 本番に反映した後にミスが発覚し、残業しながら改修(これが一番きつかった)
  • 仕様の確認コミュニケーションスキルの不足により、実装の二度手間が発生
  • こんなん絶対実装できへんやん...と思ってしまいモチベ低下(だいたい先輩に聞いたら実装できる)

 今年1年でやりたいこと

  • Vue.jsを使った実装
  • Dockerを使って開発環境を作成する
  • circleCIで自動テストツール作成
  • AWS ASS取得 AWSに自分のサービスをデプロイ
  • 自分が関わっている会社のサービスをより使いやすいように意見も言う
  • 自分より年次が若いメンバーを育成、チームで働く

などなど、まだまだやりたいことは尽きません、、、

正直dockerやcircleCIなどは、自分で勉強するしかありません。実務では使ってないから。実務レベルで使ってみたいものです。また、チームでの開発にも非常に興味を持ちました。今はただ単に言われた機能を実装するだけなので、何人かで議論しながら新しい技術もキャッチアップして開発していくような環境への憧れを抱いています。

では今日はこの辺で、さようなら〜