【Treasure2023】人と熱く創りきる! CARTAのサマーインターンTreasureで学べることを講師陣に聞いてみた

Treasure2023は、CARTA HOLDINGSが主催する、エンジニア学生を対象とした夏季インターンシップです。

Treasure2023はこんな学生におすすめ!

  • 将来、Webエンジニアになることを目指している
  • チーム開発を体験したい
  • 3週間のインターンで集中的にサービス開発を体験したい
  • 現場のエンジニアとコミュニケーションを取りながらものを創りたい

Treasure2023に参加すると学べること

  • 同世代のエンジニアとチームを組み、共に「サービスを熱く創りきる」開発体験ができる
  • プロのエンジニアが「仕事において何を意識して開発しているか」を学べる
  • 言語や技術詳細によらない基礎的な技術の使い方、考え方を学べる
  • プロのエンジニアのサポートを受けながら、サービス開発を体験できる

Treasure2023夏季インターンのコンセプトと流れ

コアコンセプト: チームで熱くサービスを作り切る

Treasureの開催期間

大まかな流れ

Treasureは3週間のエンジニア向けインターンです。

- 前半(1週間): Webエンジニアリングの講義
- 後半(2週間): サービスアイディアソン+サービス開発
- 最終日: 成果発表

概要

インターンの間、みなさんは講師陣やエンジニア社員からのサポートを受けながら、実践的なWebサービス開発に取り組みます。

例年、参加学生よりも 講師・サポーターなどTreasureに 関わるCARTAエンジニア社員の数が多い ことが特徴です。

CARTAのエンジニアがフルタイムコミットでサービス開発をサポートし、プロの考え方や技術を手元を見ながら学ぶことが出来ます。

開催期間: 2023年8月7日 (月) ~ 2023年8月25日 (金)
参加締切: 2023年5月31日(水)
        ※申込状況により早期に締め切る可能性があります

待遇など: 14万円支給
        ※関東圏外の方には宿泊施設をご用意します
        ※来社にかかる交通費(往復上限4万円まで)は負担いたします
        ※遠方にお住まいの場合、8月13日(日)を移動日に当てていただく可能性がございます

詳細はこちらのページをみてください。

carta-recruit.snar.jp

Treasure講師に聞く「Treasure」に込めた狙いと学生が学べること

ここからは、Treasureの講師 yanyanとyamachu に「Treasureの狙い」と「学生が学べること」を教えてもらいましょう。

名前: yanyan
所属: fluct
入社から何年: 3年目
Treasure参加歴: 学生として参加
得意な技術領域: バックエンド
Treasureの担当領域: バックエンドの講師

名前: yamachu
所属: サポーターズ
入社から何年: 6年目
Treasure参加歴: 学生時代は未参加、内定者としてアシスタント参加
得意な技術領域: フロントエンド
Treasureの担当領域: フロントエンドの講師

どんな学生に来てほしいですか?

yanyan: 同年代の学生同士でものづくりをしてみたい人、現場のエンジニアの考えを間近で感じ取りたい人に来てほしいです。ある程度、自分で考えて手を動かして学べる人は成長できます。

yamachu: 自分から学ぶ意欲があるのは前提として、同年代の学生と現場感のあるチーム開発を体験してみたい人にはおすすめですね。何にでも言えることではありますが、吸収するのみで常に受け身だと難しいかもしれませんね。

Q. Treasure2023の狙い(※)を教えて下さい。

人と一緒に作り上げる熱量を感じながら、技術力が上がる場を提供する

yanyan:開発において、CARTAエンジニアとモノづくりをしていくための武器を与えるイメージをしています。言語や技術詳細によらない基礎的な部分を学び取れる設計にしています。

チーム開発では素朴な実装のコードを元に「仲間と短期間で作り切る」「熱くやりきる」体験をしてほしいです。私が学生としてTreasureに参加したときのことを思い出すと、やっぱり仲間と同じ目的を持って一緒に作り上げた時の熱量や時間が印象深いです。未だに当時のチームメイトとプライベートで会うくらい仲も良いです。

yamachu: プロのエンジニアが「仕事において何を意識して開発しているか」を共有するつもりです。技術的にも「特定の要素技術に依存しすぎる実装」は避けて、汎用的に適用できる考え方を伝えるつもりです。

後半のチーム開発では、技術活用だけでなく「チーム開発の楽しさや難しさ」を体感とともに学んでもらえたら嬉しいです。

※: 狙い: 「学生にこんなことを学んで欲しい」という注力箇所。

Treasure2023で「学生が学べること」を教えて下さい。

yanyan:バックエンドの講義は、Goで素朴な実装のAPIを作れるようにする講義内容です。コードの書き方をペアプロで教える予定です。それだけではなく、「良いコード」や「良い設計」を判断するための価値観を伝えます。

  • アプリケーションコードをシンプルにGolangらしく書く
  • リーダブル(読みやすい)コードを書くマインドセット

