Хочу працювати в google чи потрібен мені topcoder every day matters

Для тих, хто не знайомий з Topcoder - це сайт, де люди займаються "спортивним програмуванням". Тобто вирішують алгоритмічні завдання на час, в залежності від часу і правильності рішення, збирають якусь кількість балів. Хто набрав найбільше балів, той і молодець. Звичайно, картина сильно спрощена, але суть приблизно така.

Є ще багато подібних і схожих сайтів і заходів - ACM, Google Code Jam і так далі. Для зручності викладу я їх згріб під одну гребінку. Так от питання - якщо ви у відносно недалекому майбутньому, скажімо, протягом року, плануєте подаватися в Google або іншу компанію, чи потрібно вам витрачати час на Topcoder?

Мова тут піде про тих, хто готується до інтерв'ю і не бере участі в змаганнях з програмування на хоч трохи регулярній основі. Зрозуміло, що якщо ви вже маєте на Topcoder червоний або жовтий рейтинг, то до вас це не стосується. Також врахуйте, що я спортивним програмуванням сама ніколи толком не займалася, тому моя думка - воно засноване більше на досвіді інтерв'ювання, ніж досвіді підготовки на таких сайтах.

Я, правда, тоді раді не почула, і на топкодер займатися не пішла. І ось чому:

1) Завдання і алгоритми на інтерв'ю зазвичай досить типові. Дуже рідко коли треба винаходити якийсь хітровивернутий алгоритмічний "велосипед" - як раз те, що розвиває спортивне програмування. Якщо навие вирішення складних алгорімтіческій завдань на змаганнях у вас вже є - це дуже круто. Якщо немає - то ІМХО не варто витрачати купу часу на те, щоб його придбати.

2) Алгоритми, які потрібно знати для інтерв'ю - це дуже невелика підмножина того, що потрібно знати спортивному програмісту. Ну, тобто для інтерв'ю реально не треба в деталях знати 3 алгоритму пошуку підрядка з різними хитрими модифікаціями, включаючи Кнута-Моріса-Пратта.

3) На інтерв'ю важливо написати хороший код. Тобто особисто я оціню краще кандидата, який напише код за 15 хвилин, але код буде елегантний, змінні будуть названі зрозуміло, і код він протестує вголос, ніж того, хто напише код за 10 хвилин, але змінні назве "i1", "i2 ", і мені треба буде в цей код ще 5 хвилин витріщатися, щоб зрозуміти, що там взагалі відбувається. Зазвичай спортивне програмування на навик хорошого акуратного коду не особливо орієнтовано, а це дуже важливо.

4) Рішення алгоритмічних задач - це одна, нехай і досить велика, частина інтерв'ю. Але насправді готуватися треба не тільки до неї. Є ще питання на дизайн, питання на знання основ, питання на soft skills ... І до них теж треба готуватися.

Так що - чи потрібно витрачати час на topcoder в принципі? Так, цілком можна для особистого і професійного розвитку. Чи потрібно готуватися на topcoder до інтерв'ю в умовах обмеженого часу? Мені здається, що це далеко не найефективніший спосіб підготовки, так що моя порада - ні.

Ну і як бонус - чи допомагає topcoder рейтинг потрапити на роботу в Google?

1) Ймовірно так, якщо ви входите в top (10-20-30) по світу, або перемагали на якихось іменитих совернованіях.

2) Якщо ви не топ, але маєте пристойний рейтинг, то це особливо ролі не грає. Я не пам'ятаю жодного разу, щоб комісія вирішила найняти кандидата, який не особливо пройшов інтерв'ю, тільки тому, що у нього десь там якийсь рейтинг. Але сам факт гарного рейтингу означає, що за ним є реальні знання і навички - а ось це вже дуже навіть підвищує шанси.

  • Хочу працювати в google чи потрібен мені topcoder every day matters
    Google стажування: Історія Діани
  • Хочу працювати в google чи потрібен мені topcoder every day matters
    невеликі гуглоновості
  • Хочу працювати в google чи потрібен мені topcoder every day matters
    Interview tips from Google
  • Хочу працювати в google чи потрібен мені topcoder every day matters
    Що таке oncall