R0 CREW

Improve your programming skills

Товарищи, возникла идея о том, как проводить время с пользой, улучшая навыки программирования. Пока это всё - идея, поэтому высказывайте свои предложения, мнения, советы и т.д.

Суть идеи в следующем. В начале недели некоторым случайным образом выбирается задача по программированию с какого-то ресурса on-line judge. Её пытаются решать и выкладывают свои результаты. В конце недели берём лучший и обсуждаем, за счёт чего решение получилось оптимальным. В течение недели обсуждения также разрешены, но запрещено выкладывать готовые решения.

Критикуйте.

Буду участвовать или нет, не знаю, так как я не програмист, но маслица в огонь подолью из своего архива.

Набор ссылок вики: http://en.wikipedia.org/wiki/Category:Programming_contests

Конечно же http://codeforces.com/ и https://projecteuler.net/
а также
http://www.azspcs.net/
http://www.codechef.com/
http://www.codewars.com/
http://eudyptula-challenge.org/
https://code.google.com/codejam/contests.html
https://www.hackerrank.com/
https://helloworldopen.com/
http://community.topcoder.com/tc
https://contest.tuenti.net/Challenges
http://uva.onlinejudge.org/
http://www.pythonchallenge.com/
http://codingbat.com/
Не знаю есть ли везде онлайн жюрейка, давно дело было.

Можно даже сконструировать свой контест.
http://www.kaggle.com/competitions

Надо доступ к серваку иметь. Обычно решаешь задачу, вроде все правильно, а загружаешь на сервак падает на нескольких тестах. Да и там в основном математические задачи (очень часто олимпиадные), на знание алгоритма.

Так в том-то и суть, что на знание алгоритмов. Будем по ходу дела изучать алгоритмы. И с доступом к серверу, конечно, проще. Но практика показывает, что сервер если и валит на тестах код, то потому, что код кривой.

Полностью поддерживаю идею. :slight_smile:

Иногда не хватает входяших данных, если задание не однозначное (может по разному трактоваться).

С тестами тоже были когда то проблемы, делаешь проверку по граничным значениям (из условия) и пару тестов не проходят. Убираешь проверку все пучком.

По всякому бывает.

Да, бывает по-всякому. Потому и выберем какой-то известный ресурс, где можно и советы почитать, и условия задач проверены.

Ок, тогда давайте выберем какой-то ресурс, с которого будем брать задания. Нужно, чтоб поддерживалось достаточное большое количество различных языков программирования, задания должны быть изложены простым и понятным языком, и хорошо бы, чтоб на правильное решение в случае неудачи ну хоть что-то намекало. Например, вот не знаю я, как решать задачу. А там говорят - используй алгоритм Беллмана-Форда, а я без понятия, что это такое. Но я уже знаю, что искать.

OKOB предложил множество ссылок, есть смысл выбрать что-то оттуда, но если кто-то знает другие достойные ресурсы, то предлагайте. План, в общем, такой:

  1. До начала выходных определяемся с ресурсом, на котором будем решать задания. Т.е. пятница (вечер) или суббота (утро) - дэдлайн.
  2. Далее выбирается задание для решения. Выбираться может как рандомом, так и каким-то другим способом, предлагайте.
  3. До следующих выходных - решаем самостоятельно и обсуждаем.
  4. Следующая суббота - делимся результатами.
  5. Суббота/воскресенье - разбор удачных решений.
  6. После разбора - выбор нового задания и т.д.

В принципе, в ходе таких занятий ресурс можно будет поменять, если выбор окажется неудачным. Про выбор заданий - можно выбрать рандомно, но хорошо бы, чтоб задания хотя бы несколько недель подряд были на одну и ту же тему, чтоб тема закрепилась. В общем, пока предлагайте ресурсы с небольшой аргументацией, почему этот ресурс нам бы подошёл. А там - посмотрим.

Мне, например, нравится ресурс Тимус. Хорош тем, что задач много. Условия на русском языке, понятны, каждой присвоен уровень сложности. Также достаточно просто начать работу с ресурсом. Из минусов - задачи не структурированы по темам; бывают траблы со входными данными, как описывал выше Darwin; форум есть, но убог.

Из ресурсов: (может выше был упомянут, не заметил)
http://codeforces.ru/

Никогда у меня не было проблем с тестами и задачи струированы по темам. Так же если совсем печально и не получается решить задачи, то через неделю ( приблизительно ) авторы задач выкладывают решения (идеи, не код).

А так мне кажется более полезным может быть вид соревнований, когда дается на месяц задача с большим призовым фондом ( как правило какая-то именитая контора выдвегает задание ). Там и задачи практичнее, и интереснее. Пример таких сореваний есть на topcoder.com.

Что-то немногие хотят обсуждать тему. А кто хотел бы участвовать? А то, может, никто не хочет?

Я буду стараться участвовать, но не постоянно. Интересней порешать wargames.

Я не хочу.