There already is a very similar thing in Bulgaria (and probably in other countries). Here, the cellphone providers, the ISPs and all traveling agencies must keep detailed records in electronic format and grant access to them for the authorities at any time, without any warning. It's basically a human rights violation, but it seems that no one affected gives a damn. Maybe it's because the non-tech people don't realize the threat.
Today's top software is not that much about perfect implementation. It's about software design. The big popular programs (actually even the text editors) are complex and the good software design is way more important that the implementation according the established design. So, you better specialize programming in certain scope, rather than certain language. The language is a derivative to the design. For an example - if you like low level programming (drivers, kernels, embedded systems), then you should learn C and some assembler very well. If you like programming desktop apps - C and C++ (maybe also Python). If administration is your passion, then specialize in Bash, Perl and C. To be a successful web developer you need to master HTML, Java Script, PHP... You got what I'm trying to say.
"I think we can all agree, 256 cores is enough for anybody." "640K ought to be enough for anybody."