My manager and I had a talk about this in my last performance review. He and I are both old-school: we know how to build it ourselves and it will probably work right. But the modern way is to look around for tools and libraries.

Case in point: we need faceted search. I had a brainwave one morning about how we could do it ourselves and wrote it down. But Solr can do it, too, and with the whole company looking for a replacement for FAST, someone (I was busy on other things) was given carte-blanche to see if we could use Solr. And we will.

I've noticed that modern development environments are like that. Most of the tricky stuff is in readily usable libraries. You don't have to be an amazing programmer to do good stuff in Java; you just have to be adequate. This is good because there are a lot more adequate programmers around than there are amazing ones or even just good ones. PHP with no framework needs a lot more Amazing or you get shit (admittedly, shit that works enough of the time). Java makes it harder to do that. This is all why my colleague said he hadn't had to do any advanced algorithms recently. And he's right. If he wanted to do that, he's in the wrong job.

Wade.