### Binary tree obsession

Why do engineers love to ask fundamental linked list and tree questions in interviews when you rarely code these problems in real-world development?

It’s how it’s always been done. But it makes sense. This ritual has sustained itself over the past few decades because it’s a fast, reliable way to spot smart candidates who can think deeply. Plus, it’s better to hire for ability to solve timeless fundamental problems than hire for knowledge based on transient tools.A typical programmer, even at a top tech company, would rarely implement a data structure like a binary tree from scratch. So, many developers might be out of practice with this at their next interview.Int his course we covers all the aspects of binary tree to candidates no need to covers all the problems

### Mindset on interview

During interview it's very important when interviewer asked DSA questions, don't jump to most efficient solution directly if you knows the answer, that creates a wrong impression. Always start solving any problems with brute force approach then gradually start enhancing your solution time and space complexity

### Think loud during interview

You might have heard this phase many times "Always think loud during interview". In fact this is key to crack any interview even if you don't know the answer of a particular problem. Tricks is just speak the way you are approaching towards the solution so interviewer can track your thought process and guide you. Believe me this is best scenario if interviewer will give you the hint and you crack the solution, If this happens maximum chances are there you nailed that round of interview

### Why logicmojo ?

We have seen from many years many professionals and students are spending thousands of bugs to multiple coaching centers. These coaching centers tutors never appeared for interviews. They never explains the concepts of Data Structure, Algorithms and System Design. They just touches the basic simple problems and done with topics. In logicmojo, you might have seen in our home page we have selected all the questions that are asked in top product based companies and explain the topics with those example. So just by completing all these lectures candidates are ready to appear for interview with difficulty level maximum

### Why concepts are important

Concepts and how to apply those concepts in others problems. While going through these lectures you might have seen many problems are related with same concepts. Once you understand the concepts then while interview even if interviewer asked you problems you never heard before then you can apply those learned concepts and solve the problems

### Distributed System is the key

All organization have majorly looking for candidates having good understanding distributed system. All e-commerce, retail business or technology companies are moving their current production house to scale. Current market trends is moving towards distributed System. We have touches lots of topics of distributed system with multiple examples in our system design course and our goal is to explore more in this area only in future

- monolithic system ----> Microservice architecture
- ActiveMQ,rabbitMQ ----> Kafka,Spark
- RDBMS(SQL) ----> Cassandra,mongoDB

### Imp topics in graph

Graph is the most complex topics in data structure field. But cracking interview there are 3 most imp concepts to understand in graph. Most of the problems are based on these 3 concepts only

- BFS(Breadth First Search)
- BFS(Depth First Search)
- Topological sorting

### Design pattern for interview

Design pattern is important to solve real-time live problems but just preparing design pattern is not at all sufficient.Organisation looking for candidates who can solve the live object oriented problems using tools like design pattern. We have discussed multiple object oriented design problems which mostly asked during interview in our course

### Identify a dynamic programming problem

Dynamic programming is helpful for solving optimization problems. The best way to recognize a problem as solvable by dynamic programming is to recognize that a problem is an optimization problem.We have one lecture also in our course regarding this topic

When problem given then try to identify wether it's an optimization problem or not.With optimization problems, you see terms like shortest/longest, minimized/maximized, least/most, fewest/greatest, biggest/smallest, etc.

When you see these kind of terms, the problem may ask for a specific number (like "find the minimum number of edit operations") or it may ask for a result (like "find the longest common subsequence"). The latter type of problem is harder to recognize as a dynamic programming problem, so you have to pay attention to anything that sounds like optimization

Dynamic programming simply takes the brute force approach, identifies repeated work, and eliminates the repetition. So before you even start to formulate the problem as a dynamic programming problem, think about what the brute force solution might look like. Could there possibly be repeated substeps in the brute force solution? If so, try to formulate your problem as a dynamic programming problem

### Scaling the system

Vertical scaling : You scale by adding more power (CPU, RAM) to your existing machine.

Horizontal scaling: You scale by adding more machines into your pool of resources.

Caching

- Application caching requires explicit integration in the application code itself. Usually it will check if a value is in the cache; if not, retrieve the value from the database.
- In-memory caches are most potent in terms of raw performance. This is because they store their entire set of data in memory and accesses to RAM are orders of magnitude faster than those to disk. eg. Memcached or Redis.

Load balancing: Public servers of a scalable web service are hidden behind a load balancer. This load balancer evenly distributes load (requests from your users) onto your group/cluster of application servers

### B+, B* or AVL tree required

Don't waste your energy and time on those topics which is rarely asked.For knowledge purpose you can learn these topic.We have experienced developers who has given 100+ iterviews and these topics are rarely touch in any interviews. So its better just put all your efforts in different types of tree, graph and algorithms questions

### Matrix related problems

Sometimes matrix related problems plays a key role.Mostly matrix related problems comes in DFS,BFS, Dynamic programming or some array related problems.Please pay a special attentions on these problemsas these problems may be the game changer