и не чувствовать себя дурой за ошибки в логике кода которые я часто совершаю.
Это исключительно проблема характера. Ее нужно перерастать.
Все совершают ошибки, но одни чувствуют себя дураками и расстраиваются, другие их исправляют, и чувствуют что становятся умнее. Меняйте отношения к восприятию ошибок.
А меньше ошибок будете совершать с опытом, так что пишите много кода, подсматривайте чужой код и разбирайте его.
Про критическое мышление.
Можно вкратце почитать про когнитивные искажения, чтобы знать о чем идет речь - lesswrong.ru вам уже посоветовали. В любом случае это работа над своим характером, которая заключается в постоянной переоценке своих аргументов, своих мыслей.
И грань между работой над своими ошибками и самокопанием нужно видеть.