前半 講義パート

Webアプリケーションの開発を高い視点から俯瞰し、さらに実際のリリースに耐える品質で開発できるように、講義と課題を組み合わせたトレーニングを実施しました。講義はHTTPの概論から始まって、データベースやWeb API、セキュリティについて学びます。課題では、Go言語でサーバーサイドのアプリケーションを作り、GraphQL APIを作成して、TypeScriptとReactを使ってSingle-Page Applicationの開発をしました。またWebのインフラについても座学を通して学んだ後、実際にAWSへのデプロイを体験します。そのほか、デザインや企画、コミュニティ設計についても、貴重な実例と共に講義を行いました。

1日目

オリエンテーション・歓迎会

一日目はインターン参加前にお願いした事前課題の講評をCTOのid:motemenから行いました。人事からのオリエンテーションや環境設定など、はてなで一か月インターン生活を過ごしてもらう為のセットアップが行われます。夜はお待ちかねの歓迎会です。東京、京都オフィスをテレビ会議でつなぎ、個性豊かなインターン生の自己紹介で盛り上がりました。

2日目

Go 言語による Web アプリケーション

現代の Web アプリケーションを構成する技術スタックと、それを実装する方法について講義を行いました。 Web アプリケーションを構成する技術スタックは、HTTP の基礎的な話題から、セキュリティなどの文脈を踏まえた現在のベストプラクティスについて紹介しました。また、Go 言語で Echo フレームワークを用いてシンプルな Web アプリケーションを実装することで、実際に手を動かしながらそれらの技術を一通り習得できるよう目指しました。

講師

id:polamjag
3日目

RDBMS・MySQL

講義では関係データベースの基本的な概念と、実際にデータを操作するためのMySQLで使えるSQLについて学びます。また気をつけてもらいたい基本的なパフォーマンス対策のことについても触れ、後半過程でチーム配属された際にも意識できるようにします。 課題では、前半過程で作成するブログアプリケーションのスキーマ設計やアプケーションからデータベースに接続する実装を行います。

講師

id:miki_bene
4日目

Web アプリケーションのセキュリティ・Web API と GraphQL

Webアプリケーションのセキュリティについて、およびWebアプリケーションの提供するAPIについての二本立てです。セキュリティについては、Webアプリケーションにおけるセキュリティの重要性や、典型的な脆弱性やその対策について学びます。またAPIについては、WebアプリケーションのAPIとして広く使われるRESTやGraphQLといった形式についてそれぞれの特性に加え、GraphQLサーバーの実装について学習します。課題では、自身の作成しているアプリケーションに各種セキュリティ対策を施し、またGraphQLを使って、翌日のフロントエンド開発の下地となるAPIを実装します。

講師

id:susisu

5日目

リッチフロントエンド

Webブラウザ上で動作するリッチなWebページを構築する技術について学びます。 講義では HTML, CSS, JavaScript の基礎知識から Yarn や webpack などのフロントエンドエコシステム、TypeScript と React を用いたシングルページアプリケーションの実装方法までをカバーします。 課題では React を活用した動的なページ遷移や、4日目で作成した GraphQL API の呼び出し、CSS フレームワークを活用した UI の構築を実践します。

講師

id:maku693
6日目

Webアプリケーションを支えるインフラ

5日目まではアプリケーションの講義でしたが、インフラ講義では"それ以外"、そのアプリケーションをプロダクションレベルで動かすために必要な要素や技術を一通り講義しました。 Webサービス黎明期〜最近のサーバーレスな世界観まで歴史に沿って広い範囲をカバーしました。

講師

id:t_kyt

Webサービスのデザイン

前半講義では、新しいものをつくる際のデザイナーの思考プロセスについて講義しました。無の状態からどのようにしてコンセプトを決めてデザインに落とし込んでいくか、実際の事例を交えつつ紹介しました。 後半講義では、WebサービスにおけるデザインとUIの基本的な考え方と作り方を軸に、それをどのように実際のサービスに落とし込んでいるかを事例を交えて紹介しました。

講師

id:karin-o

id:takuwolog
7日目

AWS講義

Amazon Web Service(AWS)様より講師をお招きしての講義とハンズオンを行いました。 前半はAWSのサービスついての講義を行い、最近では当たり前に使えるようになったクラウドサービスについての理解を深めました。 後半ではより進んだ内容として、AWS Fargate を利用して自分のアプリケーションを動かし、さらに修正を加えてデプロイするフローを回す、というハンズオンに取り組みました。

講師

AWS様
8日目

企画

「企画とは何か」から始まり、Webサービス企画の歴史の変遷から現在のWebサービスを取り巻く企画の概要と、その周辺領域について解説しました。加えて、飛躍的な発想が必要な企画をする時のために「アイデアの閃き方」についても分解して解説し、ワークショップを通じて実践までを行いました。

講師

id:nmy
9日目

Webのコミュニティ設計

はてなのコミュニティはユーザーが投稿するコンテンツを軸に自然発生的に形成されており、そのようなコミュニティを設計し運営するにはさまざまな課題があります。この講義では、はてなで一番長い歴史を持つサービス「人力検索はてな」を取り上げ、サービス設計の特色や、サービス成長のため行われたさまざまな施策とその結果を失敗事例も含めて検証し、持続的に価値を提供できるコミュニティの設計とその意義について考えることを狙いとします。

講師

id:riko
10日目

Perlブートキャンプ

後半課程でPerlを使うインターン生に向けて、2時間でPerlを書けるようになるというブートキャンプを実施しました。文法から始まり、Perlによるオブジェクト指向プログラミングが行えるようになれば完了です。強行軍でしたが、みんなちゃんと最後まで食らいついてきてくれました。サーイエッサー!

講師

id:motemen

インターン生の、
講義を終えた感想

いよいよ、後半実践パートへ