こんにちは。チーフエンジニアの id:wtatsuru です。 今年もはてなサマーインターン2017が始まりました! 今年で10回目を迎えたはてなのインターンシップ、1週目の様子を紹介します。 はてなサマーインターン2017
20日間のカリキュラムのうち、前半の2週間で行われる講義パートでは、Webサービスに関連する技術を広く学ぶことができます。講師は、はてなのエンジニアです。1週目では、プログラミング言語入門からサーバサイドの開発、フロントエンド/スマートフォンアプリケーション開発まで、Webサービスに関連する開発技術を一気に学んでいきます。
1日目 イントロダクション
初日は、導入説明や環境構築などを行った後、歓迎会を開催しました。自己紹介LTタイムでは個性豊かな参加者達の紹介で盛り上がりました。
2日目 Perl/Scalaによるプログラミングの基礎
サーバサイドプログラミングに利用される「Perl」「Scala」の2コースに分かれて実施しました。オブジェクト指向や関数型プログラミングといった言語のパラダイムの説明から、データ構造や制御構文などの言語仕様、テストの書き方までを学習します。データモデリング、モデリングに対応するオブジェクトの実装に加え、テストについての課題を用意し、言語に対する知識を深めてもらいました。
Perlの講師は id:akiym、Scalaの講師は id:stefafafan でした。
今年もはてなサマーインターンが始まりました!インターン前半は講師の社員による講義と、実習形式の課題を解くスタイルで学んでいきます。最初は言語基礎 (Perl, Scala) が行われました pic.twitter.com/EkISrmBpX2
— hatenatech (@hatenatech) 2017年8月16日
3日目 Perl/Scalaによるデータベースプログラミング
アプリケーションで取り扱うデータを効率性や信頼性に考慮して操作するには、データベース管理システムを活用することが重要です。この日は、最もよく利用される関係データベースを中心に、データベースの基礎的な概念や、Perl/Scalaで書かれたプログラムからデータベースを利用する方法、ソフトウェアのモデリングや設計について学びました。課題では、CLIで動作するブログシステムの実装に取り組んでもらいました。
Perlの講師は id:tkzwtks、Scalaの講師は id:Windymelt でした。
はてなサマーインターン3日目、データベース講義が行われました。課題もボリュームがあり、苦戦するインターン生も多かったようです #はてなインターン pic.twitter.com/cD40xkYy59
— hatenatech (@hatenatech) 2017年8月17日
4日目 Perl/ScalaによるWebアプリケーション開発
Webアプリケーションフレームワークの使い方や、MVCパターンによる設計の仕方、セキュリティに関する知識を学び、Webアプリケーション開発における基礎的な技術を身に付けます。課題では、前日の講義で作ったCLIのブログシステムをベースに、Webアプリケーションとして動作するブログシステムを実装しました。
Perlの講師は id:papix、Scalaの講師は id:motemen でした。
はてなサマーインターン4日目、Webアプリケーション開発の講義が行われました。Web を支える基礎技術を知り、実際のWebアプリケーションの開発を身につける1日でした #はてなインターン pic.twitter.com/HkMw9RwYLL
— hatenatech (@hatenatech) 2017年8月18日
5日目 JavaScriptによるWebフロントエンド開発/SwiftによるiOSアプリ開発
5日目は、コースによってJavaScriptまたはSwiftの講義を行います。Web開発に取り組むコースでは、JavaScriptによる動的なページ操作について学びました。講義では、言語のコアになる部分からフロントエンドの設計まで、重要なポイントを一通り学習します。
この日の目標は、筋の良い基礎技術を習得して応用部分にも対処できる力を身に付け、クライアントサイドに必要な技能の基盤をしっかり作ること。課題では、これまでに作成したブログシステムに対して、非同期でページ内容を変更するなどの機能追加を行いました。また、アプリコースへ進む参加者には、XcodeやStoryboard、Auto Layoutなど、iOSアプリを開発するために必要な全般的知識に関する講義を用意しました。
JavaScriptの講師は id:masawada、Swiftの講師は id:ikesyo でした。
はてなサマーインターン5日目は、Webフロントエンド開発・スマートフォンアプリ開発でした。講義も折り返し地点、前日まではサーバサイドアプリケーションが中心でしたが、今日はクライアントサイド中心の講義です #はてなインターン pic.twitter.com/g7tDH3xyz5
— hatenatech (@hatenatech) 2017年8月21日
おわりに
以上、はてなインターン1週目の様子をお届けしました。ここまでのカリキュラムで、インターン生はバックエンドからフロントエンドまでのWebサービス開発を一気に学びました。はてなインターンの中でも特に密度の濃い1週間で、毎日の課題に苦労したインターン生も多かったようです。次の週には、機械学習やインフラ、デザインや企画などより高度な内容を学びます。2週目の内容も近日公開しますのでお楽しみに。