A year ago, I was learning about unit tests. I was also taking a compilers course.
When I sat down to work on the first homework, I wasn't really in the mood. Instead, I messed around with writing a test suite. When I couldn't think of any other tests to write, I thought to myself, "Alright, enough messing around."
I started working on the assignment proper. And I discovered the beauty of test-driven development.
The suite of tests I had written were indispensable. They gave me immediate feedback on the code I had just written. They gave me a progress bar that ticked up steadily as I worked through the assignment. And when I was done, I knew I was done because all my tests passed.
I started every homework assignment in that class by writing tests.