This guide is a detailed approach to how I learned to program and navigated the early days of my career as a Software Engineer in Japan. I hope this guide serves as a blueprint for people just like me.
My origin story isn’t one of a typical software engineer who moved to this country. I never majored in computer science, went to a boot camp, or even learned Japanese, for that matter. Instead, a few years ago, I used to teach English in a small town, and I was desperately looking for a way out. Surprisingly, within a few short years, I developed a relatively successful career here as a software engineer.
My guide will not apply to every situation or person. However, I captured my approach and mindset as authentically as possible. Some things will go against the conventional wisdom of doing things the “Japanese way” you may find on Reddit posts, blogs, and videos discussing becoming a software engineer in Japan.
I decided not to follow much of that advice because I found it too generic and didn't fit within my desires and goals. Instead, my approach was doing things my way for better or worse. I encourage you to develop your principles and success plans if you're reading this. Then, use my guide and others as inspiration to design a unique path for yourself.
In the beginning, my goal was to become a Frontend Developer. Since I'm writing primarily from my experience, most of the guide will also be centered around this. If you don't know what interest you, I encourage you to search YouTube, "what it's like to work in X role," or day in the life videos. Regardless, I encourage you to read on even if you're not interested in Frontend Development because much of this information is universal.
Once you have a clear idea of what role you would like to have, I want you to narrow it down even further. Find companies you would like to ideally work for and specifically create goals to learn what you see in their job description. This is often found in their "requirement" section. However, please remember that some of those "requirements" are "nice to haves" at best, and many of these companies will be willing to compromise with you if you know their core technologies.
Suppose you're searching for jobs on LinkedIn. In that case, sign up for LinkedIn Premium, search for the job poster or someone who has a similar role you're applying for at the company, and ask them directly what are the most used technologies for this role. Most people will be happy to answer if you ask them politely enough.
Once you have a clear goal in mind, find a learning platform. In my early days, I mostly used Team Treehouse. This website isn't the "end all, be all." I just found the instructors there to be less dry and dull than other platforms. Also, it wasn't that expensive for me.
Other websites I recommend include Edx, Free Code Camp, Khan Academy, and Code Academy. Just find one that suits your learning style. It's okay to try multiple at first. Once you're ready, try to narrow it down to one or two.
Many of these learning platforms have "tracks" or "learning paths" to study whatever skills or role you're trying to learn. Follow them and complete the courses as you see fit with your original goals. Then, set aside time to practice every day for 2 - 3 hours. The studying should be a mixture of reading, solo practice, and following the video instructions.
This is where true learning begins. Courses are like training wheels, and it's easy to develop a false sense of confidence when following an instructor. So after each course, build a small or mid-size app applying whatever you learn.
During this stage, allow yourself to make mistakes and thoroughly explore the concept. Being frustrated, stuck, and desperately googling for solutions is all a part of the process. This is what your first few years as a developer on the job will feel like anyway. So it's best to learn how to embrace this part.
Build a more serious project once you're comfortable with the programming language and its accompanying tech stack. I suggest a small app that centers around solving a problem about something you're passionate about, offering to build a website or app for your friend or family member's business for free, or using a resource like Frontend Mentors.
What's important here is that you can show off and discuss several high-quality projects during your interviews. This is why it's imperative to be thoughtful here and pick potential portfolio pieces to be proud of. Suppose you choose a project that's easy or you're dispassionate towards. In that case, it will come across that way during the interview process, and you'll be less likely to be hired.
If you do not speak Japanese, I recommend using LinkedIn for your job search. I've had the most success here with this platform. Once you find a job you're interested in, apply. It doesn't matter if you don't meet all of the requirements. Even if you meet 33%, I suggest applying.
The first job I landed was looking for at least 3+ years of experience, and I got hired anyway. Job Descriptions aren't checklists; they're wish lists for the employer. So apply.
You can read the transcript here