# Learn data structures to start preparing for tier 1 companies

Many students, freshers and even experienced persons want to work in a tier-1 product based companies, such as – Amazon, Microsoft, Facebook, Google, Adobe

But selection criteria of these companies are very high as they demand more from an individual in terms of knowledge, efficiency, problem solving skills. So there are many concepts (data structures, algorithms) that one need to learn in order to get selected in a product based company.

### Develop problem solving skill

But let’s focus on problem solving skills first.

Problem solving skill is an ability to think through a problem logically and able to write an optimized solution, focus on word optimized solution, why optimized because the user base of these product base companies is usually very high and they have to provide fast and secure service to the user.

In order to increase the problem solving capability one need to know the fundamentals of computer science programming. But knowing itself is not sufficient. In order to crack the interview, you need to practice and sharpen your problem solving skills regularly.

### How to start preparation for tier 1 companies ?

But many people doesn’t have the idea from where to start, what to study, what should be the approach and sequence. Sequence matters a lot in the preparation as many things depend on each other and if you skip anything than you might face difficulty in understanding other concepts.

In this blog, I will tell you about the sequence you should follow in order to start learning without getting demotivated.

Let’s start

We can divide the problem solving skill into two parts

1. Data structures
2. Algorithms

### Data Structures

Data structures are the way to store the data efficiently in the memory and Algorithm is a way of solving any particular problem in an efficient and optimized manner.

Before jumping on to data structures directly, you should learn about asymptotic analysis. It is a concept that most of students avoid as they are eager to learn data strucutres.

But you should learn this concept first as you will get to know about various performance matrix used in evaluating the performance of your code, which will help in writing an optimized and efficient solution.

Initially you don’t need to focus on algorithms separately as some of them will be covered along with the data structures.

#### Sequence of learning data structures

Sequence of data structures you need to follow-

Basic

• Arrays
• Strings
• Hash maps or Hashing
• Stack and Queue

Medium

• Tree
• Binary search tree (BST)
• Heaps
• Graphs

You can learn them from variety of resources, depending upon your preferred programming language and your current status of knowledge of data structures. But you should always follow a single source till you complete all these.

### Algorithms

There are various algorithms that will get covered with concepts and data structures itself, so you don’t need to focus on them in the beginning. Once you get past this beginner phase you can then jump to learning algorithms specifically.

### Important concepts

There are some concepts that you should know and practice regularly. These concepts are inter related with data structures for example – searching, sorting, recursion will get covered with arrays and string data structure.

You must follow this order, you should not jump directly to greedy algorithms or dynamic programming before learning and practice recursion. However, bit manipulation is a independent topic. So after learning basic data structures you can start with bit manipulation.

• Searching
• Sorting
• Recursion
• Bit manipulation
• Greedy
• Dynamic Programming

### Book recommendations

Here are certain book recommendations, which contains all those concepts explained in a simple way possible. Before jump onto problem solving sites, you should get your concepts clear.

#### Data Structures and Algorithms Made Easy

This book is written in 3 (C/C++, Java, Python) programming languages and you can buy as per your preferred programming language.
All the concepts are well explained with coding examples. It also contains various problem solving exercise along with hints. You must practice them before moving forward, that will help you in logic building.

This book is suitable for beginners as the language of the book is very simple.

#### Cracking the coding interview

If you are comfortable with all the concepts, then you should read this book in order to know your next move in order to prepare for a product based company.

#### Introduction to Algorithms

It is considered as bible of computer science and originally published in 1989, but still holds a high ranking among computer science graduates. This book contains all the concepts you need to keep in mind before and while you solve any problem.

But read this book once you know all the concepts and practiced 5-8 problems on each topic. It covers a broad range of algorithms in depth, yet makes their design and analysis accessible to all levels of readers (not for beginners).

I followed this approach and it helped me to get 6 stars on hacker rank in a month.

Thank you for reading. Let me know your questions or feedback in the comment section.

Happy learning ðŸ™‚

### 2 Responses

1. June 18, 2020

[…] have also made a list of topics in a sequence you should follow, entirely based on my […]

2. July 6, 2020

[…] this blog, I will be discussing about one of the oldest and widely used data structure called array and will be answering the following questions […]