Sorry, should have specified a bit more context. Their lack of knowledge of graphics algorithms kind of hindered us when we were building a visualisation toolkit. These weren't server-side Java coders.
There are many ways to get experience without building wheels, but quite often the reason those wheels exist is that they're what things rely on. I've rebuilt CGI, HTTP, email, and so on to make sure I understood the basic protocols involved, and rebuilt Data::Dumper as an experiment in how to do high-level data access and XS code. I'd never put these into production, my wheels aren't as good as others, but I'm very glad I did them so I can be more confident in my knowledge of them.
Personally I find I'm more productive on something, and can see more flaws in potential implementations earlier, if I have that level of knowledge in the technologies it relies on.
I am now working happily through something which may become a CPAN module if it stabilises and progresses enough, but it's relying on the preliminary work I did rebuilding wheels.
There's a saying about building telescopes which I can't recall the original source of, it says it's quicker to build a four inch mirror and then a six inch mirror than it is to build a six inch mirror.
That's what these re-invented wheels are to me, they're my four inch mirrors. I'll not use them, but I need the experience of building them to go onto other things. The module I'm now working on is the six inch mirror.
I know a lot of what I've said here is similar to what I said here, but in a different context. I thought restating it in the new context made more sense than just linking to the old node though, so I hope you'll excuse my repetition.
|