• このエントリーをはてなブックマークに追加
ドワンゴの清水(@meso)です。

去る11月28日に、株式会社はてなさんとドワンゴの合同ハッカソンをドワンゴセミナールームで開催いたしましたので、そのレポートをお届けします。

イベントページは http://dwangohatena.connpass.com/event/21717/

この合同ハッカソンは、京都と東京の2ヶ所で開催されたもので、京都で開催した際のレポートは、はてなさんからあがっておりますのでご参照ください。

東京会場には、39名の学生さん(高校生、大学生、専門学校生など)にお集まりいただきました。参加者同士でチームを組みやすいよう、言語ごとにゆるくグループ分けして座っていただいたのですが、半分近くの参加者が事前にチームを組んでの参加だったのが意外でした。

9014aafaaebee838313f064773e765fcefb30ad1

10時半からご挨拶と両社のAPIの紹介をし、チームビルディング的なことをし、そこからすぐ8時間に及ぶハッカソンを開始しました。
お昼もお弁当を用意しているため、ほとんどのチームが休憩なしのノンストップで開発に集中していたのが印象的でした。

82396e25f520ddbdb1c91dffaca5f137e9976718

19時にタイムアップし発表できるチームを募集したところ、最終的に15チームに発表してもらいました。

dc0f6d4c1021b7a8d7d2f806153a99b045a342e8

力作や迷作が色々ある中、ドワンゴ賞とはてな賞を選ばせていただきました。

ドワンゴ賞: gochiusa.net さんの「nicoSyncPlayer」

41dcef2f4cd92c60a481c79517140212d635b0fe

ニコニコ動画を仲間同士で同期的に視聴するサービスで、ハッカソン中はごちうさ1期1話にしか対応してませんが、今後任意の動画に対応させていきたいとのことでした。

はてな賞: ガミエグチさんの「Hatena Maze」

b33a770c1abfec9185c8eab146b8f539f25c9f67

はてなブログの記事が壁となっている迷路をつくり、スマホの加速度センサで操作し、壁にぶつかったらその壁にあたる記事ページにジャンプするという、はてなブログの新しい記事との出会いを促進するアプリでした。

893f4a6ff6fc2b93e592ff6958287486a541f65e3906f7a4904ef3a0bc642df44c4b9beec9585eba

その他にも、スマホの裏面をタップすることで動画の盛り上がり場所を共有するサービスや、はてブページを開く前にコメントのネガポジが分かるChrome拡張や、動画投稿者の全投稿動画の再生数を株価と見立てて投資するサービスなど、面白いアプリがたくさん誕生していました。

1ce73cbd75735c9045e527c39777a04ea486ddb8973dc43c52a950cecb618c5b8fa98bf9f5815dc0

ご参加いただいた皆さん、快く共催を引き受けていただいたはてなさん、ありがとうございました。

67db371ea58c29b40c6c61e00583867f22e76765
ドワンゴでエンジニアの教育も担当している清水(@meso)です。

昨年に引き続き、今年もエンジニアの新人研修を担当いたしましたので、その内容をご紹介いたします。

今年は、昨年までと異なりエンジニア以外へのプログラミング研修を開催したり、エンジニアへのプログラミング言語の研修を Scala に変更したりしたので、その辺りを重点的にご紹介いたします。

合同プログラミング研修

ドワンゴに入社したエンジニア、デザイナ、企画の新入社員と、KADOKAWAに入社した新入社員の方の全員を対象にしたプログラミング研修を行いました。

プログラミングをバリバリやってきたエンジニアたちと、プログラミングをしたことがない非エンジニアたちを合同で教育するには、どのようなカリキュラムにすべきか悩んだ結果、エンジニアに積極的にTA的な立ち回りを演じてもらうことにしました。

そもそも4日間という短い期間で、プログラミング未経験者に対してある程度達成感のある教育を行うというのは、講師一人だけの力では困難です。そこで、エンジニア2人に非エンジニア1人という3人組のチームを作ってもらい、講師が出す課題についてエンジニア2人が非エンジニアに教える、という形式を取りました。

カリキュラムの内容は以下の通りです。

初日: 
-   PCの構成要素
    -   ハードウェア / ソフトウェア
    -   OS / アプリケーション
    -   PCでないコンピュータって?
-   Webとは
    -   Webブラウザ
        -   Chrome をダウンロード
    -   Webページが表示されるまでの流れ
        -   URL/IPアドレス/DNS/NAT/DHCP
        -   HTTP/HTML/CSS/JavaScript
    -   WWW以外のインターネットって?
-   課題例
    -   HTMLの基本
        -   チーム紹介のページ作成せよ
        -   エディタは Atom
            -   文字コード/改行コード
