Scalaの課題と解いて、お肉を食べながらわいわいレビューする会

Web開発チームの安達(@UAdachi)です。

一年前は PHP 書いていましたが、ここ最近は糖質制限DDDおじさんことかとじゅん(@j5ik2o)さんの下で Scala をいっぱい書いてます。 かとじゅんさんは色んな人に糖質制限を教えたりもしていますが、社内では Scala もちゃんと教えてくれています。

今日はその一部をご紹介と、Scala の課題を一緒にレビューしてくれる人募集のお話です。

まずは二分木データ構造を実装してみよう

社内の教育を何から始めるか悩みましたが、いくつか課題を出して、それをレビューするスタイルで始めてみました。

まず、最初にやった課題は二分木データ構造の実装です。

どんな二分木かというと、NodeにはLeafとBranchがあります。Leafは値をひとつ保持し、Branchはひとつの値と左右にNodeを保持します。また、各Nodeの値の大小関係は左 < 右となる単純なデータ構造です。 このデータ構造に対して、要素数や最大値・最小値などを返すメソッドや、指定した値を保持するNodeを検索するメソッドなどを実装する、簡単な問題です。

詳細はこちらを参照してください。

二分木データ構造 実装問題

こんな課題をみんなでワイワイレビューしていると、気付きが多かったりしますね。このような課題を通して、ケースクラスの便利さやScalaの強力なパターンマッチに惹かれていきました。

ChatWork社でやってるプログラミング課題

現状 Scala をバリバリ書いてるチームと、いずれ Scala でコードを書くチームでレベルの違いがかなりあるのですが、みんな少しずつレベルアップしてきています。 今取り組んでる課題はこんな感じです。

ScalaのList型を1から自分で実装してMyList型を完成させてみましょう。

MyList型 実装課題

(この他にも、ワードカウントなどの問題も公開しています。)

プログラミング課題に挑戦したいエンジニア大募集中です

かとじゅんさんと一緒に食事(肉)をしながらコードレビュー会しませんか? 前回、ビズリーチさんと行わせていただいた勉強会で、社外の方とレビューをワイワイやってとても楽しかったので、またやってみたいです。

参考)前回の勉強会(ビズリーチ竹添さん)
第二回ChatWork × BizReach合同Scala勉強会を開催しました! - break the code!!

上記のMyList型課題を解いてご応募ください。 弊社の社員と一緒に、それぞれが書いたコードについてレビューしましょう。 東京と大阪の2会場を予定しております。日時・場所は応募状況を見て改めてご連絡します。

Scala のコードを一緒に語りたい方は↓から応募してください。

ChatWork Scala Quiz エントリフォーム

締め切り:4月13日(月)

弊社のレビューではマサカリが飛んできたりはしないので、ぜひ一緒に美味しいお肉を食べながら、楽しくコードについて語りましょう。