Welcome to one of the unique and special
coding interviews courses, not just among Udemy courses but even online courses, websites, and popular books.
This course is all about algorithmic problem-solving
for problems mainly from the Leetcode website. The goal of this course is to sharpen your problem-solving skills to aid you in ACEing coding interviews from FAANG companies. During the course, you won’t only be provided with a problem and its solution, but a series of hints and thinking approaches to tackle the problems.I don’t teach
data structures or algorithms in this course. You must study these courses from high-quality sources
and solve many problems
to gain basic
problem-solving skills. The problems in this course are of medium level. Without proper background and skills, the materials will be hard to learn.
I focus my efforts on LeetCode medium
problems, which represent 85-90% of real interview questions
. To be more effective, the questions are mainly the most frequent
interview questions. This means; in addition to gaining problem-solving skills, you increase the chance of meeting problems you already solved
in the interviews!
The course level:
- Most of the problems in this course are Leetcode MEDIUM level
- And a few easy and hard problems
- Most of the problems are from the most common interview problems, according to LeetCode data.
- Without proper background & skills ⇒ the course will be hard to learn
Part one covers the data structures (basic and advanced).
In the next part, the focus is Algorithms. The scope
of the topics
choices is again what is relevant and common in the interviews.
The course programming language
- All slides codes are based on C++
- Mainly C++11. I intend to not use the very modern C++
- Many people don’t study after C++11
- It will be easier for other programming languages to understand the code
- C++ code is very similar to Java and C#
- The LeetCode discussion tabhas solutions for many other languages
- 90% of the problems: I will download solutions for some other languages (Python, jаvascript, Java, and maybe others such as C#)
For each problem, there is a solving-cycle consisting of:
A problem name
- Presenting a problem
- Verifying assumptions and test cases
- Trying to brute-force the problem
- Optimizing the brute force if possible
- Or analyzing the problem and test cases
- Several iterative hints are provided; a missing educational key in other resources
- Well-written codes.
2 training styles
- E for easy-level from 1 to 3
- M for medium-level from 4 to 7
- H for hard-level from 8 to 10
are possible with the materials.
- A topics-based style where you focus on a specific topic and solving many of its problems. This style has a great disadvantage; you know the solution category (e.g. a stack problem), which is a big hint.
- I am also providing a blind-based style where sprints of problems are provided. Each sprint is 10 problems to solve. You don’t know the category of the problem. This is a more matching experience to the real interviews experience.
- After the course, you will be provided with more problems to solveon your own to keep enhancing your skills.
- You must solve a lot to increase your chance of passing the interviews.
- Strong programming skills & DSA knowledge/skills (from 3 courses)
- A high-quality programming courseconsisting of:
- Good coverage for programming + many exercises on learned topics
- Proper understanding/using for built-in algorithms/DS (e.g. C++ STL / Java Collections)
- Optional: Several projects to be comfortable with long coding
- A high-Quality Data Structure course: good coverage + many exercises
- A high-Quality Algorithms course: good coverage + many exercises
- This implies: you already solved and coded a lot. It is time to move to medium challenges.
- Don’t join this course if you lack basic problem-solving skills
The course is taught by one of the seniors in Competitive Programming where complex Data structures and Algorithms questions are asked. In addition, long experience with algorithmic interviews in the software engineering industry.
Acknowledgment: “I’d like to extend my gratitude towards Robert Bogan
for his help with proofreading the slides for this course”