サーバーサイドプログラミングに利用される「Perl」「Scala」を2つのコースに別れて行われました。オブジェクト指向、関数型プログラミングなど、言語のパラダイムの説明から、データ構造や制御構文などの言語仕様、テストの書き方までを学習します。データモデリング、モデリングに対応するオブジェクトの実装、そしてテストについての課題を提出し、言語についての習熟をしてもらいます。
アプリケーションで取り扱うデータを効率性や信頼性に考慮して操作するにはデータベース管理システムを活用することが重要です。最もよく利用される関係データベースを中心に、データベースの基礎的な概念や、Perl/Scalaで書かれたプログラムからデータベースを利用する方法について学びます。また、ソフトウェアのモデリングや設計についても学びます。課題ではCLIで動作するブログシステムの実装に取り組みます。
Webアプリケーションフレームワークの使い方や、MVCパターンによる設計の仕方、セキュリティに関する知識を学び、Webアプリケーション開発における基礎的な技術を身につけます。課題では、前日の講義で作ったCLIのブログシステムをベースに、Webアプリケーションとして動作するブログシステムを実装します。
JavaScriptによる動的なページ操作について学びます。講義では言語のコアになる部分から、jQueryの利用方法まで、重要なポイントをひと通り学習します。筋の良い基礎技術を身につけることで、応用部分に対しても自己で対処できる力を身につけ、クライアントサイドに必要な技能の基盤作りをこの1日で完了することを目標としています。課題ではこれまでに作成したブログシステムに対して、非同期でページ内容を変更するなどの機能追加を行います。
これまでの講義を通して作ってきたブログシステムに新機能を追加する自由課題です。サービスの企画、アイデアをどのように出すかのワークショップとしてエレベーターピッチを行い、自分で企画した新機能を実際に実装してみます。作った機能をプレゼン形式で発表し、スタッフ投票により成果を競う発表イベントも行われました。
「ウェブアプリケーションフレームワークの向こう側」と題して、後半課程に向けて、はてなの本番システムのインフラがどのように構成され、フレームワークの奥でどのようなサービスが動いているかを学びます。Webサービスの3層構造、障害に強くスケールするインフラの勘所について、「はてなブログ」や「Mackerel」の実例を元に説明されます。
2014年のWWDCで発表された新言語Swift、その最新版であるSwift
2の言語仕様の解説から、SwiftでiOSアプリを作るまで。iOSアプリでのMVC、ネットワーク通信、Xcodeを利用した開発についての知識を習得し、実際にアプリを作ってシミュレータで実行できるところまでを行います。学んだ知識を活かし、これまで作ってきたWebアプリケーションにAPIを作成し、それと通信を行うiOSアプリを作成するという課題に挑んでもらいます。
本講義資料はインターン終了後に公開されました!