新しい方法での古いホリバー:オリンピアードのプログラマーは時間とともに変化しますか

5月19日、サンクトペテルブルクのサンクトペテルブルク州立大学チームは、ACM ICPC 2016国際学生プログラミング競技会優勝者となり 、最終戦はプーケットで開催されました。 受賞者は、IBMリサーチオフィス(コンペ主催)およびその他の国際IT企業でのインターンシップへの招待を受けました。



ロシアのチームがそのような大会でprize望の的となる規則で賞を獲得することは秘密ではありません。 しかし、実際の生活で彼らはどうなりますか? どの参加者がインターンシップへの招待を受け入れますか、または真面目な会社で働いていますか? より深刻なのは、彼らが申し出を受け入れた後に彼らに何が起こるかという問題です。 オリンピアードのプログラマーは並外れた性格であることは一般に受け入れられています。



一方では、世界クラスの企業にはそのような人々(未来のロックスター)が必要であり、他方では、これらの非標準的な従業員は、チームワーク、時間通りの仕事、永久的な仕事(遠隔であっても)、企業の非常に標準的な協力条件を満たす必要があります文化。 従属の遵守に関しては、ここでは若い「天才」が耳を傾け、最も重要なことには、しばしば「天才」ではない直属の上司の指示に従うことが求められます。



「オリンピックプログラマー」をテーマにしたホリバーの夜明けには、「産業用アプリケーション開発に適さないオリンピック」と「世界のIT企業の10の半分のオリンピック活動がサポートされている」という2つの極論が配布されました。



ある時点で、ホリバーは落ち着きましたが、ロシアのオリンピックはトーナメントに勝ち続け、西洋企業から定期的に求人を受け取ります。 それでも、彼ら全員がそのような提案に同意しているわけではありません。 ロシアの脳は海外に流れてはならないと考えている人がいます。誰かが大学院や大学院で勉強を続け、科学的な仕事をしていることもあります。



人的要因



サンクトペテルブルク州立大学のオリンピックチームは、ソーシャルネットワーク「VKontakte」の開発に参加したことで知られるAndrei Lopatinによって準備されました。 学生を選手権に向けて準備する際、ロパチンは才能だけでなく、人的要因も考慮に入れようとしました。 彼は、真のチームワークが非線形に勝つ可能性を高めることを理解していました。 チームワークとは、チーム自身の利益よりもチームの利益を設定することであり、これはタスクの委任、彼らの弱点の認識、そして何らかの形で彼ら自身の無力さを受け入れることです。



そのような仕事が構築されていなかった場合、大学チームは、それぞれが自分の上に毛布を引っ張る唯一の人格である「認識されていない天才」の束に変わる可能性があります。 ちなみに、このような行動により、個々のオリンピアードは「難しい」従業員の評判を得て、ワークショップでより意識の高い同僚に影を落としました。



1年前、ロパチンはオリンピアードの仕事のスキルが役立つと言いましたが、商業製品での作業への適応は常に困難です。「会社がスタートアップに近づくほど、このプロセスは速くなります。 そして、VKontakteはそのような雰囲気に長い間住んでいました」と彼は付け加えました。



今年の5月23日、ロパチンは出版物「会社の秘密」と話しました。

-私は、企業がよりオープンで、コンテストやオリンピックに参加すべきだと思います。 企業の人々は、常にプログラマーと会ってコミュニケーションをとる必要があります。 結局のところ、オリンピアードとは何ですか? これは、プログラマーになる方法の1つです。 多くの人は、オリンピックを現実から離婚したかのように批判しています。 これはそうではありません。競技会で解決されるタスクは、いくつかの大きなタスクの一部です。


(主催者の努力による)競争と(コーチの努力による)参加者が(ロパチンが説明するように)現実に近づき続ける場合、IT企業が適切でコミュニケーションのある「天才」を採用する可能性は高まり続けます。 この場合、オリンピアードに否定的に傾く人の割合は減少します。



もう1つのことは、通常のIT企業は、Google、Microsoft、そしてYandexでさえ現実から離婚したと考えることができるということです。 彼らは平凡な生存について考える必要はありません。 同様に、彼らは実験を実行する余裕があり、単なる人間を「引き寄せる」ことができないプロジェクトに立ち向かうことができます。 この場合、オリンピアードは完璧にフィットします。 さらに、これらのプロジェクトのほとんどはまだリリースに至らず、1つのプロジェクトが終了した後、オリンピアードは次の「有望な」作業現場に移されます。(N + 1)回目の試行後に技術的なブレークスルーが発生した場合はどうなりますか?



-プログラマーの間で、起業家的思考を持つ人々、自分のビジネスを開きたい人々に気づいていますか?

-私の環境の中では、トピックは興味深いものの、そのようなものはほとんどありません。 どういうわけか、それについて考えることは慣習的ではありません。 たぶん、この傾向を逆転させる方法について考える必要があります。


