I have to admit that this one always baffled me from the reverse perspective. I always hear these discussions of the great talent shortage and how desperate people are for software engineers. I hear tales of people taking six week crash courses on coding and getting well paying industry jobs. But I just can't believe them.
I don't consider myself a great coder, but I'll forgo humility for a moment to say that I'm decent. Over the course of my PhD, I needed to:
* Write cluster based numeric code for the university supercomputer
* Reverse engineer an undocumented binary network protocol with a packet sniffer
* Work in six languages in a single day (C, Tcl, Labtalk, Scheme, Labview, Python)
* Write code so low level that I had to debug it with an oscilloscope
* Design and implement a data acquisition system that accepted concurrent input from hardware, network, and and user sources
* Port a Monte-Carlo simulation to the GPU
* Write user facing visualization systems
I guess that what I'm trying to say is that I can easily FizzBuzz.
After my PhD, I looked into going into industry, but I couldn't even get a no-thank-you. People complain about dealing with recruiters bugging them about job possibilities, but I couldn't even get one to take my CV. I relocated across an ocean to an employer who didn't even pay for said relocation partially because they're the only people who even got back to me.
Don't get me wrong - I love my current position, but I've known plenty of academics who were miserable. Individuals who were more skilled than myself and sometimes only making as much as Zappos pays their warehouse staff.
If the talent shortage is that bad, why aren't more of these people being poached? Why aren't we seeing a larger brain drain?