前半 講義パート

はてなでのWeb開発を社員と同等の品質で行えるように、講義と課題による集中的なトレーニングを行いました。言語やオブジェクト指向の知識から始まり、データベース、サーバーサイドプログラミング、クライアントサイドプログラミング、と順を追ってWebアプリケーションの開発について学びます。今年はサーバーサイド言語として、これまでの「Perl」に加え、「Scala」の講義を追加し、コースにより必要な言語を選択して学べるようにしました。また「iOSアプリ開発コース」選択者には加えて「Swift」の講義も行われました。これらの充実した講義の内容は、「はてな教科書」として無料で公開する予定です。

1日目

Perl/Scalaによる
プログラミングの基礎

サーバーサイドプログラミングに利用される「Perl」「Scala」を2つのコースに別れて行われました。オブジェクト指向、関数型プログラミングなど、言語のパラダイムの説明から、データ構造や制御構文などの言語仕様、テストの書き方までを学習します。データモデリング、モデリングに対応するオブジェクトの実装、そしてテストについての課題を提出し、言語についての習熟をしてもらいます。

講師

Perl
id:astj

Scala
id:daiksy
2日目

Perl/Scalaによる
データベースプログラミング

アプリケーションで取り扱うデータを効率性や信頼性に考慮して操作するにはデータベース管理システムを活用することが重要です。最もよく利用される関係データベースを中心に、データベースの基礎的な概念や、Perl/Scalaで書かれたプログラムからデータベースを利用する方法について学びます。また、ソフトウェアのモデリングや設計についても学びます。課題ではCLIで動作するブログシステムの実装に取り組みます。

講師

Perl
id:ntakanashi

Scala
id:mechairoi
3日目

Perl/Scalaによる
Webアプリケーション開発

Webアプリケーションフレームワークの使い方や、MVCパターンによる設計の仕方、セキュリティに関する知識を学び、Webアプリケーション開発における基礎的な技術を身につけます。課題では、前日の講義で作ったCLIのブログシステムをベースに、Webアプリケーションとして動作するブログシステムを実装します。

講師

Perl
id:tarao

Scala
id:Songmu
4日目

JavaScriptによる
イベント・ドリブン
プログラミング

JavaScriptによる動的なページ操作について学びます。講義では言語のコアになる部分から、jQueryの利用方法まで、重要なポイントをひと通り学習します。筋の良い基礎技術を身につけることで、応用部分に対しても自己で対処できる力を身につけ、クライアントサイドに必要な技能の基盤作りをこの1日で完了することを目標としています。課題ではこれまでに作成したブログシステムに対して、非同期でページ内容を変更するなどの機能追加を行います。

講師

id:hatz48
5日目

自由課題

これまでの講義を通して作ってきたブログシステムに新機能を追加する自由課題です。サービスの企画、アイデアをどのように出すかのワークショップとしてエレベーターピッチを行い、自分で企画した新機能を実際に実装してみます。作った機能をプレゼン形式で発表し、スタッフ投票により成果を競う発表イベントも行われました。

講師

id:hakobe932
6日目

インフラ

「ウェブアプリケーションフレームワークの向こう側」と題して、後半課程に向けて、はてなの本番システムのインフラがどのように構成され、フレームワークの奥でどのようなサービスが動いているかを学びます。Webサービスの3層構造、障害に強くスケールするインフラの勘所について、「はてなブログ」や「Mackerel」の実例を元に説明されます。

講師

id:y_uuki
7日目

SwiftでのiOSアプリ開発

2014年のWWDCで発表された新言語Swift、その最新版であるSwift 2の言語仕様の解説から、SwiftでiOSアプリを作るまで。iOSアプリでのMVC、ネットワーク通信、Xcodeを利用した開発についての知識を習得し、実際にアプリを作ってシミュレータで実行できるところまでを行います。学んだ知識を活かし、これまで作ってきたWebアプリケーションにAPIを作成し、それと通信を行うiOSアプリを作成するという課題に挑んでもらいます。
本講義資料はインターン終了後に公開されました!

講師

id:cockscomb

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

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