Learners who are completely new to coding will benefit from practicing two activities, according to Wade-Stein:
- Breaking down a problem into a series of written steps.
- Converting each step into Python or another programming language.
As software developers gain experience, these two activities become more automatic, and coders may do them in their head. Beginners, however, learn best by writing down all the steps of the problem they are trying to solve. This way, if their code doesn’t produce the expected result, they have a tool for troubleshooting. They learn to spot where they may have introduced errors into the process by asking questions such as:
- Have I articulated all the steps correctly and completely? A human brain might do a step so automatically that a new coder might not think to add it as a discrete step.
- Is the sequence of the steps correct? New coders need instruction and practice to execute steps in the correct order.
- Did I leave out a step? Maybe the step is on the written list, but the learner didn’t translate it into code.
- Is a mistranslation causing the problem? Perhaps the individual got the steps right, but wrote code that does not actually perform the step.
This foundational practice reduces frustration for new developers, builds confidence and speeds the learning process.
Experienced software developers, data scientists and DevOps/QA engineers, however, may not appreciate having content like this in their Intro to Python class.