未経験転職一ヶ月目のしおり〜やったこと・良かったこと・困ったこと〜

# はじめに
はじめまして、Itoiと申します。
2022年9月に未経験エンジニアとして、今の会社に採用してもらいました。

本記事では、この一ヶ月で経験したことについてまとめてみました。

本稿で私ができた経験や感じたことは、あくまで私の主観です。
業務形態、周囲の人物の人柄、自身の知識などによって、経験も感じ方も大きく左右されると思います。
あくまで、筆者の目線から見た1ケースとしてお読みください。

#### 想定読者
- 未経験転職でどんな会社に行くか悩んでいる方
- 未経験転職で内定をもらい、いよいよ働き出すという方
- 未経験者を育てようとしている方

## 筆者・会社の概要
### 筆者
- 32歳、前職は事務の公務員
- 理系
- 中学生からPCを自作してITに強め
- プログラミング経験はゆるく2年（Ruby。AtCoderでB問題まではほぼ確実に解ける）
- フレームワーク(FW)、DB周りの知識はあまりない

### 会社
- コンサル会社
    - 受託開発（社内開発）
    - Webサイトの企画・設計・構築・運用業務
- 従業員数約50名
    - エンジニア30名程度
- チーム構成
    - エンジニア 2名(リーダー、私)
    - ディレクター 2名
    - SQCテスター 1名
- PHP, CodeIgniter, SVN
- ほぼリモートワーク

