Good question. I’m more biased towards “the academic”. In my experience, the hackers are very good for getting things started. But on the long run I don’t like to work with an extreme “hacker”. For example: when we are deciding to implement a feature, the “hacker” always cuts my estimation because it obviously takes less time for them to just implement a feature but I’m more concerned about the future of the product and try to make an architecture that can scale with at least the features that we can see are coming down the pipeline. Anecdotally the programmers with higher education tend to be more inclined towards the academic end while the high-school drop-out smart people who have worked on many products thrive more on the hacker side. That’s of course a generalisation and there are exceptions.