How I learned to code and got a programming job while living in a foreign country alberto montalesi Follow Nov 16, 2018 · Unlisted

Today is the best moment to start your journey

Introduction

Hi, my name is Alberto, and this is the story of how I learned how to code, wrote a programming book, started my own blog and became a software developer.

My background is in accounting and law and never in my life I thought I would end up working as a software developer, but here I am today, working for a startup as a Full-Stack JavaScript developer.

My first steps

Everything started when I was in New Zealand and my girlfriend was studying at a local University. One of her upcoming exams was about HTML and I got curious and started helping her.

That was the first time I looked at a piece of code. I started studying HTML and CSS from Coursera and my first website was awful, a bunch of text centered in the middle of the page with an ugly colored background.

October 2016 — One of my first attempts at a blog page. it’s all static, the links go nowhere

After I helped her prepare her exam I continued to study and practice because for the first time in a long time I was doing something I enjoyed.

The first resources I’ve used to practice were Coursera and Codecademy. Mostly because these two were the first one I’ve found online.

Codecademy is very good to give you some hands-on basic experience with a new language, you won’t learn much but if you just want to learn the very basics it’s enough.

Coursera, on the other hand, introduced me to the world of MOOCs. Back then I didn’t know there were such things as FREE online courses.

I remember taking this course, taught by the John Hopkins University, and even though I’m not aware if it has been updated, I can assure you the teacher is very good.

After discovering about MOOCs, it was just a matter of time to stumble upon the most popular of them all: CS50 by Harvard. Admittedly, I never finished it but it’s a great course to introduce you to the foundations of computer science.

During that same period, around October / November 2016, I discovered FreeCodeCamp and I started working on their curriculum.

To this date, I haven’t gotten any of their certificates, mostly because of a bit of laziness in completing some of the projects and also I preferred working on my own projects and ideas

Other very useful websites and resources I can suggest you are:

Lynda ( even though some of their courses are not up-to-date, with a free trial you can have access to a lot of useful material )

team treehouse ( another paid website but again, with a free trial you can have enough time to watch a few courses)

Udemy ( huge marketplace of courses, it can be hard to find what you need, don’t blindly trust reviews as I’ve found that many courses with high ratings were not that good)

Udacity (high-quality material for free. Not a lot of topics but what they have is very good, curated by the likes of Google and other tech companies )

Khan Academy ( very good to learn math and algorithms, I highly suggest you taking their algorithm course, it will give provide you with a good foundation )

Awesome, a repository on Github where you can find literally everything you may need.

Developer roadmap, another repository that can help you guide you in your path to become a developer.

A pearl of wisdom from the FreeCodeCamp random quote machine project I made in December 2016

My sincere tip regarding Udemy is to stay away from those “10 projects in 1, from zero to hero” kind of courses that last 30+ hours. If you are like me, you’ll end up dropping them halfway through (or even earlier ). Everybody is different, so maybe you had a different experience, let me know.

Moving to another country and start studying in a bootcamp

After a few months in New Zealand, I followed my girlfriend to Vietnam where I caught the opportunity for a free part-time bootcamp in Ruby on Rails.

At that time I barely knew what Rails was, the only programming language I knew was JavaScript and I was still a beginner.

If you happen to be in Vietnam, check them out at Coderschool.vn

Regardless, attending that bootcamp was the best decision I could take.

Another sincere tip I give you is:

Surround yourself with like-minded people, that have similar goals and interests to you and pursuing your goals will become easier.

My goals were to become a better programmer and by spending more time together with other people like me I felt more motivated and I was able to learn a lot.

One example I remember was learning how to use the command line. When I was self-learning I was always reluctant to start using it but during the bootcamp I was forced to learn how to use it.

Sometimes we are just too lazy and what we need is a small push to do the extra step required to improve.

Having a weekly deadline to complete a project and being able to see my classmates’ projects motivated me to push myself and do more.

The best part was working with two other guys on the final project which gave me an insight into what is like to be a part of a team. We had to write our own user stories, work on sprints to create an MVP ( minimum viable product ), iterate to improve it and fix bugs and finally deploy it to production.

We did not win but it was a great experience to get a glimpse of real-world scenarios.

The bootcamp lasted only 2 months and after the demo day, I didn’t get any job offer.

After the Bootcamp

After a few weeks clueless on what to do next, my girlfriend and I decided to create our own application.

We spent a lot of time working on our idea and doing researches.

Unfortunately, my skills at the time were at a point where I could not even build an MVP and our idea got rejected by a local startup accelerator.

Looking back at it, I think it was for the best, as I prefer working as part of a team for now before starting my own endeavors.

A tip I can give you is: if you really want to start your own startup, get ready and mentally prepared because it’s gonna be a very hard and time-consuming task. I suggest you watch videos from the Y-Combinator on YouTube, they can help you evaluate your idea and see if it’s actually something worth spending your time on.

Another static page I created — June 2017

