(This whole repo is also an Obsidian Vault, use Obsidian to exploit internal links.)
Welcome to faang-shui, a repository dedicated to organizing and tracking my preparation for FAANG interviews. This repository contains resources, notes, and solutions that cover essential computer science concepts, programming knowledge, and problem-solving techniques.
The repository is organized into the following main folders:
This folder contains foundational knowledge and theoretical concepts related to computer science. It is further divided into three subfolders:
- algos-datastructures-techniques: Contains theory files about:
- Algorithms (e.g., sorting, searching, dynamic programming, etc.)
- Data structures (e.g., arrays, trees, graphs, etc.)
- Techniques (e.g., divide and conquer, greedy algorithms, backtracking, etc.)
- programming-languages: Stores theory files related to various programming languages, including syntax, paradigms, and best practices.
- software-engineering: Contains resources and theory files on software engineering principles.
This folder focuses on the Java programming language. It contains:
- Notes on Java syntax and features
- Tips and tricks for Java-specific programming
- Examples of Java implementation
This folder contains my solutions to various technical interview questions and problems. Each problem includes:
- The problem statement
- My solution
- Notes on time and space complexity, where applicable
- [[Interview Training]] is the starting point to prepare for interviews. Follow internal links to go down the rabbit hole.
- Explore the java folder to deepen your understanding of the Java programming language.
- Use the problems folder to practice and review solutions to common technical questions.
This repository is a personal learning space, but suggestions and contributions are welcome. Feel free to submit issues or pull requests if you have valuable additions or feedback.