ゆめみの1Dayインターン後記
会津大学学部1年のktkです。
5/28(日)に「春のサーバーサイドエンジニア 1dayインターンシップ」に参加してきたので、後記を綴ります。
https://www.yumemi.co.jp/serverside_2023spring_intern
1. 応募
インターンと言えば、一般的に25卒(学部3年)を対象としている会社が多いですが、こちらのインターンは応募対象者が縛られておらず、興味があればほぼ誰でも応募することができます。私は、まともな設計というものを未だかつてしたことがなく、常に脳内オレオレ設計なので手法から教えていただけるとのことで応募しました。
応募に必要なテストは、規格やセキュリティなどの4肢択一式問題のみだったので、恐らく基本情報程度の常識があれば、簡単に通過することができると思います。
個人的に感じたこととしてあまり年齢・学年というものは意識されていないようで、メンタの方も自分が学部1年ということに驚かれていました。ただ学びたいから応募する、当たって砕けろぐらいの心持ちで大丈夫な気がします。
2. 事前課題
就労型というよりかは体験型や勉強会といったものに近く、事前に勉強しておくべき課題がありました。内容は毎回同じものだそうで、具体的なことを公にはできませんが、MermaidでER図やシーケンス図を再現するものや、設計を読んでREST APIで帰ってくるJSONを穴埋めするといったものです。
設計手法を学ぶインターンなので、特に具体的な実装コードを書くといったことはなかったです。
課題をこなす際、特に、Notionの使い方や、MermaidでER図を書く際の記法を事前にしっかりと学んでおくと、後の設計課題を楽にこなすことができると思います。
ER図のMermaidでの記法
https://mermaid.js.org/syntax/entityRelationshipDiagram.html
erDiagram
CUSTOMER ||--o{ ORDER : places
ORDER ||--|{ LINE-ITEM : contains
CUSTOMER }|..|{ DELIVERY-ADDRESS : uses
3. 当日
当日のタイムスケジュールは下記のような感じでした。
参加者は15人程度で3-4人のグループに分かれて、グループにメンタの方が1人付いていただけるといった感じです。
1. グループ別交流
グループ別交流では、スクラム開発を体験する目的の"スクラム神経衰弱"が行われました。
スクラム開発体験ですので、プランニング→実行→レビュといった順番に行います。普通、神経衰弱に戦略を求めることはなく、また、他人を操ってカードをめくってペアを作るといったこともないので、意外と苦労します。人に伝えるというのは中々に難しく、例えばxy座標で伝えるよりも直感的な位置(右からn個目/下からn個目)の方が伝わりやすいといった意外なこともありました。
ちなみに、ルールがかなり緩いので、お行儀良く覚えるだけではなく、間違えても特にペナルティがないことを利用したり、[倫理観を問われるような内容]をすれば沢山ペアをめくれたりします。
2. 技術LT
設計課題を行う前に、ゆめみ社員の方からWebAPIやDB、設計手法について重要な点を簡単にLTしていただけます。基礎的なことを、その理由や背景と共に知ることができて参考になりました。
3. 設計課題
ここからは再度グループに分かれて与えられた設計課題をこなしました。
課題内容をかなり抽象的に書くと、注文システムの設計を要件定義等に従って、MermaidやJSONを使って書くといったものです。
正直最初は、「2時間もあって実装がないから簡単じゃん」と思っていましたが、実際にやってみるといろいろなケースを考えたり、「この中間DB設計は気持ち悪いのでは…」といったことを、グループで設計思想について語ったりしているうちに時間があっという間に過ぎ、終了時刻ギリギリまで作業することになってしましました。
グループで設計思想について話合うことで、こういう思想もあるのかと勉強になったり、自分のこのやり方は間違っていたのかと誤りを正せるきっかけになったりして良かったです。また、メンタの方に質問をしたりやレビュをしていただいたりすることもできるので、設計に迷った際にこれで正しいのかといったモヤモヤを、その場で理由を教えていただいて解決できるのも良かったです。
4. 合同発表/フィードバック会
それぞれのグループで、何を考えてこの設計にしたか、こういうことを想定してこのテーブルを作ったといったことを発表し合いました。
他のグループの発表を聴いていると、設計思想や命名規則が全く異なりおもしろいなと感じました。また、自分が考慮していなかったことを設計に入れているグループもあったので、実装要件の裏にある意図や業種と言ったものをよく考えて、求められているものを正確に把握することが重要ということも感じました。
4.まとめ
初のインターンに参加でしたが、お堅い感じではなかったので緊張をあまりすることなく参加することができ、設計手法や思想などを吸収することができて良かったです。また、自分やグループの書いたものや考えが正しいのかをメンタの方にすぐに聞くことができるというのも大変に素晴らしく、本やウェブで調べることに勝るところだと思いました。
その一方で、綺麗な実装を行うというのは中々難しく、いろいろと手を動かしたり他人の実装を見たりして学ぶべき課題だなぁとも思いました。
5. 謝辞
生意気にも学部1年でインターンに参加させていただいて、本当に感謝しています。またこのような機会があれば是非参加させていただきたいです。
本当にありがとうございました!!!