Fast forward a couple of months and hurray, I got a job. But wait, it wasn’t a programming job. It was a teaching job.

One of the most popular jobs for foreigners in Vietnam is teaching English and that was what I also ended up doing, despite being a non-native speaker.

My passion for programming was still high and growing (at this time I had been studying for a year) but this new job brought new challenges that made me lose motivation for a few months during which I almost didn’t touch my laptop.

After a few months, my motivation came back but I was faced with a decision: continue studying Ruby on rails or go back to my first language, JavaScript.

I love how easy and fun it is to start building something on Rails but I ultimately decided to go back to Javascript because of a few reasons, and you may not agree with me on some of them.

The popularity of Rails is in decline, that is undeniable. On the other hand, Javascript consolidated itself into a strong position and nowadays you can literally build a full-stack application with just Javascript.

I’ve also liked Javascript since the beginning of my journey and I wanted to continue improving it since it was my first programming language.

After making my decision, I started waking up early (4:30/5 AM) to study before going to work.

During that period I finished reading the “You don’t know Javascript” series of books (which I started reading a year before) and I started watching ES6 for everyone by Wes Bos.

While studying Javascript I took a lot of notes and eventually I ended up with so many of them that I decide that I could compile them together and write a book.

It took me around 2 months, from March to April 2018 to come up with the first draft of my book. Around this period I also started my first blog, built with Jekyll and hosted on Github Pages. It’s not there anymore but I’ve since created a new one, built with Wordpress.

When I first posted my book on Reddit I was blown away by the response, so many people liked it and that made me feel very proud and happy.

Following what Kyle Simpson did with his “You Don’t know Javascript” series, I also made it available for everybody to read on Github, with the option of purchasing it if they want to have an epub, pdf or mobi copy or if they simply want to support me.

I think that if you are struggling with some concepts, trying to explain them for somebody else is a great idea. If you can’t explain it simple enough for a beginner to understand it, it probably means that you also did not fully understand it.

This project boosted my confidence and made me realize I went a long way since those days in New Zealand playing around with HTML.

I started enjoying writing and I created more material, like this cheat sheet to quickly review the last 3 versions of JavaScript, you can download the whole picture here ( it’s too big to embed in an article)

My first-ever cheatsheet, not the full version.

Fast forward a few more months, it was August. At that time I was getting ready to sign my contract for another year as an English teacher as I didn’t feel confident enough to apply for any programming position during the summer.

Yes, despite all the time and effort I put in, I did not feel ready to apply for a job, I felt scared by the possibility of getting rejected.

Another tip I can give you is:

if you don’t feel like you are qualified enough to get a job, chances are that you actually are just suffering from the ‘Impostor Syndrome’ and you may have already built more than enough skills to be a Junior Developer. Just go for it, the worst you can get is a no.

The Change

One day I decided to join a newly created Facebook Group of local expats working in tech and I introduced myself, my skills and my accomplishments.

This is the moment where I felt I just happened to be in the right place at the right moment as I received a message from a software engineer asking me if I wanted an interview for a Javascript position.

At the moment I felt very surprised and also scared. I started thinking about all the ways the interview could go wrong and I’ve also thought about declining the offer.

After all the time I’ve spent learning to code, I receive an offer and my first thought is to turn it down? Please, do me a favor and don’t be like me.

The reason why he contacted me was that he was looking for a Junior JS developer and he felt intrigued by the fact I wrote a book about JS, which showed him that I had the required knowledge of the language and that I was very passionate.

Remember: the best way you can impress your recruiter is with your personal projects, but sometimes you can think outside the box. In my case, my project was the book but I wouldn’t be surprised to hear of somebody who got hired because he had a blog where he wrote tutorials or guides that showcased his knowledge and passion.

Ok, back to the interview. I didn’t feel ready for it so I asked the recruiter for a week to prepare myself. I had never practiced whiteboard exercises or anything interview related so I decided to dedicate that week to practicing problems and interview-related questions.

Youtube is full of mock interviews and they can really help you boost your confidence. Practicing coding games such as Codewars is also very good to improve your problem-solving skills. Don’t wait until the last moment, start preparing for an interview months before you even think of applying for a job. You may never know when you will need these skills and it’s better to start early. A book I always see being suggested is “Cracking the coding interview’ but I can’t recommend it as I did not read it.

It turned out I didn’t need most of that stuff in my case. More important than my previous knowledge was my eagerness to learn more and my passion for the subject and that was enough to convince them to hire me for a Junior position.

The interview went very smoothly and now I’m in my 4th month here, loving every day I get to work on new features and learn new skills.

My original plans were to become a web developer but now I’m currently working as a software developer, working daily on an enterprise app and honestly I’m very happy about it.

I am learning tools and languages I never used or practiced much such as MySQL, AWS, Node, Fusebox, Knex and especially Typescript.

This marks the end of this story, do you have one that you want to share? Or is there simply anything that worries you in your path to become a developer?