2023年度Webエンジニアになろう講習会 講師ブログ
6 月、7 月に、毎年恒例の「Web エンジニアになろう講習会」(通称「なろう講習会」)を開催しました。このブログは講習会の講師による開催報告・振り返りブログです。
Web エンジニアになろう講習会とは
「なろう講習会」は毎年 SysAd 班が主に新入部員に向けて行っている、Web 開発についての講習会です。初心者の状態から SysAd 班の活動に取り組むために必要な最低限の知識・能力を身に着けることを目的としています。過去の参加者の記録はこちらからご覧ください。
今までは参加者側のブログしかありませんでしたが、今年度は資料や形態を変えたこともあり、講師側のブログも出すことになりました。
「なろう講習会」の内容
今年度は traP の講習会のシステムが変わったこともあり、前年度までとは異なる日程で行いました。以前は 5 月中旬から終わりにかけて 2 週間で 9 回の講習を行っていました。今年度はその時期により基本的な「プログラミング基礎講習会」「開発基礎講習会」などの講習会が入ったので、「なろう講習会」を第 1 部と第 2 部に分けて、第1部を春ハッカソンの前の 6 月の 1 週間で 4 回、そのおよそ 1 か月後の 7 月に 4 回の計 8 回行い、内容も見直しました。
各回座学編と実習編に分かれており、講師による座学を聴いた後、資料を見ながら各自実習に取り組みました。
座学はSysAd班長の@hijiki51がスライドを作り、講師陣 3 人で交代で話しました。
実習資料は、今まで部内の HackMD に書かれていたものを毎年コピーして少しずつ書き換えていましたが、今年度は VitePress を用いて、GitHubPages でデプロイして外部からも見えるようにしました。資料は講師 3 人とその他 SysAd 班の有志で書きました。
また、実習方法も変更しました。昨年度まではバックエンドの演習の際には、サーバーを借りて参加者一人一人にポート番号を割り当てていましたが、サーバーを閉じてしまうとあとから講習会を追いかける人が同じ環境でできないという問題がありました。今年度は Docker を活用し、 Docker Compose で MySQL など必要な環境が全員手元で同じように立ち上がるようにしました。
リポジトリ: https://github.com/traPtitech/naro-text
座学スライド: https://github.com/traPtitech/naro-text/releases
実習資料: https://traptitech.github.io/naro-text/
フロントエンドテンプレートリポジトリ: https://github.com/traPtitech/naro-template-frontend
バックエンドテンプレートリポジトリ: https://github.com/traPtitech/naro-template-backend
第1部
日付 | 座学 | 実習 | |
---|---|---|---|
0 | 6/9 | Webアプリ概論 | 環境構築 |
1 | 6/10 | プログラミング心得、フロントエンド基礎 | Vue入門 |
2 | 6/11 | インターネット概論、サーバー入門 | サーバーアプリケーション(Go) |
3 | 6/15 | データベース入門 | SQL、サーバーアプリケーションとデータベースの接続 |
第2部
日付 | 座学 | 実習 | |
---|---|---|---|
4 | 7/15 | 認証・認可 | アカウント機能、セッションの実装 |
5 | 7/17 | セキュリティ入門 | ルーティング、クライアントとサーバーの通信 |
6 | 7/20 | テスト、CI・CD | テスト、CI・CD |
7 | 7/22 | Docker | Docker、Docker Compose |
実習内容の変更
前年度から以下の内容が変わりました。
- JavaScript を使用していた部分を TypeScript に書き換えた。
- テストとCI・CDを扱った。
- axios をやめて fetch でリクエストを送るようにした。
講師から
例年、講師は学士2年の部員が担当しています。今年は @noc7t、@pikachu、@ikura-hamu の 3 人が担当しました。
@noc7t
主にフロントエンド周りを担当しました。座学ではプログラミング心得、フロントエンド基礎とセキュリティ入門をやりました。
去年受講者として受けたなろう講習会の資料を修正して実施したのですが、あー去年やったなぁと懐かしくなってました。
特にセキュリティ周りの話は去年よく分からないで適当にやってた部分が今見ると結構分かるようになってて圧倒的成長を実感しました。
講師をやってみてフロントエンド以外にも手を出してみたくなったんですが、結局ほとんど手が出せていないです。
@pikachu
主にサーバー周りを担当しました。具体的には、
- 座学編
- 「インターネット概論&サーバー入門」
- 「認証・認可」
- 実習編
- 「サーバーアプリケーション(Go)」
- 「アカウント機能、セッションの実装」
を担当しました。
講師側として出るにあたって、みんなに教える為にはまず自分がしっかりと理解していなければならないため、自分がプレゼンする部分に関してひたすら調べました。中でも「インターネット概論」(特にOSI参照モデルの所)が非常に大変で、「マスタリングTCP/IP」や「サーバーの仕組みと技術がしっかりわかる本」等を購入して読み込んだり、有識者に聞きまくったりして、なんとかちゃんとプレゼンすることができました。
僕が去年この講習会を受けた際は、座学編で聞く事々が知らない概念で、知識や技術を身に着けようと必死に食らいつく思いで受講していました。それが今ではかなり分かるようになっていて、話がリアルタイムにすんなりと理解できるようになっていました。
SysAdの活動やウェブ系のイベントを通し、この1年で凄く成長したなぁとしみじみと感じるとともに、つよつよな先輩方を見てまだまだ強くなろうとつくづく思ったので、これからも知識を蓄えたり技術を磨いたりしていきます。
今年のなろう講習会を受けてくれた人も、来年にはつよつよモリモリウェブエンジニアになってるのかなぁと思い、受講者に期待しています。
@ikura-hamu
座学のデータベース、テスト、CI・CD、Dockerと、実習資料のデータベース、Docker、バックエンドのテンプレートリポジトリ準備を担当しました。
座学は、Dockerのインフラよりの知識が何もなかったので、かなり苦労しました。また、データベースについて話すためにいろいろ調べたのですが、その中で NoSQL のデータベースに興味を持ったので、最近は MongoDB や Elasticsearch を触っています。
実習資料では、SQLの説明と実習問題に力を入れました。題材として「World database」を使っています。SQL の説明は各項目に公式ドキュメントのリンクを貼って参照しやすくしました。実習問題は、説明した SQL をすべて使うように作った基本問題と、自分で調べる必要がある発展問題を作りました。
およそ 1 年ぶりになろうの資料を見返して、1 年前何もわからなかったのと比べて自分の成長を実感しました。なろうの知識がベースになって SysAd 班の活動で大きく成長できたと思います。今年の受講者にも 1 年後の圧倒的成長を期待したいです。
おわりに
「なろう講習会」参加者側のブログも公開される予定です。ぜひそちらも併せて読んでください。
また、後期にはより高度な内容を扱う第 3 部、第 4 部が @hijiki51さんによって計画されています。どんな講習会になるのか楽しみです。