I'm serious. Go ahead, create a new repo on Github, give it a nice name you'll want to brag about, add that geeky project description in the README file and start coding.
Why on Earth ?
We all love frameworks. RoR, Symfony, Play*... All the cool kids on the block are using them and, one must admit, it does feel great to code with a good framework.
But, there's something fundamentally challenging and inspiring when building your own product. And the “inspiring” part is what my point is all about.
Now, I'm not implying you actually create a competing framework to the ones above (or many others). I'm saying you pretend to.
I'm saying: learn what it takes to make a framework. For example, REST routing is a simple, yet clever concept. Know how to implement a routing system yourself ? ORMs are cool things to use. Know what it takes to build one ?
By building these ourselves, we get a better understanding of how these technologies work. But by building these as if we were building a product (gettin' all geeky in the process), we add a twist of passion to the mix, taking the experience to a whole new level.
When doing this, we challenge ourselves to find better, cleaner solutions to the problems we face. We become better programmers for it. #FTW !
We learn, and enjoy it all the way.
I'm not saying these products should ever be released to the public. I'm not encouraging you to use these in production. But how cool does it feel to know you've actually got a Framework Of Your Own (tm) ?
So go ahead: create and get inspired.
* Hey, you didn't mention Drupal! No, I did not. Drupal is an awesome framework, but not exactly “cool” to work with. It's so 2010.
P.S. I wrote this post on my smartphone with a brilliant app named PlainText. Go check it out, it's awesome.
Found a typo ? Correct it, submit a pull-request and get credited here!