Sign in to unlock

Get unlimited access to all questions and answers


Get lifetime access


Track progress


Save time

How to become a programmer, move to the US, and get a dream job

Are you curious about what you need to do to earn more than $15.000 a month, drive a Tesla, live in sunny California, and work at Google, Apple, Facebook, or Amazon?

Hi everybody! Like many others, I am a programmer from a developing country. Now I live in Silicon Valley and work for Google. I didn't have rich parents, I didn't have any special talents, and I didn't win a green card. In this article, I want to share the most useful tips on how to become a programmer, move to the United States, and get a dream job.

Step 1: How to Become a Programmer

There is a very widely held opinion that to be a programmer, you need some special skills, or better yet, a deep knowledge of Mathematics. It is complete nonsense, everyone can learn to program. Another common misconception is that everyone must have a passion for programming. It is better to set aside personal excitement, because programming is, in the first place, a way to make money.

Choosing a programming language

The main criteria for choosing a programming language: relevance and ease of learning. It is also important to consider personal preferences.

Programming languages and areas of application:

  • Swift, Kotlin - Mobile development for iOS / Android
  • JavaScript - Websites and Web applications
  • Java - Backend and server applications
  • Python - Machine Learning, Data Analytics, Backend and Web applications


The best option is video tutorials on YouTube. Of course, it is not enough just to watch videos, you will also need to do practical exercises. Online and offline programming schools are alternatives to video courses.

Do not entertain the fantasy that you can easily learn how to program in 3 months, most likely you will need about a year and a lot of patience.

Create your own project

Once you have the basic programming skills, it's time to put them into practice. Think of a simple project that you would like to use yourself and build it. Later you can mention this project in your resume.

Finding your first job as a programmer

It is important to start working as a developer as soon as possible, as this will accelerate your professional growth. The first thing you need to do is to prepare a resume based on the programming language you have learned and a personal project.

Next, you need to start sending out your resume massively on job board sites. You should be prepared to receive dozens of rejections. It is worth paying attention to internships - this is a great way to get your first real development experience.

You can't pass an interview without preparation. If you want to get an idea of what questions to expect. I suggest you to check out It is a curated list of 3800+ full-stack, data structures, algorithms, and software architecture interview questions and answers for developers.

Career and work experience

You'll need to learn a lot of new things and write a lot of code over the course of your career. Don't be afraid to change jobs if you feel you are not growing at your current company. If you're not already in one of your local largest cities, it's worth considering moving to one of those locations.

Step 2: Getting a job at an American tech company

In general, American companies are not super interested in your work experience outside of the United States. For example, I sent hundreds of resumes and ended up with only three interview opportunities.

What you will need

  1. English language. You need to understand what you are being told and be able to speak yourself, without these skills you cannot pass the interview. Grammar is not particularly important.

  2. A university degree, preferably in Information Technology. Lack of a university degree greatly reduces the number of options. A part-time degree is okay, for example, my part-time degree was equated to a master's degree in the U.S.

Preparing for a job interview

In order to get an interview at a US tech company, you need to be good at solving problems on algorithms and data structures. To learn how to do this, you need to master the basic theory and practice a lot. This will greatly increase your chances of getting a job offer. Additionally, it is worth preparing for questions on agile skills and an interview on information systems design.

Job Hunt

The strategy for finding a job in the U.S. is quite simple: check for new job openings at every day and send dozens of applications. It does not matter which company you are going to move with, the main thing is to move because after you move you will start to be as actively invited for interviews as you would be in your country.

Additionally, you should pay attention to positions at European offices of American IT companies. After working in a European office for a year you can move to an American office.


Usually, in order to get an offer, you have to go through several rounds of interviews.

First, you talk to a recruiter on the phone. He will clarify the information from your resume and check your adequacy. If you are a good fit for the job, you will be scheduled for a technical interview via video call, during which you will need to solve an algorithmic problem. Then a technical interview at the company's office. You will have 4-6 rounds of algorithmic problem solving, information systems design, and agile skills.

Step 3: Life in the United States

If you have successfully passed your interview and if you have no problems with getting a work visa, you can pack your bags and fly to the USA.


To check out current salaries in US tech companies, visit the website Senior developer salary at Google, Apple, Amazon, Facebook starts at $300,000 per year before taxes (salary + stock + bonus) or around $15,000 per month after taxes. Your salary will increase further with a baseline raise and new equity stakes.

