/algorithms_solutions

Grokking algorithms & Cracking Coding Interview Solution in Javascript

Primary LanguageJavaScript

How to Prepare for a Coding Interview

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.

Step for Preparation

Picking a Programming Language

Basic Skills

Coding Interview

Algorithms

cracking_coding_interview

Collect Tips You Talk in Interviews

  • Introduction
  • Your personal project
  • Side Project
  • CV Write what you want they to ask.

Search Jobs Online

Organize Information

  • Google Calendar Add schedule in google calendar to avoid cluttered and confusing.

  • Evernote What they asked What you answered

Coding Interview Preparation

  1. GeeksforGeeks

    Must to learn (Highly recommended!!) To learn basic No way to avoid. Just repeat practice.

  2. Leetcode

    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.

  3. Others

    Interview Cake HackerRank 14days free trial

Behavior In Interviews

  • 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.

Popular Tech Countries in the World

  • 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.

    Recruiting Website

  • 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.

How to Use This Github Code

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 !

'Grokking Algorithms'

Programming Solutions

  • 01_Binary_search ~ 09_Dynamic_programming
  • in Javascript

What I liked 'Grokking Algorithms' ?

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 ?

  1. Easy to understand language.

  2. Interesting pictures which help to visualize working of algorithms and data structures.

  3. 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?

  4. 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.

  5. Size of the book, yes, it's not overwhelming so more chances that you will read it and come back again.

  6. 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.

'Cracking Coding Interview'

Programming Solutions

  • CC_00_Big0 ~ CC_10_Sorting_and_Searching
  • in Javascript

What I liked 'Cracking Coding Interview' ?

Cracking Coding Interviewis by far the most popular interview prep book for software engineers. It’s a great book. A lot of people recommended.

  1. 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.

  2. Historical significance. The content is still relevant today — coding interviews have changed a little, but not that much.

  3. 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.

How to Use This Book

  1. Read a whole book (You can skip some chapters if you don't have time)
  2. Solve questions Don't go to the next question without understanding
  3. Repeat questions

Tips

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.

Top Algorithms and Data Structures You Really Need To Know

  • 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

Reference Materials

How Do You Explain API to a 5 Year Old Kid

TCP/IP

10 Interview Questions Every JavaScript Developer Should Know

What are fundamentals you should know before a technical interview?

Coding Interview University

The 30-minute guide to rocking your next coding interview

Cracking Coding Interview

BigOcheatSheet

Engineer Employment Blog

Data Scientist TopCode

What? Interview coaching from Googlers!

best-programming-language-jobs

How-do-I-prepare-for-a-software-engineering-job-interview

Contribution

Feel free to fork and create a Pull Request.