Skip to content

uzibiton/learning

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

13 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Apple SDET Interview Preparation

Structured learning system for preparing for Software Development Engineer in Test (SDET) interviews, specifically designed for Apple's Core OS Software Update QA team.

📋 Overview

This repository contains a comprehensive learning system that emphasizes deep understanding over surface-level memorization. The methodology is reusable for any technical interview preparation or personal learning projects.

Interview Date: December 2, 2025
Created: November 23, 2025
Learning Approach: Problem → Solution → Deep Insights

🗂️ Repository Structure

apple_sdet_package/
├── exercises/
│   ├── 01_python_basics/          # Hash maps, sets, heapq, complexity
│   ├── 02_oop/                    # Inheritance, composition, properties
│   └── 03_pytest/
│       ├── 01_basic_tests/        # Test discovery, assertions, exceptions
│       ├── 02_fixtures/           # Setup/teardown, scopes, conftest.py
│       └── 03_parametrize/        # Data-driven testing
├── quick_review/                  # Fast reference guides
├── LEARNING_SYSTEM.md            # Complete methodology documentation
└── topics_to_revisit.md          # Progress tracking

🎯 Learning Philosophy

The Three-File Pattern

Each topic uses three files for maximum learning:

  1. XX_problem_*.md - Problem statement with requirements
  2. XX_solution_*.* - Your implementation (code files)
  3. XX_insights_*.md - Deep documentation of concepts learned

This pattern ensures you:

  • Understand requirements before coding
  • Implement solutions yourself
  • Document learnings for future reference

📚 Topics Covered

✅ Completed

  • Python Basics (6 problems)
    • Hash maps, sets, heapq
    • Time/space complexity analysis
  • Object-Oriented Programming (3 problems)
    • Inheritance and polymorphism
    • Composition patterns
    • Properties and encapsulation
  • pytest Fundamentals (2 problems)
    • Test discovery and assertions
    • Fixtures and dependency injection
    • Fixture scopes (function/module/session)
    • conftest.py hierarchy

🔄 In Progress

  • pytest Parametrize (data-driven testing)

📅 Upcoming

  • Mocking and test isolation
  • Linux debugging scenarios
  • Test framework design
  • Mock interviews

🚀 Getting Started

Prerequisites

Python 3.12+
pytest 9.0+

Setup

# Clone the repository
git clone <your-repo-url>
cd apple_sdet_package

# Create virtual environment
python -m venv venv
source venv/Scripts/activate  # Windows Git Bash
# source venv/bin/activate    # macOS/Linux

# Install dependencies
pip install pytest

Running Tests

# Run all tests
pytest -v

# Run specific topic
cd exercises/03_pytest/01_basic_tests
pytest test_calculator.py -v

# Show fixture execution
pytest test_database.py --setup-show

📖 How to Use This System

  1. Read the problem (XX_problem_*.md)
  2. Implement solution (create/edit code files)
  3. Run tests to verify
  4. Document insights (XX_insights_*.md) - what you learned
  5. Practice solo - redo without looking

🔑 Key Features

  • Deep Learning Focus - Understand concepts, not just syntax
  • Interview Ready - Practice solo to simulate real interviews
  • Reusable System - Adapt for any technology or interview
  • No AI Shortcuts - Build genuine problem-solving skills
  • Comprehensive Documentation - All learnings captured in insights files

📝 Quick Commands Reference

# pytest basics
pytest -v                    # Verbose output
pytest -s                    # Show print statements
pytest --fixtures            # List available fixtures
pytest --setup-show          # Show fixture execution order

# Run specific tests
pytest test_file.py::test_function
pytest -k "test_name_pattern"

🎓 Interview Tips

Allowed:

  • Personal notes and cheatsheets
  • Official documentation
  • Google for syntax
  • Stack Overflow

Not Allowed:

  • AI assistants (ChatGPT, Copilot)
  • Live help from others
  • Copy-pasting without understanding

🔄 Adapting This System

See LEARNING_SYSTEM.md for complete documentation on:

  • Adding new topics (Docker, FastAPI, React, etc.)
  • Customizing for different interviews
  • Scaling the structure
  • Progress tracking strategies

📊 Progress Tracking

Current status tracked in topics_to_revisit.md. Update after each session with:

  • Topics that need more practice
  • Concepts requiring deeper understanding
  • Areas of confidence

🤝 Contributing

This is a personal learning repository, but the system is designed to be reusable. Feel free to fork and adapt for your own learning journey!

📜 License

Personal educational project - use freely for your own learning.


Note: This repository represents active interview preparation. The learning system emphasizes understanding over memorization and is designed to build genuine problem-solving capabilities without AI assistance.

About

Learning with copilot

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors