Monday, October 22, 2012

Get the IT Skills You Need to Move Abroad

reflections of sydney
Sydney Harbor Bridge, Australia
Photo by Paul Bica
Today we're going to talk about a very long-term strategy for getting a job abroad. The downside is that it can take years to make it work. The upside is that it will be very fun (for some of you) and even if it doesn't get you a job abroad, it can tremendously increase both your work opportunities at home and your income!

For many people, the main obstacle to getting a job abroad is not finding the right job, it's having the right job. I am going to repeat something I've repeated many times on this blog, but it's worth repeating (and not everyone reads every post): countries want immigrants who generate a net profit.

It should be self-evident, but countries really don't want to bring in people who don't add to the bottom line and so called "low value" immigrants are rejected and the immigrants in STEM fields (science, technology, engineering and math) will be given priority. Or as I like to say, the holy trinity of expatriate jobs is medicine, engineering and IT (information technology). If you have skills in any of these areas you have a much better chance of getting a job abroad, but one of these skills is not like the others.

Harar wonderful street (Ethiopia) 3
Even Harar, Ethiopia will have programmers in it
Photo by Ahron de Leeuw
You can generally forget about working overseas in medicine or engineering if you don't have a university degree. However, countries are desperate for people with IT skills and since many IT people are self-taught, it's one of the easier fields to get into. The main requirement is to convince an employer that you can do the job (this generally requires also having the ability to do the job).

So how do you get into IT? There are several routes, but I'll focus on computer programming as that's the area I know best (large scale database-driven back ends, if you're curious).

Probably the easiest route (outside of a degree) is to learn the basics of Web development along with programming. While the most popular programming languages today are probably C, C++ and Java, if you've never programmed before, you'll probably find Ruby, Python, PHP or Perl easier languages to get started with. Perhaps the easiest way to get started learning programming is to head over to Udacity and take their CS101 "Introduction to Computer Science" course. All Udacity classes are free of charge and by the time you finish that first course, you'll have a basic understanding of computer science and the Python programming language. More importantly, you'll probably have an idea of whether or not you have both the talent and the inclination to pursue a career as a programmer.

twitter - What are you doing?
The internet isn't just fun: it pays well
Photo by keiyac
Assuming this tickles your fancy, you could then move on to more advanced work, like CS215 "Crunching Social Networks". If you're ambitious and determined, that could give you just enough experience to tackle CS253, Web Development (How to build a blog). For many purposes, the latter class would be the goal here. By the time you're done with that third course (and it will be a lot of hard work), you'd have the basics of:
  • Python — A great first programming language
  • HTML — the language Web pages are written in
  • SQL — a language used to help you store and retrieve data such as blog posts
  • HTTP — how your browser talks to a Web server
  • Scaling — How to let many users use your Web site without killing it
  • Web security — Practical tips to avoid some of the more common Web security issues
In other words, in just three courses you would know as much as many other entry-level Web programmers. These three courses will be difficult if you don't have prior experience to programming, but they're intended for people without prior experience. However, it's going to probably be very hard work. You're going to get stuck on tough questions. To get answers, sign up for a free account with stackoverflow, a popular "geek" site for getting your technical questions answered. You can search for answers to your problems or post your own questions.

Another route for getting answers is to ask a geek friend for help, but be warned: geeks can be very difficult at times. Many, for example, will sneer at you for learning Python (I specialize in Perl and I know some of my friends would sneer at Python), but ignore that. You have a goal and you don't want to get distracted. A better strategy would be finding a local Python User Group and signing up for their mailing list. They often meet once a month for social events or to give technical talks. Go to those events! It's a fantastic way to start networking and land that first programming job.

Pão de Açúcar
Rio de Janeiro, Brazil
Photo by Digo_Souza 
If you can pass those three courses, you probably have what it takes to be a programmer, though to be fair, it will probably take a lot more work than just these three courses to be skilled enough to get a job. However, if you stuck through all three of them there's a good chance you'd enjoy the work. Also, read the Udacity FAQ (Frequently Asked Questions) to better understand how job-focused they are.

This doesn't get you a job overseas but it starts the process. Since you won't (presumably) have a degree in computer science, you'll need experience. Again, finding a local Python user group and meeting up with actual programmers can help. Most of my jobs have come via people telling me a job was available rather than me applying blindly for a position. Since you'll be trying to land your first job, that's probably a good strategy, but hitting web sites and applying for Python job ads can be a good strategy, too. Once you get that first job, you'll want to get a couple of years (five is a good minimum but not always necessary) of experience under your belt and then follow the steps outlined in my "How to get a work permit" series.

This course of action is hard, takes a long time, and isn't suitable for everyone. There are also plenty of details that I've omitted and this is not the only way to an IT career. Instead, I've chosen it because it's a strategy that many have followed and works. If you find that you love programming, this is only the starting point. For many readers, you have jobs as waiters, clerks, or other relatively low-paying positions and getting into IT can easily double or triple your salary. It's also a relatively recession-proof field and can open doors to foreign lands like few other jobs can do. Countries want IT skills. If you have them, you can make your dreams real.
Paperblog Web Analytics