コードの書き方だけでなく、設計も大切な要素です。設計については基礎的な考え方を伝える予定です。Treasure内だけなくプロになった後にも効いてくるようなマインドセットが伝わると嬉しいですね。私が普段考えていることはこちらの資料にもまとめてあるので、興味がある人は見てみてください。

speakerdeck.com

yamachu: フロントエンド講義ではTypeScript + Reactを用いて最低限の価値を届けられるレベルの素朴な実装を用意します。主にコードの書き方に対するマインドセットについて話をします。

 コーディングは認知負荷を下げていくことが大切です。例えばfmtやlintのような煩雑な作業を人間がやると脳のリソースを細かく持っていかれます。そのような些末な作業を自動化し、認知リソースを下げていく。

なぜこのような工夫が必要かと言うと、フロントエンドは本当にコードが汚くなりやすいんですよね。チーム開発だとよりそうなりやすいです。このため、「チームで開発するためにメンバー全員の認知負荷を下げる」工夫を伝えます。

また小さくリリースすることや失敗しやすい環境を作るための方法も伝えようと思っています。

Q. データモデリングは誰が教えてくれるんですか?

A.  和田卓人さん(@t_wada)が教えてくれます。

※: プログラマ。テスト駆動開発実践者。power-assert-js 作者。『テスト駆動開発』を翻訳、『プログラマが知るべき97のこと』『SQLアンチパターン』を監訳/監修、『事業をエンジニアリングする技術者たち』を編纂。長らくCARTAの技術コーチとして関わっていただいています。

Q. Treasure2023で使う要素技術を教えて下さい

講義で使う、チーム開発時のベースとして用意しているものは以下で構成されています。
チーム開発時に必要なものが足りない場合は、チームの判断で追加可能です。

  • バックエンド

    • Golang
    • Swagger
  • フロントエンド

    • TypeScript
    • React
  • インフラ

    • フロントエンド、バックエンドサーバー

      • それぞれ AWS ECS
    • ロードバランサー

      • フロントエンドのコンテナ用にAWS Load Balancer
    • データベース

      • AWS RDS

Treasure2023で伝えられそうなトピックはありますか?

yanyan: 僕もTreasureで初めてWebエンジニアリングに触れました。そして今、Treasure講師をやっています。皆さんと同じ立場からはじまったからこそ伝えられる事があると思います。

Treasure経験者としては「やらないことをちゃんと決めよう」を知ってほしいです。これは実際にプロのエンジニアになった後も役に立つ考え方です。

チーム開発には時間がありません。しかし学生だけだとアイディアが次々と出てくる。だからこそ、限られた時間の中で「自分たちが作るプロダクトにおいて最も大切な選択肢を選ぶ」力が大切です。そこを伝えられるといいですね。

yamachu: チーム開発において、個々の環境依存に引きづられないような設計が大切です。ローカル環境に依存してプログラムが動作しないような事態を避ける考え方を伝えられそうですね。

また、ChatGPTに代表されるGenerative AIや大規模言語モデルの出現で開発者の開発体験(DX: Developer eXperience)が大きく変わり始めています。GitHub Copilot Xがいい例ですね。僕らも業務中に利用するシーンが増えてきています。エンジニアとしてそういった周辺環境を拾うことも大切です。

時間があればそういうトピックにも触れられるかも知れませんね。

番外編: 自由すぎる環境で試行錯誤するからこそ、正解だと思う選択肢を自分で選ぶ能力が養われる

講師からの目線だけでは、みなさんから遠く感じてしまうかも知れません。

そこで、Treasureを経験した [CARTA新卒2年目エンジニア @ryuya](https://techblog.cartaholdings.co.jp/entry/Interview-with-engineers-new-grad-2022)が魅力を語ってくれました。

名前: ryuya 
所属: DIGITALIO
入社から何年: 2年目
Treasure参加歴: 学生時代にTreasure参加

ryuya: ryuyaです。Treasureに参加していました。Treasureのチーム開発は「決める力」が養われる場でした。

Treasureにおけるチーム開発の期間中、CARTAエンジニアのサポーターが学生に能動的に働きかける事は基本的に無いです。そのため、学生は以下を全て自分たちで決めなければいけません。

  • 何を
  • どうやって
  • どこまでやるか

そして基本的にはどんな選択肢を選んでもサポーターは了承してくれます。いつでもプロのエンジニアに質問することができるので、リアルタイムでPDCAを回せます。わからない部分を言語化し一緒に調べてもらうことで問題の解決方法を学べました。

僕が居たチームの場合、Treasureには直接関わっていないCARTA 社内の人に自らアポを取って時間をいただき、サービスの相談をしたり、スマホアプリ開発の検討をしていました。

そんな自由すぎる環境で試行錯誤するからこそ、正解だと思う選択肢を自分で選ぶ能力が養われます。

こんな環境で2週間も開発できるインターンはなかなか無いです。CARTAがインターンに全社で注力してやっているからこそ可能になっているのだと思います。

Treasure2023 インターン参加者募集中!!

https://carta-recruit.snar.jp/entry.aspx?entryid=b5687fec-8dc9-4778-af54-d2e1b7c92e41