Путь от O(n!) до O(1)

mbaev 10.11.2016, 09:43

Мой коллега Денис Соболев прислал интересную подборку сайтов/сервисов, позволяющих подтянуть навыки в программировании. С его разрешения, я положу эту подборку здесь.

--

В целях профилактики алгоритмических навыков среди разработчиков, ниже приведены ресурсы, которые помогут вам пройти путь от O(n!) до O(1).

Зарубежные ресурсы

  • https://projecteuler.net/
    «Project Euler is a series of challenging mathematical/computer programming problems that will require more than just mathematical insights to solve. Although mathematics will help you arrive at elegant and efficient methods, the use of a computer and programming skills will be required to solve most problems.»
    Очень крутые задачи, требующие глубоких знаний как в математике, так и в программировании. В некоторых компаниях можно использовать ссылку на свой аккаунт в своем резюме. Знающие люди оценят.
  • https://www.codewars.com
    «Codewars is a collective effort by its users. They are creators - authoring kata to teach various techniques, solving kata with solutions that enlighten others, and commenting with constructive feedback. The leaders among them moderate the content and community.»
    Можно использовать легкие задачи в качестве практики при изучения нового языка. Сложные задачи требуют глубоких знаний в языке. Однажды одну задачу решал неделю. Когда решил, чувствовал себя крутым.
  • https://www.codingame.com
    «At CodinGame, our goal is to let programmers keep on improving their coding skills by solving the World's most challenging problems, learn new concepts, and get inspired by the best developers.»
    Красивая реализация работы алгоритма. Все сделано в контексте игр.
  • http://www.codeabbey.com/
    «We believe that three things lead to success: Practice, Practice and Practice!»
    Встречаются прикольные задачи. Например, автоматизированная посадка ракеты на Луну.
  • http://rosalind.info/problems/locations/
    «We hope that Rosalind will inspire a new generation of bioinformatics students by attracting biologists who want to develop vital programming skills at their own pace in a unique environment as well as programmers who have never been exposed to some of the stimulating computational problems generated by molecular biology.»
    В основном, алгоритмы на строках. Если хотите прокачать это направление, то вам определенно сюда.
  • https://www.reddit.com/r/dailyprogrammer/
    «Dailyprogrammer is about challenging programmers of all skill level with weekly programming challenges. 3 challenges a week are posted at increasing difficulty. Solutions are peer reviewed and redditors can ask for the community for feedback and comments.»
    Очень оригинальные задачи. Очень оригинальные решения. Встречаются даже решения на изотерических языках, например, Piet.
  • https://www.hackerrank.com/
    «The HackerRank team is on a mission to flatten the world by restructuring the DNA of every company on the planet. We rank programmers based on their coding skills, helping companies source great programmers and reduce the time to hire.»
    Задачи классифицированы по типам: математические, динамическое программирование, «жадные алгоритмы», структуры данных, ИИ, алгоритмы на строках. Есть даже задача, требующая реализовать подсистему вывода типов на функциональном языке программирования. Проходят конкурсы. Можно выиграть призы.

Русские ресурсы

  • http://codeforces.com/
    «Соревнования по программированию 2.0»
    Для тех, кто считает отечественную школу программистов лучшей. Будете соревноваться с легендами современного спортивного программирования. Проходят конкурсы, бывают разборы задач. Спонсируется Павлом Дуровым и его Telegram.
  • http://acm.timus.ru/
    «Timus Online Judge — это крупнейший в России архив задач по программированию с автоматической проверяющей системой.»
    Кто учился на АСУ в СГАУ (Самара) у Михеевой Татьяны Ивановны, тот должен был слышать про этот сайт.