N予備校のプログラミング座談会で1年間話したこと

本記事はN予備校プログラミングコースアドベントカレンダーの記事です。
N予備校でプログラミングを学んでいる方や、N予備校のプログラミング教育に興味がある方に向けて書かれています。

# 執筆者
ドワンゴの教育事業部で**プログラミング講師**をしている小枝と申します。
経歴としては情報通信インフラ業界で2年、SIerで開発とコンサルを5年、ドワンゴではWeb開発を4年、エンジニア人事採用を2年を経て、現職のプログラミング講師は3年目になります。

# 概要
N予備校プログラミングコースでは、毎週行っているプログラミング授業のほかに毎月1回の頻度で**プログラミングコース座談会**という番組を行っています。

この番組では、授業中での回答が難しい**質問や悩み、エンジニア就職に関する話**など、授業ではメインで扱うことが難しい話題を取り扱っています。
去年の12月から始めた施策ですが満足度は継続的に高評価を維持しており、座談会の後の授業はコメントが活発になっているため、今後も継続して行っていきたい取り組みとしています。

今回はそのプログラミングコース座談会で話したことを振り返ってダイジェストでご紹介したいと思います。配信のアーカイブは[N予備校](https://www.nnn.ed.nico/pages/programming/)で見れるほか、一部のアーカイブは[N予備校のYouTubeチャンネル](https://www.youtube.com/channel/UC1nzIk8DJhHayP2tO95a8kQ/videos)にて無料公開されています。
資料は [Speaker Deck](https://speakerdeck.com/kuriko) にて公開しています。

# 2020年12月
<script async class="speakerdeck-embed" data-id="0ae3583739aa42439980eba02e07b4d3" data-ratio="1.77777777777778" src="//speakerdeck.com/assets/embed.js"></script>
### トークテーマ（回答した質問）
1. 授業に追いつけていないので、コースの重要なポイントをピックアップしていただけたらうれしいです。
2. yarnの使いどころ(initやらaddやらの使い分けも)がよく分からないまま写経だけしてる。
3. (req , res)が引数になるやつ、だいたいよく分かってない。.on とか .endとか。
4. GitHubの使い方の復習をしてほしい
5. ドワンゴで働く方法を教えてください

### 話したこと
記念すべき第1回目ですが、受講者からの質問への回答がメインテーマになります。
12月はプログラミング入門コースの後半になり、かなり難しくなってきている頃です。「追いつけないので要所を教えてほしい」や「教材にあるわからない技術やコード」についての質問回答を行いました。
回答としては**「授業で講師が飛ばしたところは重要でない」、「過去の内容でもわからないところがあったら授業中に質問してよい」、「そもそも1年で走り切るのは難しい難易度なので、わからないところが多ければ2年目に持ち越す気持ちで良い」**という話をしました。
ドワンゴで働く方法についての回答としては、コーディングテストがあるのでしっかり自分でアプリを作るなりして書く力をつけておくこと、ポートフォリオサイトを作ることなど、**アウトプットの力を高める**ようアドバイスしました。またエンジニアとして任される**具体的な仕事の例**を、新人アルバイトレベルからベテラン社員レベルまでの段階に分けて解説しました。

# 2021年1月
<script async class="speakerdeck-embed" data-id="49cd7024b24e4be5a611803e030b0006" data-ratio="1.77777777777778" src="//speakerdeck.com/assets/embed.js"></script>
### トークテーマ（回答した質問）
1. Webサービスを作っても、使われずに閑古鳥が鳴いて
います。どうすれば使われるwebサービスに育ちます
か?
2. intro-curriculum-3020あたりから、どのファイルが
なんの働きしてるのかよく分かってない。
3. Gitを使ったGithubのリポジトリの作り方がよく分か
らないので、教えてもらいたいです
4. フレームワークの習得のコツを教えて下さい。

### 話したこと
技術的な質問への回答のほかに、自作アプリのプロモーション周りの話をしました。
アプリがウケるかどうかは正直に言ってギャンブル性が高い部分であることを前提に置きつつ、**自分がユーザーになれるアプリや自分の好きな事、文化やユーザーの気持ちがわかるアプリを作ること**をおススメしました。
またCSSフレームワークを使ったモバイル対応やOGPなどのSNS対応、サービスの導線やサービス名を分かりやすいものにするなどWebサービス制作に**共通する最低限の対策**を説明しました。

# 2021年2月
<script async class="speakerdeck-embed" data-id="793470470ad94b40955d6c9de29b7203" data-ratio="1.77777777777778" src="//speakerdeck.com/assets/embed.js"></script>
### トークテーマ（回答した質問）
1. フレームワークの習得のコツを教えて下さい。フレームワークをいくつも使いこなせる人はどうやって習得しているのでしょうか?
2. 他のプログラミング言語について概説してほしい
3. ライブラリを選ぶときに、都合よくライブラリを比較できるような情報源はありますか?
4. 公式ドキュメントが読めるようになるヒントを教えていただきたいです。

### 話したこと
2月で授業も大詰めになってきて、質問のレベルも上がっています。
フレームワークの意義やフレームワークが解決する課題についての説明や、ライブラリの選び方について解説しました。
ライブラリは**利用ユーザー数やStar数で評価**したり、ライブラリのオーナーが大企業かどうかなどで**今後しっかりメンテナンスされそうか**などを評価できると説明しました。
N予備校で教えているプログラミング以外の言語については、**[PYPL](https://pypl.github.io/PYPL.html)**を見ながら**言語の特徴や使われている分野**などを説明しました。

# 2021年3月
<script async class="speakerdeck-embed" data-id="54d8e54d27a84bc6a6ff2ac2fc08b977" data-ratio="1.77777777777778" src="//speakerdeck.com/assets/embed.js"></script>
### トークテーマ（回答した質問）
1. スマホ対応・レスポンシブデザインの話を何か聞きたいです!
2. プログラミングを使う系の仕事・アルバイトにどのような種類があるのか知りたいです!
3. Vue入門 -TODOアプリ10分チャレンジ
4. エンジニアの方々の日々の休憩方法を知りたいです!

### 話したこと
3月はゲストにN予備校教材アルバイトの方をご招待して、**レスポンシブ対応**や**Vue入門**について喋っていただきました。
プログラミングやエンジニアリングに関わる職種についての質問回答では、開発系の職種やスペシャリスト系、サポート系の職種や管理職・リーダーポジションに渡る**広い範囲の職種を紹介**しました。
またドワンゴの**エンジニアの働き方（裁量労働）**についても実体験ベースで紹介しました。他社についてはわかりませんが、ドワンゴのエンジニア職はうまく裁量労働制が機能しています。（コアタイムや残業の強制、8時間の拘束などはありません）

# 2021年4月 新入生向けオリエンテーション
<script async class="speakerdeck-embed" data-id="253d61a58f754dc5839511260b01468a" data-ratio="1.77777777777778" src="//speakerdeck.com/assets/embed.js"></script>
### トークテーマ（回答した質問）
1. プログラミングの世界
2. プログラミングを学ぶとできるようになること
3. プログラミングができると...
4. N予備校プログラミングコースとは
5. N予備校プログラミングコンテストについて
6. プログラミングによくある質問

### 話したこと
4月はプログラミング授業が1周して（N高・S高の）新入生が入ってきます。授業のカリキュラムも最初からとなり、**新しくプログラミングを学ばれる方にもおすすめの時期**です。この月は新入生向けオリエンテーションとして、プログラミングの世界についての解説をメインに行います。
プログラムは日常の**どんなところで活躍しているのか**、**プログラムを学ぶと何が作れるのか**、**プログラミングができるとどういう仕事ができるのか**などを説明します。またN予備校プログラミングコースの概要やN予備校のアプリの使い方、授業についての説明なども行いました。よくある質問への回答コーナーでは、**「英語や数学が全然できないですが大丈夫ですか？」**、**「N予備校生の具体的な就職実績などはありますか？」**などの質問に回答しました。

# 2021年5月
<script async class="speakerdeck-embed" data-id="725687b0d4364982880344ccbd0773de" data-ratio="1.77777777777778" src="//speakerdeck.com/assets/embed.js"></script>
### トークテーマ（回答した質問）
1. 講師からの質問コーナー
2. 受講者アンケート: プログラミングを始めたきっかけは?
3. 受講者アンケート: プログラマーと聞いて思い浮かべるイメージは?
4. 自分の好きなことのサービスを考えてみよう

### 話したこと
この月は今までと趣向を変え、N予備校講師サイドから**受講者への質問**を行いました。
N予備校のシステムにはコメントやアンケート機能があるため、プログラミングを始めたきっかけやプログラミングやプログラマーに対するイメージなどを質問しました。結果が全員に共有されるため講師陣が受講者を理解するだけでなく、**受講者が他の受講者を知るための機会**にもなったので、面白い回でした。
また余った時間ではコメントで募集したジャンルのサービスを実際に考えてみるような**ブレストやディスカッション**に近いコーナーも開きました。

# 2021年6月
<script async class="speakerdeck-embed" data-id="10733baf4afc42ce8907aaa2f152eccc" data-ratio="1.77777777777778" src="//speakerdeck.com/assets/embed.js"></script>
### トークテーマ（回答した質問）
1. リアルタイムランキングのようなものはどうやったら作れますか?どんなことを考える必要がありますか?
2. 資格取るのと何か物作るのはどちらが就職で評価されますか?
3. 開発における職種間の分担や、関わり方ってどうなっているのですか?

### 話したこと
6月は初心に戻り、質問回答コーナーをメインに行いました。
**リアルタイムのランキング集計**を実現するアーキテクチャやプロセスのフローをスライドベースで解説したり、実際の開発現場がどのように**作業分担**をしているかの解説をしました。実際の社内での作業分担、業務分担は組織構造やチームの作られ方によってバラバラであることが多く、中には**ある程度過剰に関わっていかないとうまく進まないプロジェクト**もあります。チームの担当範囲や責任を理解しておくことは重要ですが、それに囚われず**プロジェクト・プロダクトの成功**を見据えた動きをしていくのが重要であると解説しました。
資格を取ることとアウトプットをすることの重要性については、想定するキャリアや進路によって変わります。SIerなど**自分の実力を客観的に評価してもらう必要がある職種**の場合は資格や学歴などが重要になり、一方で自社開発など内製が多い仕事では資格などは余り重要ではなくなるので、**アウトプットで評価**されがちになります。

# 2021年7月
<script async class="speakerdeck-embed" data-id="d5d370b531144e078ee07a6ff8163a3f" data-ratio="1.77777777777778" src="//speakerdeck.com/assets/embed.js"></script>
### トークテーマ（回答した質問）
1. あなたのいいところ診断アレンジしてみた
  i.  装飾がんばってみた
  ii. あなたのオススメの授業診断

### 話したこと
7月は夏のプログラミングコンテストの兼ね合いで**Webアプリのアレンジ方法**について紹介しました。
「あなたのいいところ診断」というプログラミング入門コース第一章で制作する課題アプリについて、2人の講師が別々のアレンジ方法でアレンジしたものを紹介および解説しました。一方は**デザインやコンセプト**を変えるアレンジ、もう一方は**機能を変更・拡張**するという別々の観点でアレンジし、アイデアが思いつかなかったり1からアプリを作ることが大変な人は是非教材のアレンジ作品でよいので**積極的にコンテストに応募してほしい**と案内しました。

# 2021年8月
<script async class="speakerdeck-embed" data-id="6c52a8d09b30491098c0b068c0322b83" data-ratio="1.77777777777778" src="//speakerdeck.com/assets/embed.js"></script>
### トークテーマ（回答した質問）
1. プログラミングのモチベーションのあげかた
2. プログラミング情報収集のコツ
3. なんで自力でWebサービスを作った経験が必要なの?
4. 趣味サービスの新規開発を追体験してみよう!

### 話したこと
スタートから4ヵ月が経ち、入門コースの2章に入りプログラミング学習のモチベ維持が難しい時期に入ります。
モチベーション維持の方法として、**自分の好きなもののアプリを作ってみる**、**プログラミングを一緒に学ぶ友人を作る**、**プログラミングは手段であり手段を学んだ先を想像してみる**、**目標を持って学習する**などのアドバイスを行いました。
プログラミング情報収集のコツとしては、コミュニティに参加する、プログラミング友達を作る、フィードを設定するなどの**受動的に学べる環境づくり**をお勧めしました。
またゲストのrabeneko先生より新規Webサービス開発のコーナーにて、**アイデア構想から設計、実装、運用までの一連の流れ**の解説がありました。開発を進めていく中での**仕様調整**や**妥協の仕方**など実践的な観点についても説明しました。

# 2021年9月
<script async class="speakerdeck-embed" data-id="1611df0326fc4c9680fe00a40714b3c5" data-ratio="1.77777777777778" src="//speakerdeck.com/assets/embed.js"></script>
### トークテーマ（回答した質問）
プログラミング講師のプログラミングキャリア紹介
1. 小枝先生編
2. 津野先生編

### 話したこと
この回では2人のプログラミング講師の**プログラミングに関する生い立ち**を時系列で解説しました。
**小枝先生**は小学生時代にDosに触れ、プログラミングは中学3年生から始め、高校ではプログラミング漬けの日々を過ごします。就職はネットワーク系でプログラミングは使いませんでしたが、転職してSIerになりプログラマーとして仕事を始めます。その後ドワンゴに転職して開発経験と人事経験を経てプログラミング講師になっています。
**津野先生**は高校時代にホームページ作成に夢中になり、高校三年生で応用情報技術者試験に合格。大学時代は遊んでいたが、3年になってから心を入れ替えて制作したWebサービスが大当たりし、その実績を基にドワンゴに入社。入社直後は周りのレベルの高さに圧倒されつつも、勉強会に参加したり趣味でプログラミングを行うなどで着実に成長し、2020年よりプログラミング講師に就任。

# 2021年10月
<script async class="speakerdeck-embed" data-id="1c74414770504497bce7f78641a9587f" data-ratio="1.77725118483412" src="//speakerdeck.com/assets/embed.js"></script>
### トークテーマ（回答した質問）
1. オブジェクトって何??
2. 非同期処理とは
3. JSDocってどうして必要なの?
4. JSDocで「ちょっとだけ」型に触れてみよう

### 話したこと
この回では挫折者が多かった**オブジェクトの概念や非同期処理**、書く必要性がわかりにくい**JSDoc**についての解説を行いました。
オブジェクトは言葉の意味が広く、様々な捉え方ができるので**文脈に注意する必要がある**ことを中心に解説。非同期処理については、まず非同期処理の必要性から解説し、文法とサンプルコードを元に**Promiseの使い方やAsync/Awaitの用法**を確認しました。
JSDocについては型についての説明から入り、TypeScriptなどの静的型付け言語の話や**型定義が曖昧なコードや仕様があることによるトラブル**について解説をしました。

# 2021年11月
<script async class="speakerdeck-embed" data-id="5b0f39c214bf41b1860853d59b0a066a" data-ratio="1.77725118483412" src="//speakerdeck.com/assets/embed.js"></script>
### トークテーマ（回答した質問）
1. 教材制作のアルバイトはどんなことをしているのか？
2. コンテスト結果ページの作り方解説

### 話したこと
11月は教材制作アルバイトの募集を開始したこともあり、実際に教材編集アルバイトとして働いて頂いてる方をゲストスピーカーとして、教材制作や編集の作業についての解説やアルバイトの働き方について説明をしていただきました。
また夏のコンテストの発表後だったので、コンテスト発表ページ（GitHub Pages）の作り方について解説を行いました。BootStrapテンプレートを元に画像やHTMLを変更し、審査結果のjsonデータを使って自動でコードを複製しデータを埋め込むスクリプトの紹介・解説を行いました。

# 2021年12月
<script async class="speakerdeck-embed" data-id="b272d7038d2c4d3a97fd25fa481fdf4f" data-ratio="1.77725118483412" src="//speakerdeck.com/assets/embed.js"></script>
### トークテーマ（回答した質問）
進路と職業から決めるプログラミング学習

### 話したこと
1周年ということで少しスライドのデザインを格好よく仕上げてみました（内容はいつもとあまり変わりません）。
トークテーマはN予備校のプログラミングコースの**上級コースについての案内**になり、プログラミング入門コースを終えた先にある進路や職種についての解説をしました。**Unityコース**や**ネットワークコース**、**大規模Web開発コース**、**スマホアプリコース**、**機械学習コース**など様々な上級コースがあるので、それぞれどのような進路・職種と対応しているかを説明しています。

# さいごに
プログラミングコース座談会を初めて1年間が経ちましたが、まだまだ話したいテーマや回答できていない質問がたくさんあります。N予備校は**現役のドワンゴエンジニア**をプログラミング講師にしているという大きな強みがあるので、この強みが最大限に活かせるような実践的な話や番組を引き続き提供していければ幸いです。

ここまで読んでいただきありがとうございました。