-   プログラミングとは
-   JavaScript
    -   2.2節 文字列と数値 まで

2日目: 
-   JavaScript
    -   2.3節 配列とオブジェクト から 2.6節 繰り返し まで
-   課題(例)
    -   1から1000までの3つの整数a, b, cが直角三角形の各辺になるようなa, b, cの組み合わせを、重複なく全て出力せよ
        -   回転したりひっくり返したりして重なる三角形は重複とみなす

3日目: 
-   JavaScript
    -   2.7節 関数 まで
-   課題(例)
    -   素数を判定する関数 isPrime を定義し、1から100までの素数の数を求めよ
-   JavaScript
    -   Node.js の導入
-   課題(例)
    -   コンソール上での数当てゲームの実装
        -   require, readline, Math.floor, Math.random, 再帰
-   Twitter API
    -   アプリケーション登録/AccessToken生成
    -   クライアントライブラリの導入/npm
    -   タイムライン取得、ツイート生成

4日目: 
-   Twitter API
    -   ユーザストリームの取得
        -   JSON, Stream, 非同期処理とコールバック関数
-   最終課題
    -   数当てゲームができるTwitterBotを作る
        -   String.split, parseInt, isNaN

5日目: 
-   最終課題続き
-   振り返りとまとめ

この研修だけで終わるのではなく、研修で学んだ内容を今後も継続的に業務に活用していってもらえることを願っています。

エンジニアへの Scala 言語研修

昨年までは Java を言語研修で教えていましたが、今年は Scala で言語研修を行いました。

教材も自社で作りました。幸いドワンゴには、日本Scalaユーザーズグループ代表でJapan Scala Association 代表理事の @kmizu を始めとして、Scalaz や sbt のコミッタである @xuwei_k などの優秀な Scala エンジニアが揃っておりますので、彼らの手を借りて教材を作り上げました。

教材のメインターゲットは、大学の講義で Java をひと通りは習った経験のある新入社員、です。

教材は2部構成になっており、前半のScalaの文法解説に2週間、後半のPlay2を用いたアプリケーション開発に1週間掛けて教育していく予定でした。実際には、前半に1週間半、後半に1週間半ぐらいの割合になりましたが。

教材の目次をざっくりと紹介すると

前半:
Scalaとは / sbt インストール / Scala の基本 / sbt でコンパイル・実行 / Scala の制御構文 / IDE(IntelliJ IDEA) / クラス / オブジェクト / トレイト / 型パラメータと変位指定 / 関数 / コレクションライブラリ / ケースクラスとパターンマッチング / Implicit / エラー処理 / Future と Promise / テスト / Java との相互運用

後半:
Typesafe Activator と Play Framework / モジュールとレイヤ / 画像変換サーバ開発 

となっています。

目次には現れてないトピックとしては
-   メソッドのカリー化, 自分型を使ったDI, トレイトの継承を使ったDI, モノイド則, モック
-   アクターモデルとAkka, RabbitMQ, Specs2

演習問題の例としては
-   Immutable な Stack 型を定義せよ
-   トレイトを使ったリファクタリング
-   foldLeft を用いて reverse を実装せよ
-   二分木を表す型を定義し、sort メソッドを実装せよ
-   Option での例外処理を Either でリファクタリング
-   CountDownLatch の実装

などがあります。
結果として、弊社に Scala エンジニアが40名以上増えた!と言えると思っています。

この Scala 教材は、の形で社外にも提供していきたいと考えております。

そんなドワンゴでは、現在、エンジニアインターンを大募集しております。
ご興味をもたれ方は是非 こちら からご応募ください。
タイトルの通り。
各社で見比べると傾向が見えて面白い気がしたので、とりあえずドワンゴ社内 Slack のものを公開します。

4060ab46916e60c9a1c9cdbc1ef218a3d78e3574

Scala と JavaScript が2強ですね。C++ や Erlang も上位に入っているのがドワンゴらしいところでしょうか。逆に Perl はチャンネルすら存在しなかったです。
言語以外の技術要素やエディターなどでも集計してみたのですが、宗教戦争が始まりそうなので公開は控えておきます。

ドワンゴではScala, JavaScript, C++, Erlang, Android/iOS, PHPなどが得意なエンジニアを募集しています!

dwango エンジニア ブロマガ

ニコニコ動画を始めとした niconico サービスの開発を行なっているドワンゴのエンジニアが、日々の業務で培った開発ノウハウや裏話などをお届けするブログ(ブロマガ)です。

著者イメージ

ドワンゴエンジニア

ニコニコ動画の開発を行なっているドワンゴを始めとしたドワンゴグループのエンジニア

http://dwango.co.jp/recruit/
メール配信:あり更新頻度:不定期※メール配信はチャンネルの月額会員限定です