How to Pass Google Phone Screen

Introduction

A few years ago, I managed to successfully pass the Google online coding test. It was extremely challenging. In this blog, I explain how I prepared for it.

Purpose of the Coding Test

The purpose of the online coding test is to identify candidates who may do well on the onsite interview. It basically measures how good problem solver, coder you are.

Exam / Test

You can use most of the popular programming languages (like Java, C++, Python, Ruby…). You will be talking to an interviewer throughout the test. Test usually last for about an hour. Given the time spend for introductions, coding part lasts for about 45 minutes.

Through out the exam you will be talking to an interviewer. Usually he would start with an simple coding question then add more and more complexity to it as you progress. You will be using google docs for coding.

Preparation

Brush up your knowledge on data structures and algorithms. Cover all basics.

Data Structures

  • Stack
  • LinkedList
  • Queue
  • Arrays
  • Heap
  • Binary Search Trees
  • Hashing

Algorithms

  • Sorts – Merge Sort, Quick Sort, Heap Sort, Topological Sort
  • Search – Binary Search
  • Tree Traversals – DFS, BFS, Inorder, PreOrder and Post Order

Do not waste your time looking at too complex data structures/algorithms. It is very unlikely you will get a complex problem given the time limitations.

Learn to Calculate Time / Memory Complexity

You are usually asked to provide the time/memory complexity of your code.So brush up how to calculate this on a code. Also try to remember time complexity of above classic algorithms.

Recommended Readings

I highly recommend you to invest on Amazon best seller Cracking the Coding Interview: 189 Programming Questions and Solutions book.

This book covers all the algorithms, data structures that needed for your interview. It also covers Time and Memory complexity calculations. It briefly goes through the interview structure of the each big company like Google, Amazon and Facebook. This book also has lot of practice questions with solutions. Book is not cheap. But a very little investment considering that it will help to get in Google.

Practice Practice Practice

The practice is the key. Do as much as practice questions you can. If you buy above book, you try the practice questions of the book. There are several online web sites like Leetcode which provide practice algorithmic questions. Make the best use of them.

During the Test

Don’t Rush In

Don’t jump into solving problem too quickly. Questions are bit ambiguous; this is on purpose. So discuss the problem, ask questions to clear out any ambiguities you may have.

Think Out Loud

Also keep a good communication with the interviewer. Speak out your thought process. If you can think of several solutions to solve the problem, discuss them with the interviewer. Tell him which is the best solution and why you think it is. Also,  you can access the internet during the exam.

Write Good Code

This is the first time Google is going to see your code. So try to give the best first impression. Follow basics; use meaningful variable/method names, move the redundant code to functions. Try to create classes instead of using complex collections. Try to output the best industrial level software you can.

Do not Brute Force

You may be tempted to solve some problems by brute force. But this will not raise any eyebrows. Try to provide a code that can do better than the Brute Force.

Finally

Personally, I took about 3 weeks to prepare my self for the coding test. So start early.

//z-na.amazon-adsystem.com/widgets/onejs?MarketPlace=US&adInstanceId=d1e624dd-ae12-4858-a5f9-324544f807a6

How to Pass Google Phone Interview

Introduction

A few years ago, I managed to successfully pass the Google online coding test. It was extremely challenging. In this blog, I explain how I prepared for it.

Purpose of the Coding Test

The purpose of the online coding test is to identify candidates who may do well on the onsite interview. It basically measures how good problem solver, coder you are.

Exam / Test

You can use most of the popular programming languages (like Java, C++, Python, Ruby…). You will be talking to an interviewer throughout the test. Test usually last for about an hour. Given the time spend for introductions, coding part lasts for about 45 minutes.

Through out the exam you will be talking to an interviewer. Usually he would start with an simple coding question then add more and more complexity to it as you progress. You will be using google docs for coding.

Preparation

Brush up your knowledge on data structures and algorithms. Cover all basics.

Data Structures

  • Stack
  • LinkedList
  • Queue
  • Arrays
  • Heap
  • Binary Search Trees
  • Hashing

Algorithms

  • Sorts – Merge Sort, Quick Sort, Heap Sort, Topological Sort
  • Search – Binary Search
  • Tree Traversals – DFS, BFS, Inorder, PreOrder and Post Order

Do not waste your time looking at too complex data structures/algorithms. It is very unlikely you will get a complex problem given the time limitations.

Learn to Calculate Time / Memory Complexity

You are usually asked to provide the time/memory complexity of your code.So brush up how to calculate this on a code. Also try to remember time complexity of above classic algorithms.

Recommended Readings

I highly recommend you to invest on Amazon best seller Cracking the Coding Interview: 189 Programming Questions and Solutions book.

