It's ironic. Where do software companies get their highly technically competent developers? Most of them don't train people, nor do they give enough time for developing deep technical skills. They rely on people who picked up most of the necessary experience prior to joining, and then maybe transferring some of their knowledge to others. But where do those original knowledgeable people gain their skills, if not at their jobs? By doing useless side projects.