# もくじ
- [やったこと](#やったこと)
- [良かったこと・してもらって助かったこと](#良かったことしてもらって助かったこと)
- [困ったこと・良くなかったこと](#困ったこと良くなかったこと)
- [補足](#補足)
    - [良かったこと補足](#良かったこと補足)
    - [困ったこと補足](#困ったこと補足)
- [終わりに](#終わりに)

# やったこと
- 入社時研修
- PCセットアップ
- ミーティング(MTG)への参加
- ローカル環境構築
- コーディング・実装
- 仕様書作成



# 良かったこと・してもらって助かったこと
##### コミュニケーション編

- チームリーダーの1on1MTG（30分/日）
- Slackに私専用「分報」スレッドを作成
- 参加して問題ないMTGへの参加

##### 開発編
- 早い段階で実業務に携われたこと
- 開発の流れの説明会
    - 各サーバーの役割等（サーバー：ローカル・開発・テスト・ステージング・本番など）
    - 各開発段階でやるべきこと等
- デバッグ方法（var_dump(), get_defined_vars()）
- 知らなかったことのドキュメンテーション
- 外部講座の研修が"なかった"こと


# 困ったこと・良くなかったこと
- 環境構築が大変（Dockerを使っていない）
- 技術が古い（CodeIgniter, SVN）
- ディレクトリ名から中身が分からない
- Slackチャンネルが多すぎて困惑


# 補足
### 良かったこと補足
#### 特にありがたかったことはチームリーダーとの1on1
これがなければ成長速度は半分以下だったかもしれないです。
チーム唯一のエンジニアであるリーダーは、8時間勤務のうち6時間がMTGで超多忙です。
とにかく質問しづらい…（注：それでも絶対質問すべきと筆者は考えます）

しかし30分/日まとまって時間を取ってもらえたことで、その日の疑問をその日のうちに解消できます。
会社の文化や暗黙の了解についてなど、会話でなければコミュニケーションコストが高くつく内容をどんどん質問できたため、非常に助かりました。

#### 「未経験だから」と研修プログラム偏重ではなかった※
（※しっかりと研修プログラムを持っている会社には当てはまらない可能性があります)

##### OJTは私にマッチした

環境構築が終わって、早々に簡単な機能追加をやらせてもらえたことも重要な経験でした。
いわゆるOJTですね。
実務をやることで、仕事の色々なコンテキストや社内の暗黙のルールなども学べ、非常に役立ちました。
これは「参加して問題ないMTGへの参加」も同様でした。

##### 本来は研修プログラムがあったが、実務と内容が一致していないと・・・
ちなみに、当社では未経験エンジニアは、外部某スクールのPHP・Laravel講座を勤務時間中に進めるのが研修プログラムのようです。
(補足しておくと、うちのFWはLaravelではなくCodeIgniter)
ただ私はイレギュラーで、入社前にその講座を終わらせていました。

業務時間中に、関係ないFWの講座を一ヶ月受け続けることになったら、いたたまれなかったでしょうね。
人が隣で必死に会社の売り上げのために働いているのに、私は業務とほとんど関係ない講座を受けるんですよ、お給料もらいながら。
（もしこれがLaravelではなく仮にCodeIgniterの講座だったなら、納得して受けられたでしょう。<b>良くない点は、業務内容と講座がマッチしていなかったことですね</b> ）

#### ドキュメンテーションは誰でも会社に貢献できる
##### 未経験者の「知らない」が強みかも？
会社に長くいる人は、その会社のローカル知識を「ローカル知識だ」と知らない場合があります。
たとえば「仕様書のこの部分はこんな風に書く」というのを経験的に知っています。
しかし、その知識を持って無意識に行動できるレベルになっている故に「初めて担当するとき、何が分からないか」に気づけず、ドキュメントを作れません。

なので、私は知らないことを積極的に質問し、回答をドキュメント化しています。
これについては上司からも指示を受けており、特に私が詰まったことを社内Wikiに溜めています。
次の未経験者の育成を少し楽にできるかもしれません。

### 困ったこと補足
#### 環境構築に2週間かかった
環境構築に非常に時間がかかりました。
少し前までは皆さんやっていたことだと思いますが、
「Dockerがあれば…」と思わずにはいられませんでした笑
もし次に転職するとしたら、Docker使ってるところに行きたいですね笑

#### 今も困っていること①「ディレクトリ名から中身が分からない」
とにかくこれのせいで、参考にしたいドキュメント・ファイルを見つけるのに時間を浪費します。

サービス1 "みんなでQiita!"(仮名)が入っているディレクトリ名が「webpage2015」
サービス2 "Riita.web"が入っているディレクトリ名が「itmedia」
サービス3 ...

法則性のない（あるいは見つけられていない）ディレクトリの命名で「どこに何があるかわからん」です。

対処として、「サービス１のソースはここ、仕様書はここ、DB定義書はここ。サービス２は…」のようにできる限り体型的に全部メモしてます。

#### 今も困っていること②「技術が古い」 = 検索して解決しづらい
CodeIgniter, SVNという技術が、これまでの会社を支え、今も利益をもたらしてくれています。
このことには敬意を表します。

しかし、古い技術は新規学習者にとってはハードルが高くなる要因です。
Ruby on RailsやLaravelなどと比較しても、圧倒的に情報が少ないです。

例：Qiitaタグ数(2022/10/01時点)
- Laravel 12,359件
- Rails 36,270件
- CodeIgniter 265件

これに対する対処は現状持っていません。
先輩エンジニアに質問する他ありません…。

<b>CodeIgniter初学者にいい本があれば、ぜひ教えてください。</b>

ちなみにCodeIgniterとSVNを使っている今の会社に対して、私は「内定辞退しようかな」とも思いました。
技術面で見れば、エンジニアとして積極的に「ここに転職したい！」と思う人は少ないのではないでしょうか？
採用面でマイナスアピールかもしれません。

## 終わりに
私は今の会社のおかげで未経験からエンジニアになることができ、さらに１ヶ月経験させてもらえました。
コンサル会社ということもあって人柄がいい人ばかりで、コミュニケーションも明朗快活です。
CodeIgniter, SVNでも入社した理由がこれです。
一緒に働く人たちのおかげで、前職と比較して、非常に気持ちよく働けています。

こうしていい会社に巡り会えたことに、感謝の念が絶えません。
1日も早くチームリーダーや会社の役に立てるよう努力していく所存です。

今後も経験したことを、会社をはじめ、エンジニア社会にも貢献させられたらと思います。

最後までお読みいただきありがとうございました！