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

Стоит ли решать задачи , если не понимаешь их решение? Может больше теории?

макс козырев Профи (656), на голосовании 3 месяца назад
Всем привет подскажите пж. Изучаю программирование вот уже почти 4 месяца. 3 месяца я в основном учил теорию и дополнительно по каждой теме решал какие-то простенькие задачки.
Вот теперь как теорию закончил(понятное дело все за такой короткий срок не запомнишь) и решил пойти решать задачи на leetcode.
Прошло уже почти 3 недели, каждый день от 2х до 5 ти часов решения кода, и за это время я ни одной задачи не решил. Все что используется в коде, переменные, функции и т.д. Я все это знаю. (Естественно, если чего-то не знаю или не помню, я иду читать - изучать тему или повторять, а потом уже иду решать задачу).
Обычно я где-то час пытаюсь сам найти решение, а потом уже иду смотреть чужой код, но когда его пытаюсь разобрать то ничего не понятно.

И собственно такой вопрос стоит ли вообще пытаться решать leetcode ? Например может больше уделить времени теории, чтобы все хорошо знать? Или наоборот больше практики но тогда какой ? Просто пытаться делать как я делаю сейчас, читать чужой код и когда нибудь я стану его понимать?
Хоть я и вдумываюсь что читаю, но все равно ни понимаю.
Голосование за лучший ответ
Nikassaiop End Просветленный (41592) 4 месяца назад
Я думаю, что раз у тебя нулевой прогресс, то в дальнейших попытках нет смысла. Ты и дальше будешь сидеть тупо всматриваясь в код и пытаясь что-то понять, но твой мозг привыкнет к такому режиму и в дальнейшем даже не будет пытаться, просто полагаясь на то, что через часик ответ сам себя найдет.
Полагаю, тебе нужны более простые задачи, чтобы дойти до высокого уровня сложности со временем, лучше ставить и находить решения полностью самостоятельно. Мне кажется, что такой подход способствует в дальнейшем дедуктивному мышлению.

Например, задача такого типа:
  • Могу ли я составить код, который выводит день недели(любой, можно просто, как слово)?
  • Могу ли я сделать так, чтобы выводился именно текущий день (на основе времени на ПК или из сетевых сервисов времени)?
  • Могу ли я создать календарь на одну неделю? - важно, чтобы дни были в корректных пределах, не путались названия дней недели
  • Самое время оформить предыдущий результат в виде красивой таблицы.
  • От красивой таблицы на неделю - несложно перейти к месяцу или даже году.
  • Может, пора добавить красок? Пусть отмечаются другим цветом выходные, праздники, можно ввести специальные обозначения.
  • Сделать календарь в отдельном окне, с красивым фоном, шрифтами, заголовками, иконками?
Таким образом, за время выполнения таких идей получен целый календарь, при этом, идея выполнена самопроизвольно, и состоит из малых доступных любому шагов. На любом этапе можно взять подсказку, но по возможности все равно с опорой на собственные знания.

Конечно, выбор конкретной задачи в зависимости от твоих интересов и доступных языковых средств, эта версия была чисто для примера.
макс козыревПрофи (656) 4 месяца назад
Спасибо за ответ. А не подскажите есть ли какой нибудь ресурс по типу leetcode с более простыми задачами ?
Nikassaiop End Просветленный (41592) макс козырев, никогда не пользовался такими ресурсами, поэтому ничего сказать не могу. Но зайдя на вышеупомянутый leetcode обратил внимание, что задания разделены по темам, и не все из них на одном уровне. Может, вы просто выбрали слишком сложный курс заданий? Я бы сказал, что 4 месяца программирования - это обычно совсем новичок, новичок в основах или пара-тройка разобранных тем с голыми пустошами вокруг изученной сферы (например, научился писать нейросети на Python с помощью skylearn, что выглядит очень продвинутым, но при этом не может решить простейшую задачу в тригонометрии). Все это, конечно, в зависимости от человека, его возможностей и способностей) Например, я бы на вашем месте обратил бы внимание на задания с пометками Beginners Guide, Arrays 101 - это больше похоже на основы.
Ушёл в закат Мудрец (14678) 4 месяца назад
Стоит ли решать задачи , если не понимаешь их решение?
Сними куртку, повесь, возьми, брось на землю, подними, повесь, сними, брось на землю.
Всё на свете - программирование, Сяо Дрей
ПапаВысший разум (143901) 4 месяца назад
А как же сплясать на ней после шага "брось на землю"?
Александр Сидорченко Оракул (50207) 4 месяца назад
По поводу представленных там задач надо читать книги - Кнут "Искусство программирования", Вирт, Ахо, Ульман, Седжвик "Алгоритмы, структуры данных" и другие.
По синтаксису - Строустроп.
На русском - "Дискретная математика для программистов" (Новиков).
макс козыревПрофи (656) 4 месяца назад
Спасибо возьму во внимание.
Похожие вопросы