This book covers all the algorithms, data structures that needed for your interview. It also covers Time and Memory complexity calculations. It briefly goes through the interview structure of the each big company like Google, Amazon and Facebook. This book also has lot of practice questions with solutions. Book is not cheap. But a very little investment considering that it will help to get in Google.

Practice Practice Practice

The practice is the key. Do as much as practice questions you can. If you buy above book, you try the practice questions of the book. There are several online web sites like Leetcode which provide practice algorithmic questions. Make the best use of them.

During the Test

Don’t Rush In

Don’t jump into solving problem too quickly. Questions are bit ambiguous; this is on purpose. So discuss the problem, ask questions to clear out any ambiguities you may have.

Think Out Loud

Also keep a good communication with the interviewer. Speak out your thought process. If you can think of several solutions to solve the problem, discuss them with the interviewer. Tell him which is the best solution and why you think it is. Also,  you can access the internet during the exam.

Write Good Code

This is the first time Google is going to see your code. So try to give the best first impression. Follow basics; use meaningful variable/method names, move the redundant code to functions. Try to create classes instead of using complex collections. Try to output the best industrial level software you can.

Do not Brute Force

You may be tempted to solve some problems by brute force. But this will not raise any eyebrows. Try to provide a code that can do better than the Brute Force.

Finally

Personally, I took about 3 weeks to prepare my self for the coding test. So start early.

//z-na.amazon-adsystem.com/widgets/onejs?MarketPlace=US&adInstanceId=d1e624dd-ae12-4858-a5f9-324544f807a6

How to Pass Amazon Online Coding Test

Introduction

Recently, I was able successfully to pass the Amazon Online Coding test. I was an amazing experience that pushed my mental strengths to the limit. In this blog, I am going to explain what did I do to successfully pass the test. Let’s start with the test structure.

Test Structure

The purpose of the online coding test is to identify candidates who may do well on the onsite interview. It measures the problem solving skills and coding skills of the applicant. Also it has some questions to measure you against Amazon Leadership Principals. You’d be taking the test on a online code pad tool. You can use most of the popular programming languages. You can go to the tool and get familiar with the features before attempting the exam.

Test has two coding questions. First question is easier than the second. You will have 90 mins to complete both questions. Once you’ve submitted the code, you will get some MCQ questions about Leadership Principals. These questions is not timed, you can take as much as time you like.

Preparations

Let’s see how to prepare for the tests. Brush up your knowledge on basic data structures like Stack, Linked List, Queue, Heap, Binary Search Trees, Hash Tables and Graphs. Sorting and searching are the most popular questions in test. So brush up your knowledge on Merge Sort, Quick Sort, Heap Sort, Binary Search.

Tree traversals are also important. Read up on DFS and BFS. Cover all three traversal models pre Order, in Order and Post order. Study Prim’s and Dijkstra’s algorithms for graph traversal. Also read about Divide and Conquer and Dynamic Programming.

You usually asked to provide the time/memory complexity of your code. So study how to calculate it. Also try to remember time complexity of classical algorithms.

Recommended Readings

You could study by your self. But I highly recommend you to invest on Amazon best seller Cracking the Coding Interview: 189 Programming Questions and Solutions book.

This book covers algorithms, data structures needed for the test. It explains how to compute time and memory complexities. Very importantly it has 189 practice questions. Book is not cheap. But a sound investment considering that it will help to get to Amazon.

Looking for a free book??

If above book is too expensive, an alternative book is Coding Interview Questions. You can read this book for free for 30 days if you register for Amazon’s Kindle Unlimited Membership Plan’s free trial period. You don’t even have to have a Kindle. Just log in to read.amazon.com and start reading.

Practice Practice Practice

Practice is the key. Do as much as practice questions you can. Try the practice questions of the book if you have it. Also there are several online web sites (like Leetcode) which provide hundreds of practice algorithmic questions. Make the best use of them.

During the Exam

You can access the internet during the exam. You are allowed to use your own IDE. But the risk is if you couldn’t copy paste your code on time, you will loose everything.

Time is Precious

50% of the exam is about time management. Two questions are hard enough to make it difficult to finish both within 90 minutes. If the first question is the easier one, don’t waste too much time on it.

If you are running out of time, prioritize the important bits of the algorithm. For example, if you are going to implement a sort, you should prioritize the Comparator since it’s going to be to the core logic of the program. To have any chance to pass the interview, you should at least have something to show for, for both questions.

Write Good Code

This is the first time Amazon is going to see your code. So give the best first impression. Follow basics; use meaningful variable/method names, move the redundant code to functions. Try to create classes instead of using complex collections. Write comments where needed. Try to output the best industrial software you can.

