Day 313 - you want the impossible...


Only do what you cannot do!

3 Mar , 2014  

Someone took my advice.

Not only did they take my advice but my advice worked out for them. This is a sufficiently suprising and unnusual sensation for me that I decided to write about it.

The Advice

It was at a party and a developer friend of mine asked me if I thought he should take a job on that he didn’t know exactly how to get it all done. I suppose I was being a little provocative with my answer but I was trying to make a point. I may have had a glass of wine by then. Or two (yeah, and the rest!)

I said, “Not only should you take that job on, you should never ever take a job on where you don’t have to learn something new!”

I went on in this vein for a while – I can go on a bit when I’m drinking – and I’ll elaborate here but first let me put the advice in a more sensible form;

Learn something new with every project.


Because there is so freaking much to learn! There was a time when knowing your way around a CSS stylesheet made you pretty fancy, a hotshot, a development rockstar.

Well that was then and this is now and now is html frameworks, grid systems, CMS, sass, css animation, mobile, performance budgets, jank, responsive layouts, responsive images, icon fonts, the rise and rise of javascript, MVC, angular, node, dev tools, yeoman, emmet, grunt, gulp, git and on and on and npm install more!

And it doesn’t appear to be slowing down!

If you don’t want to drown in this stuff, then never rest on your laurels. Congratulate yourself on a job well done and then make sure you go back to learning a thing or two on your next project. I don’t want to come across like someone with all the answers (at all!) but this is the way that even I can progress, avoid panic and look forward to all the exciting new developments coming our way!

Why it’s possible

Our industry. Our wonderful industry. Our screen-casting, open sourcing, plugin authoring, tutorial writing, question answering industry! I’m not sure how this atmosphere of cooperation came about exactly but I f**king love it!

We can take on those jobs with problems we don’t know how to solve yet because someone cleverer than us has already figured them out and written a blog post or a tutorial about it so we can learn how to do it.

If we are under the cosh and a deadline is looming large, well that’s OK too, because someone else really clever has written some open source software that solves the problem and we can drop it into the project. Do try and figure out how it works though (and send them a donation!)

Should you really turn down easy jobs?

No, not at all. That was the wine talking! In fact these are the jobs where it’s easiest to learn something new! The pressure is off and you can almost take your pick of interesting things to make building that 4-pager site more fun and educational!

I have exactly that situation at the moment, a 4-page display site with nothing technically challenging. So this where I’m going to really focus learning about page speed/performance techniques – Apache modpagespeed sounds too good to be true! I’ll find out.

Also, and this is embarassing, I’ve been kinda waiting for one clear responsive images solution to arise and just been using max-width: 100%. Well that ends now! On this project.

A third thing – as I understand it Codekit 2 comes out tomorrow – so I’ll definitely be giving that a whirl. There is always something.

Oh, and when you do learn that new thing…

…why not share it? Keep the chain going and write about what you’ve learnt.

What were the sticking points? What resources were helpful? You could also let the authors of those resources know it was useful – everyone likes a complimentary tweet now and again!

Back to my friend

He knocked that project out of the park! He levelled up in javascript sorting, wordpress custom taxonomies and completely aced it – of course he did!

I ♥ it web!

One response to “Only do what you cannot do!”

  1. Miles Annon says:

    I wonder who your friend was 🙂

Leave a Reply

Your email address will not be published. Required fields are marked *