Gopher道場 昇段審査

概要

Gopher道場では昇段審査と称してGoのスキルレベル(Go力)を図るテストを行う予定です(このイベントでは説明のみです)。出題される課題は白帯(Low)、茶帯(Middle)、黒帯(High)の3つのレベルに分けて出題されます。各レベルは次のように定義して作成しています。

  • 白帯:Goの基礎が理解できている。標準パッケージを扱うことができる
  • 茶帯:抽象化や単体テスト、エラー処理が行える
  • 黒帯:難しい課題に挑戦することができ、Goエンジニアとして企業で活躍できる

解答を提出して頂いた後、運営で採点を行い合否を通知します。解答を提出して頂いた方に対して、合否に関わらず課題レベルごとに解説イベントを行う予定です。どのレベルを受験してもらっても構いませんし、すべてのレベルを順に解答してもらうことも可能です。

すべての解答に対して個別にフィードバックを行う予定はありません。できる限り解説イベントでフィードバックを行うつもりです。合否の基準は解説イベントで説明しますが、合否のラインが必ずしも個人のスキルレベルを唯一に決めるものではないことはご留意願いします。

なお、採点されるまで再提出は可能です。採点順や採点時期についてはお約束できるものはありません。

審査の流れ

  • 説明会
  • 参加申し込み
  • 申込者への問題の送付
  • 解答の提出
  • 合否の発表
  • 解説イベント

受験資格

どなたでも受験可能です。Gopher道場の卒業生である必要はありませんが、Goの実務経験やOSSでの開発経験が無い方は、Gopher道場 自習室で学んだ後にチャレンジすることをオススメします。なお、説明会もどなたでも参加できます。説明会への参加の有無は受験資格には関係ありません。

解説イベント

各レベルごとに受験された方向けに解説を行うイベントです。模範解答は例示はしませんが、レビューポイントや共通のバグなどを解説する予定です。

第1回目の解説イベントは以下のように計画しています。参加方法につきましては開催日が近くなりましたら解答を提出していただいた方に個別でお送りさせていただきます。

  • 白帯:2021年10月06日(水)19時30分〜20時30分
  • 茶帯:2021年10月29日(金)19時30分〜20時30分
  • 黒帯:2021年11月10日(水)19時30分〜20時30分

注意点

  • 提出して頂いた解答によって運営メンバーの所属する企業の採用フローで不利に働くことはありません
  • 受験者数によっては採点に時間を要する場合があります
  • あきらかに他者の解答をコピーしたことが分かる場合や未完成の場合、採点対象とせず解説イベントに参加もご遠慮いただきます
  • 昇段審査や解説イベントについては運営の都合により変更や中止になる可能性があります
  • 今後の日程や申込み方法などは説明会にて発表を行います
  • すべての解答に対して個別にフィードバックを行う予定はありません

目的

Gopher道場ではこれまで自習室を含めると2000名以上の方にGoを学ぶ場を提供してきました。卒業生の中には、海外カンファレンスで登壇したり、企業でGoエンジニアとして活躍する方もいらっしゃいます。しかし、Goの業務経験が無い方にとってどのくらいのスキルレベルがあればGoエンジニアとして企業で活躍できるか判断がつきにくいのではないかと考えました。そこで、昇段審査という名前で客観的にスキルレベルを評価できる場を提供することになりました。もちろん、バックグラウンドとして企業で活躍するためのスキルはGoだけでは限りません。しかし、GoについてはGopher道場の昇段審査に合格したんだという自信を持っていただけたらと思います。

レベルによっては合格に届かない場合もあるかもしれませんが、解説イベントやGopher道場 自習室にて学んで頂くことで将来的には合格する人が増えることを願っています。

参加方法

以下のフォームから申し込み頂けます。レベルによって申し込みフォームが異なりますのでご注意ください。

採点方針

Gopher道場 昇段審査は実用レベルのGo力がついているかを判定する場になっています。そのため、単に機能要件を満たすだけでは合格できません。提出して頂いたコードを元に受験者のGo力を測るため、コードから十分にスキルが推測できない場合は、どんなに経験や実力を持っていても採点者は判断できかねます。

例えば、GoコミュニティではGo Modulesを用いて開発することが一般的ですが、提出して頂いたコードがそうなっていない場合は、受験者はGo Modulesを知らないものとして採点が行われます。

特に以下の点を考慮して採点を行います。

  • Goの理解
  • 設計の良さ
  • 実装の良さ
  • 品質の担保
  • 可読性

Goの理解

Goの言語仕様やツールチェイン、標準パッケージなどを理解し、正しく使えているかをみます。Goコミュニティで一般的に使われている標準の開発ツールやパッケージを用いているかも採点対象になります。

設計の良さ

問題から要求される機能をどこまで考慮するかは受験者におまかせします。問題文にない条件は、受験者が想定して解答してください。想定の仕方、想定した条件や機能をどのように設計するかも採点対象となります。

実装の良さ

どこまで考慮して実装するかも受験者におまかせしています。入力サイズはどの程度まで考慮すべきなのか、パフォーマンスはどのくらいを想定すればよいかなどの判斷基準なども採点対象となります。

また、サードパーティ製のライブラリを用いることは可能ですが、その合理性や妥当性も採点対象となります。合理的なライブラリの採用は加点項目ですが、極端にライブラリに依存している場合は採点対象のコードが少なすぎるためスキルが判斷できなくなってしまいます。

品質の担保

単体テストやE2Eテストなどを用いた品質の担保も採点対象となります。テストが存在しない場合は、Goにおけるテストの記述方法を知らないという形で採点されてしまいます。

テスティングライブラリなどを用いることは合理的であれば加点対象となりますが、そうでなければ減点対象になります。なお、採点者のライブラリの好き嫌いは採点結果には反映されません。

可読性

簡潔で読みやすいコードおよび適切なドキュメントやコメントは加点対象となります。しかし、不要なコードやコメントなどは減点対象となります。コメントアウトしていてもコメントアウトしているコードとして採点対象になりますので、不要なデバッグコードは削除してから提出してください。

質問

問題や昇段審査に対する質問はGopher道場 Slackの以下のチャンネルでお願いします。

  • 白帯の問題に関する質問:#shoudan-low
  • 茶帯の問題に関する質問:#shoudan-middle
  • 黒帯の問題に関する質問:#shoudan-high
  • その他昇段審査全般:#shoudan

合格者

白帯