「これからエンジニアになりたいあなたへ」現役エンジニア講師が忖度ナシで答えるFAQ集

## 教え好きのエンジニア講師によるエンジニア職のマジ話
:::note
筆者が講師登壇時によくある（あった）質問をFAQ形式で解答し、適宜補足した。
興味のある部分だけつまみ食いできるようアコーディオン形式にしているので、気になるQをクリックして展開してみよう。
:::

<details>
<summary>Q. なぜエンジニアになったのか、なろうと思ったのか</summary>

---

### なぜエンジニアになったのか、なろうと思ったのか

- 「エンジニアになろう」と思ったと言うよりは「ゲームを作りたい」が先にあって、ゲームを作る（プログラムをする）人をゲームクリエイターと呼んでいた
- エンジニアになったのは、ゲームクリエイターとしてゲームを作る過程で一番楽しかったのがプログラミングだったから。絵や文、サウンドを作っていた世界線もあった

---

</details>

<details>
<summary>Q. 得意な言語は何か？また、なぜその言語にしたのか</summary>

---

### 得意な言語は何か？また、なぜその言語にしたのか

- 最近はPython。好きなスクリプト言語はJavaScript。プログラミング言語全般はコンパイラの環境構築が面倒なのであまり好きではない
- この質問については経緯を認識していただく必要がある。筆者は言語もフレームワークも不問としており未経験の環境ですら炎上プロジェクトに放り込まれて学習していったので、炎上プロジェクトに対する精神的負荷への耐性がある程度高い。特に悲観しても楽観しても達観しても火消しにはならないので、自分が楽にならなくとも疲弊を抑える稼働または相談の仕方を見つける事ができるため、新規で関わるサービスなどは品質は別として一通りを理解していく事ができている。そのため得意も不得意も本当の意味では存在しないと考えている
- PythonやJavaScriptを選んだ理由も特にない。たまたま今がそうなっているだけで今後変わる可能性が高い。JavaなりKotlinなりRubyなりGolangなり。ScalaとかRustに興味はあるものの触れていない

---

</details>

<details>
<summary>Q. プログラマー未経験だが、学んだ方が良い／一番最初に学ぶべき言語は何か？</summary>

---

### プログラマー未経験だが、学んだ方が良い／一番最初に学ぶべき言語は何か？

- 解答になっていないが、プログラミングを目的にするのではなく、何のためにプログラミングを学ぶのかを考えるところから逆算しよう
- たとえば、データ分析がしたいならデータ処理に強い言語にすべきだし、Webサイトを作りたいなら、作りたいWebサイトの機能やシステムを棚卸ししてから言語を考えるべき

---

</details>

<details>
<summary>Q. 仕事を辞めたいと思ったことはないか？</summary>

---

### 仕事を辞めたいと思ったことはないか？

- 「この会社でこれ以上は働きたくない」ならある。が、会社を辞める＝プログラマーを辞めるにはならなかった
  - 会社員時代だと、プログラマーを辞めたいというよりは「この会社ではもう成長できない or もう学ぶことはない」と見切りをつける事が多かったように思う。今思えば早合点が過ぎるが、おかげで転職スキルは高くなった
- 今はフリーランスだが「この会社と契約を継続したくない」と思ったらスッパリ切れるので、最近は仕事や業務に対してネガティブになったことはない
- 実は今年アルバイトを始めたものの既に２社に対して考えている。が、現場経験は積みたいので同業他社に移るか短期だからと割り切って最後までやるか思案中

---

</details>

<details>
<summary>Q. システム開発で大事な事（大事にしている事）は何か？</summary>

---

### システム開発で大事な事（大事にしている事）は何か？
- 筆者のシステム開発の哲学として「（運用）現場を知らない人間が作ったシステムって使うの嫌だよね」という考え方をしている。継ぎ接ぎの業務システムだとやむを得ない事もあるのだが、後発または新規刷新のシステム（いわゆるリファクタリング）だと技術的負債・運用課題をまとめて改修できるので、ある程度の運用が固まった頃に実施するシステム改修は必要な作業だと考えている

---

</details>

<details>
<summary>Q. なぜ講師をやっているのか</summary>

---

### なぜ講師をやっているのか
- 大学でCSコース（コンピューターサイエンス）を専攻しながら教職コースも取っていた。結局エンジニアを選んだが、講師の道もあったのでこちらも選んだ。つまり２つの夢を叶えたことになる。今は３つ、４つと将来の夢を増やして積極的に挑戦している

---

</details>

<details>
<summary>Q. 学生の頃は理系だったのか？</summary>

---

### 学生の頃は理系だったのか？
- 自分では理系だと思っているが、もしかしたら文系かもしれない
- 好きな教科は現代文国語、得意な教科は物理と数学（空間把握処理系）
- 大の三国志好きなので一部時代の漢文でテンションが上がった。三国志Ⅷはプレイ済みだが、リメイクが楽しみでならない
- 社会に出てからはゲームの影響で日本史（戦国・近代〜第二次世界大戦）と世界史（Civ関連）マニアになった

