Livecoding… Це дійство нагадує один з найжорсткіших видів іспитів. З тих, де потрібно відразу вирішити задачу біля дошки. Та ще й перед незнайомою аудиторією. Або як виступ на сцені з імпровізацією. Стає страшно від однієї думки про це!.. Втім, є люди, які ловлять від цього кайф. Ну а тих, хто не ловить, можна просто навчити тримати удар. Як і все в цьому світі, навичка проходження Livecoding’ів розвивається за допомогою наполегливих тренувань. Коротко підсумуємо і трохи розширимо те, що говорив у відеолекції Андрій Латишев.
Алгоритм проходження Livecoding’у
Livecoding може бути віддаленим (потрібно розшарити свій екран) або очним.
Отже, ситуація: вам дають умову задачі, вмикають комп'ютер, стають за спиною (або підключаються до вашого екрану) і дивляться, як ви тремтячими пальцями починаєте набирати код… Стривайте, не поспішайте його набирати, а спочатку...
1. Зупиніться і усвідомте умову
Спочатку просто вдумайтеся в умову задачі і спробуйте зрозуміти, чого в принципі від вас хочуть. Обов'язково поставте уточнюючі питання, щоб точно з'ясувати, чи правильно ви її зрозуміли.
2. Подумайте, яке рішення буде оптимальним?
Спробуйте придумати різні рішення, а не тільки одне. Оцініть часову і просторову складність кожного рішення (Big O) і виберіть найбільш оптимальне. При цьому озвучуйте хід своїх думок. Якщо раптом щось піде не так від хвилювання, принаймні буде зрозуміло, що ви обрали правильний напрямок.
3. Починайте програмувати!
Коли пишете код, намагайтеся, щоб він відповідав принципам SOLID\KISS\DRY. Обов'язково пояснюйте кожен рядок коду з причини, згаданої вище. До речі, іноді вам можуть і підказати, зазвичай — за допомогою навідних запитань.
У Python читабельність коду має першорядне значення. Слідкуйте за іменуванням змінних (snake_case) та відступами. Ваш код повинен виглядати так, ніби він написаний за PEP 8, навіть якщо ви пишете його в блокноті.
Стаття для повторення про найкращі практики Python-програмування: PEP 8 — Style Guide for Python Code
4. Створіть Unit-тест для перевірки рішення.
Це набагато солідніше, ніж використовувати print(). Втім, ви вже в курсі.
Про що не можна забувати під час Livecoding’у
- Говоріть уголос! Озвучуйте свої думки, сам процес мислення.
- Якщо ви не можете придумати класу або змінним адекватні імена і сильно затупили на цьому етапі, краще скажіть про це.
- Але все-таки намагайтеся писати код відповідно до промислових стандартів.
- Завжди думайте про граничні випадки, перевірки, продуктивність.
- Не перевіряйте свій код за допомогою працюючого додатка. По можливості використовуйте модульні тести (assert або unittest).
Приклади задач на Livecoding’і
Насправді їх може бути дуже багато. Проте, за наведеними нижче прикладами можна зрозуміти загальний напрямок. Зазвичай це навчальні задачі, з якими ви неодноразово стикалися під час навчання.
- Прості задачі.
Такі задачі часто просять написати в док-файлі, а то й зовсім на аркуші паперу.
Приклади:
Розгорнути список (введення: [1,4,3,9,0], на виході: [0,9,3,4,1]) Написати генератор чисел Фібоначчі Перевірити, чи є два рядки анаграмами введення: слово1 = «abc» слово2 = «acb» виведення: True введення: слово1 = «abc» слово2 = «art» виведення: False - Задачі на онлайн-платформі на зразок Codility. Наприклад, задачі на алгоритми або роботу зі словниками та множинами.
- Складні задачі під час вашої присутності в офісі. Мабуть, найбільш стресовий варіант. Тут може бути що завгодно, аж до проєктування схеми БД для невеликого сервісу.
Поради
- Підготуйте оточення (Poetry або venv) заздалегідь, якщо вам дозволяють використовувати свій ноутбук.
- Користуйтеся гарячими клавішами PyCharm або VS Code.
- Подумайте, як ви будете тестувати код, якщо вам потрібні випадкові значення.
- Подумайте про випадок, коли вам потрібно зробити запит до стороннього сервісу, а цей сервіс недоступний (обробка виключень).
Платформи для підготовки до Livecoding’у
План підготовки
Щоб звикнути і не боятися Livecoding’у, потрібно створювати міні-стресову ситуацію під час підготовки до такого типу співбесід.
- Вирішуйте одну задачу раз на пару днів.
- Проговорюйте хід думок під час вирішення задачі вголос.
- Одну з десяти вирішених задач вирішуйте з увімкненою відеокамерою і проговорюйте рішення. Потім подивіться на помилки.
- Завжди робіть довирішування задачі.
ПЕРЕЙДІТЬ В ПОВНУ ВЕРСІЮ