2023-08-10

AtCoder水色で業務アルゴリズムカンストするが、水色だけでは業務アルゴリズムは使えない

私は実務では茶色~緑くらいのアルゴリズムしか出てこないと思っている。

とはいえ、水色くらいあれば、そのあたりのアルゴリズム解決可能問題責任を任せられるかというと、チーム開発において実態は違うと思っている。茶色課題解決必要なのは、水色以上のアルゴ力に加え、実務の能力コミュニケーション力、政治力必要だ。

前提として、何でも課題アルゴリズム解決しようとする姿勢正義だとは到底思わない。実際の課題アーキテクチャとして解決すべきものや、ハードウェア性能を見るべきものそもそも課題要件定義レベルで見直すべきもの存在する。

しかし、純粋アルゴリズムでの解決が求められる場合において、水色の実力のみでは、コミュニケーション上の問題課題解決できない。

水色程度だと、茶色程度の自明問題に対して、同僚から筋が悪く性能が劣化するようなアルゴリズム案を提案されても、何故問題かの説明に十分な説明コストを払うことが要求される。

基本的CS習得済みの相手でも、競技経験がない相手だと何故問題か(何故自分提案する内容の方が優れているか)が往々にして理解されないので、このコミュニケーションにはしばしば衝突が起こる。

そういった衝突は、実際のパフォーマンスの計測で押さえつけるものではない。「分からいか客観的比較」したものでなく「自明だが理解されないので、証拠を突きつけて糾弾する」ような形になるためだ。

競技勢は、水色に対して「お世辞でアルゴリズム凄いですよね」と言うことはある。一方で「でも上位ではないんでしょう?」という評価なので、「自分直感とは違うけど、あの人が言ってるんだから正しいのだろう」と思ってくれる可能性が低い。ベテラン戦士であれば自身で一問も問題を解かずして「お前はデータ構造アルゴリズムが分かってない」と非難することすらあるだろう。

そう言う意味で、茶色程度のアルゴリズム責任を持って担当するには、非競技勢にも上位層と思われる程度の称号必要だと思う。最も分かりやす称号は「レッドコーダーである

ただ、資格で黙らせる行為はバッドコミュニケーション典型所業である

上位層でない競プロer茶色程度のアルゴリズム責任を持つためには、まず実務能力コミュニケーション力、政治力を鍛える必要があるだろう。

  • 昔から、大抵の業務ケースでは可読性のほうが高速化よりも重要であると言われていて、変にアルゴリズム厨が難解コードを書くと誰も保守できない事態になる アルゴリズムにこだわる...

記事への反応(ブックマークコメント)

ログイン ユーザー登録
ようこそ ゲスト さん