This book uses Python 3 as its programming language due to its popularity and easiness to implement in real coding inteview. The purpose of the book is to guide the audience to prepare for real-world software engineering, include but not limited to preparing and cracking the coding interviews. We guide our audience to master data structures, algorithm design and analysis, problem-patterns through playing around with toy examples coded in Python throughly. Analyzing the behavior and computation complexity of more restricted and clear-defined problems in the book helps lay the foundation of solving real-world prblems which are more open and challenging. This is NOT a book that gives you quick tricks to pass a few coding interviews, it is a book designed to learn computuer science fundamentals throughly and in the hope that you will be more passionate and condifent about software engineering. In the book, we motivate you to learn and focus utilizing your expecation of cracking the coding interview. Passing coding interveiws can be a great job boost and learning the knowledge organized in the book can sure benefit your wholec-career.
As the first part of the series, this part includes:
- Introduction,
- Fundamental Algorithm Design and Analysis (divide and conquer, complexity analysis),
- Data Structures (connect the doubts of data structures and Python built-in data types/Modules),
- Complete Search (searching on linear data structres, graph, tree),
- Advanced Algorithm Design (Dynamic programming, greedy algorithm),
- Math and Bit Manipulation
LeetCode problems as used as exercise, only id and the title of the questions are given.
The Second part of the series focusing on catagorize problems and solve them type by type.
- Dynamic Programming Questions (15%)
- Array Questions (15%)
- Linked List, Stack, Queue, and Heap Questions (12%)
- String Questions (15%)
- Tree Questions (10%)
- Graph Questions (15%)
- Whole PDF (It is not complete yet, so let me the errors and give me advices)
Sample code used in each chapter of this part (only a small part right now).
- Part Two
Note: everything is still in progress, so use it with caution.
If you like the example chapters that I put here, please leave your comment here. This book comes with a lot of hard work --personally, I paused my PhD program for a semester to focus on. Therefore, your comment is important to lead to the publication of the work.
If you have ideas to improve the book, about formatting, more contents, or correct the errors are also very welcome too.