How software engineers get a job in Silicon Valley ? How they prepare for coding interviews ?
If you want to get a good job as an engineer, what you should do and how to prepare ? To land one of popular jobs, you'll have to be strategic about it. I was curious how top-notch software engineers got a job from big four(Google, Microsoft, Amazon, Facebook) in Silicon Valley and how they prepared in advance.
I heard that some used to go to Silicon valley to get these jobs from overseas.
They just landed to San Francisco without any connection nor visa, and got hired from a top company.
How did they do that ? Is that still possible ? How competitive it is ?
Getting a job as an engineer in Silicon Valley from oversea is getting much harder because of U.S. visa system. But it's good to know how you should make a strategy to get a job though you learn how engineers in Silicon Valley prepared to get these job. I summarize what I learned through reading lots of blogs and websites on the internet.
- Python, C, Java are recommended since lots of coding interview book has solutions in those languages
- Most companies will let you code in any language you want, the only exception I have heard Google, where they only allow candidates to pick from Java, C++ or Python for their algorithmic coding interviews.
- Use a language you are extremely familiar with.
- We analyzed thousands of technical interviews on everything from language to code style. Here’s what we found.
- freeCodeCamp I read an article How I went from zero to San Francisco software engineer in 12 months, the writer joined freeCodeCamp to gain skills.
- Introduction
- Your personal project
- Side Project
- CV Write what you want they to ask.
-
This company has connection with Y Combinator. You need to pass coding exams and interviews. but I'm pretty sure you could get some good information.
-
Google Calendar Add schedule in google calendar to avoid cluttered and confusing.
-
Evernote What they asked What you answered
-
Must to learn (Highly recommended!!) To learn basic No way to avoid. Just repeat practice.
-
Conquer all 70 EASY LEVEL questions completely No need to solve all 700 questions Takes 2hours for solving one question. But no worry. Understand each question perfectly. That's important.
-
Others
Interview Cake HackerRank 14days free trial
- Be professional
- Understand your leverage You could produce a better result beyond your abilities to take advantage of your strong points anyone else has.
- Be genuinely interested in the teams and projects
- Be determined but polite
- Never lie
- Sensitivity Japanese has would be one of your strong points
- Tech companies don't care how much you want to join, they only care how much skill you have.
-
Singapore Getting easier to get a visa.
-
Canada No graduate recruitment system(新卒採用) Intern system is popular (3-6 months) No payments/poor payments in internship Recommended you start working as an internship to get full-time job later. Otherwise, hunting job while you are working in an internship. Waterloo in Toronto has lots of tech companies.
-
USA Getting a visa in US is not feasible. Some used to get H-1B visa, which opens April 1. It's fully reserved quickly.
As I mentioned above, preparing for coding interview with 'Grokking Algorithms' and 'Cracking Coding Interview' seem are the best way. These are the answers in Javascript for questions in these two books. The reason why I posted these solutions on Gihub is that I couldn't find lots of well organized lists of solutions of these coding questions in Javascript. I hope it would help you to learn these books and to get a good job !
- 01_Binary_search ~ 09_Dynamic_programming
- in Javascript
Well, to be honest, I like the whole book, from Introduction to end. Grokking Algorithms is the best book I've ever read on algorithms. I don't have a degree of software engineering but I understood this book easily. That's amazing, isn't it ?
-
Easy to understand language.
-
Interesting pictures which help to visualize working of algorithms and data structures.
-
Thought to provoke use cases e.g when you have to design an app to keep track of your expense where you need to add and remove items more regularly and viewing it once or twice in a month, which data structure will you use?
-
Contemporary examples make it even more interesting. For example, how Facebook stores username so that they can allow you to log in and handle signups? Array or linked list or a hybrid data structure which is made of an array and linked list.
-
Size of the book, yes, it's not overwhelming so more chances that you will read it and come back again.
-
Covers essential data structure e.g. array, linked list, and hash table.
These were some of the points which I like but overall Grokking Algorithms is a very readable book with lots of good pictures which make this difficult topic relatively easy to understand.
- CC_00_Big0 ~ CC_10_Sorting_and_Searching
- in Javascript
Cracking Coding Interviewis by far the most popular interview prep book for software engineers. It’s a great book. A lot of people recommended.
-
The first quality book to provide a large collection of interview problems that were representative of what you'd be likely to be asked in a tech giant company interview.
-
Historical significance. The content is still relevant today — coding interviews have changed a little, but not that much.
-
The solutions to each problem are explained very clearly and thoroughly, and about as simply as possible (for the required level of complexity) in almost every case.
- Read a whole book (You can skip some chapters if you don't have time)
- Solve questions Don't go to the next question without understanding
- Repeat questions
Most of big companies like Microsoft, Amazon, Facebook, Twitter use similar questions It was written for a few years ago, and software engineering interviews seem to have changed in the meantime, at least in the Silicon Valley engineering culture. Check Studying for startup interviews with 'Cracking the Coding Interview'. You can see which questions are more relevant.
-
Searching
-
Linear search
-
Binary search
-
Sorting
-
MergeSort
-
QuickSort
-
Trees
-
Graphs
- BFS(Breadth First Search)
- DFS(Depth First Search)
- Dynamic programming(DP)
- Hashing
- String pattern matching
-
linked lists
-
Arrays
-
Queues
-
Recursion
How Do You Explain API to a 5 Year Old Kid
10 Interview Questions Every JavaScript Developer Should Know
What are fundamentals you should know before a technical interview?
The 30-minute guide to rocking your next coding interview
What? Interview coaching from Googlers!
best-programming-language-jobs
How-do-I-prepare-for-a-software-engineering-job-interview
Feel free to fork and create a Pull Request.