There are a lot of things that software engineers have to be good at. One of the most central, however, is being aware of their thinking. This awareness, which psychologists call self-regulation, is at the heart of almost everything a software engineer does:
More than just awareness, however, good self-regulation involves actively controlling your thinking, monitoring your thinking and intervening when you believe it's not effective.
How are you supposed to learn these skills? The central way is to practice being aware. In a study from Amy Ko's lab, they found that simply prompting developers to reflect regularly promoted greater self-regulation skills, which translated into higher productivity.
To practice self regulation, I want you to engage in a difficult task (like programming), so your mind is occupied. Today, your task will be to write a JavaScript function that finds all of the text on a page and turns it a random color that is high enough contrast with the page background to be legible. You don't need a lot of tools to do this; just a web browser to find documentation, a text editor to write your functions, and a few pages to test it on. The point of this exercise isn't to actually finish the task (it's actually really hard), but to develop your self-regulation skills.
For today, you're going to work alone.
Every time I prompt you, turn to your neighbor and answer the following questions:
You work, I'll prompt.
Discuss in groups of four:
After discussing in groups, we'll discuss as a class.