Простір для вивчення нової професії, зростання в кар’єрі або розвитку бізнесу👇🏻
Наша команда пише для вас найкращі та найцікавіші матеріали, які обов’язково допоможуть у вашому навчанні: https://genius.space/lab/
Last updated 2 months, 3 weeks ago
?Книжкове літо 2024
Сьогодні я хотів би поділитись з вами кращими книжками, що я встиг прочитати влітку.
Тестування
?Advanced Testing of Systems-of-Systems - Volume 1: Theoretical Aspects та Volume 2: Practical Aspects - цікаві книги про те, як підходити до тестування складних систем (що складаються з інших складних систем). Багато практичних прикладів, але друга частина мені здалася навіть більш теоретичною ніж перша. Корисне є, але якщо ви читали багато тест менеджерської літератури та здавали екзамен ISTQB Test Manager - нового буде мало.
?Artificial Intelligence and Software Testing: Building systems you can trust - невеличка, але вкрай корисна книга про те, як тестувати недетерміновані системи - на прикладі AI та ML. Можна провести деякі паралелі із блокчейном. Книжка тільки розкриває цю тему та дає базові знання - то ж не треба очікувати якихось чарівних "таблеток".
Навчання
?Make It Stick: The Science of Successful Learning - книжка про те, що сучасне навчання не є ефективним, а існують кращі науково доведені способи як це робити. Книга хороша, але остання третина - чергове повторення попереднього матеріалу та інтервʼю з тими, хто користувався способами, що пропонують автори.
?Ultralearning - книжка від Scott H. Young, що пройшов 4-річну програму MIT з computer science - за 1 рік! В книзі автор розповідає про свій метод (по факту набір з відомих методів). 20% книги трохи водянисті, але решта - мені сподобалась.
?Building a Second Brain - так як веду нотатки, користуюся Obsidian та методом PARA - цю книжку рано чи пізно треба було почитати. Книга за авторством Tiago Forte, який метод PARA й створив. В ній автор більш глибоко розкриває метод, наводить безліч прикладів та й взагалі багато пише про те, чому нотатки в сучасному світі вкрай необхідні.
А що ви прочитали цього літа?
Проблема ораклів або чому тестувальника не просто замінити
Всім привіт. Сьогодні хочу поділитись експериментальним міні-подкастом.
В короткому епізоді я розповім про те, що таке проблема ораклів та як вона впливає на роботу сучасних тест-інженерів.
Як вам такий формат?
Про пошук роботи
Для багатьох людей пошук роботи = пошук вакансії на DOU/Djinni/Linkedin та подання на неї.
Але чим вище у вас позиція та років досвіду, тим менше ефективності від такого пошуку.
Що ще можна зробити, щоб підвищити свої шанси знайти роботу?
Прокачайте свій Linkedin профіль (допоможіть рекрутерам знайти Вас)
- Встановіть чіткий headline: в чому ви кращі, в чому ви спеціалізуєтесь?
- Додайте опис кожної роботи та що конкретно ви там робили (можна написати навіть більше, ніж у вашому CV)
- Застосовуйте ключові слова в секції summary
- Приберіть нерелевантний досвід роботи
Шукайте на Linkedin
- продивіться вашу мережу контактів. Можливо хтось може зробити Вам рекомендацію. Або просто відповісти на питання про те, як працювати в тій чи іншій компанії
- пошукайте цікаві продукти та компанії. Дізнайтесь яких спеціалістів вони шукають (або шукали нещодавно).
- проаналізуйте вимоги вакансій - це допоможе зрозуміти ваші пробіли в знаннях та можливі варіанти росту
- напишіть пост пошуку роботи в Linkedin (це краще працює, коли у вас вже є досвід роботи)
А щоб оцінити свій рівень поточної ЗП - можна прийняти участь в літньому опитуванні від DOU.
Google Docs
Портрет і зарплатне опитування DOU, літо 2024
Не зраджуємо традиції і продовжуємо щопівроку збирати анонімні дані про зарплати українських IT-спеціалістів. Як завжди влітку, до зарплат додаємо ще опитування «Портрет ІТ-спеціаліста». Якщо ви зараз знаходитеся в Україні або переїхали за кордон через…
Коротко про базові типи даних в Python
#python
Сьогодні невеличкий розбір базових типів даних в Python. Здається, тема надто проста, але як завжди, є невеличкі деталі. Я наприклад не часто працюю з нескінченностями, тому не знав, шо у float можна отримати такі дані.
Цілочисленні - int. Подивитись, який же найбільший integer можна з sys.maxsize
```
import sys
a = 100500
print(f"a = {a} та має тип {type(a)}")
print(f"максимальний розмір типу int: {sys.maxsize}")
```
Замість окремих float / double - Python має тільки float.
b = 123.456
print(f"b = {b} та має тип {type(b)}")
Крім float, є можливість працювати комплексними числами, а також з decimal / fraction.
```
c = 100 + 5j
print(f"c = {c} та має тип {type(c)}")
from decimal import Decimal
from fractions import Fraction
dec = Decimal("0.1")
print(f"dec = {dec} та має тип {type(dec)}")
frac = Fraction(1, 3)
print(f"frac = {frac} та має тип {type(frac)}")
```
Float дозволяє отримати трохи більш цікаві дані - такі як NaN чи нескінченність.
nan = float("nan")
print(f"nan = {nan} та має тип {type(nan)}")
inf = float("inf")
neg\_inf = float("\-inf")
print(f"inf = {inf} та має тип {type(inf)}")
print(f"neg\_inf = {neg\_inf} та має тип {type(neg\_inf)}")
Якщо не подобається float, можна застосувати math. Результат той же.
import math
print(f"Те ж саме з math.inf \- {math.inf == inf}")
Строки в Python бувають трьох типів - звичайні, сирі (raw) та форматовані.
```
single_quote_string = 'Hello, World!'
double_quote_string = "Hello, World!"
print(f"Python дозволяє строки з будь-якими лапками: {single_quote_string == double_quote_string}")
raw_string = r"\tRaw \n string"
well_done_string = "\tWell-done \n string"
print(f"raw_string = {raw_string}")
print(f"well_done_string = {well_done_string}")
formatted = f"{a} + {b} = {a + b}"
print(f"formatted = {formatted}")
print(f"formatted з фігурними дужками = {{{formatted}}}")
```
Результат в консолі:
a = 100500 та має тип <class 'int'>
максимальний розмір типу int: 9223372036854775807
b = 123.456 та має тип <class 'float'>
c = (100+5j) та має тип <class 'complex'>
dec = 0.1 та має тип <class 'decimal.Decimal'>
frac = 1/3 та має тип <class 'fractions.Fraction'>
nan = nan та має тип <class 'float'>
inf = inf та має тип <class 'float'>
neg\_inf = \-inf та має тип <class 'float'>
Те ж саме з math.inf \- True
Python дозволяє строки з будь\-якими лапками: True
raw\_string = \tRaw \n string
well\_done\_string = Well\-done
string
formatted = 100500 + 123.456 = 100623.456
formatted з фігурними дужками = {100500 + 123.456 = 100623.456}
Знайти співробітників з найбільшою зарплатнею
Всім привіт.
Сьогодні я прийшов до вас із задачею. Цю задачу можна вирішити для тренування, а можна навіть дати на співбесіді. Бо задача вкрай нескладна та можна швидко отримати рішення. Відповідь покаже рівень знання мови програмування.
Задача
"Уявімо, що ви працюєте в HR департаменті великої компанії. Вам прилетіла задача написати новий ендпоінт, який буде повертати всіх співробітників, що мають ЗП більше, ніж $100,000 на рік. Поверніть результат у вигляді набору з двох елементів - імені працівника та його зарплати".
Вхідні дані - це map такого вигляду:
employees = {'Alice': 100000, 'Bob': 99817, 'Carol': 122908, 'Frank': 88123, 'Eve': 93121}
Рішення буде наприклад таким:
top\_earners = []
for key, val in employees.items():
if val >= 100000:
top\_earners.append((key,val))
print(top\_earners)
Але існує трохи більш елегантне рішення, що показує можливості мови Python:
top\_earners = [(k, v) for k, v in employees.items() if v >= 100000]
print(top\_earners)
Або навіть:
top\_earners = list(filter(lambda x: x[1] >= 100000, employees.items()))
print(top\_earners)
Як бачите, на кожну проблему може бути декілька варіантів рішень. Але не забувайте PEP20 - "There should be one-- and preferably only one --obvious way to do it."
А як буде виглядати рішення на вашій улюбленій мові програмування?
⚡️Олександр Романов: Тестування Blockchain
? Про що:
Яку криптовалюту треба купувати прямо зараз? Коли біткоїн знов впаде в ціні та можна буде купити дешевше? Як зрозуміти, що ця компанія - scam? В цій доповіді НЕ БУДЕ таких порад.
А що буде - так це покрокове пояснення про те, що таке блокчейн, як він працює, що в ньому можна тестувати, а що - можна й не тестувати. Світ блокчейну великий та подекуди складний. Але якщо ви знаєте, як він працює "під капотом" - вам буде значно легше тестувати такі системи чи просто взаємодіяти із ними.
? Про Олександра:
В IT з 2011 року. Був автоматизатором, тестувальником, лідом SDET`ів. За цей час - встиг автоматизувати банківські застосунки, CMS системи, мікросервіси та мобільні ігри.
Наразі працює над тестуванням блокчейну в компанії IOHK як Software Engineer in Test. Досліджує питання тестування та захищеності складних розподілених систем.
— Співведдучий подкасту Testing Minutes https://www.youtube.com/@TestingMinutes
— Пише про тестування в каналі Test Engineering Notes https://t.me/testengineering та блозі https://testengineeringnotes.com/
— Допомагає компаніям знаходити технічних тестувальників та будувати процеси автоматизації
— Менторить тест інженерів
Де знайти Олександра?? LinkedIn
?X
? Вівторок, 16 Квітня о 19:00 за Києвом
?? Формат заходу: лекція
Як доєднатись?
?? Внесок: 300₴ (200₴ на ЗСУ)
? Для учасників Суворої QA Спільноти захід безкоштовний
Про навчання - 6: Експерти та новачки
Різниця між експертом та новачком.
Чим відрізняються новачки від експертів? Дослідження показують, що експерти (наприклад в грі в шахи) вміють запам'ятовувати та розпізнавати стан дошки в конкретний момент часу. Це допомагає швидко приймати рішення.
Розробники - експерти можуть розпізнавати типові паттерни в коді. Так, ті самі дизайн паттерни, які запитують на співбесідах. Ба більше - експерти можуть глянути на код та зрозуміти "що ота частина під капотом імплементує сортування". Новачку в тій же самій ситуації треба докласти більше зусиль та читати код рядок за рядком.
Як же новачку стати експертом? Відповідь проста - читати, писати та розбиратись у різному коді. Як хорошому так і поганому.
Бути експертом - навчатись по-іншому
Існує така річ, як expertise-reversal effect. Він означає, що для новачкам та експертам потрібні радикально різні підходи до навчання.
- Новачкам буде корисним отримати туторіали та різні cheat листи з використання інструментів. Експерти самі здатні продумати подібні туторіали.
- Новачкам потрібні легкі завдання для закріплення вивченого - поки нова інформація наче пазл не стане на потрібне місце.
- Новачкам потрібні приклади та точне пояснення результату. Експертам більше підійдуть “відкриті” питання та обговорення.
- Експертам потрібне мінімальне пояснення та більша свобода дії.
Бути експертом - не означає бути хорошим вчителем.
Дуже часто сіньйори чи техліди не можуть пояснити новачкам якісь аспекти просто тому, що вони роблять багато речей "автоматично". Експертам важко відокремити такі навички та розбити їх на окремі вправи чи пояснення.
В такому випадку може допомогти влаштувати сесію між експертом, новачком та більш обізнаним інженером (який трохи краще знається на системі, ніж новачок). Такий інженер зіграє роль "мосту" між фахівцями - допоможе експерту візуалізувати знання, а новачку - отримати зрозуміле пояснення.
Неявні знання
Те ж стосується накопичення великої кількості "неявних" знань в голові однієї "експертної" людини. Такі неявні знання ще називаються тацитовими. Це можуть бути як доменні знання з проекту, так і технічні знання з фреймворку чи конфігурації системи.
Щоб запобігти накопиченню таких знань - варто писати документацію. Наприклад - FAQ документи, гайди з конфігурації, корисні збірки команд на кожен день.
Для експерта користь буде в зменшенні кількості однакових питань - бо люди спочатку підуть й шукають відповідь на Конфлюенсі.
Wikipedia
Expertise reversal effect
reversal of the effectiveness of instructional techniques on learners with differing levels of prior knowledge
Про навчання 5: Як зрозуміти, що вчити?
Про те, що треба вчитись - говорять усі. Наче й ресурсів вдосталь: книжки, курси, вебінари, ментори. Але як зрозуміти, що треба вчити?
Універсальної відповіді немає. Бо в кожного свій контекст.
Але можна застосувати таку методику:
- Проаналізуйте те, що вам цікаво - те що вас дійсно захоплює в роботі (Подумайте, що ви можете робити так довго, що наче "забуваєте про час").
- Подивіться на те, що вам не вистачає в роботі зараз. Це може бути доменні знання, фреймворк, технологія чи інструмент.
- Запитайте в менеджера, що вам не вистачає для промоушену. Це також може стати джерелом тем для навчання.
- Подивіться вакансії - що зараз треба на ринку праці. Скорочення можуть бути в будь-який момент. Тому впевніться, що ваші навички актуальні.
P.S. Краще поглибитись в тему, здобути перші знання та закріпити їх на практиці. Ніж читати тисячі сторінок книжок теорії
P.P.S. Я трекаю навички у вигляді mind map та переглядаю їх раз у квартал чи півроку.
Простір для вивчення нової професії, зростання в кар’єрі або розвитку бізнесу👇🏻
Наша команда пише для вас найкращі та найцікавіші матеріали, які обов’язково допоможуть у вашому навчанні: https://genius.space/lab/
Last updated 2 months, 3 weeks ago