Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

На каких сайтах можно порешать задачи на Python Cи или С++?

адрес Голоса Ученик (23), закрыт 10 месяцев назад
Посоветуйте ресурсы которые помогли бы потренироваться в знании данных компьютерных языков
Лучший ответ
Реципиент Гений (79700) 11 месяцев назад
Знание языка не может быть целью решения задачи. Вот ты придёшь и скажешь заказчику: "я лихо умею крутить циклы на C++ и знаю, как пользоваться std::deque", и что он тебе ответит? "Да мне вообще это параллельно, ты мне лучше помоги обработать 10000 заказов на изготовление табуреток или раскидать 1000 пицц на минимально возможное количество курьеров с доставкой в 5 соседних районов".

1) Сначала ставится задача предметной области.
2) Затем проектируется технологическое решение: компонентная архитектура, выбор языков, выбор СУБД, средств сетевого взаимодействия и др.
3) Потом задача формулируется в виде системных требований с учётом принятых решений в п. (2).
4) Потом проектируются внутренности самих компонентов, БД и прочего, и в том числе - алгоритмы.
5) И только потом пишется код на выбранном языке.

На долю разработчика выпадают шаги (4) и (5). Т.е. нужно готовые системные требования превратить в эффективное решение в коде. Синтаксиса языка было достаточно в те времена, когда инженер проектировал, а кодер строчил код. Сейчас ситуация другая: выделенных инженеров для проектирования почти нигде нет, поэтому разработчик либо проектирует сам (если умеет), либо стихийно пишет кривое-косое через раз работающее медленное решение, наспех прикрывая свою пятую точку "лучшими практиками" и стилем кода. Всё это оплачивается, естественно, по нижней границе рыночных ставок.

Отсюда вывод, что изучать надо, "как правильно программировать", а не "на чём программировать лишь бы как".

Из российских ресурсов мне пока ничего путного не попадалось. Всякие там "учи.ру" дают задачи, перегруженные лирикой: 80% текста задачи посвящено тому, что какие-то там мудрецы, волшебники собирают какие-то клады, Петя празднует день рождения и прочий бред. Голова должна работать на алгоритм, а не на запоминание чьих-то натужных выдумок. Хотя, алгоритмы там время от времени попадаются дельные.

Яндекс-практикум, от которого тут часто публикуют задачи, примитивен и ориентирован на синтаксис. Сделать какую-то хрень циклом for, в 10000-й раз прочитать массив со стандартного ввода...

Сам же Яндекс в своих собеседованиях использует leetcode.com (как признание того факта, что он сам не в состоянии создать что-либо дельное в обучении и тестировании по алгоритмам) - лирический обвес там минимальный, а задачи - действительно полезны и покрывают множество алгоритмических тем и структур данных. Есть отдельный раздел, где другие участники публикуют свои решения, так что можно попутно и подучиться. Правда, в основном публикуется всякая посредственность индийского производства, с песнями и плясками, а топовых решений в публикациях мало, но есть доступ к решениям других участников, отсортированным по производительности. C, C++, Python на литкоде есть. Можно одну и ту же задачу решать на разных языках по выбору.

А синтаксис языков изучается по официальным сайтам языков:
  • C++: en.cppreference.com
  • C: на gnu.org можно посмотреть
  • Python: docs.python.org

Если непонятно, как решать какую-то задачу средствами данного конкретного языка, гуглим и смотрим ответы на stackoverflow и аналогичных ресурсах.
адрес ГолосаУченик (23) 11 месяцев назад
а можно без" Махровщины и без графоманства "просто написать ресурсы где можно просто решать задачи по программированию
Реципиент Гений (79700) адрес Голоса, я не знаю, что такое "махровщина". Сам придумал?
Остальные ответы
Похожие вопросы