Big-O (Theta) analysis

A good understanding of big-O analysis is critical to making a good impression with the interviewer. Big-O analysis is a form of run-time analysis that measures the efficiency of an algorithm in terms of the time it takes for the algorithm to run as a function of the input size. It’s not a formal benchmark, just a simple way to classify algorithms by relative efficiency.

In mathematics, computer science, and related fields, big-O notation (also known as big Oh notation, big Omicron notation, Landau notation, Bachmann–Landau notation, and asymptotic notation) (along with the closely related big-Omega notation, big-Theta notation, and little o notation) describes the limiting behavior of a function when the argument tends towards a particular value or infinity, usually in terms of simpler functions. Big O notation characterizes functions according to their growth rates: different functions with the same growth rate may be represented using the same O notation. More...

Algorithm theory and complexity introduction

"Before there were computers, there were algorithms." - H.Cormen. But now that there are computers, there are even more algorithms, and algorithms lie at the heart of computing. What are algorithms? Informally, an algorithm is any well-defined computational procedure that takes some value, or set of values, as input and produces some value, or set of values, as output. An algorithm is thus a sequence of computational steps that transform the input into the output. We can also view an algorithm as a tool for solving a well-specified computational problem. The statement of the problem specifies in general terms the desired input/output relationship. The algorithm describes a specific computational procedure for achieving that input/output relationship. For example, we might need to sort a sequence of numbers into nondecreasing order. This problem arises frequently in practice and provides fertile ground for introducing many standard design techniques and analysis tools. More...

Debugging top 10 mistakes candidates make on tech interview

Most often interview mistakes are discussed many times on many sites. But I want to express my opinion on article on careercup.com web site that I like. Here top 10 of mistakes by career cup: Practicing on a Computer, Not Rehearsing Behavioral Questions, Trying to Memorize Solutions, Talking Too Much, Talking Too Little, Rushing, Not Debugging, Sloppy Coding, Giving Up. I will express my opinion on each mistake and my solutions on it in green color. For software engineering jobs, most companies, especially startups, just can't find qualified candidates, but the problem is that this candidate mistakes are common for big companies too. More...

Top 15 Tricky Algorithm Interview Questions

How can you answer on tricky algorithmic questions when you have lack of time. The secret to success with this free-form question is to focus and practice. Never "wing it." What do you want the interviewer to remember most about you? List five strengths you have that are pertinent to this job: experiences, traits, skills, personality etc. Because if you prepare for the tough interview questions ahead of time, you'll likely do very well and actually enjoy the process. I have about 50 interviews with candidates at 3 companies that I used to work. Also I was in about 25 technical interviews around the world. The main idea of this article is make your brain think rapidly. Also increase creativity and grow yourself to broad-minded person. More...