Python
Fundamentals Review
Basic Python
https://neetcode.io/courses/lessons/python-for-coding-interviews Variables # Variables are dyna...
Data Types
Built-in Data Types In programming, data type is an important concept. Variables can store data...
Loops
In Python, there are several loop constructs commonly used for solving array problems. Here are t...
Container Comprehension
List Comprehension Dictionary Comprehension
Recursion
Data Structures
Array arr = [1, 3, 3, 7] for val in arr: # 1,3,3,7 7 in arr # True, t...
Basics Cheatsheet
Built-in # primitives x = 1 # integer x = 1.2 # float x = True ...
Serialization Formats
JSON import json import requests def main(): data = { 'username': 'james',...
Style Guides
Pep8 Google Style Guide https://google.github.io/styleguide/pyguide.html
Documentation Practices
Pathlib
from os import chdir from pathlib import Path def main() -> None: # current working di...
Functions
Positional and Keyword Arguments Positional Arguments: Positional arguments are the most comm...
Advance Review
Debugging
Coding Interview Patterns
Getting Started
1] Read (and Reread) Carefully and Understand the Problem Putting the problem in your own words ...
Big O
How should we describe the speed of an algorithm? One idea is to just count the total number ofpr...
Brute Force
A brute force solution is an approach to problem-solving that involves trying all possible soluti...
Hashmap
Hashmap Pattern: Finding Pairs Frequency Counting Unique Elements Mapping Relationships Lo...
Cycle Sort
Cycle Sort: Key Terms Missing/Repeated/Duplicate Numbers Unsorted Array Permutation/Seque...
Two Pointers
Two Pointers: Sorted Array/Array is Sorted Two Indices/Pointers Pointer Manipulation Search...
Sliding Window
Key terms: Fixed Size Subarray Maximum/Minimum Subarray Consecutive/Continuous Elements Lo...
Getting Started part2
1. Make a good self introduction at the start of the interview ✅ Introduce yourself in a few ...
Object Oriented Programming
Object Oriented Basics
Yes, all the object-oriented programming (OOP) terms and concepts mentioned apply to Python. Pyth...
Encapsulation
Class Creation Considerations: Encapsulation: the bundling of Variables and Methods in a...
Abstraction
Prereq: Inheritance Abstraction is used to hide something too, but in a higher degree (class, m...
Inheritance
Inheritance is a mechanism that allows a class to inherit properties and behaviors from another...
Polymorphism
Class Polymorphism Polymorphism is often used in Class methods, where we can have multiple class...
Built-in Methods
Instance Method vs Static Method Instance Methods (normal methods without declaring @) specifies...
Class Creation: Getter/Setter vs Property
Getter and Setter Pattern comes from OOP languages such as C++ and Java in order to adhere to ...
Object Oriented Design Patterns
https://refactoring.guru/design-patterns/what-is-pattern
Creational
Creational design patterns are used to Create objects effectively Add flexibility to software...
Behavourial
Observer / PubSub It's common for different components of an app to respond to events or state c...
Structural
Structural Patterns Focused on how objects and classes can be composed to form larger structures...
Architectural
Monolith A monolithic architecture is an architectural pattern where all components of an appli...
Object Oriented Design Interviews
Model a real world problem with Object Oriented Design techniques and concepts. Often called Low ...
Good Engineering Principles
General Engineering Principles DRY (Don't Repeat Yourself): Avoid duplication of code ...
Q and A
Here are some questions that interviewers may ask to test your basic knowledge of object oriented...
Design a Parking Lot
Starting an object-oriented design interview for a parking lot scenario involves several key step...
Concepts
Objects are representation of real world entities Data/attributes Behavior Classes a...