Web系エンジニアのアウトプット練習場スマートフォン用の表示で見るWeb系エンジニアのアウトプット練習場エンジニアリングと書評が中心。競プロ)とは、プログラミングコンテストで行われる競技の一種である。(Wikipediaより)なぜ競技プログラミング?前職と違い、今の会社は周りにいるエンジニアが超少ないです。自分の力を測る物差しがないのです。なくとも客観的な視点で自分の評価をしてほしいという思いは以前からあり、前職時代は始めようと蟻本まで買ったものの、時間がなく放置していました。今の職場は幸い時間は自由なので、挑戦してみようと思った次第です。僕の中では「競技プログラミングといえばこれ」といったイメージです。競技に参加すると、自分の実力を表すレートが計算され、レートによって色でクラス分けされます。公式によると、以下のようにクラス分けされるようです。Division2にクラス分けされます。レートが1200以上であればDivision1、レートが1200未満かレートが付与されていない人はDivision2となり、Division1のほうが難しい問題が出題されるようです。Coderと呼ばれ畏怖される(?)存在になれます。最終目標はもちろん赤色ですね。TopCoderは様々な競技方式で競技を開催していますが、最も一般的にはSRMという競技方式です。SRMSRMでは以下の4つのフェーズをこなすことになります。Phaseそれぞれのフェーズについて、公式サイトの記述に基いて概要をまとめておきます。RegistrationこのフェーズではSRMへの参加を意思表示します。begin.開始3時間前から受付を開始し、5分前に締め切られます。公式では、余裕を持って15分前には登録することを推奨しているようです。PhaseSRMのメインフェーズですね。minutes.コーディングフェーズでは、3種類のレベルの問題が参加者全員に出題されます。それぞれの問題にポイントが付与されています。ポイントは正常にコンパイルされたコードを提出した段階で参加者にされます。問題を開いてから提出するまでの時間に応じて付与されるポイントが決まります。コーディングフェーズは75分間です。Phaseチャレンジフェーズは他人のコードを読む良い機会となります。minutes.チャレンジフェーズでは他人のコードのあらをさがして、正常にパスしないようなテストケースを与えます。チャレンジが成功すると、他人の獲得ポイントを無効にでき、かつ自分は撃墜ポイント50ptを得ることができます。チャレンジ失敗は-25ptとなります。チャレンジは自分のポイントが余っているときにしかできません。チャレンジフェーズは15分間です。Phase.チャレンジが成功していない(=生き残っているコード)全てに対してシステムチェックが行われます。ここでこけると、そのコードで獲得したポイントは全て失われます。TopCoder公式が用意したテストケースの他、成功したチャレンジのテストケースでもチェックが行われます。ここが通過できれば晴れてポイント確定となります。まとめると・・・コーディングフェーズでは速く的確にコードを書くことが必要になります。間違えると結局ポイントは得られないので、速さよりは正確さに重点を置いたほうが良さそうです。チャレンジでは失敗するとマイナスポイントを喰らってしまうので慎重に行いましょう。公式によると、月に2-4回開催されるそうです。calendarから確認可能です。右下の+Googleカレンダーボタンを押すことでグーグルカレンダーに登録することができます。グーグルカレンダーに登録すると自動的に日本時間での表示になります。競技プログラミングを行うことで、以下のことが身につくことを期待しています。頭の回転の速さ他人のコードを読む力また、冒頭に述べた通り、客観的な評価(レート)を得ることができます。今年中に黄色まで行きたいなぁ。前回の記事を参考にどうぞ。月別アーカイブリンクはてなブログブログをはじめる週刊はてなブログはてなブログProはてなブログをはじめよう!h-sakanoさんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。