Ще давніше серед таких великих IT фірм як Microsoft, IBM, Google були популярні тести-пазли для тих, хто проходив інтерв’ю. Вважалось, що якщо людина класно вміє розв’язувати різноманітні задачки на кмітливість, логіку, ерудицію, тоді вона стане хорошим технічних працівником.
Я також, коли починав набирати перших людей до себе в команду, пробував керуватись подібним правилом. Але після кількох невдалих спроб, зрозумів, що людині на інтерв’ю потрібно давати ті завдання, які вона буде виконувати протягом звичайного робочого дня. І що далеко не кожен хороший спеціаліст по IT-шних головоломках стане хорошим працівником.
Головоломки на даний момент уже не є на стільки популярні під час інтерв’ю програмістів, як вони були колись.
Проте, подібного роду завдання і надалі є дуже корисними. Ось лише кілька причин, чому варто частину свого часу присвячувати програмерським головоломкам:
- доволі часто ті, хто вас наймають цікавляться вашим рейтингом на подібного роду порталах; визначальної ролі він не несе, але буде непоганим плюсом до вашого досвіду, резюме та коду на github.com;
- робота над нестандартними задачами заставляє вас нестандатно мислити, а це пригодиться вам і під час вашої щоденної роботи;
- розв’язувати дані головоломки можна на різних мовах, а отже, це хороша можливість спробувати інші мови (а це є кайф для будь-якого програмера);
- подібні задачі дозволяють вам знаходити нові шляхи до старих проблем;
- з їх допомогою ви тримаєте ваш мозок у хорошій формі, сфокусованим, та підвищуєте свій “problem solving” рівень;
- особливо рекомендовано програмістам-початківцям, щоб розвивати своє логічне мислення та вміння розв’язувати проблеми;
- ну, і по-любому, для маси задоволення; обмеження по часу і змагання із іншими кодерами – це завжди азартно.
Особливо рекомендую проводити час над подібними задачами, коли на даний момент у вас під час робочого дня бракує класних задач та проектів, що постійно заставляють вас знаходити нові інструменти, підходи і вивчати масу нового матеріалу для їхнього рішення. Це буде такий собі тренінг, щоб не “засохнути” 🙂
Подібного роду задачі називають спортивним програмуванням. Зазвичай, більшість ресурсів, що дозволяють займатись подібними задачами онлайн, кладуть у свою основу змагальний принцип: зробити швидше і краще, ніж інші.
5 онлайн ресурсів для спортивного програмування
Тепер, коли ми розібрались для чого можуть бути корисні програмерські головоломки, розкажу про 5 класних онлайн ресурсів, де можна попрактикуватись у вирішенні цікавих задач. На кожному із них я провів трохи часу і поділюсь своїми враженнями:
Project Euler
Project Euler був моїм першим досвідом подібних головоломок для програмістів. Лінк на нього мені скинув адмін – колега по моїй першій роботі (привіт Андрій Томчук ;-). В ті часи я лише починав свою програмерську кар’єру і проводив багато часу на подібних ресурсах.
Даний ресурс є одним із найстаріших у своєму роді і ще й досі залишається одним із найпопулярніших сайтів із челенджами для програмістів. Кожного тижня на сайті додається одна нова задачка і на даний момент там уже є значно більше, ніж 450 задач, над якими можете поламати собі голову.
Задачі є найрізноманітнішого рівня. Підійдуть і початківцям, і впевненим головоломщикам. Під час розв’язування задач матимете нагоду дізнатись багато нового про свою мову програмування. Класно те, що ви працюєте над задачею використовуючи вибраний вами інструментарій і працюючи у своєму темпі.
Заходіть прямо на сайт проекту, або можете почитати про нього більше на сторінці вікіпедії.
Top Coder
TopCoder – це другий дуже популярний ресурс для програмістів. Особливість даного сервісу у тому, що там можна заробити реальні гроші розв’язуючі складні завдання. І так, завдання там дійсно доволі таки непрості. Для початківців рекомендую починати з Project Euler.
Крім того, багато світових IT компаній звертають увагу на даний ресурс при пошуку нових талантів.
Спільнота сайту просто величезна. Кажуть мільйони користувачів уже є зареєстрованими у їхній базі.
На сайті є змагання денні, а також тижневі. Обидва складаються із доволі складних завдань. Думаю потрачений час окупиться. Принаймні ознайомитесь із тим, які завдання розв’язує світова спільнота програмістів та математиків.
Hacker Earth
HackerEarth надає цілий інструментарій з перевірки ваших розв’язків. Їхній софт може перевіряти ваші технічні та логічні навики. Також дана платформа допомагає фірмам у пошуках талановитих спеціалістів.
Так само як і TopCoder, HackerEarth пропонує, здебільшого, доволі складні завдання. Тому, знову ж таки рекомендую почати із простіших задач. Наприклад, відвідавши Project Euler.
CoderByte
На CoderByte ви можете брати участь у форумі і задавати ваші запитання, що виникають в процесі розв’язування тієї чи іншої проблеми. Активна спільнота програмістів відповідає майже на кожне запитання. Це дозволить навіть початківцям зробити хороший прогрес над цікавими і непростими завданнями.
Сам проект був запущений давненько, а пізніше вийшов на Kickstarter та успішно назбирав необхідну сумму інвестицій. З того часу почав активно розвиватись.
Дуже класний ресуср для програмістів початкового та середнього рівнів.
Daily Programmer
Daily Programmer є звичайною групою на популярному сервісі Reddit. Там регулярно постяться і обговорюються цікаві задачки. В останній раз, коли я туди заглядав, там постили 3 задачі на тиждень. І кілька сотень існуючих задач уже там лежать.
Кожен ваш коментар до задачі переглядають учасники групи і надають свою думку щодо вашого розв’язку.
Дуже непоганий ресурс, щоб навчитись нового і потусуватись із хорошими програмістами.
***
Як бачите, усі ресурси, що навів у даній статті є англомовними. Тому знання англійської є необхідним, щоб приймати участь у розв’язуванні цікавих задач. І, якщо знаєте подібні сервіси, але на українській або російській мовах – діліться посиланнями. Оновимо разом вищенаведений список.
А що вам допомагає тримати вашу здатність розвязувати складні проблеми у гарній формі?
С инетерсовм почитал, продолжаю учить html pyhon, теперь вот еще английский надо поддятивать, горизон расширяется, как бы осилить 🙂
Project Euler росiйською euler.jakumo.org
дякую!
Віталій, яким RSS рідером ви користуєтесь, адже google reader закрили і достойної безплатної альтернативи знайти не можу. Порадьте щось.
feedly.com, безкоштовної версії цілком вистачає
e-olimp.com.ua
ага, класно. знайшов список їхніх задач http://www.e-olimp.com.ua/problems дякую за лінк!
checkio.com – интересные задачи
бачу вони в стилі ігор. зараз досить популярно. шо-шо а в ігровому режимі завжди цікаві. ми ще з дитинства це знаємо ))
Хей, а як же checkio.org ? ! український стартап дуже достойний навіть як для світового рівня. Саме задачки з python з різними рівнями складності + елементи гейміфікації. Вартісна штука
ага, вже мені про нього повідомили. не вкурсі. скільки там зараз користувачів?
М-м-м, після codeacademy і курів prometheus можна продовжити тут.