In 2012 I found myself in a new relationship, in a new country, and what was really an entirely new life, but I was missing one critical facet of the life I wanted: a job.
My arrival in this new land came literally just days from completing my undergraduate degree with a major I now had absolutely no use for in my new home.
Barrier to entry in the local workforce was pretty formidable. For one, I didn’t speak the language and they didn’t speak mine. Secondly, I was on a tourist visa and working would have had to be done under-the-table unless I found a sweet gig that would sponsor a work visa. And finally to top it off, I was ill-prepared enough to have chosen a smaller city that was lacking in jobs even for skilled and capable locals.
Once I narrowed down what I could do, the choice was pretty simple — I had always had an interest in computers and wasn’t so excited about investing all my time into teaching English — and — so — I taught myself to code.
So without further ado, here are five ways I taught myself to code while living fairly isolated in a new country:
Disclaimer: I’m in no way saying this is the best way — or the only way — this is of course just my way — a way. Take it as such!
1) Pick a language and set up a simple development environment.
Before you choose a language, read the Wikipedia pages for potential languages of interest. Research the history, practical application, popularity, growth trends, and strengths and weaknesses of each option. Learning a programming language is no small feat — so do your best to “measure twice and cut once.”
and after hitting enter you should see “Hello World” come right below the line you entered.
That’s it! You’ve written your first program — or at least your first function. You’ll learn more about functions and methods later in your journey.
Note: Ease of entry and setting up your development environment can vary drastically depending on what language and field you choose.
2) Find an intro to programming book in the language you chose.
3) Do competitive code challenges.
If you’re anything like me — you want to put what you’re learning to use in some way that can be recorded, graded, ranked, and/or reviewed in some measurable way.
Code challenges are a great way to do this!
At sites like CodeWars, you’ll be given little bite-sized problems that force you to use your recently developed programming chops to find solutions to problems — some of which you’ll likely face in the future.
It’s a good idea to keep a scratchpad type editor open and use it to save and run your code locally while you write and refactor your solution to submit. I chose Sublime Text at the time — but if Visual Studio Code were around at that time I would likely gone with Visual Studio Code instead.
Before I wrap up this item on code challenges, I can’t stress enough how much I recommend that you go through other users solutions to problems you’ve completed and see how their code differs.
You might find just the solution you were attempting to do but couldn’t figure out on your own — or perhaps a more terse (shorter) or more readable way of writing code that achieves the same thing as your solution did. Learning from others in an environment like this is critical when you don’t have real-life peers to glean ideas from in your home-away-from-home!
4) Start a project
Solving code challenges like we talked about in point #3 is nice — but the problems are prefabricated and aren’t solving your need.
Starting your own first project is a necessary — albeit scary step in you your ascension as a programmer. Unsurprisingly you’ll likely have to — or want to — start with something laughably small (you won’t be laughing for long).
Personally, I always made a calculator as a first project every time I learned a new language.
My calculator was even more basic if you can imagine that.
Your first project can have a visual user interface if you want to go the distance — or you can write a program that exists only in the command line — you will come to know this as the CLI or Command-line Interface.
Once you have completed your target for your first project try to build on it and perhaps add additional features or fix bugs or any issues you might find.
The satisfaction and fulfillment that you will derive from planning and completing your first project is unparalleled by anything you’ll likely have experienced thus far in your journey and should breathe energy into you to keep you progressing along the way.
5) Be resourceful!
Last — but maybe most important — is the need to be as resourceful as you can possibly be when learning to code in another country. You might have the benefit of real-life interactions with programmers, but either way you’ll need to take full advantage of online answer sites such as Stack Exchange, chat applications like Discord — with servers hosting tons of vibrant development communities, and of things like official documentation such as www.python.org/docs/ if you happen to be learning Python.
Sharpen your “Google-fu”.
Sure, anyone can perform a Google search, but what search string you use and what path you choose once the results come back can make all the difference of time spent searching.
I can’t offer any magic pill to suddenly make you a better Googler, but what I can say is — always ask yourself if you’re being concise, specific, and technically accurate with what you’re searching for.
I can’t tell you how many times I’ve sat there with my head in my hands not finding the answer to something only to have a better search phrase pop into my head and to find the answer in seconds after I phrase it differently.
Bonus Tip: Find a programming mentor
Odds are that if you’re an English speaker you might be in a country that values learning English just like you currently value learning programming!
See where I’m going with this?
In the small town I lived in there happened to be a small IT academy that taught programming to mostly college-aged students. One day I walked in and explained that I was looking for lessons but that I didn’t speak the local language. The kind receptionist admitted that the language barrier would be a problem but that she might know someone that would meet up with me for a small tutoring fee.
I ended up finding a great mentor who taught me a ton. He was a local mobile app developer with lots of valuable experience to share with me and our experience turned out to be a total win-win.
Finally, learning to program abroad took a few years before I got to a place where I could build anything I was decently happy with. It’s a long process and you will need to pace yourself.
Try to set goals and make sure you make time for small breaks from the tedious work and have a little fun putting your code into action or having a casual chat about something programming-related with like-minded people in a chat room.
And since you are fairly isolated in a new land, you will likely be without any sense of deadlines from a college course to keep you plodding forward.
Considering this, you will have to be self-motivated and find the self-discipline needed to put in time regularly so as to not forget what you’re learning along the way.
The good news is that just because you’re thousands of miles away from your home country, the only thing stopping you from learning how to program is yourself! I know this because I was there and I did it.
Good luck and happy coding!