МЕЖА "ПИСАТИ САМОМУ VS AI"
Курс: Python для аналітиків з нуля
1. ЩО НАВЧИМОСЯ РОБИТИ
Розуміти коли писати самому, коли делегувати AI. Виявляти та виправляти помилки AI.
AI — потужний партнер, але не безпомилковий. Ти маєш вміти перевірити код, знайти помилку, виправити. Це не заміна навчання, це інструмент.
2. ТЕРМІНОЛОГІЯ
Галюцинація (AI hallucination)AI вигадує факти: неіснуючі функції, параметри, бібліотеки.
Off-by-one помилка
Зсув на 1: індекс починається з 0, але AI використав з 1.
Boilerplate код
Шаблонний код: імпорти, try/except, with open. Нудний, але необхідний.
Edge case (граничний випадок)Рідкісна ситуація: порожній файл, None замість списку, ділення на нуль.
3. ТЕОРІЯ
3.1 Таблиця рішень
Що робити САМОМУ:
- Читати код — розуміти кожен рядок
- Структура — послідовність кроків
- Перевірка — чи логічний результат
- Знати бібліотеки — pandas існує, що робить
- Адаптація — змінити під свої дані
Що делегувати AI:
Точний синтаксис — .split(',') чи .split(', ')
Boilerplate — try/except, with open- Всі методи — DataFrame має 200+ методів
- Оптимізація — швидкість виконання
- Документація — як викликати функцію
3.2 Типові помилки AI
Помилка 1: Неіснуюча функція
AI вигадує метод який "логічно має існувати":
import pandas as pdПравильно:
df.drop_duplicates() # ІснуєЯк виявити: запусти код, отримаєш AttributeError
Помилка 2: Неправильний порядок параметрів
# AI написавЯк виявити: SyntaxError або TypeError про позиційні аргументи
Помилка 3: Забув encoding для кирилиці
# AI написавЯк виявити: UnicodeDecodeError при читанні
Помилка 4: Off-by-one в індексах
# AI написав (мислить з 1)Як виявити: код працює, але результат неповний
Помилка 5: Не обробив None
# AI написавЯк виявити: AttributeError: 'NoneType' object has no attribute
Помилка 6: Застаріла бібліотека
# AI використав стару версію pandasЯк виявити: FutureWarning або DeprecationWarning
Помилка 7: Плутанина з типами
# AI написавЯк виявити: TypeError: '>' not supported between str and int
4. ПРАКТИЧНИЙ КОД
Завдання: виправити код згенерований AI
AI згенерував:
import pandas as pdЗнайди 3 помилки:
1. df.sort('freq') — немає методу sort, є sort_values
2. df.head(10) — не зберігає результат сортування (треба df = df.sort_values)3. to_csv(index=False, 'file') — неправильний порядок параметрів
Виправлений код:
import pandas as pd5. МЕТОДОЛОГІЯ ПЕРЕВІРКИ
Коли AI дав код, робиш 5 кроків:
Крок 1: Прочитай уважно
Чи розумієш кожен рядок? Якщо ні — попроси пояснити.
Крок 2: Перевір імпорти
Чи існують бібліотеки? Встановлені? (pip list | grep pandas)Крок 3: Запусти на тестових даних
2-3 рядки CSV для перевірки. Не запускай одразу на 10 000 записів.
Крок 4: Перевір граничні випадки
Що якщо файл порожній? Якщо None? Якщо одне значення?
Крок 5: Порівняй з очікуванням
Результат логічний? Кількість рядків правильна? Значення адекватні?
6. ЗАВДАННЯ 1: ЗНАЙТИ ПОМИЛКИ
AI згенерував код для підрахунку частот:
import pandas as pdВідповідь:
1. count_values() не існує → value_counts()
2. .top(5) не існує → .head(5)Виправлено:
counts = df['freq'].value_counts()7. ЗАВДАННЯ 2: EDGE CASES
AI написав функцію:
def calculate_average(numbers):
Що станеться якщо numbers = []?Відповідь:
ZeroDivisionError (ділення на 0)Виправлено:
def calculate_average(numbers):8. ЗАВДАННЯ 3: ПРАКТИКА
Попроси AI згенерувати код для задачі: "Завантажити CSV, відфільтрувати рядки де signal > -50, зберегти у новий файл"
Потім:
- Прочитай код — чи розумієш кожен рядок
Запусти на тестовому файлі (3 рядки)- Перевір чи врахував encoding='utf-8'
- Перевір чи обробив порожній результат фільтрації
Якщо знайшов помилки — попроси AI виправити, вказавши конкретну помилку.
9. РЕФЛЕКСІЯ
Я розумію межу "писати самому vs AI"
Я знаю 7 типових помилок AI
Я вмію перевірити код за 5 кроків
Я розумію що таке edge case
Я можу знайти помилку в коді AI
10. ЩО ДАЛІ
Модуль 0.5: Основні поняття — змінні, типи, структури
Головна думка: AI — партнер, не заміна. Ти маєш читати код, знати бібліотеки, перевіряти результат. AI пише деталі, ти думаєш структурою.