はてなキーワード: 競技プログラミングとは
ある方が「遺書だったもの」というブログ・エントリーを公開してはてなブックマークで注目を集めています。
https://kirimin.hatenablog.com/entry/2024/09/04/001242
一読しただけで大変な状況の中ご本人が精一杯頑張ってきたことが伝わってきました。
普通の人は不登校になったあとに就職したり(それもB社側からの打診で正社員に!)、アメリカ出張、趣味でイラストや競技プログラミング、といった活動は出来ません。
なにより踏みとどまるという意思を持たれていることが一番素晴らしいと思います。
ブログの内容について、アドバイス、というより考えてみるきっかけを提供できればと思い、以下に書いておきます。
"アドバイス"という言葉は上から目線のニュアンスがあるため私は嫌いですが、分かりやすさのためにあえて"アドバイス"と記載しております。
"アドバイス"の手がかりとして、世の中の多くの人たちと異なっている点を特徴として捉え、そこに着目して述べていきます。
多くの人は、自死を取りやめた場合は遺書を公開しません。ここが最大のポイントです。
他にも、元カノの話や学校で友達を作りたかった話、インターネット掲示板、会社の同僚との関わりなど、コミュニケーションについて多く言及していることもかなり特徴的です。
心理的な安定のためには、インターネットで構わないので、コミュニケーションの場への参加を増やしてしてみると良いかもしれません。
私も同世代で、2005年~2007年ごろには2chで政治家をおちょくるコラージュ写真を作って遊んでいたので、当時の雰囲気は知っています。当時と似たコミュニティはもはやほとんどなく、ネット掲示板よりもLINEのオープンチャットあたりのほうが雰囲気が近いかもしれません。
仕事やそれに近い競技プログラミングの能力・モチベーションでご自身の価値をはかる表現が目立ちます。
仕事への情熱はご自身の能力開発、社会貢献、金銭獲得のために素晴らしいことです。
一方で能力・モチベーションで全人類のトップに立つことは出来ない以上、どこかで自分の能力に見切りをつける必要があります。
それが今なのかな、と漠然と感じました。
人には能力の限界・投入できる時間の長さの制約があり、その制約のもと各自それぞれのペースで頑張るしかなく、他に選択肢はないため、ある面で人より劣ることを認めざるを得ません。
しかしだからといって人間として価値がないとか、死ぬべきだということは論理の飛躍です。
劣ることを認めたうえで、それがどうした、自分が死ぬ必要はないじゃないか。むしろ優れた人たちが素晴らしい社会を作ってくれてありがたい、と感謝すればよいと私は思います。ご自身にもその気持があるはずです。その証拠にA社のリーダー、B社のプロダクト、元カノ、といったものを称える文章があります。これは称賛の気持が奥底にあるからだと思います。
というより本当は人間という存在自体が自他に価値を評価される必要がなく、各自勝手に生きて構わないと私は思います。評価という行為自体が発生しないのが通常の状態であり、仕事では給料の分配という特別な目的のために上司が評価するという例外的なシチュエーションが発生していると私は理解しています。つまりそもそも職場以外での「自己評価」は必須ではないと私は考えています。
そのうえで、それでもなお自己評価が必要であれば、いくつもの会社で働くことができ、しかも先方から声をかけてもらっているというのは素晴らしいことだと思います。普通の人には声をかけませんよね。仕事の以外の面に目を向けると、イラスト、VR、他の投稿ではお母様にテレビゲームを教えたりと多方面に活動している点が素晴らしいと思います。競技プログラミングで高レート帯の方々はこうした活動と両立できるのでしょうか。ほとんどNoだと思います。総合的に見れば特別劣っているように私には見えません。
この点は次の第3の特徴に続きます。
文章には「多くの人から嫌われ、失望され、迷惑をかけながら生きていたくない。」と書かれています。
しかしきりみんさんは、嫌われている人・失望されている人・迷惑をかけている人に対して、死ねとは言わないと思います。そういう人柄だと文章で分かります。
それなのに自分に対して厳しいのはダブルスタンダードで、ご自身を不必要に傷つけているように見えます。ご自身に対して厳しすぎるダブルスタンダードを持つ理由は何でしょうか。ダブルスタンダードを持つメリットはあるのでしょうか。これについて考えると楽になれる部分があると思います。
きりみんさんは、自分より仕事ができない人に死ねと言わないと思います。競技プログラミングが下手な人に死ねと言わないと思います。その理由は劣っていても死ぬ必要はないとご自身が理解しているからです。そうであればきりみんさんが死ぬ理由もないと私は思います。
「月刊・競技プログラミングは役立たない」がはじまったのは2010年ごろでAtCoderができるより前なのよ
昔からやっていた人たちは仕事や趣味でプログラミングを覚えて遊びとしてやっていたから
役に立たないといわれても「たしかにそうだ」と単純に同意していた
上の世代の競技プログラマーは仕事や趣味で活躍している人たちで
ところが下の世代はコンテストで活躍すれば先輩のようになれると思ってはじめているから苦痛に耐えて努力していて
自分たちは優秀だと思うんだけど、どこかでもしかしたらそうじゃないかもしれないという不安を持っている集団ができあがったんだ
だから、ことあるごとに自分たちの先輩はグーグルで活躍している、君たちもできるかもとかいうでしょ
どっかで見たけれども最近はグーグルも競技プログラマーをあんまり取らないらしいね
さらに、AtCoderの問題の質がよくないからレーティングに信用がならない
ICFPプログラミングコンテストというコンテストで単独優勝した人だと思うんだけど
その人はAtCoder水色
「上には上がいることを知っているから謙虚です」とか言っているじゃん
あれ、おかしいよねー
AtCoderのレーティングは競技プログラミングの能力の証明として信用できないので謙虚ですっていわないと
そうなると「競技プログラミングは役立たない」と言われた時の反応が変わってくる
プログラミングできることをどうやって証明するか?その一つが競技プログラミングであって、それ自体は素晴らしい取り組み
それだけでプログラミング言語を読み書きできるってことがわかるわけよ
普通、そういう客観的な指標を持ってる奴いないよ?基本情報とか応用情報なんかでもプログラミングできることは証明できないからね
会社の人事は「本人はプログラミングできるって言ってましたー」程度で採用して良いと考えてる節まである
採用実績さえ上げれば中身なんてどうでも良いと思ってる
俺は役にたつと思ってるよ(チュッ
正解が「数学的」に決まるところ。たとえば「1■1=2 のときに ■を答えなさい」というときに競プロは■を答えるだろうし、それを早く答えて悦に入るだろう。
それもいいけど、いちど数学的に答えが決まっちゃう問題はライブラリにまとめられて、一般的なコーダはなにも考えなくてもインポートして処理できちゃうわけ。上の例えだとふつーのプログラマなら「枯れたライブラリをインポートして、正しく答えが出ると確信できるなら『答えは正しいとか考えなくても』それを使って対処する」ので、データの振る舞いとか気にしないで済む。たとえば SQL なんて、実行時計画という「アルゴリズムを常に指定するなら不要な」話題があるのだけど、データ量によって適切なアルゴリズムが変化するから仕方ないし、概ね RDB は賢いのでヒューマンが考慮するのは問題がある場合だけなのだ。よって、競技プログラマが生産性を確実に上げるという根拠はない。
もちろん、アルゴリズム知識を身につけるのは大切だし、クヌース先生も書いてたけど分散処理アルゴリズムはフロンテイアだろうよ。というか、暗号分野やセキュリティの領域や、条件が過酷な場合(宇宙線の影響下とか、メモリの少ないエッジコンピューティングとか)だと、アルゴリズムの研究や追求は大切なのは今も同じだ。でも、競技プログラマが新規にアルゴリズムを開発したり、セキュリティに向上したという話は聞いたことがないが、レッドコーダー諸君は自前で創造して使われた実績はあるのだろうか?
ついでに聞いてみたいのだが、競技プログラマたちは「マルチスレッドなコードで早く書こうとしないのはなぜ?」「そもそも、競技プログラミングで使うコードは便利なスニペッツがあるけどそれってチートでは?」「ときどき正規表現で解く問題があるけど、そのときの計算量は無視してない?」という矛盾を抱えているのてはないか?と思うのだが如何か。
究極的には競技プログラミングに必要な知識というのは、産業用途で要求される知識の一部でしかないのが問題なんだと思うよ。ほら、アレだよ、むかし話題になった「数学だけデキる人向けの東工入試をやったら、英語ができなくて卒業できなかった」という童話に近いんだよ。競技プログラムってインとアウトしか見てないブラックボックステストだから、ここだけしか計算機科学の知識が無いというヤバ人材の育成しかなってないのだろうな。
コーディングインタビューするときにその辺のセンスを問うような問題を出すようにはしてるね。
最近の採用はインターンからが多そうだから、そもそも一緒に働いて難がある人は採用されないようになっている気がする。
入社してからは可読性・保守性大事って相当叩き込まれる気がする。
コードそのものの書き方もコードコメントもそうなんだけれど、コミットログとかレビュー依頼とかからも気を付けるようにしている。
レビュー依頼でもその変更をするにはどういう背景があって、何をやっていて、選択肢がある場合はなぜこの選択肢を選んだのかについて説明する。
競技プログラミングをやる人を採用するにしても、末端のプレイヤーではなくて競技プログラミング用のライブラリーを保守・メンテナンスしている人を採用したほうがいいと思う。
保守・メンテナンスには長期のメンテナンスという視点がどうしても不可避だと思うので、産業としてのプログラミングを割と理解しやすいかすでに理解していると思うので。
宮廷修士M1、現在就活中。絶賛インターン先を探しているところ。
逆求人でインターン先を探しているわけだが、ジ◯スタイラスもサポ◯ターズもキ◯リアセレクトも、ぜーーーーーーーんぶ自己PRポイントとして競技プログラミングのレートを書かされる。
仕方ないから一度受けたけど、そもそも休日の21時頃じゃないと参加できないのがダルいし、半分提出できたからこれでええやろと思ったら「参加回数が少ないので予測より低いレーティングになります」とか言われて強制的に最低ランクになるしで本当に最悪だった。
出題内容も論理的思考力を問うとかコーディングスキルが問われるようなものじゃなく、「過去問対策しておけば解けるし、知らなかったら(時間内に解くのは)無理」みたいなクソ問題ばっかり。
調べてみたら、攻略するためにはC++を使い、事前にテンプレを用意しておく必要があるらしい。
今どきC++の開発環境なんてどこにあるんだよ(いや無くはないんだろうけどさ)。using namespace std;なんて実務で書くわけねーだろ。
テンプレが必要って、それ結局覚えゲーってことじゃねえか。いや覚えゲー以下だよ。カンペ持ち込み可能な試験ってことじゃん。
これでコーディング力の一体何を測れるというのか。時間の無駄すぎる。本当にしょうもない文化。
聞くところによれば、最低ランクの一つ上の緑に到達するには、半分正解を8回、つまり2ヶ月はこのゲームに参加し続けなければいけないらしい。
それだけの時間があったらWebアプリの一つや二つは作れる。ゲームジャムに参加したって良い。
就職を間近に控えた現役競プロerとしての意見を匿名で書きたくなった。
競技プログラミングは役に立たない今月号で一番クソだなと思ったのはchokudaiさんのこのツイート。
ちなみに競プロ上位勢に結構高圧的っぽい人がいるのは事実で、それをかっこいいと思って真似してる人結構いると思うんだけど、あれはマジで「リアルでは擬態できる高度なコミュ力を持ってて生き残るタイプ」か「マジで仕事どうでもいいタイプ」の2パターンなので、迂闊に真似しないようにね……。
https://x.com/chokudai/status/1805846710671097998
いやいやいや、「上位勢に高圧的な人がいるのは事実」って、それをあなたが認めちゃいかんでしょ…
代表なんだから「そんなtoxicな奴はうちにいないし歓迎するつもりもありません」くらいに言ってくれるもんだと思ってたからビックリした。