DMM GUILD(オンライン)に参加してきた
はじめに
はじめまして、まくと申します。
ブログ書くの初めてなので軽く自己紹介しておくと、大学3年生頃からWebフロントを中心にエンジニアを目指すべく勉強しはじめた大学院1年の女子です。院では全く関係なくVRの研究してたりしてます。
DMM GUILDとは
さて、9/7~9/18の10日間、DMM.comのエンジニアインターンシップ、DMM GUILDに参加してきました。
DMMのサービスが実際に抱えている技術的な課題(issue)が提示されて、その中から好きな課題を選んで解決していくという「クエスト型エンジニア向けインターンシップ」です。
他社のインターンシップと大きく異なるのはある部署に専属〜という形で入るわけではないのでいろんな部署のプロダクトを経験できる、というところだと思います。
参加の経緯
実はDMMの選考には学部時代に就活したときに一回落ちているのですが、4月の逆求人イベントでインターンを探していた際覚えていてくださった人事さんに声をかけて頂き、面接を経て参加させて頂きました。
今回参加する目的として自分で設定していたものが2つあります。
- 1. フロントだけではなくサーバサイドにも携わりフロント〜サーバーの橋渡し部分をきちんと学ぶ。
- 2. 他のエンジニアと比較した自分の実力を見極める、それを踏まえて今後もWebエンジニアを目指し続けるか決める。
1については今まで本当にフロントエンドonlyしかやったことがなく、Webサービスに携わったこともなく、サーバーとのデータの受け渡しなどよくわかっていなかったというのがあります。GUILDではいろんなissueを自由に取ることができるのでサーバサイドにも携わるぞという気概で臨みました。
2については2年前と比べて少し広めに業界を見ており、このままWebエンジニアを目指し続けるか就業型インターンを通じて考えようということです。GUILDはissueをクリアしてポイントを稼ぎ他の参加者と競う、といういかにも自分の実力がはっきりわかる環境なので、見極めるにはちょうどいいかなと思ってました。
オンライン
DMMの綺麗でお洒落で広くて(y座標が)高いオフィスには2年前から憧れていて、めちゃくちゃ行きたかったんですが、残念ながらコロナの影響でオンライン開催でした。
オンラインの中での交流として主に使ったツールはお馴染みSlackとDiscord。
インターン生の提案でSlack上にtimesチャンネルをインターン生でも自由に作ることができるようになり、そこでみんな独り言呟いていたり、ヘルプ求めると誰かが助けに来てくれたりでなかなかワイワイしてました。
Discordの部屋を自由に使ってよかったので、インターン生の半分くらいはDiscordで雑談しながら開発してたイメージ。社員さんにコード見てもらう時もDiscordで画面共有しながら通話できたので結構やりやすかったです。
社員さんやインターン生との交流の機会として昼休みや就業後にDiscord懇親会が組まれてました。なんだかんだずっとオンラインって疲れるので、行ったり行かなかったりでしたが、自分で予定調整できるのもある意味オンラインならではの魅力かもしれないです。
カメラは2回くらいしかオンにしてないです笑 だから多分、いつかインターン生や社員さんにリアルで会った時も声と名前以外で認識できないだろうなあ…寂しい。
開発
issueのアサイン
1日目に一通りのガイダンスがあって、issueのリストを確認します。
実際にissueハントするのは2日目の昼〜なのだけれどここである程度見定めなければいけない…
estimateが中間(5)くらいのWebフロントのタスクに絞って唸って、結局jQuery+Pythonのプロジェクト追加機能を実装するタスクにアサインしました。
しばらく触ってなかったのでjsフレームワークに自信がなかったというのもありつつ、1日目の夜にいろんな部署の社員さんと話せる機会があったので、部署の雰囲気で絞り込んだところもちょっとあります。
issueは開始後もちょっとずつ追加されていて、少なくともフロント・バックエンドはインターン後半になってもあんまり枯渇している感じはなかったです。
開発
どこまで書いていいのかわからないのであまり触れませんが、簡単にいうと自分や相手のスケジュールを踏まえて面談のスケジュールを予約するための社内Webツールでした。
「これくらいの機能追加ならきっとすぐできるだろう〜」と思っていた自分が甘かった。まず大量のファイル&2000行近くのjsの処理を追うのに物凄い時間かかりました。
estimate5のタスクは普通2~3営業日で終わる想定らしいですが、結果的に6営業日くらいかけました。issueに取り組める期間は大体7.5営業日くらいなので、ほとんどこれに費やしていることに笑
コードを書くのが遅い方だとわかっているとはいえ、2~3営業日で終わるタスクをこんなに時間かけてる自分のスキルの低さに「あ〜やっぱエンジニア向いてないんじゃ〜」となっていたんですけど、実はこのタスク、jsの処理だけ書けばいいところをPython(バックエンド)の処理も書いて他のissueもクリアしてしまっており、結果的に18ポイントも頂けました、、苦労した甲斐があった、、(そして自分がめちゃくちゃできないわけではないことに安心した)
このissueに取り組んで社員さんと相談させてもらう中で「この機能もあったほうがいいよね」と話が進んで新しくissueを発行してもらい、ギリギリ残り1.5営業日で実装して+4ポイント、合計22ポイントで終わりました。
今回のGUILDの平均獲得ポイントは20ポイントとのことだったので、まあ大体平均くらいいけて、自分としては及第点です。フロントのタスクしか取っていないつもりがバックエンドのコードもそれなりに読み、実際にコード書くこともできました。
上位ランカーの方達はすごかったです、、きっとポイントって部署によって付け方が違ったりして完全に公平ではないかもしれないけど、自分と明らかにかけ離れているので実力は確かなのだと思います。
GUILDは本来いろんな部署のプロジェクトに関われるのが大きなメリットなんですがお分かりのとおりずっと同じ部署にいました笑 それはそれで楽しかったし、環境構築の手間が省けたのでポイントとしては最大効率をいったような気がしています。
プロダクトのこともちょっと深く知れるのもよかったです。実際どう使われているのか、なんでこの構成で書かれているのか、これからどう他のフレームワークにリプレイスしていくのかとかの話も聞けました。
プロエンジニアのコードであってもどうしても完璧なわけではなくて(CSSファイルがめっちゃ分かれてて混乱したり)でもそれに対して不満を抱くのではなくてどう改善していけばいいか考えるのが大事なんだなというのも学びました。むずかしい。今回コードを読んでそれに従って書くのに精一杯で、それはもうちょっと経験を積まないと、プロジェクト全体のコードを把握しないとできない所業な気がしていました。
研修・ワークショップ
おまけのように書きますが、2日目にソフトウェアテストについて1時間ほど研修、7日目に1日かけてスクラム開発ワークショップがありました。
何より思ったのは資料が見やすい!!!元々話を聞く中で研修が充実しているイメージがあったのですが研修体制がしっかり整ってるんだろうなあと思いました。
働くということ
普段週2で6時間くらいしかバイト勤務していない私にとって週8時間×5日=つまり社会人と同じ時間で働くというのもなかなかに貴重な経験でした。
最初のうちはとてもしんどくて終業後は頭痛に見舞われていましたが2週間もすればだいぶ慣れますね…
ただ、10時出社(しかもオンライン)だからまだ大丈夫だったけどこれがもし8時出社だったら…と考えるとやっぱり恐ろしいです。そこらへんも考えて企業選ぶの大事だなあと思いました。
(あと体力なさすぎるので学生のうちに付けておきたい…)
エンジニアとして働くということ
私はエンジニアとして働くということに対して「楽しい」と「しんどい」が相反していて、手を動かしながら一つ一つ問題を解決していったりそれを通じて新しい知識を学んでいくことはものすごく楽しいんですが、
社員さんや他のインターン生と比較して自分はこのレベルには達せないんじゃないか?やっぱり自分はエンジニアに向いていないんじゃないか?こんなに男性しかいない職場で何年もやっていけるのか?と思う時も結構あります。
院に入ってからやたら挫折する機会が多く(学部生の時は挫折するような機会を避けていただけかもしれない)、今回GUILDでいい結果を出せなかったらWebエンジニアの道は諦めよう、と思ってました。
結果的にはそこまで下ではなかったけど上には上にいることをはっきりと確認して、今回明確な答えが出たかというとちょっとわからなくて、つまりは上には上がいることを知った上で楽しんで頑張り続けられるかどうかなのかなと思ってます。
少なくともコード書くのは楽しいので、仮に最下位だったとしてもWebエンジニアの道を捨て切れないだろうし、やっぱり技術を活かせる職を目指し続けるんだろうな、と思いました笑
できなかったこと・今後やっていきたいこと
何か自分にタスクが振られた時、それをどうやって解決していけばいいか道筋を立てて実際にコードを読んで書いて、ということは割とできるようになったと思ってます。
今回のGUILDではインターン生が別のインターン生を助けるとThanksポイントというのが入るのですが、誰も助けることができなかったのが心残りです。それは自分が助けにいったところで解決できないだろうという自信のなさもあるし、自分のタスクで精一杯だったというのもあります。
周りを見れるエンジニアになりたい。せめて、これだけなら教えられる!という細かな分野を作っておくのも手かなと思っています。
まとめ
なんやかんや書いていますがこれだけは言い切れます、2週間楽しかったです!!関わった社員の皆様もインターンの皆様もありがとうございました!
最終日のお昼休み、ずっといた部署の方に懇親会開いて頂けたのとても嬉しかったです。研究でVRやっているという話をしたらVRエンジニアの方にも急遽入っていただいたり。
これからもっと経験を積んで、またいつか、お会いできますように!