Do not Brute Force

You may be tempted to solve problems by brute force. But this is highly dicoraged. Try to provide a optimal solution than the Brute Force. Having 60% completed code of the optimal solution is better than a 100% working code of the  brute force solution.

Leadership Questions

After coding questions, you will have to answer a questionnaire which evaluates whether you are a good cultural fit for Amazon. Try to be your self and answer honestly. If you and company are not going to be a good match, it’s going to be a bad move for both the parties.

Finally

Don’t trust the tool too much save your work continuously as you progress. I took about 3 weeks to prepare my self for the coding test. Try to start early as possible.

Finally Good luck!!!

//z-na.amazon-adsystem.com/widgets/onejs?MarketPlace=US&adInstanceId=d1e624dd-ae12-4858-a5f9-324544f807a6

Investing Guide for Solo Investors

invest

Seven Key Rules

Keep following seven rules on your mind, on your desk and on the wall of your bedroom if possible. Read them at least once a week. When you are making an investment use this rules to evalute the quality of the investment.

  1. Always try to minimize loosing money. This involves making investments with minimal downside risks.
  2. Focus on acquiring and holding stocks with consistent dividend growth so the revenues can be compounded.
  3. Stocks are never undervalued. Stock is today worth what investors willing to pay for it, no more no less.
  4. No more than 20 symbols. Hard to keep track more than 20 companies. At least Half of them with high dividend pay companies.
  5. Evaluate each investment twice an year
  6. Have a predefined exit criteria for all the holdings.
  7. Always have a pool of cash ready

Numbers to Consider

  1. Company should have a high dividend yield. At least higher than the inflation.
  2. Consistent, moderate dividend growth – High dividend growth rates are not sustainable. Financial statements can be deceptive. Executives work goes to make them attractive for investors. But the dividend payment always tell the truth. Consistent growth of dividends is the hallmark of a good company. See at least 5 years of history.
  3. Debt / Capitalization should be less than 50%
  4. Coverage of at least 3 : 1. Cash flow of the company after taxes should be at least three times as the interest it pays
  5. Consistent, moderate annual earning growth 5 – 10%
  6. Payout ratio less than 60%
  7. Low Price / Sales ratio – Price of a share divided by the sales per share. Very fist prerequisite of business is revenue. If  revenues are high compare to the stock price, profitability can be easily increased though cons controls and increased productivity. Minimum price to sales ration of 1.5.
    1. Low P/E Ratio – must be at minimum. This value should be less than the reciprocal of the long-term bond rate. If bond rate is  5% –> 100 / 5 = 20 –> PE value should be less than 20. If the price of the company is above this level. Then the stock is expensive. Evaluate the PE value of a stock relative to the PE value of the market. If a stocks PE has been 125% of the market, but now it sells at 80% of the market, there is a good chance that it is under valued at the moment.
  8. Buy shares less than it’s book value. Book value does not represent intangible values of the company such as the brand name.
  9. Growth in cash reservers or investments made by the company
  10. Less volatile sharp rice. Can calculate the standard deviations of the share price to find this.

Measurements of the Quality

  1. Company has Performed well during the troublesome economic environments
  2. How well acquisitions are absorbed and integrated into the company –> smart acquisitions
  3. Do best to avoid new businesses. Look for companies with long-term consistent moderate growth, long-term dividend yields, long-term growth of yield.
  4. Look for a company that produce real goods or services which serves peoples needs, has a reliable user demand. Avoid reseller companies.
  5. What you should really buy is a competitive advantage. Try to identify the competitive advantages a company has over others.
  6. Look for growth kickers. That could be selling for a low performing division or a new sub division with great potential

General Guidelines

  1. Information available to everyone is not valuable anymore. PE ratio is not valuable as it was before
  2. TIme of max optimism is the best time to sell. the time of max pessimism is the best time to buy
  3. Don’t confuse genius with a bull market
  4. A list of stocks that you want to earn but which are not representing correct value at the moment. use this list during next correction/crash to buy

 

Selling Strategy

Sell when the dividend does not make sense to hold it for long team. make the decision based on the dividends. If we know that dividends are not going to keep rising, then it is time to sell. When dividends are affected, so is the share price.

Also when the share price increases it’s fair value, and the dividend yield relatively smaller to the other shares

One year goes with dividend increase. See the reason is one time occurring. If it fails two consecutive years, may be it is a good time to sell.

Document selling decisions and analyze them annually

If a company grows really fast with keep increasing sales, if those sales comes from the consumer credit, that may not be a sustainable business. When the debt cycle turns, customers will not be able to consume services as often.