Skip to content

svedentsov/aqa-livecoding-tasks

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

22 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Задания по программированию для Automation QA Engineers (Java)

Этот репозиторий представляет собой структурированную коллекцию из около 100 практических задач по фундаментальному программированию на языке Java, регулярно используемых на live coding секциях собеседований на позицию Automation QA Engineer (AQA).

Цель проекта - предоставить Automation QA инженерам (и кандидатам на эту должность) набор задач, который поможет эффективно отработать и закрепить ключевые навыки, необходимые для успешного прохождения технических интервью и решения повседневных задач в автоматизации тестирования.

Основные темы задач

Задачи охватывают следующие фундаментальные темы:

  • Работа со строками
  • Коллекции (List, Set, Map)
  • Массивы
  • Циклы и условия
  • Базовые алгоритмы
  • Объектно-ориентированное программирование (ООП)
  • Структуры данных
  • Обработка данных (файлы, форматы данных)

Структура репозитория

Проект структурирован следующим образом:

  • README.md: Общая информация и инструкция по использованию.
  • TASKS_RU.md: Основной файл с описанием задач, оглавлением, примерами использования и ссылками на готовые Java-решения.
  • src/main/java/: Исходный код решений, сгруппированный по тематическим пакетам:
    • algorithms: Базовые алгоритмы, логика, математика.
    • arrays_lists: Задачи на работу с массивами и списками.
    • data_structures: Реализация и применение структур данных.
    • dp: Динамическое программирование.
    • files_io_formats: Ввод/вывод, работа с файлами, CSV, Base64, JSON.
    • graphs_matrices: Задачи на графы и матрицы.
    • linked_lists: Связанные списки.
    • maps_sets: Задачи с Map и Set.
    • oop_design: ООП, проектирование классов, equals/hashCode, неизменяемость, клонирование объектов.
    • sorting_searching: Алгоритмы сортировки и поиска.
    • strings: Обработка строк.
    • system_concepts: Задачи по общим концепциям (без полного кода).
    • trees: Задачи на деревья.
  • src/test/java/: Директория для написания и запуска модульных тестов.
  • .gitignore: Игнорирование ненужных файлов и директорий для Git.

Как эффективно использовать задачи

  1. Изучите условия задач: Начните с ознакомления с задачами в файле TASKS_RU.md. Используйте оглавление для быстрого поиска интересующих задач.
  2. Практикуйте самостоятельное решение: Сначала попробуйте решить задачу самостоятельно, не подглядывая в решение.
  3. Проверяйте себя: Сравните своё решение с предоставленным в соответствующем тематическом пакете ( src/main/java/...). Например, для задачи FizzBuzz решение можно найти в src/main/java/.../algorithms/FizzBuzz.java.
  4. Запускайте демонстрации: Большинство классов решений включают метод main для демонстрации работы программы. Запускайте их в своей IDE для лучшего понимания.
  5. Пишите модульные тесты: Попробуйте написать тесты для проверки правильности решений. Это поможет глубже понять принципы тестирования и улучшить навыки разработки тестов.

About

Задания по программированию для AQA

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages