Привіт, мій щоденнику...Знаю, що більшість людей намагається просто запам'ятати те, що вчать. Але чому тоді ми кажемо "запам'ятати" окремо та "вчитися" окремо? Адже це різні слова?Існує багато засобів для навчання. Ось один з них, не дуже складний. Це шукати спільне.Спільне у різних речей з'являється тому, що насправді це одне й те саме. Якщо дізнаєтеся, чому — то це ще один засіб навчання. Але про нього не зараз.Якось я спитав у себе, чому термін "медіана" існує і в геометрії і у статистиці? Щоб не копати в фундаментальні знання, можна просто придивитися. Ось на зображенні медіана трикутника. Вона впирається у середину однієї зі сторін, це нам відомо зі школи. А куди впирається медіана зі статистики? Також в середину відрізка, ось тільки на цьому відрізку — впорядковані значення.Скажімо, маємо значення: 2, 17, 25, 6, 10.Впорядкуємо їх: 2, 6, 10, 17, 25.Можна уявити ці числа на стороні трикутника, вони мають бути рівномірно розподілені на ній.Отже, наша медіана (статистична) так само впиратиметься у середину — число 10, адже саме воно у центрі.І так повсюди. Не завчайте — вчіться.
Привіт, мій щоденнику...Не можна навчитися, якщо віриш. Я займаюсь навчанням, та аналізую те, як вчаться студенти, а це постійно нові сотні людей.Один з аспектів, який мене цікавить, це віра. На щастя, серед моїх студентів, таких не багато, але достатньо, щоб помітити. То про що мова?Наведу яскравий приклад. Уявіть, що коли ви починали свій шлях у тестування, вас навчили, що sanity testing перекладається, як "санітарне тестування" і ви звикли до цього. Але викладач каже вам, що "санітарне" це "sanitary", і воно не є синонімом до "sanity". Далі йде пояснення, чому слово sanity має сенс для sanity testing та як саме.Але для вас це ламає вашу внутрішню ідентифікацію, якщо хочете. Ви роками думали, що це саме "санітарне" тестування, у вашій голові навіть були логічні (як вам здавалося) пояснення, чому саме це слово має сенс. ВИ НЕ ХОЧЕТЕ БУТИ НЕПРАВИМИА в результаті пручаєтеся отримати нові знання. Бо скажу вам "по секрету", різниця тут є, й знання саме про sanity підвищує вашу кваліфікацію та розширює кругозір тестувальника.А тепер уявіть, що ви мідл чи сеньйор та встигли вчити інших цьому "санітарному" тестуванню. Все. У 90% ви ніколи не визнаєте, що термін не є коректним, ба більше — будете захищати саме його, щоб зберегти авторитет. Таким чином у нас в тестуванні існує ціла низка неправильних термінів, їх визначень та як наслідок — не коректних (не ефективних) підходів. Ми, тестувальники, так часто сумніваємося у тому, що "фіча працює" й випробовуємо її купою дивних сценаріїв, але цей самий метод вже не працює для власних "фіч" — навичок та знань. Але конструктивні сумніви у власних знаннях є ключем до їх еволюції та розвитку.
Наш новий QA КЛУБ та його експериментальні фічі.👉Перші дві активності є доволі класичними.1️⃣ Живі зустрічі. Відбуваються у Google Meet, без запису, спілкування про тестування, але за бажанням може бути на будь-які теми. На зустрічі завжди Олекса, який веде зустріч. 📆 Періодичність: кожна 2-га середа місяця о 20:00 за Києвом.2️⃣ Міні доповідь. На разі всі такі доповіді від Олекси особисто. Теми — тестування та навколо. Тривалість планується 30 хвилин. 📆 Періодичність: кожна 1-ша середа місяця.__________👉Тепер черга експериментів.Анти доповіді, просмажування.3️⃣ Анти доповідь. Також має бути 30 хвилин, але в доповіді Олекса буде критикувати типові теми, знаходити їх недоліки, а не традиційно розказувати про те, що це чи як користуватися. Це тренування критичного мислення та дослідництва у професії. 📆 Періодичність: кожна 4-та середа місяця.4️⃣ Просмажування. Дисклеймер: це не про гейт, ми поважаємо усіх колег. Але у деяких відео чи статтях часто присутні помилки, інколи грубі. І нам потрібні розбори для розвитку спільноти. Всі просмаження будуть направлені проти матеріялу, а не проти особистостей. 📆 Періодичність: кожна 3-тя п'ятниця місяця.__________👉Мікродозинг контенту, що триматиме тебе у тонусі.Думки та новини5️⃣ (Критичні) думки про «ШІ». Маленькі відео у TikTok стилі. Чому «критичні» у дужках? Бо критичні думки тут цікавіші й корисніші. Але якщо захочеться сказати «ШІ» комплімент, то це станеться. 📆 Періодичність: щовівторка.6️⃣ Експрес огляд новини зі світу IT та/чи тестування. Теж не тривалий формат, довший за ТікТок, але менший за доповіді. Такі собі мікро подкасти. Відео чи аудіо формат.📆 Періодичність: щочетверга.❗️Записи доступні всім членам Клубу. Ви матимете доступ до них з дати вашого доєднання, проте не можна під'єднатися на місяць та передивитися весь контент за попередні роки. Але весь майбутній контент з вами, поки ви в Клубі.🔑 Як доєднатися?Ось тут, ласкаво просимо: https://base.monobank.ua/3dHV4RUJM3fVn4#subscriptions
Привіт, мій щоденнику...Побачив на теренах LinkedIn жваве обговорення (та підтримку сотень людей) про те, що до "ШІ"-агентів треба ставитися, як до співробітників людей, а не як до програм. А отже, для цього потрібні HR фахівці та їх методи.Час від часу я заздрю тим, хто тупо завчає абревіатури та терміни. Бо дивлячись на вираз "HR for AI agents" я відчуваю когнітивний дисонанс. Адже HR містить слово Human, а AI починається з Artificial.Втім, думаю, що це більше, ніж помилки у термінології. Після ковіду люди стали масово працювати віддалено. І самі з усіх сил намагалися стати функціями, а не людьми: ніколи не вмикати камеру, не синхронізувати власний робочий день з робочими годинами інших. Не вітатися та не прощатися у текстових чатах — бо навіщо все це? Головне лише робота, що має бути виконана. Моє "людське" має бути суворо відрізане від роботи.А потім прийшли мовні моделі, які стали спілкуватися з нами часто більш людяно, ніж наші колеги поруч. Чим друзі, які не мають дзвонити нам чи лишати голосові, бо це моветон та втручання в особистий простір. Але все стало не так з "ШІ". Щоб не ходити далеко, нагадаю, що користувачі ChatGPT масово скаржилися на нову п'яту модель через те, що вона була не такою людяною, як попередня, четверта. Ще раз — мова не про якість відповідей, люди буквально страждали через те, що у них "відібрали єдиного друга".А тепер ми кажемо, що AI-агентам потрібні HR. Ні, ніхто не буде виправляти цю помилку з термінами. Ми просто і далі будемо сприймати AI все більше як людину. А людину все більш як лише функцію, програму. Наш дивний новий світ.
Привіт, мій щоденнику...Цей час настав і якщо щось з літерами "ШІ" працює гарно або принаймні цікаво, воно варте уваги.Всі, мабуть звикли, що я більше по критиці "ШІ", але критика не значить заперечення чи боротьба проти. Та й критика моя більше про огульне використання людьми, ніж про саму технологію. А ще я казав, що не можу назвати "ШІ" інструментом, якщо ми кажемо про LLM, бо потрібен опис цього інструмента. І це — генерація тексту. Дуже загально, дуже не спеціялізовано. Але коли ми починаємо обмежувати LLM та надавати йому спеціялізації, то з'являться як раз те, що можна назвати інструментом.Наприклад, NotebookLM — це інструмент.А ось ще цікавий приклад. Йтиметься про Windows та застосунок PowerToys (також від Microsoft). Точніше — лише про одну маленьку фічу, а саме — Advanced Paste.Advanced Paste розширює можливості вставки з буфера обміну. Базові опції:- Paste as plain text- Paste as markdown- Paste as JSONАле це лише початок. Ви можете увімкнути опцію "Paste with AI" і тоді буде змога написати моделі, що треба зробити з текстом, що копіюється. Наприклад, скопіювали шматок коду на C#, викликали Advanced Paste та написали, щоб він вставив вже код на Python. Вуаля! Кайф?В налаштуваннях все "по дорослому". Обираєте модель та вводите необхідний ключ. Доступні різні моделі від OpenAI, Google та інші.Але і це не все. Є можливість використовувати локальні моделі: Ollama та Foundry Local. Як відомо, їх використання не потребує оплати за токени, всі працює на вашій машині (хоча є вимога по продуктивності).Звісно, з цього можна зробити монстра та почати завантажувати моделі складними завданнями, але це буде не by design. Все ж, йдеться про Copy/Paste, хоча й просунутий. І це цікаво. "ШІ" не як оракул, але помічник саме там, де треба і саме так, як треба. Я "ЗА" такі інструменти, які заряджають з "ШІ". Обмеження = спеціялізація.Чи потребує це зміни того, як ми бачимо роботу з ПК? О так. І мені здається, стане не простіше користуватися ПК, але можливостей буде більше. Втім, саме ці можливості важливо використовувати, щоб комп'ютер майбутнього став тобі справжнім другом. Ніякого омріяного кіберпанку без цього не буде.
Привіт, мій щоденнику...Найгірше, що сталося у навчанні тестування — це бездумний переказ однакової інформації крізь вже десятиріччя.Наприклад, принципи тестування, які давно стали своєрідною притчею во язицех. Про що вони?Варто лише запитати на співбесіді, про що вони та навіщо і побачимо, як кандидат збентежиться, бо відповіді на ці питання зазвичай не пропонують. Лише самі описи принципів.Ну гаразд, залишимо поки ці питання осторонь. Як зазвичай сприймають принципи тестування? Як щось, що описує скоріше "природу речей", особливість програмного забезпечення з погляду пошуку багів. Ще один популярний погляд — як виправдання пропущених багів. Коли я вперше зіткнувся з таким баченням, я подумав, що це виняток з правила, не хотів вірити у популярність такої інтерпретації. Але потім зустрічав її знову і знову. А тепер уявимо, як формується новачок з таким баченням.То чим є ці принципи? Вони для формування "світогляду тестувальника" та про підходи до тестування. Це така собі "філософія" або "ідеологія" початкового рівня, яка на старті може допомогти перемкнути режим мозку на правильний — дослідницький та з урахуванням специфіки розробки ПЗ.Натомість їх просто завчають. І пояснити, навіщо — дуже часто не можуть. Це значить, що мозок так і не був "поставлений" правильно й тестувальник ризикує користуватися побутовою логікою в роботі, а така логіка не має бути основним інструментом, лише допоміжним.Але принципи тестування й далі "тягають" з курсу в курс, з сайту в сайт без пояснень. Як щось, що треба завчити для співбесіди виключно. Сумно, Маємо переосмислити.
Привіт, мій щоденнику...Час від часу потрапляю на відео, де тестувальники у захваті розповідають про практики користування «ШІ». І я помічаю спільну рису. На таких відео завжди ціла низка фейлів, які начебто не помічаються, але які раніше ніколи б не залишилися б непоміченими, якби йшлося про «олдскул» інструмент, типу Jira чи TestRail. Але у випадку з «ШІ» пробачається багато чого.Наприклад, в одному з відео автоматизатор показує, що у Cursor можна встановити Playwright просто написавши про це агенту словами, замість того, щоб виконувати команду у командному рядку. Що він і робить, але...Щось йде не так і Playwright не встановлюється, видає помилки, які автор навіть не хоче розглядати. Він каже. що у таких випадках можна встановити у звичний спосіб. А як встановлювати — можна подивитися у документації на офіційному сайті Playwright, що і демонструє.Всі ця мініісторія не була вирізана з відео. Хоча, здавалося б — вона показує те, як «ШІ» НЕ спрацював і як людина зробила все «по дідівські». Втім, думаю, що автор розуміє, наскільки це байдуже, якщо авдиторія апріорі сприйме "ШІ" позитивно.Далі показана генерація автотестів. Без аналізу тестової області, просто через запит «Зроби більше покриття тестами». Покриття чого? Що ти тестуєш та навіщо? Не важливо, бо важливим є лише те, що «ШІ» буде генерувати тести.Втім, це не кінець. Далі тести запускаються і деякі падають. Тоді тестер просить агента виправити та коментує — мовляв, я навіть не дивлюся, що «ШІ» змінює, одразу приймаю зміни й дивлюся лише, щоб всі тести в результаті пройшли успішно.Цікаво, що перша спроба пофіксити тести не змогла виправити всі. То ж, було зроблено другу ітерацію сліпих змін. І вуаля — всі тести успішно пройдені й це є успішним результатомАле у чому успіх? У тому, що агент згенерував ЩОСЬ? У тому, що це ЩОСЬ показало успішний запуск? Що було перевірено? Яка в цьому цінність? Що ми покрили та навіщо?Чи в коментарях є якась критика? Ні, лише «дякую» та «вау».При тому, що можна було придумати сценарій для відео, де показати реальну користь від тих самих дій. Трохи аналізу, трохи рев'ю, трохи коментарів про те, чому одна версія тесту фейлила, а інша — ні, Але цього не буде, бо не на цьому тримається масовий гайп.Увага! Йдеться саме про масовий(!) гайп. Бо висококласні фахівці, звісно ж, не так користуються "ШІ"-інструментами. Але, ви розумієте, їх історії це: «Міша, у тєбя скучнає ліцо, тєбє ніхто дєнєх не даст».
Про Python (і не тільки).Продовження попередньої частини.Частина 🔤Будемо їсти цього "слона" шматочками. Отже, зупинилися на тому, що змінні це не скрині. Що тоді? Мітки, ярлики (якщо простою мовою). Ідентифікатори (якщо казати суворіше). Але не лише, бо всі ці терміни наче є синонімами до слова "ім'я", але наші змінні є чимось більшим. Вони не лише ім'я (хоча тільки його ми бачимо у коді), але й вказівник на місце у пам'яті, де зберігаються дані. Простіша, але правильна аналогія — вони це ярлик, на якому ми написали ім'я та причепили на дані.Чи можна на одні й ті самі дані начепити кілька ярликів? Або: чи може декілька ідентифікаторів вказувати на одну й ту саму область в пам'яті? Так, все це може бути. І саме це ми й бачили у попередньому дописі.Пригадаємо, що ми робили таке:y = x
І тут ми, як вже знаємо, не створювали скриню, хоча й визначили нове ім'я — "y". І тепер ім'я "y" вказує на ті самі дані, що створилися раніше, коли ми написали таке:x = ['A', 'B']
Щоб не копати надто глибоко, скажу, що однією з причин такої поведінки є економія пам'яті комп'ютера, де зберігаються дані програми.Отже, цей код:x = ['A', 'B']y = x
зробив наступне:1. В пам'яті зберіг дані: список ['A', 'B']2. Створив нове ім'я "х"3. Зв'язав ім'я "х" з даними (нашим списком)4. Створив нове ім'я "у"5. Зв'язав ім'я "у" з тими ж(!) даними (на які вказує х)Або: повісив на наш список два ярлика: "х" та "у".Ми отримали ситуацію, коли два імені вказують на одні й ті самі дані. Кажучи суворіше — вказують на однакову область в пам'яті (де зберігаються наші дані).Частина 🔤Що відбулося потім? Потім ми зробили це:x.append('C')
, і ця команда додала новий елемент до списку, не змінюючи його місця у пам'яті. Просто список став довше.А наші змінні х та у, як і раніше, продовжують на цей список вказувати. Ярлики ніхто не зривав.Зверніть увагу: виконуючи команду x.append(), ми наче застосовуємо її до змінної х, правда? Але ми вже з'ясували, що змінні не є скринями. Отже, механізм дещо інший. Python побачив ім'я "х", звісно. Але далі пішов за адресою, куди наш "х" вказує. І всі зміни відбулися в пам'яті, над даними.Наче як сказати: "Серед мішків на складі знайди той, на якому ярлик з надписом "х" та додай до мішка ось це яблуко"Імена "х" та "у" так і лишилися іменами, вказівниками на дані. Змінилися самі дані, все інше залишилося.Саме тому, коли ми в кінці надрукували значення:print(x)print(y)
, то отримали однаковий результат. Бо обидві змінні вказують на однакові дані. Цікаво, чи буде різниця, якщо викликати команду для збільшення списку через ім'я y замість x? Ось так:y.append('C')
Ви вже знаєте відповідь. Результат буде таким самим. Яка різниця, якщо я покладу яблуко у мішок з ярликом "у", адже це той самий мішок, на якому і ярлик "х"?Не скриньки. Лише ідентифікатори з вказівниками на дані. Ярлики на мішках на складі.Але і це ще не всі ракурси теми, бо в інших випадках аналогія з мішком стає дещо недолугою та потребує доповнення.❗️Діятимо далі за тим самим принципом: залишайте вподобайки, і я продовжу.
Про Python (й не тільки).Більшість навчальних матеріялів каже, що змінна — це як скриня, в якій щось лежить. Досвідчені кажуть, що це не так. Перевіримо?Частина 🔤Ось у нас є список з літер "A" та "B", який ми "поклали у скриню" x:x = ['A', 'B']
А потім створили нову "скриню" y, в яку поклали такі ж дані, що лежать у "скрині" x:y = x
Перевіримо, та виведемо вміст обох "скринь" на екран:print(x)print(y)
Та отримаємо те, що й очікували:['A', 'B']['A', 'B']
Частина 🔤Далі ми змінюємо лише "скриню" x — спеціяльною командою додаємо елемент "C" до списку:x.append('C')
Ми ж не чіпали "скриню" y, правильно? Перевіримо, виведемо на екран вміст обох наших "скринь":print(x)print(y)
І отримаємо таке:['A', 'B', 'C']['A', 'B', 'C']
Якимось чином, вміст "скрині" y змінився, хоча ми, начебто, не чіпали її.Ось повний код даного прикладу без зайвих виводів:x = ['A', 'B']y = xx.append('C')print(x)print(y)
Що ж, це тому, що змінні не є скринями. І хоча концепт про скрині є дуже зручним для базових уроків, він дещо спотворює реальність та заважає подальшому вивченню мови.Хай цей допис буде тізером для наступного, щоб не розтягувати. Це тестовий формат про Python, І мені вже не подобається, бо в каналі не будеш викладати щось типу цілого уроку, а отже багато чого залишається за лаштунками. Бо приклад торкається, суворо кажучи, не лише теми змінних, тому повне розкриття вимагає, як мінімум, пари ракурсів. Хоча, ця тема доволі проста, насправді — зрозуміти її буде не важко.❗️Що буде далі? Пропоную так. Лишайте вподобайки, якщо вам цікаве таке. Якщо назбираємо 20+ вподобайок — значить я розвиватиму формат та наступним кроком продовжу тему цього допису.
Привіт, мій щоденнику...Написав коментар до одного допису на DOU, про "ШІ", звісно ж — вайбкодинг та інше створення коду "ШІ"-інструментами. Мабуть, муза якась пролітала поряд, що коментар вийшов дещо художнім. Тому він буде закарбований на скрижалях (здається. муза ще не відпустила) цього щоденнику.Допис на форуміМій коментар:Ось ще один ракурс.Якийсь Петро гарно вчився, а потім роками створював... машини, які в апокаліптичному майбутньому забезпечують міста повітрям для дихання.Якийсь Василь не обов’язково гарно вчився, а потім роками створював вебсайти для інтернет-магазинів (при всій повазі).Зараз Василь каже Петрові, що ось є новий інструмент, який пише за тебе код, і ти, Петре — мусиш використовувати його для створення нових машин для очищення повітря.На що Петро каже, мовляв — ймовірно, твої сайти, Василю, цей інструмент і може створювати. У будь-якому разі я не заважаю тобі робити це. Але я краще знаю, чи цей інструмент достатньо професійний для моєї роботи. І наразі — ні, не достатньо. Можливо, в майбутньому. Але не зараз.Але Василя ображає така відповідь і він починає звинувачувати Петра у різному та писати статті про те, що новий інструмент може замінити Петра вже зараз, а Петро — непотрібний динозавр, який дарма їсть свій хліб.«Water is for toilets — drink Brawndo! It’s got electrolytes!» (з фільму «Ідіократія»). У фільмі всі вірили в те, що цей напій краще за воду, а отже краще й для поливу сільськогосподарських рослин, що призвело до втрати 100% врожаю. Але як проста вода може бути кращою за чудовий напій? З електролітами ж!Повірте, Петро дуже адекватний і розуміє, що коли інструмент справді стане кращим за нього, довго цього приховати не вдасться, навіть якщо намагатися. Петро перекваліфікується, але визнає нову правду.Але поки Петро каже, що інструмент не пасує для його роботи, чому всі (крім колег Петра) намагаються переконати його у зворотному? Бо «містить електроліти!»?