blog2019-09-01【Treasure】3週間、コンフォートゾーンの外側で挑戦した話はじめにみなさんこんにちは。GROUPさんのインターン「Treasure」に参加したのでブログに色々書きます。Treasureに参加した感想まず結論から言うと、Treasureに参加して本当に良かったです。技術的に大きな成長ができただけでなく、サービス開発をする上でのものの考え方、チーム開発の進め方など得られたものがたくさんありました。遠方からの参加の場合東京までの交通費支給なぜTreasureに参加したのかバックグラウンドで書きましたが普段自分は機械学習の研究をしています。そんなWeb開発未経験の輩がなんでTreasureに参加したのかと言うと"未経験だった"からです。上述の通りTreasureの前半部分は講義形式になっており、「一人で学びにくいこと」を学べることが参加を決めた一番の理由でした。データサイエンティストどちらになりたいのか決めるために開発系のインターンに行きたかったというのもあります。(だった気がする)、CTOの小賀さんがありがたいお話をしてくださいました。その中で「コンフォートゾーンの外側で挑戦し続けて欲しい」という言葉が印象に残っています。自分が快適でいられる空間のちょっと外側で挑戦し続けることが成長に繋がるという意味合いだと解釈しています。Web開発経験0な自分からするとTreasure中は常にコンフォートゾーンの外側にいたような気はしますが、小賀さんの言葉を頭に浮かべながら15日間過ごしていました。結果的に初体験の領域で苦しい思いをして最終的に動くものを作ったという経験は、自分を大きく成長させてくれたし自信にもなりました。15日間何をしてきたかここでTreasureの内容を1日ごとにざっくり書いていきます。(Go講義)Treasure初日、全員で円を作って名前を覚えるためのちょっとしたゲームをしました。そのあと早速すずけんさんによるGoの講義が始まりました。講義の内容としてはGoでcurlコマンドの機能を実装したり、DBにクエリを投げるapiを生やして小さなコマンドラインアプリケーションを作ったりといった感じです。Treasure全体を通してとにかく手を動かしてコードを書くことを重視していると思いました。フロント講義)2日目の午前中はpeiさんによるGoの講義その2。用意されていたベースアプリを元に要件にそったapiを実装するという内容。バックエンドのディレクトリ構成と各ディレクトリの役割は説明があったのですが、その時は何から書き始めればいいのか分からずTAの方やpeiさんに質問をしながらちょっとずつコードを書いていくといった感じでした。weiさんのフロントエンド講義。歴史の話から始まりました。closureといった事項についても適宜演習時間が設けられ手を動かしながら学んでいくという感じでした。(フロント講義その2)3日目はまず前日の講義の続きで、Promiseに関して演習をやりました。これでバックエンドで生やしたapiがフロントで叩けるわけですね。途中からは講師がちゅうこさんに代わり、jsのフレームワークの話から各々好きなフレームワークを使って前日に作ったapiをフロント側で叩いて色々するという演習をやりました。中間課題)4日目はDB講義から始まりました。stepで実際に与えられた課題に対して自分でDB設計をするという形で学んでいきました。3人チームになって仮想のサービスのDB設計をやりました。そこでは何回か要件が追加されDB設計を変更するという演習もやりました。その後、中間課題なるものが出題されました。翌週月曜日の10:30これが発表されたとき自分はこんな顔してました。正直な話、この時点で講義の内容に全然ついていけてなくて結構苦しんでいました。演習も手が止まってしまうことが多く、そんな状態で何か動くものを作れるんか...と不安しかなかったです。考えた結果、その時点ではフロントの方が書けそうな感じだったのでサーバーサイドを全部firebaseにお任せしてReactでTodoアプリを作ることにしました。Reactは触るのは初めてだったのですがこのとき隣の席だった人がReactの経験があって、最低限の知識を丁寧に教えてくれたためなんとか書き始めることができました。(中間課題)1週目の最終日は一日中間課題の実装に当てられました。自分は結局土日も潰してなんとか形になって動くものが作れました。(このときバックエンドに手が回らなかったのが今でも心残りです。セキュリティ)午前中は5チームくらいに別れて中間課題の発表をしました。みんな個性的なアプリを作っててすごいなーと思いながら、自分ももっと面白いもの作りたかったなぁとかもっと頑張ればバックエンドも実装できたのでは?とか悔しさが残る中間課題でした。お昼を挟んでセキュリティの講義がありました。(XSSとかCSRFとかSQLインジェクションとかとか)がどういうものなのかだけでなく、それらの脆弱性が実装上のどこに潜んでいるかというのを、用意されたアプリで探しながら学んでいきました。(Auth2.0とか)。後半のチームが発表されました。チームは全部で6チームでTreasure生が5人ずつ、そこにエンジニアのサポーターが2人と人事の方が1人という構成でした。お昼はチームで食べました。自己紹介をしたりとか自分のあだ名が決定したりとか色々ありましたw午後からはインフラの講義。後半のチーム開発はAWS上で行うのでAWSの使い方やCI/CDの重要性についてお話がありました。この日の終わりに宿題が出されました。「チームのSOULを考えてこい」SOULは簡単にいうと自分たちの作るサービスのコアにある考え方のようなものですね。定時後、チームごとに飲みに行きそこでSOULをどうするか話し合いました。各々のものづくりの信念を話したり結構熱い飲み会だったと思います。(アイデア出し)8日目は、アイデア出しの講義。サービスのアイデアの出し方を実際にやりながら学びました。最終的にいくつか面白いプロダクト案が出て、すごい楽しい講義でした。(チーム開発スタート)いよいよこの日からチームでの開発がスタートしました。ここからの内容は自分のチームがどんな感じだったのかになります。チームごとで結構進め具合というのは違います。この日は、チームでどんなサービスを作るのか決めるために前日の講義と同じ手順でアイデア出しをやりました。その過程でたくさんのアイデアが出ましたが最終的に2つに絞ってこの日は終わりました。10日目この日の午前中に絞った2つの案からどちらにするかをチームで話しあって決めました。午後からはVGのクルーの方にヒアリングをさせていただいてユーザーのニーズやそれに対するソリューションを明確にしていきました。その後、実装したい機能を列挙してその優先度を決めていきました。実装を始めたいという意識がチーム全体であったため、そこまでに必要なことを土曜日にやりました。etc...)11日目この日から実装に手をつけ始めました。メンバーの一人の提案でモブプロをすることになりました。メンバー全員がバックエンドもフロントエンドも書けるように、まず全員でapiを生やしてそれを叩くフロントの実装をしました。実はこのモブプロのおかげで前半の講義で不明瞭だった、どこから手をつけていいかというのがわかるようになりました。モブプロを提案してくれたOォーリーにはとても感謝しています。14日目この3日間はひたすら手を動かしていました。自分のチームはタスクを付箋で管理しており、フロントバック関係なく各自で仕事を取っていくという感じでした。(hooksとかreduxとかstyled-componentとか)わからないことがあったらメンバー同士で聞き合ったり、サポーターの方に質問したりとまさに一丸となって開発をしていました。14日目は次の日の11:00が締め切りなこともあって徹夜で開発をしていました。最終日、11:00に開発が終了しました。午後から各チームのプレゼンが始まりました。10分間のプレゼンの後学生と審査員の質疑応答がありました。(2チーム)が発表されました。ちなみに僕らのチームは優秀賞をいただきました。両方コメントをいただけたのはありがたかったです。締めにみんなで一言ずつメッセージを言っていきました。涙を見せる人や悔しさを滲ませる人もいましたが、全員が共通して言っていたのは「Treasureに参加してよかった」涙や悔しい気持ちはTreasureに本気でコミットしていたから現れるものだと思います。僕を含めTreasureに関わった人全てが本気でTreasureにコミットしていたんだなとその時しみじみ感動していました。最後の飲み会はチームの人たちとこれまでを振り返りながら色々話したり、他のチームのメンバーやクルーの方と話ができて本当に楽しかったです。メンバーやサポーターの方から「お前はめっちゃ成長した!」とか「できるようになったな」とか言ってもらった時は嬉しかったと同時に成長できたんだなって安心しました。(あと泣きそうでした)Treasureのよかったところ個人的にTreasureのここがよかった!!という点を箇条書きしていきます。全体を通してサポーターの数が多いびっくりするくらいサポートしてくれる人の数が多かったです。前半の講義部分では講師の方以外にTAの方がいて、質問に答えてくれたり時には一緒に調べてくれたり、手厚くサポートしてくれました。人事1人がサポーターとして参加してくれました。(時間の管理やサービスに対する考え方など)をいただいたり、開発最終日には僕らの分のご飯を買ってきていただいて徹夜に付き合ってもらって...本当に感謝してもしきれないほどたくさんのサポートをしてもらいました。15時におやつがデプロイされる日替わりで15時になるといろんな部署の方々がおやつを差し入れしてくれました。weiさんが一人30分ずつフィードバックコメントを対面形式でしてくれました。細かく丁寧にアドバイスしていただいて、今後に生かして行かなきゃなと思いました。Treasure生同士で質問しあえる講義中、講師やTAの方だけでは質問を捌き切れないことがたまにありました。そんな時に結構Treasure生同士で講義中に質問したりそれに答えたりということがありました。Treasureは講師、サポーター、Treasure生全員で作り上げていく、そういうインターンだなって思いました。シェアハウスTreasure中、僕は他の地方からきたTreasure生とクルーの方、合計8人でシェアハウスに住んでいました。Treasure前にシェアハウスであることを知った時は「まじか...」って思いましたがいざ始まってみるとシェアハウスでよかったなって思ってます。振り返るとめちゃくちゃ楽しかったです。最後に僕はこのTreasureを通じて、「もの作りクッソ楽しいやんけ!!」って気づきました。それに気づけたのは紛れもなくTreasureに関わった方々全員のおかげでした。知識0の僕が3週間経って「あれ?Webアプ一人で作れんじゃね?」って思えるようになれたのは、Treasureでコンフォートゾーンの外側で挑戦し続けることができたからです。これからもWebアプリの開発は自分で続けていこうと思っています。Treasure最高でした。興味を持った方、まずは応募してみましょう。長くなりましたが最後まで読んでいただいてありがとうございました。月別アーカイブはてなブログをはじめよう!shinya-mlさんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。