Here&#x27;s a list (I&#x27;ve thought about this often):<p>1. Use your application.  (Not the same as testing.)<p>2. Adopt an apprentice programmer, teach them your seat, pass on the seat. Leave the seat.<p>3. Program something for fun that is your own idea.<p>4. Program something for someone else that is their idea.<p>5. Sort the books&#x2F;library.<p>6. No books&#x2F;library?  Build books&#x2F;library.<p>7. Re-write the code from scratch, for the hell of it.<p>8. Take over someone elses&#x27; project, finish it to the end users satisfaction.<p>9. Give your project to someone else, in a state that they can do #8 easily.<p>10. Build a list of positive observations over a period of X, where X is how long you think it might be fun to do so.<p>The accomplishment of a number of these actions have, in my opinion, resulted in some really great programmers and some really great software.