Мы не писали о Checkio уже довольно давно. Уйдя в очень глубокий девелоп, мы старались учесть все пожелания пользователей прежде, чем представлять следующий релиз. Но проект не прекращал работать. Мы все так же радушно принимаем постоянных посетителей и новичков ( ~ 1k ), которые не перестают удивлять нас интересными и неординарными решениями ( ~ 3k ). Мы обсуждаем с ними новые идеи и вместе внедряем их в жизнь. А теперь тем, что у нас получилось, хотим поделиться с вами.
Я решил не перегружать статью информацией обо всех сервисах сразу, а создать серию статей о CheckIO в своем блоге.
Начнем с раздела “Catalog of tasks” ( далее для простоты – просто Таски ) – своеобразного фундамента Checkio, ведь именно с него начинался наш проект. Таски представляют собой задачи, собранные в каталоге и разделенные по тематикам. Любой пользователь Checkio может выбрать задачу по душе и проверить свои силы в ее решении. На первый взгляд ничего сверхъестественного, и кажется, что CheckIO ничем не отличается от миллиона других интернет “решалок”. Но давайте взглянем поглубже на процесс решения, и вы поймете, в чем вся соль.
Итак, алгоритм решения задач сводится к следующему:
* Выбираем задачу, изучаем ее условие, примеры. В большинстве случаев Вашей задачей является написание правильной функции checkio, ее то система и будет проверять, чтобы определить правильность Вашего решения.
* Нажимаем “Solve It“ и переходим к построению кода. В редакторе Вы видите небольшую заготовку для Вашего решения. Это пустая функция checkio с описанием того, что нужно сделать, и ряд тестов для нее.
* Если после запуска программы под всеми асертами в коде вы видите вывод “All ok”, – значит предварительно у Вас все хорошо, и пора отправлять программу на тестирование – т.е. нажать Check. Система будет тестировать Вашу программу на аналогичных примерах, плюс еще на одном скрытом, который очень похож на остальные и нужен лишь для того, чтобы отсечь возможность мошенничества.
Стоит обратить Ваше внимание на консоль под редактором кода. Это удобный инструмент, который сочетает в себе возможности программирования и полезные подсказки.
* Если решение правильное, вам предлагается его опубликовать. После размещения на сайте Ваше решение будут видеть другие пользователи, опубликовавшие свои решения. Вы не сможете самостоятельно удалять либо редактировать свой код, поэтому лучше сначала почистить его, оптимизировать, потом еще раз проверить и опубликовать уже то, что не стыдно показать коллегам.
* Опубликовав решение, вы получаете доступ к кодам других пользователей и можете сравнить ваш подход с логикой других, а также обсудить и оценить решения.
Мы не ограничиваем Вас публикацией одного решения, так что если публикации других натолкнули Вас на еще более удачное или оригинальное, можете смело его размещать.
Такой алгоритм дает целый ряд преимуществ.
Первое и самое очевидное – Вы самостоятельно решаете задачу прежде, чем увидите коды других пользователей. Ведь намного интереснее найти оригинальный подход самостоятельно, чем решать задачу, ознакомившись с готовыми кодами других – так на ход Ваших мыслей не будет ничего влиять, и Вы сможете предложить действительно интересный вариант.
Второе преимущество в том, что после самостоятельного решения задачи Вы сможете более объективно и комплексно оценивать идеи других пользователей.
Третье преимущество – это обмен опытом вокруг решения. Любой из пользователей, решивших задачу, может зайти в вашу публикацию и оставить комментарий не только к задаче в целом, но и к конкретной строке, указывая неточности и возможности оптимизировать Ваше решение. Вы, в свою очередь, можете задавать вопросы и указать на упущения под публикациями других . Все мы постоянно учимся, поэтому отзыв или комментарий со стороны – это всегда плюс, ведь он создает понимание того, что Вы двигаетесь в нужном направлении, а также придает сил и уверенности для дальнейших достижений.
Четвертое преимущество состоит в определении идеального решения для каждой задачи. Решения задачи оценивают только пользователи, уже решившие ее. Каждый из участников, решивших задачу, могут голосовать за понравившийся код и, таким образом, выводить топ лучших решений.
Мне кажется, эти особенности нашего портала превращают решение задач в непрерывную и интересную игру, в которой вы совершенствуете свои навыки и набираете очки
А решать задачи на CheckIO теперь можно, используя любую из версии питона – Python 2.7 и Python 3.2 – для каждого из них составляется отдельный рейтинг задач, решений и пользователей.
Хотим также обратить Ваше внимание на то, что у нас есть несколько особенных разделов каталога Тасков. Задачи в каждом разделе отличаются дополнительными правилами и особенностями, что делает их решения еще интереснее.
Например, раздел Shorts содержит задачи, которые нужно решить как можно короче, ведь Питон имеет столько разных плюшек для сведения задачи в одну линию. В разделе Funny нужно решить задачи как можно более необычно, – забавнее, если хотите, а пользователи будут оценивать, насколько интересно и неординарно это у Вас получилось. А в разделе Games собраны классические игры-головоломки. Например, попробуйте написать решение игры “Сапер”.
CheckIO для меня – это не просто игра, позволяющая достигать все новых вершин и совершенствовать свои силы в Python, но и прекрасная возможность общаться, обсуждать, учиться, решать и выигрывать. Надеюсь такой она станет и для Вас.
Спасибо и жду Ваших отзывов.
PS: Напомню, что это лишь первая статья из запланированного цикла, так что если хотите первым узнать о новинках и особенностях CheckIO – подписывайтесь на запланированного цикла, так что если хотите первым узнать о новинках и особенностях CheckIO – подписывайтесь на RSS или следите за нами в соц.сетях.
Recent Comments