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
System Design for interview
System Design is mandotary for all the aspirants having more than 1 year of experience in Tech industry. Through system design round interviewer can judge wether a candidates can help in designing live software product. System Design understanding is all about complete understanding various distributed components that currently trending in market.In this course we explain all the system design components with many live product examples like
- Designing Facebook NewsFeed, Instagram, Twitter
- Designing Drop Box, Uber, Search Engine, Google Docs
- Designing Api rate Limiter, Distributed Cache and many more .....
Note: We keep on updating this course and adding more and more lectures so it will help subscribers throughout there tech carrier while preparing for interview
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
OOPS(Object Oriented) Design for Interview
The main ojective of the round is to identify :
- Given a generic problem statement candidate can ask the right questions and come up with a technical solution
- is he able to identify the different objects and entities from a problem statement
- Identify how much the candidate is comfortable with OOPs concepts and principles
We cover almost all the problem of Object Oriented Design. We explain class disgrams and relationship between the classes. There are plenty of problems we cover in object oriented section
- Airline Reservation System(Like MakeMyTrip), Hotel Management System, Parking Design
- Designing Car reservation System, Deck of cards design and many more ....
Design Pattern for Interview
Design patterns use object-oriented concepts like decomposition, inheritance and polymorphism.They provide the solutions that help to define the system architecture
Design patterns can be classified in three categories: Creational, Structural and Behavioral patterns
- Creational Patterns - These design patterns provide a way to create objects while hiding the creation logic, rather than instantiating objects directly using new opreator. This gives program more flexibility in deciding which objects need to be created for a given use case
- Structural Patterns - These design patterns concern class and object composition. Concept of inheritance is used to compose interfaces and define ways to compose objects to obtain new functionalities
- Behavioral Patterns- These design patterns are specifically concerned with communication between objects.
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.
- 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