Do It Yourself

Do you have an app that you built for yourself? Do you have a pet project that you're building yourself? Do you prefer building and maintaining your own blog over using a blogging service like Wordpress, Blogger or Posterous?

Build an app as a foundation for your experiments and learning exercises. App as a place to stretch your knowledge. If you are a developer, make you own design. If you are designer, extend the app with some dynamic features. Experiment building a jQuery plugin to display your latest tweets or use Redis to cache the tweets on your server. Experiment with other third part services and use their APIs. Experiment with Responsive Design or other CSS3 and HTML5 features. Deploy the app on your server. Setup the server by yourself. Experience downtime of the server. Learn to read error logs. Fix it. Schedule regular backups. Design something. Receive critics. Improve it.

The thing is: you cannot do all these things on a client project and spend client's time. Client project is a time when you execute with full speed. Speed that you gained by regular practice and learning.

Get out of the comfort zone. Build something for yourself. Keep your skills sharp and ready.

Just to give you a broader perspective, I'll post a quote on Work Ethic from The Clean Coder book by Uncle Bob Martin. I highly recommend this book to you.

Your career is your responsibility. It is not your employer's responsibility to make sure you are marketable. It is not your employer's responsibility to train you, or to send you to conferences, or to buy you books. These things are your responsibility. Woe to the software developer who entrusts his career to his employer.

Some employers are willing to buy you books and send you to training classes and conferences. That's fine, they are doing you a favor. But never fall into the trap of thinking that this is your employer's responsibility. If your employer doesn't do these things for you, you should find a way to do them yourself.