Skip to content

Open sourced content from a book in progress, Preparing for the Real-world Software Engineering

Notifications You must be signed in to change notification settings

gregbo/Algorithms-and-Coding-Interviews

 
 

Repository files navigation

Preparing for the Real-world Software Engineering

And a Coding Interview Guidebook that Teaches Problem Patterns of Real Interview Questions

alt text alt text

Medium Blog

Purpose

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.

Part 1: Learning Data Structures, Algorithms and Python all at Once

As the first part of the series, this part includes:

  1. Introduction,
  2. Fundamental Algorithm Design and Analysis (divide and conquer, complexity analysis),
  3. Data Structures (connect the doubts of data structures and Python built-in data types/Modules),
  4. Complete Search (searching on linear data structres, graph, tree),
  5. Advanced Algorithm Design (Dynamic programming, greedy algorithm),
  6. Math and Bit Manipulation

LeetCode problems as used as exercise, only id and the title of the questions are given.

Part 2: Mastering Problem-patterns of Real Coding Interview Questions

The Second part of the series focusing on catagorize problems and solve them type by type.

  1. Dynamic Programming Questions (15%)
  2. Array Questions (15%)
  3. Linked List, Stack, Queue, and Heap Questions (12%)
  4. String Questions (15%)
  5. Tree Questions (10%)
  6. Graph Questions (15%)

Open Sourced Content

  1. 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).

  1. Part Two

Note: everything is still in progress, so use it with caution.

Feedback

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.

About

Open sourced content from a book in progress, Preparing for the Real-world Software Engineering

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Jupyter Notebook 100.0%