案件面談時のQ&A・対策したこと（エンジニア編）

## 自己紹介
こんにちは！ iOSエンジニアの[やまたつ](https://twitter.com/yamatatsu109_ja) です☺️
[Oshidori](https://apps.apple.com/jp/app/oshidori/id1463179915#?platform=iphone)というアプリを個人で開発し、リリースしています！！！
エンジニア歴は1年ちょいくらい。Swift歴は8ヶ月です。

初めて案件面談を受けたので、その備忘録と対策をまとめます。
エンジニアの方の面談の参考になると嬉しいです☺️


<blockquote class="twitter-tweet"><p lang="ja" dir="ltr">人生初、案件面談がありました！<br>代表とCTOと面談！<br>フリーランスとしてなので厳しい質問が来るかなと思ったけど特に厳しいのはなかった。<br><br>個人開発のウケが良かった！<br>4.9の評価やプッシュ通知がついてるところが評価ポイント。先ほど合格通知が来て、来週の月曜から参画が決まりました！やったね☺️</p>&mdash; やまたつ(25)@Oshidori開発者_Swiftエンジニア (@ta__ta01) <a href="https://twitter.com/ta__ta01/status/1151444801113350144?ref_src=twsrc%5Etfw">July 17, 2019</a></blockquote>


結果的にフリーランスとして雇っていただき、現場で日々格闘しています🔥🔥🔥

## 対象者
- 面談を控えているエンジニア
- フリーランスを目指しているエンジニア
- 面談対策をしたいエンジニア

## 参考までに、募集内容を掲載
【必須】
　・iOSアプリの実務での開発経験
　・エンジニア実務経験3年以上
【歓迎】
　・業務アプリ制作経験

上記の条件でした。


## 対策したこと

### 以下の動画はオススメです！
[業務未経験のWeb系エンジニア志望者が面接で聞かれる頻出質問とその対策](https://www.youtube.com/watch?v=b1_v0PkprC8)

#### 参考になるポイント

- 面談相手が何を聞きたいのかが分かる
- どのような心構えで行けば良いのか分かる


一緒に働く相手に求めるものは会社ごとに違うと思いますが、
共通して求めているものは以下だと考えます。

- コミュニケーション能力
- 技術力への向上心はあるか
- 1人で自走できそうか


無論、元々の技術力は求められますが
解決できない課題があったときに、

- 相談できるコミュニケーション能力
- 調べまくって解決まで持っていく向上心
- 諦めずに自走する

以上ができそうかを見られているのではないかなと思います。
上記が伝わるエピソードを積極的に話すと良いですね😊


### 参考にしたサイト

[iOSエンジニアがフリーランス案件の面談で良く聞かれる質問集をまとめてみた](https://blog.tamappe.com/entry/archives/2019/01/21/100/)

[iOSアプリエンジニアのための面接質問集100選](http://nsblogger.hatenablog.com/entry/2016/12/24/ios_interview)


すごく良くまとまっていて、本当にありがたかったです！！！
技術的な内容が多く、参考にさせていただきました。

また、記事で分からないところを勉強すれば iOSエンジニアとして一流になれるのではないかと考えました！
ロードマップ的な存在ですね✈️✈️✈️✈️✈️✈️✈️✈️


他の言語のエンジニアの方は、
**「自分の言語　面談　聞かれたこと」　例： Ruby 面談 聞かれたこと**
で、ググったらロードマップが出てくると思います🌞



### エンジニアの技術力を見られるポイント
この辺を抑えておけば良いかと思います。
実務経験が短い or ない 場合は黙らせるぐらいのアウトプットを出していれば問題ないかと。

- アーキテクチャの知見
- API 設計
- 実務経験(職務履歴書をもとに)
- 成果物（Qiitaなどアウトプット、個人開発）

### 履歴書のポイント
履歴書に書くのは今まで触ったことがある言語は全て書いた方がいいみたいです。
実際の業務で使う言語は、自分の得意言語になると思うので（自分の場合はSwift）、とにかく書いた方がいいです。
企業側の安心材料になるみたいです！

ただし、嘘はダメですよ。

##### 以下は、エージェントと話した内容です。（実話）


**エージェント**「今まで少しでも書いたことがある言語は全て書いてください！
少しでもやったことがあれば、相手の好印象です。今はフルスタックのエンジニアが求められています！」


**やまたつ**「自信ない言語は書きたくないです。。。」

**エージェント**「知見があるって言えばいいんですよ。」

**やまたつ**「なるほど」


【知見がある】って便利やなぁ。。。。　と思いました😈



## Q&A

### 1. 今までの開発で一番大変だった経験は何ですか？

アプリを開発するときに、序盤からログインの実装や、DB周りの設計を行ってしまい、途中で機能の変更があったときに修正が大変だったことです。
アプリ開発では、最低限の機能でリリースを目指して検証を行うことが大切だと思いました。また、UIを完成させて、サーバーサイドに取り組む方が結果的に早く実装が進むと考えています。
[こちらの記事に大変だったことを書いています😈](https://qiita.com/yamatatsu10969/items/96a1462997b4478f9aea)

#### ⭐️体験＋改善案を話す

### 2. 分からないエラーが出てきたときは、どうしていましたか？

エラーの文章を読み込んで、どこに問題があるかを特定します。
全く検討がつかない場合は、エラー文で検索し、答えを探します。
英語で検索した方が良い回答が得られるので、海外のスタックオーバーフローをよく使っています。
それでも分からないときは、知り合いのエンジニアに聞いたり、勉強会に参加して強いエンジニアに聞きたりしています。

#### ⭐️なんとしてでも解決する姿勢を見せる＋解決方法を数種類出す

### 3. どのようなアーキテクチャで開発してきましたか？
今まではMVCで開発してきました。スタートアップでの開発が多かったのでプロトタイプを作るときにMVVMやクリーンアーキテクチャはオーバースペックだと判断したので、MVCで開発していました。
個人開発でも、MVCで開発しています。

#### ⭐️アーキテクチャの知見があるかを話す。何を知っているかを話す。

### 4. 技術力を向上させるために行っていることはありますか？
個人開発を行っており、自分の知らない技術を調べて実装することで技術力を向上させています。
勉強会の参加や、朝活に参加し、他のエンジニアとの交流を行うことも行っています。
また、Qiitaの記事を書いてアウトプットも行っています。

#### ⭐️自分の行っている活動を正直に話す。アウトプットがあると好印象。個人開発は強い（確信）

### 5. なぜフリーランスになったのですか？
※ここは参考にならないと思いますが、一応書いております。

会社に所属するときに、必ず「ビジョンとミッションへの共感」を求められますが、共感を強いられることが嫌だからです。
必ず最終面接で「共感していますか？」と聞かれるので、その度に嘘をつきたくないです。

もちろん、ビジョンとミッションに共感することは大事ですが、自分はエンジニアなので技術力の向上に一番力を入れています。
技術力が向上し、プロダクトに愛着があれば良いと思っているので、転職ではなくフリーランスになりました。

#### ⭐️信頼できるエンジニアと思われるような話ができれば良いと思います

### 6. クリーンアーキテクチャでの開発ですが大丈夫ですか？

クリーンアーキテクチャの経験はありませんが、最近本を読んでいたので概念は理解しております（これは本当）
もしも参画させていただけることになったら、実際にクリーンアーキテクチャでプロダクトを作成してみてキャッチアップしてきます。(アプリ作成済み！近日Qiitaで公開したいと思います☺️)


<blockquote class="twitter-tweet"><p lang="ja" dir="ltr">クリーンアーキテクチャの話も出てきて、本読んでて良かった〜ってなった。ばーちーさん(<a href="https://twitter.com/nanamoto7483?ref_src=twsrc%5Etfw">@nanamoto7483</a> )が「これ読んだ方がいいよ」って本を貸してくださったおかげだ。。。ばーちーさんには何から何までお世話になった。。。ありがとうございます😭</p>&mdash; やまたつ(25)@Oshidori開発者_Swiftエンジニア (@ta__ta01) <a href="https://twitter.com/ta__ta01/status/1151444802208014336?ref_src=twsrc%5Etfw">July 17, 2019</a></blockquote>


#### ⭐️足りないところへのキャッチアップの意欲を見せよう

### 最後の鉄板質問：　「質問はありますか？」

今までの会話の中で疑問に思ったことを話せばOKです！
何も質問がないのはNGです！！！！！！
**何も質問がないとき用の無難な質問を載せておきます。**
どんどん深掘りしていくと、「うちの案件に興味があるんだな」という印象をつけることができます！

- 参画前に自前に勉強しておいた方が良いことはなんですか 
- 現場の開発環境はどのようになっていますか 
- 開発の体制はどのようになっていますか 
- 作業の進め方はどのようになっていますか 


## 合格の勝因
個人開発が大きかったと思っています。（もちろん面談対策も効きましたね）
アピールしたところは主に3点です。

- プッシュ通知や証明書周りもわかる
- Firebase を使っていてモダンな開発を行っている
- リリースまでしており、評価が4.9

新しい技術を使っていることや、個人開発でリリースまでやり切ることは、とてもアピールになりました！
自分のプロダクトのアピールポイントを持っておくと良いですね☺️


## 最後に
極論は、「一緒に働きたいな」と思ってもらえるかどうかです！

特に面談のときに大事にしたいのは、

- **自信を持って話すこと**
コミュニケーションが取れなさそうと思われてしまいます！
もごもごならずに、とにかく「〜〜〜です。」まで話すことを意識しましょう！

- **ネガティブに話さないこと**
「〇〇の経験がないですね」と言われたら、「〜〜〜までなら分かります。参画するまでにはキャッチアップしてきます！」
「〇〇は分かりますか？」　で分からなかったら、「知識不足で分かりません。帰りに調べておきます。」
などなど。
知見がなくても、キャッチアップする姿勢を見せましょう。

- **技術力を向上させる意思があること**
ここは重要だと思います。プロダクトを成長させてくれる仲間が技術力を向上させたくない人だと嫌だと思います。
何かエピソードを持っていくと良いですね!!!


#### この記事が誰かのためになってくれると嬉しいです😆