When I participated in Y Combinator in 2009, the first thing that happened is we were given plain gray t-shirts that simply read: "Make something people want." I still have and wear this shirt today. I believe the phrase originated from Jessica Livingston as she was interviewing founders for [Founders at Work](http://www.amazon.com/gp/product/1590597141). We've been lucky to have finally found something that people want and are paying us for.
When I sat and thought about what I wanted my students to embrace, I realized what it was: [Mental Flow](http://en.wikipedia.org/wiki/Flow_\(psychology\)). It's hard to reach mental flow as a beginner. It's the single best feeling you'll ever have as a programmer. Time disappears and hours feel like minutes. You're fully immersed in the code you're writing and the application you're building.
For beginners, [it's difficult to achieve Flow because the conditions aren't right for it](http://en.wikipedia.org/wiki/Flow_\(psychology\)#Conditions_for_flow). Flow occurs when both the challenge level and skill level are equal and maximized. Most beginners have a project they want to build, so the challenge level is high. But their skill level is low and remains low until they learn [everything they need to build a web application](http://trybloc.s3.amazonaws.com/rails%20dependencies.png). The result is anxiety.
The t-shirts I send my students will be simple, much like the YC shirts. The front will simply read "Achieve Flow." It's something I want them to strive for. It's something I want them to experience because until it happens, they won't appreciate programming the same way I do. Achieve Flow serves as a reminder that while they may struggle now with learning about blocks, iterators, symbols, models, and database associations, these are merely keys that unlock a mental door so that they can finally experience Flow.
This is what every beginner should strive for: Achieve Flow.