Would you like to find a job in some other country? Improve you communication skills in English and/or their language.

A large part of programming is about communication with other people. Even if you work along as a programmer you still need to communicate with your clients or your managers, but if you are in a team then communicating with the other team members is at least as important as being able to write code.

Even if you are a brilliant programmer, if you can't communicate well in the language of the team, your contribution will be much less valuable and thus it will much harder to find a job.

When I say communication it does not necessarily mean talking, though that's definitely important. In many cases, especially if you are a remote worker, you can get by with reading and writing skills.

Which language to learn?

This varies between countries and even companies. In most places the local teams communicate in their own language, but in many place they also use English to some extent. In some places you can get by knowing only English. In some rare places you can get by with the local language and English reading skills, but in most places being able to communicate well in English, at least reading and writing, is critical.

So besides improving your programming skills, if you would like to work in another country, you also need to improve your communication skills in English.

Luckily a large part of it is just practice, practice, and more practice.

Practice every day

Here is what I suggest:

If you have not being doing this yet, start writing open source code. Create a GitHub account, and start contributing to open source code. A very easy way is to send pull requests to existing CPAN modules.

You can join the 2015 CPAN Pull Request Challenge to get tasks, but instead of once a month I'd urge you to make a point to do something every day. It does not need to be some big thing, but doing it constantly helps a lot.

Contributing to existing open source projects or write your own.

Just make sure you do something every day.

Blog every day

And now for the communication part.

In addition to programming, start a blog in English(!) and write about the open source code you are involved. Write every day. It does not have to be interesting to other people. Just write down what you think. You can start with a few lines of blog and gradually increases the length of the posts.

After a while start showing it to other people and ask them to send you grammar corrections.

Slowly both your programming knowledge and your English writing skills will improve and then you'll have a much better chance to find work in another country.

BTW I also found Duolingo a nice place to practice languages.