Have you heard of "The Missing Semester" course provided by a team of instructors at MIT? They promise to go over a set of tools which can help you become a more proficient software engineer.
I decided I wanted to write about flexible versus rigid systems because I observed a pattern emerge over and over in projects and open source libraries. While observing this pattern, I noticed how it impacted our perception of the codebase in the early and later days.
Intrinsic motivation is when you engage in a behavior because you find it rewarding. Do you understand how you can use this to make healthy software engineering teams?
How about a "Documentation Oriented Programming". You write a document as you work on the problem with the how/what/why. It could be: shared, referenced, and posted.