I'm a self-taught programmer and I got an iOS enginering job as a freelancer.

I'm a self-taught programmer and I got an iOS enginering job as a freelancer.

Here’s how I learned and how I got the job.


4 min read

I was 26 years old when I started learning Swift. Before that, I never got a C.S degree from college or joined a coding bootcamp. I only knew how to blog on a Wordpress site and that’s about it. In July of 2021, I got an iOS programming job as a freelancer in Japan after 2 years of self-teaching. During the years, I had built 2 iOS apps and published them to the App store (They are no longer available though) and several small projects.

I have to admit that there’s still a tough challenge for a self-taught programmer to get a job as a freelancer because many companies look for developers who have experience in team projects. In fact, I only got accepted by 3 out of 8 companies. However, you can definitely become one like I did so don’t lose hope.

Here are some tips for a self-taught programmer to learn efficiently and to get an engineering job regardless of any programming languages.

1. Decide what to build for your project or portfolio.


This is like setting your goal in your life. Without setting your goal, it is really easy to lose your motivation for learning because programming is difficult for the first couple of months to get used to. For me, I had decided to build an iOS app for travellers, but I wasn’t able to make anything functional for the first couple of months, but in the fourth month, I became able to add a messenger feature into my project and making features got pretty easy since then. The only thing that kept me going is the motivation that I wanted to make my service so it is very important to decide what you want to build.

Once you make a project or portfolio, you should either publish it to your own github or App Store to make it presentable to everyone. Your interviewers will definitely look at it.

2. Find a mentor

Find a mentor who has his/her own blog, website, YouTube, or SNS channels. For me as an iOS developer, I had an awesome mentor , an iOS developer named Brian Voong. Because he has tons of projects and consistency in his coding, it is easy to follow for me.

He even has a lot of paid courses where you can ask him questions there.

スクリーンショット 0003-09-24 午後10.24.20.png

3. Write down a schedule in detail.

Make a schedule of what you will accomplish every week. Try your best to catch up with your schedule because it drives your learning speed. Also, write down what you have learned or accomplished at the end of your day to tell yourself how much progress you make. Progress is the key.

4. Know how to ask forum/community sites: StackOverflow, GitHub, Reddit

c800_logo-stackoverflow-square.jpeg I can pretty much guarantee you can find what you want on these sites. I asked several times on Stackoverflow and got 80% of them answered real quick. Knowing how to ask on these community sites even helps after you get a job because you have to be clear when asking your future teammates coding questions.

5. Know basic Git commands & Github operations.

git_and_github.png This is one of the hard challenges for self-taught programmers because you can’t really practice Github operations by yourself unless you work in a team. Since a lot of companies require engineers to use Github or Gitlab to work on their projects, you must know them.

Here’re services where I learned basic git commands.
Learn Git Branching: learngitbranching.js.org.
You can learn git commands by yourself like below:
・$ git add
・$ git commit
・$ git push
・$ git branch
・$ git checkout
・$ git reset
・$ git revert
・$ git rebase

Fivver: fiverr.com
I found an Indian developer who taught me basic git commands and GitHub operations, spending more than two hours covering all the basics. I paid him $30 including tips and it was worth it.

Now it's your turn!

The most important tip is to have a passion to learn. Your attitude towards learning new stuff definitely will make you a better programmer and interviewers will take your great impression.

Goodbye for now and happy coding!