Health insurance

US tech companies provide good health insurance for their employees, which covers most medical services.


Rental prices in Silicon Valley are around the following levels: a good one-bedroom ~70 m2 apartment will cost $2,000 - $3,000, a two-bedroom ~100 m2 will cost $3,000 - $4,000.


The US has very low-interest rates on loans. For example, you have $50,000, for that amount you want to buy a Tesla Model Y, but instead of buying the car with cash, you take a loan at 2.25% and invest the $50,000 in an S&P 500 ETF or Bitcoin. It's a pretty similar situation with mortgages.

Vacations and Holidays.

Typically, companies provide 3 weeks of paid vacation. The longer you work for the company, the more vacation time you get. It is worth mentioning that in the USA an 8-hour working day includes lunchtime, i.e. you must formally spend 8 hours at work, not 9.

The advantages of living in the United States (California)

  • High income, even with rent and taxes.
  • Virtually unlimited career growth opportunities.
  • Great climate, sunshine up to 12 months a year.
  • Almost no gloomy, bitter, or angry people.
  • Beautiful nature, lots of national parks, variety of leisure activities.
  • No sexism.

Thanks 🙌 for reading and good luck on your next tech interview!

One tip that got me hired by Google, Microsoft, and Stripe

I've worked for Microsoft, Google, Stripe, and received offers from many other companies. One thing I learned when I was interviewing myself is that standard interview tips are woefully inadequate.

Reverse Tech Interview: Questions to Stump an Interviewer

Few people want to get into an uncomfortable environment or an unprofitable company with no prospects. If you’re wondering how to get a real feel for a company during an interview, you’re welcome. I’ll give a list of questions that interviewers don’t usually expect...

How to become a programmer, move to the US, and get a dream job

Are you curious about what you need to do to earn more than $15.000 a month, drive a Tesla, live in sunny California, and work at Google, Apple, Facebook, or Amazon?

11 Reactive Systems interview questions and answers for software engineers

Reactive systems are an architectural style that allows multiple individual applications to blend into one unit, reacting to their environment, while staying aware of each other. Here is a list of coding interview questions on Reactive Systems to help you get ready for your next data struc...

. Reactive Systems
34 Microservices interview questions and answers for software engineers

Microservice architecture – a variant of the service-oriented architecture structural style – arranges an application as a collection of loosely coupled services. In a microservices architecture, services are fine-grained and the protocols are lightweight. Here is a list of coding intervie...

. Microservices
7 Layering & Middleware interview questions for developers

Middleware in the context of distributed applications is software that provides services beyond those provided by the operating system to enable the various components of a distributed system to communicate and manage data. Middleware supports and simplifies complex distributed application...

. Layering & Middleware
55 Docker interview questions and answers for software engineers

Docker is a set of platform as a service products that use OS-level virtualization to deliver software in packages called containers. Here is a list of coding interview questions on Docker to help you get ready for your next data structures interview in 2021.

. Docker
23 Databases interview questions and answers for software engineers

A database is an organized collection of data, generally stored and accessed electronically from a computer system. Where databases are more complex they are often developed using formal design and modeling techniques. Here is a list of coding interview questions on Databases to help you g...

. Databases
21 Concurrency interview questions and answers for software engineers

In computer science, concurrency is the ability of different parts or units of a program, algorithm, or problem to be executed out-of-order or in partial order, without affecting the final outcome. Here is a list of coding interview questions on Concurrency to help you get ready for your n...

. Concurrency
13 CAP Theorem interview questions and answers for software engineers

In theoretical computer science, the CAP theorem, also named Brewer's theorem after computer scientist Eric Brewer, states that it is impossible for a distributed data store to simultaneously provide more than two out of the following three guarantees: Consistency: Every read receives the ...

. CAP Theorem
Load more posts


folder icon

Access all answers

Get the inside track on what to expect in your next tech interview. We offer you a collection of high quality technical interview questions to help you prepare for your next coding interview.

graph icon

Track progress

A smart interface helps you track your progress and focus on the topics you need. You can search through questions or sort them by difficulty or type.

clock icon

Save time

Save tens of hours searching for information on hundreds of low-quality sites designed to drive traffic and make money from advertising.

Land a six-figure job at one of the top companies.

amazon logo facebook logo google logo microsoft logo uber logo
Prepare for a technical interview

Get hired with our
tech interview questions & answers