In my experience, one of the hardest things for new programmers to understand is the consequences of the fact that they are not the only ones working on a project. Of course, they understand that there are other team members, but the full impact can be elusive. Most of the concepts I plan to talk about in this series are needed because of this.
When you are new to coding, most of your projects are solo projects. This is true, whether you are going to school and doing assignments or learning on your own by creating your own projects. "Real-world" applications are rarely completely written and maintained by a single person.
Over the lifetime of an application, the code can and will change hands often, and what was once clear to the original author may make no sense to the person changing it years later.
Remember, that team member might be you ten years down the line.
A good example is the order of operation posts that pop up on social media from time to time. They usually post some simple looking questions like
what is 3 + 4 x 2? and ask people to give the answer, which always leads to debate. Is it
14 or is it
11? What people think is right probably boils down to how they were taught. Depending on when, where, and how far a person progressed in mathematics, they may not have been taught the order of operations and may even accuse people of adding parentheses where they do not exist.
If this was code and I wanted any team member to understand it, I would write it as `what is 3 + (4 x 2)?' or I would split it into multiple steps like
1. What is 4 x 2? 2. What is 2 + (the answer from step 1)?