---

</details>

<details>
<summary>Q. 好きなソシャゲは？</summary>

---

### 好きなソシャゲは？
- ソシャゲやらない。課金要素（ガチャ含む）が（筆者は沼るといくらでも投資するため）敬遠している
  - ソシャゲ要素を開発する側なら好き。射倖心を刺激する心理トリックは感心する
- シミュレーションジャンルは好きなのだが、いわゆるカードシステムのような金銭コストを対価に時間拘束を解決したりランダムで引き当てる要素が嫌いなので、同じ理由でパチやスロ、競馬競艇など着順予測も苦手
- ただし、ランダム性を前提として周回コストも試行錯誤の時間で、この試行錯誤が楽しいのであれば（カードデッキを組み、コンボを見つける等）許容している

---

</details>

<details>
<summary>Q. 座右の銘は？</summary>

---

### 座右の銘は？
:::note warn
筆者はよく「自分に自信を持って取り組め、失敗はダメな事ではなく、一番分かりやすい学びの機会である」と格言めいた事をいうため、その延長で訊かれるようだ。
:::

- 『CLANNADは人生』。人によって色々と受け取り方や侮蔑に近い意図がある事を認識し理解しているが、筆者にとっては間違いなく人生であると認識している
- 筆者は家族意識が人一倍強い（最近妻に指摘されて自覚した）ため、子連れスポットや育児育成に哲学を持っている。CLANNAD作中の表現では教育要素はないのだが、父直幸の話や潮ちゃんの話は涙なしに見れない
- 一人暮らしを始めた時、結婚直後、それぞれの子供の出産直前後にそれぞれ戒めと振り返りとして視聴するぐらいには惚れ込んでいるが、家族のウケは残念ながら……である

---

</details>

<details>
<summary>Q. 推しの番組や動画配信者、映画は？</summary>

---

### 推しの番組や動画配信者、映画は？
- アニメしか見ないのだが、その上で極端に偏っており「異世界転生系x杉田智和」と「どこかズレてるギャグラブコメ」は選んで見ている
- そうは言いつつもMFゴーストが楽しみでならない

---

</details>

<details>
<summary>Q. エンジニア・講師以外の仕事ができるとしたら、何がしたい？</summary>

---

### エンジニア・講師以外の仕事ができるとしたら、何がしたい？
- 実は色々な仕事をやっている。やりたい仕事ができたら、その時の気分でなんでもやる。今年は（筆者以外のエンジニアが）開発したシステムが使われているコンビニとか交通雑踏警備員とか介護や学童指導もやった

---

</details>

## 反省
生の声を少しでも届けるために試行錯誤したのだが、筆者の中ではなんか失敗したというか、コレジャナイ感がある。
タイトルの名前負けをしてしまった気がするので、懲りずに筆者のアドベントカレンダー内の記事も流し読みしてもらいたい。おそらくそちらの方がタイトルにあったコンテンツの質・量も担保されている。

https://qiita.com/advent-calendar/2023/nomuraya_oreno

また、日報のデザインや表現を考える際は本稿の失敗を活かして試行錯誤してみるのも良いだろう

### アコーディオン形式の功罪
アコーディオン形式にするとだいぶ記事の内容量を少なく見せる事ができる（本稿もボリューム自体は他の記事と変わらない量）ので、実務でも情報量の多いサブコンテンツで活用を考えてみようと思った。
タップして展開するなどのユーザーアクションが必要であるため、コンテンツを圧縮できれば良いと言うものではないのでメインコンテンツでは使用しない方が良さそうだ。

### 見出しをつけたかったがうまくいかない
今回のようなケースだと、summaryひとつずつに見出しをつけたいが、インライン要素として処理されるため単純な解決は出来なさそうだ。
そこで、展開部分を水平線で区切ることで解決を目指してみた。

```
<details>
<summary>Q. タイトル</summary>

---

### タイトル
本文

---

</details>
```

見出しタグが使えると、目次にも反映されるので読みたい項目を探しやすくなる。
試しに、アコーディオンを閉じた状態で目次をクリックしてもらうと、一気に展開までしてくれている事がわかるはずだ。

ただし、summary内のタイトルとアコーディオン内のタイトルは連動していないため、２箇所の修正が必要になってしまった。
頻繁にタイトルを変えたい場合などは注意が必要だ。本来はこういった作業をする場合はビルドツール側でタイトルを管理するようなものだが、本稿についてはWebエディタしか使わないという制約のため、変数が使えない。

:::note
今回のようなちょっとした作業や開発にAPI＋ビルドツールは便利なので、Webサイト開発をするなら試してみてほしい。
:::