I think that critical thinking skills apply to coding a project.
From Wikipedia and noting that No One Is Perfect:
Critical thinking calls for the ability to:
Recognize problems, to find workable means for meeting those problems Understand the importance of prioritization and order of precedence in problem solving Gather and marshal pertinent (relevant) information Recognize unstated assumptions and values Comprehend and use language with accuracy, clarity, and discernment Interpret data, to appraise evidence and evaluate arguments Recognize the existence (or non-existence) of logical relationships between propositions Draw warranted conclusions and generalizations Put to test the conclusions and generalizations at which one arrives Reconstruct one's patterns of beliefs on the basis of wider experience Render accurate judgments about specific things and qualities in everyday life
In sum:
"A persistent effort to examine any belief or supposed form of knowledge in the light of the evidence that supports it and the further conclusions to which it tends."
That last part ..... the heart of debugging?
I believe that critical thinking being taught in schools less and less (and in some home-schooling not at all, to make good little robots) and this is why we see so many mental zombies that don't have the ability to trace even a few lines of simple code. It's like it's all arcane incantations, they keep asking for the magic. When you give it to them they don't work it out, they just copy it and plug it into whatever abortion they build next and ask why the magic doesn't work.
What does it take to get people to THINK? IMO, treating them like cripples only reinforces the "I can't" attitude.