新人CREエンジニアの必須スキル5選〜1年間を振り返って〜

この記事は[モチベーションクラウドシリーズアドベントカレンダー2022](https://qiita.com/advent-calendar/2022/mcs)の10日目の記事です。

## はじめに
CREエンジニアの[Waka](https://twitter.com/peace_flower087)です！
新卒で入社し3ヶ月の研修後、CREに配属されて約１年が過ぎました。

最近「新人CREエンジニアの育成って、どうやってるの？」と聞かれ、
1年前は、CRE業務が幅広いため、何から手をつけたらいいんだ？と、
自分の無力さを感じる日々だったことを思い出しました。
そこで、1年間を振り返って、どんなスキルが身についたのか、まとめてみることにしました！

【参照】
[CREのおしごと](https://link-and-motivation.hatenablog.com/entry/2022/02/18/153000)
[CREのおしごと〜エンジニアチーム編〜](https://link-and-motivation.hatenablog.com/entry/2022/11/11/161534)

:::note
**〜読んでいただきたい方〜**
・CREエンジニアの育成をされている方
・新人CREエンジニアの方
・サポートエンジニアをされている方
・テクニカルサポートをされている方
:::

〜1年目CREエンジニアとして身につけたスキル5選〜
をお伝えします！
- **[SQLスキル](#SQLスキル)**
- **[コードリーディングスキル](#コードリーディングスキル)**
- **[テクニカル／UXライティングスキル](#テクニカル／UXライティングスキル)**
- **[ロジカルシンキングスキル](#ロジカルシンキングスキル)**
- **[コミュニケーションスキル](#コミュニケーションスキル)**

## SQLスキル

配属後、一番最初に身につけた技術スキルだと思います。
sentryやredashからの通知、お客様からのお問い合わせが来た際に、
現状を知ることは、調査の一歩目です。
データの状態を知るためにも必須のスキルだと思います。
複雑なデータの結合など、最初は四苦八苦したのを覚えています。
何度も繰り返すことで、スピードが上がりました。
たくさん調査をすることで、データベース構造の理解が進んだので、実践あるのみだと思います！

:::note warn
**〜参考〜**
・SQL 第2版 ゼロからはじめるデータベース操作（ミック, 2016）
・[【INNER JOIN, LEFT JOIN , RIGHT JOIN】テーブル結合の挙動をまとめてみた【SQL】](https://qiita.com/ngron/items/db4947fb0551f21321c0)
・[【SQL】『SQL未経験 → 3ヶ月でデータサイエンス100本ノック全問制覇』までのロードマップ (初心者向け)](https://qiita.com/Ryo-Nakano/items/8961c956babaf0976b4a)
・[データサイエンス100本ノック（構造化データ加工編）](https://github.com/The-Japan-DataScientist-Society/100knocks-preprocess)
:::

## コードリーディングスキル

原因調査の際に必要なスキルです。
配属当初「自分が書いていないコードは、わからない…」と先輩に伝えたことがあります。
その時の、先輩からのアドバイスは、
「コードは書くよりも、読まれることが圧倒的に多いよ。
　読む経験を積むことで、読みやすいコードを書くことができるよ。」でした。
ただ、闇雲に読んでいても、時間がかかります。

:::note warn
**〜調査方法〜**
binding.pryを使ってデータの受け渡しを一つずつ見ていく
「デバックのやり方」などと検索して試す

**〜基礎知識を手っ取り早く身につける〜**
[ドットインストール](https://dotinstall.com/)
短時間で要点をおさえることができます！

**〜日々の習得方法〜**
障害対応など、スピードを要求される場面が多いCREだからこそ、
任せてもらえた依頼を数分で終わらせる必要があり、私は焦ってしまうことが日常茶飯事でした。
その際は、先輩が代わりにやってくれることも多かったです。
代わりにやってもらった調査に関しては、先輩の画面を共有してもらい、
どういった思考を経て、原因が分かったのか「言語化」するようにしてました。
上記を繰り返すことで、先輩と自分の「差分」がわかり、
次回から「ここまではできる」と明確な目標を立てることができました。
:::


## テクニカル／UXライティングスキル

配属3ヶ月後、私はヘルプページの作成に携わりました。
最初は、業務内容がエンジニア職と違い、戸惑いましたが、
CREエンジニアとして身につけてよかったスキルだと思います。

身につけた方がよいと思う理由は、下記の通りです。
- **ユーザーの観点を理解できる**
→ ユーザーが何に迷い、何でつまずくのかを想像できるようになりました。

- **QA/テストに活かすことができる**
→ モンキーテストの際に役立っています。

- **機能や仕様をわかりやすく伝えることができる**
→ カスタマーサポートとのやりとりが多いCREだからこそ求められるスキルだと思います。

:::note warn
**〜参考にした本〜**
・技術者のためのテクニカルライティング入門講座(髙橋慈子, 2018)
・戦略的UXライティング ―言葉でユーザーと組織をゴールへ導く(Torrey Podmajersky, 2022）
・日本語スタイルガイド(第3版)(一般財団法人テクニカルコミュニケーター協会, 2016)
:::

## ロジカルシンキングスキル
私自身、苦手意識があります。
現在も、障害対応時のスピードが必要な場合は、
焦ってしまい太刀打ちできないことが多くあります。
ただ、障害対応が落ち着いたら、筋道を立てながら振り返ることを大切にしています。
実際に、原因調査、テストなどの際に使用してる思考をご紹介します。

:::note warn
**〜【肯定/否定】で考える思考〜**
起こる場合と起こらない場合、
当てはまる場合と当てはまらない場合など、
【肯定/否定】と切り分けながら、調査していく方法です。
下記を例として、ご説明します。

**〜ユーザが登録できない場合〜**
1.ユーザー登録ができないとお問い合わせをいただく
2.ユーザー登録できない人の現状を知る
3.ユーザー登録ができる場合を探る
4.ユーザー登録できる条件をコードやヘルプページから箇条書きにする
5.ユーザー登録の条件との差分を見つける
6.該当ユーザーが登録できる方法を伝える
できる/できないを思考をすることで、調査がスムーズになります。
:::

## コミュニケーションスキル
弊社のCREは、カスタマーサポートやお客様とコミュニケーションをとる機会が多いため、
このスキルを最後にあげました。
コミュニケーションを図る際に特に大事にしているのは、5W1Hの観点です。
依頼主からポイントを押さえてヒアリングすることで、対応に抜け漏れがなくなります。

:::note warn
**〜ポイント〜**
5W1Hでコミュニケーションをとる
:::

|5W1H|問い|例：お問い合わせ|
|----|----|---|
|why|**なんのため**にやるのか？|ユーザー登録ができない事象を解決したいため|
|what/which|**何**をするのか？|ユーザー登録をする|
|who|**誰**がやるのか？|お客様/カスタマーサポート|
|how|**どのように**やるのか？|ユーザー画面/管理画面から登録したいができない状態なので、どうにかできる方法を模索する|
|where|**どこに基準**を置くのか？|特定のユーザーが登録できる状態を解決とする|
|when|**いつまで**にやるのか？|すぐに調査して解決してほしい|

【参照】
[新人エンジニアの必須アクション集　〜初めての山登りに例えてみた〜](https://qiita.com/waka087/items/a9e88843ecc580c79e10)

## まとめ
- **[SQLスキル](#SQLスキル)**
- **[コードリーディングスキル](#コードリーディングスキル)**
- **[テクニカル／UXライティングスキル](#テクニカル／UXライティングスキル)**
- **[ロジカルシンキングスキル](#ロジカルシンキングスキル)**
- **[コミュニケーションスキル](#コミュニケーションスキル)**

ざっと、１年間を振り返ることで、
自分ならではの学習方法や今後伸ばしたいスキルがより明確になりました！

過去から現在までのスキルアップを言語化をすることで、自身の成長が見えるかもしれません！
ぜひ、皆さんも言語化してみてください〜！
ご覧いただき、ありがとうございました！