All coding topics

1. Introduction to Python (Difficulty: 1/10)

  • Basic syntax
  • Variables and data types
  • Basic input/output
  • Basic arithmetic operations

2. Control Flow (Difficulty: 2/10)

  • Conditional statements (if, elif, else)
  • Looping (for loops, while loops)
  • Break and continue statements

3. Data Structures (Difficulty: 3/10)

  • Indexing (starts from 0)
  • Lists
  • Tuples
  • Dictionaries
  • Sets

4. Functions (Difficulty: 4/10)

  • Defining functions
  • Function arguments (positional arguments, keyword arguments, default values)
  • Returning values from functions
  • Scope of variables (global vs. local)

5. File Handling (Difficulty: 4/10)

  • Reading from and writing to files
  • Working with different file formats (text files, CSV, JSON)

6. Libraries, frameworks, Modules and Packages (Difficulty: 5/10)

  • Importing modules, pip
  • Creating and using packages
  • Understanding the Python Standard Library
  • Frameworks, like Django

7. Environments (Difficulty: 6/10)

  • Home computer / bare metal server / cloud
  • Python virtual environments
  • Docker and containers
  • OS virtual environments
  • Kubernetes

7. Object-Oriented Programming (Difficulty: 6/10)

  • Classes and objects
  • Attributes and methods
  • Inheritance and polymorphism
  • Encapsulation and abstraction

8. Error Handling (Difficulty: 4/10)

  • Exception handling (try, except, finally)
  • Raising exceptions
  • Handling different types of errors
  • try, catch, except, else, finally, custom exceptions

9. Advanced Data Structures (Difficulty: 7/10)

  • Advanced usage of lists, tuples, dictionaries, and sets
  • List comprehensions
  • Generators and generator expressions
  • Advanced dictionary techniques
  • numpy, pandas, polars
  • slicing and filtering
  • deleting and adding
  • Aliasing

10. Decorators and Context Managers (Difficulty: 7/10)

  • Using and creating decorators
  • Context managers using the with statement
  • Decorator applications such as memoization, logging, and timing

11. Concurrency and Parallelism (Difficulty: 8/10)

  • Threading and multiprocessing
  • Asynchronous programming with asyncio
  • GIL (Global Interpreter Lock) and its implications

12. Regular Expressions (Difficulty: 6/10)

  • Pattern matching using regular expressions
  • Regular expression syntax
  • Using the re module

13. Testing (Difficulty: 5/10)

  • Writing and running unit tests using unittest or pytest
  • Test-driven development (TDD) approach

14. Web Development (Difficulty: 6/10)

  • Basics of HTML, CSS, and JavaScript
  • Web frameworks (e.g., Flask, Django, fastAPI)
  • RESTful APIs

15. Data Science and Visualization (Difficulty: 8/10)

  • NumPy and pandas for data manipulation
  • Data visualization with Matplotlib and Seaborn
  • Introduction to machine learning with scikit-learn
  • AI / ML / NN / NLP / LLM

16. Advanced Topics (Difficulty: 9/10)

  • Metaprogramming
  • Closures and lexical scoping
  • Custom iterators and iterables
  • Python internals and bytecode

17. Type Annotations and Static Typing (Difficulty: 5/10)

  • Basics of type annotations using typing module
  • Type hints for function arguments and return values
  • Using Optional, Union, Tuple, List, etc., for more specific type hints
  • Understanding type checkers like mypy and integrating them into the development workflow