Learn a programming language in a foreign language
idlewords: I don't think this works well with technical topics, unless you are a very advanced speaker looking to expand your vocabulary into a technical field.  Technical instructional material uses a very narrow slice of a language's vocabulary and grammar.I worked in China for six months with an office full of guys who could discuss complicated security architecture, race conditions, closures and all kinds of advanced technical topic in English, but couldn't have a social conversation above the third-grade level.  It made for a lot of silent lunches.   You can see a similar phenomenon at international specialist conferences.I think the suggestion to read young adult fiction is excellent.  Just be prepared to feel humble.