私は、自分のIT会社を設立し、今でも主導している少なくとも1人のオリンピアードプログラマーに会ったことを自分で付け加えます。 彼は2005年にAltSTUチームに入社しましたが、高校では他のプロジェクトに切り替えました。最初はパートタイムのiOS開発者を獲得し、次に内務省のカスタムプロジェクトを完全に開始しました。 大学を卒業し、クラスメート(ちなみにオリンピアードではありませんでした)とともに、彼らは独自のプロジェクトを立ち上げ、2年後に本格的なIT会社になりました。 おそらくこのケースは例外です。



オリンピアードプログラマが気に入らないもの



Habrahabrサイトのユーザーの1人は、個人的な経験に基づいて、応用開発に関与する企業のオリンピアードプログラマーとの協力の否定的な特徴を策定しました。



効果的なアルゴリズムまたはプロセッサの内部構造の知識は、コードが可能な限り効率的であるべきだと考えさせます。 したがって、最適化に時間がかかりすぎると、コードは完全にサポートされなくなり、拡張性がなくなり、エラー耐性が高まります、と彼は文句を言います。



そして、これはおそらく苦痛からです:

•迅速でリソースのないコードをすぐに書こうとする試み。

•コードからすべてを絞り出し、他の指標を損なうことへの欲求。

•O(n ^ {2})の代わりにO(n)を信じるか、2を乗算するすべての演算をビット単位のシフトに置き換えると、プログラムがおかしくなります。


不滅の神話



すべてのスポーツプログラマーがGoogle、または少なくともYandexに行き、検索アルゴリズムなどに熱心に取り組んでいるという一般的な神話があります。 ポータルdev.byは、21のACM ICPCファイナリストにインタビューしました 。 そのうち、Microsoftで1人、Googleで1人、Yandexで1人のポジションがありました。 残りはあまり発展していない会社で働いています。



しかし、Geektimesにはオリンピアードの別の物語があり、この神話を確認しました。 さらに、この人物のAlexander Kuprinは、最初にYandexに行き、次にGoogleに行きました。



彼の話の中で最も興味深い断片を以下に示します。

理論的には、すべてがそれほど怖くはありませんでした。 実際には怖かったです。 非常に多くの不慣れなことが私に降りかかったので、git [Gitリポジトリ]を使用する必要さえありませんでした-みんなリポジトリを一度ダウンロードしてからローカルですべてをしました。 今後は、夏季インターンシップの最終日に[Yandex]で、上司のメールにコードを送信しましたが、どこにも実装していませんでした。



ボスは魂でタスクを拾いました。 文書の類似性を比較し、類似性の定義を導入し、それを十分に迅速に行うことを学習する必要がありました-10個以上の文書があるという前提で。



悲しみを半分にし、神の助けを借りて問題を分解し、解決策を見つけました。 彼らはさまざまな記事を勧めました。 しかし、本当のオリンピアードは何をすべきでしょうか? もちろん、あなた自身のものを考え出してください!



私は記事を読み、約一週間考えました。 それからターニングポイントがありましたが、それを今でも誇りに思っています。解決策を思いつきました。 将来的には、グラフを作成して上司を説得するために実装する必要があったアナログよりも悪くないことは確かに実践により示されました。



その結果、最初のレビューで、300行以上のコードで構成される何かを「送信」しました。 私の弁護では、これらの300行以上がタスクを完全に解決したと言えます。 男たちはヒステリーで戦った。 Artyom Babenkoは血まみれの涙で泣き、5回以上は私のコードを受け入れないと言いました。



その後、私のコードが成長し、拡大しました。 機能が変わらなかったことを考えると、なんとなく愚かで奇妙なものでした。 すぐに5回疲れ果て、別のボスであるYegor Samosvatがかなりの時間を私と過ごしました。 私は馬鹿のように感じ、賢く見えないという事実にもかかわらず、私は何が起こっているのが好きでした。 実際、私は快適な状態と戦闘状態の両方で勉強しました。



一方、作業はゆっくりと終わりました。 全体的に私が管理したように思えます。 可能な限り素晴らしいものではありませんが、管理されています。 連絡先を失うことのないように、彼らは私を冬のどこかに遠く連れて行くと約束した。


予測



オリンピックに関する意見はまだ異なっています。 そのような議論の反対者は、何人の人々-非常に多くの意見、すべての人々が異なっていると言うことができます。 ただし、これらの意見やストーリーに基づいて、重要なビジネス上の意思決定を行うために、同じIT企業や予測に関心のない他の企業にとって必要な、平均的で最も可能性の高い傾向を特定できます。



研究と調査(Universumの調査やSmart Startの調査など )の背景に対して、現在の傾向は、コンピュータープログラマーを含む学生がより実用的で「現実的」な商業的傾向にあるというものです。



この物語はオリンピアードのプログラマーに関連していますか? 時間の課題に応じて変化しますか? または、多くの人が考えるように、彼らは彼らの「平行宇宙」のどこかに住み続けていますか?



All Articles