Codica - корисне про IT
2.08K subscribers
3.42K photos
178 videos
60 files
1.77K links
Привіт, друже, це канал про корисності в ІТ🤘

🔺Даємо практичні матеріали з RoR, JavaScript, QA, DevOps
🔺Розкажемо як знайти першу роботу без хвилювань та проблем

✍️Для звʼязку-@klimenko_nataly

👉 Відкриті вакансії - www.codica.com/careers
Download Telegram
💰 Де читати про особисті фінанси та інвестиції в Україні?

Друзі, всі ми хочемо не лише заробляти, а й навчитися грамотно розпоряджатися грошима: відкладати, накопичувати та розумно інвестувати.

Але де шукати корисну інформацію без обіцянок швидкого збагачення та сумнівних фінансових порад?

Зібрали для вас кілька українських ресурсів, які допоможуть краще розібратися в особистих фінансах та інвестиціях 👇
👍4
📌 Сімейний бюджет — Любомир Остапів

Про особисті фінанси без обіцянок швидкого збагачення. Як сформувати фінансову подушку, планувати великі витрати, розподіляти заощадження та готуватися до майбутньої пенсії. Хороша відправна точка для побудови власної фінансової системи.

📌 iPlan / iPlan Talks — фінансове планування та інвестиції

Для тих, хто вже навчився заощаджувати й хоче перейти до управління капіталом. Інвестиційні портфелі, диверсифікація, фінансові цілі, управління ризиками та практичні особливості інвестування для українців. Особливо актуально для IT-фахівців із доходами у валюті.

📌 Запали цілі | GOALS on FIRE — Роман Кошовський

Для тих, кого цікавлять довгострокові інвестиції та фінансова незалежність. Індексні фонди, пасивне інвестування, поведінка інвесторів, ризики та концепція FIRE (Financial Independence, Retire Early). Тут більше про стратегію та системний підхід, ніж про пошук наступної «ракети» на біржі.

📌 Національний банк України / Гаразд

Першоджерело для перевірки фінансової інформації. На сайті НБУ — дані про інфляцію, облікову ставку, валютне регулювання та банківську систему. А «Гаразд» — освітній портал про фінансове планування, депозити, кредити та захист від шахрайства.

📌 Державна податкова служба

Не найзахопливіше читання, зате необхідне для перевірки податкових правил. Актуальні роз'яснення щодо ФОП, декларування доходів та оподаткування інвестицій варто шукати саме в офіційних джерелах, а не покладатися лише на поради блогерів.

І головне: навіть якісний фінансовий контент — не готова інструкція до дії. Завжди враховуйте ризики та власні фінансові цілі.

💬 А які українські ресурси про фінанси читаєте ви? Поділіться в коментарях — цікаво зібрати ще більше справді корисних джерел.

#codica_advice

Instagram | LinkedIn | YouTube
🔥4
Що читають у Codica 📚

Друзі, на зв’язку наша постійна рубрика, де ділимось книгами з корпоративної бібліотеки, які можуть бути корисними не лише для полиці, а й для роботи, мислення та розвитку.

Минулі наші розбори:
👉 Head First — Програмування на JavaScript
👉 Гарро фон Зенгер — 36 стратегем для керівника
👉 Head First — Патерни проєктування
👉 Ювал Ной Харарі — Sapiens. Коротка історія людства
👉 Роберт Мартін — Чистий код
👉 Штучний інтелект і нейромережі
❤4
Роберт Мартін — Чистий Agile

Чому це цікаво
Agile давно став модним словом, яке кожен трактує по-своєму: стендап є — значить Agile, Jira є — значить Agile, мітингів стало більше — точно Agile 😏
Ця книга повертає тему до базових принципів і пояснює, що Agile — це не церемонії, а спосіб мислення та роботи.

Що сильного
• добре очищає тему від корпоративного шуму навколо Agile
• нагадує справжні цінності: швидкий зворотний зв’язок, адаптивність, співпраця
• корисно читати командам, де процесів стало більше, ніж результату
• багато сильних думок про простоту та здоровий delivery
• після книги хочеться прибрати половину мітингів календаря 😏

Що недотиснули
• якщо ви давно в Agile-середовищі, частина тез буде знайомою
• місцями автор категоричний у судженнях
• книга більше про принципи, ніж про сучасні практичні кейси команд 2020+ років

Кому може бути цікава
👉 PM / PO
👉 Scrum Master’ам
👉 team lead’ам
👉 engineering manager’ам
👉 розробникам, які хочуть зрозуміти “чому ми це робимо”
👉 командам, де процес почав душити роботу

Оцінка від Codica
8.6 / 10 👍

Наш висновок

Корисна книга для тих, хто втомився від Agile “для галочки” і хоче зрозуміти, як цей підхід має працювати в реальному житті, а не лише в презентаціях.

Instagram | LinkedIn | YouTube
👍4❤2
Друзі, знайшли класний ресурс із 350+ безкоштовними DevOps-лабораторними!

🐧 Linux, Ansible, Terraform, Kubernetes, GitHub Actions та DevSecOps.

Виконуєте завдання на реальній машині, перевіряєте результат і закріплюєте знання на практиці 💪

Корисна штука як для новачків, так і для тих, хто хоче прокачати свої навички.

🔗 Ловіть посилання

Ну і накидайте нам вогників за старання 🔥

Instagram | LinkedIn | YouTube
❤‍🔥5
Друзі, замість вечірнього скролінгу мемів — тримайте гостру дозу користі.

Новий Ruby Digest уже на базі!

Наш CEO Дмитро зібрав головні апдейти місяця.
Що на порядку денному?

⚡️️️️️️️AI на практиці: підсилюємо воркфлоу розробника.
⚡️️️️️️️Екосистема: свіжі фічі й релізи Ruby & Rails.
⚡️️️️️️️Автоматизація: як змусити код працювати на вас.

Гортайте дайджест під вечірній чайок і спокійних вам вихідних ⭐️️️️️️️

👉 Читати Ruby Digest

💎 Instagram | LinkedIn | YouTube
🔥4
Раночку! ☕️

Понеділок — час для великих звершень. Вриваємось!

Коли нарешті у 2026 вирішив стати програмістом, а ШІ каже, що сам усе напише. 🫠

#codica_humor

💎 Instagram | LinkedIn | YouTube
😁5
🎯 Як відповідати на технічні питання на співбесіді?

#codica_interviews

✅ Сильний інженер — перевіряє не лише функціональність коду, а й конкурентність операцій, цілісність даних та поведінку системи за реального навантаження.

❌ Слабкий підхід — вважати, що успішне проходження тестів гарантує відсутність production-проблем.
😁1🌚1
An AI assistant generated a Rails implementation that passes all tests. How would you verify its production readiness?

📌 Очікувана відповідь:

Тести підтверджують лише перевірені сценарії. Вони не гарантують відсутності race conditions, порушень бізнес-інваріантів або проблем із продуктивністю.

📌 Практичний приклад: конкурентне списання коштів

AI згенерував метод:


def withdraw!(amount)
raise "Insufficient funds" if balance < amount

update!(balance: balance - amount)
end


Якщо два запити одночасно прочитають баланс 100 і кожен спробує списати 80, обидва пройдуть перевірку. Через перезапис застарілого значення один із запитів може загубитися.

📌 Виправлення з pessimistic locking:


def withdraw!(amount)
raise ArgumentError unless amount.positive?

with_lock do
raise "Insufficient funds" if balance < amount

update!(balance: balance - amount)
end
end


with_lock відкриває транзакцію, блокує запис через механізм блокування БД та перечитує його перед виконанням блоку. Другий запит чекатиме на звільнення блокування, після чого перевірить уже актуальний баланс.

У наведеному сценарії перше списання зменшить баланс до 20, а друге завершиться помилкою недостатності коштів.

📌 Що важливо врахувати в production?

👉 Використовувати відповідний тип даних для грошей, наприклад цілі числа в мінімальних грошових одиницях або decimal, а не float.

👉 Перевіряти коректність суми та забезпечувати бізнес-інваріанти, зокрема за допомогою обмежень БД.

👉 Переконатися, що всі операції зміни балансу використовують сумісну стратегію блокування.

👉 Тестувати конкурентні сценарії та обробку помилок, включно з повторними спробами.

🍀 AI може згенерувати код, який проходить тести. Завдання інженера — перевірити його коректність за конкурентного виконання та довести, що бізнес-інваріанти залишаються незмінними.

💎 Instagram | LinkedIn | YouTube
👍2
This media is not supported in your browser
VIEW IN TELEGRAM
Роками вчився програмувати, а тепер твій код пише ШІ?

Ще вчора рекрутери полювали на тебе. Сьогодні ти полюєш на вакансії. То що, ми роками вчилися, щоб стати AI Shit Reviewer? 😎

Куди зникли золоті часи IT, чи забере ШІ нашу роботу та за що тепер платять програмістам?

🎬 Розбираємося в новому відео Codica People — все як ми любимо, цікаво, корисно та з гумором

👉 [Посилання на відео]

💬 А ти як вважаєш: ШІ — твій напарник чи майбутній конкурент?

💎 Instagram | LinkedIn | YouTube
🎉5😁1
Google відкрив 20 000 безкоштовних місць на навчання з ШІ для українців! 🚀

Друзі, ділимося корисною можливістю! Google запустив нову хвилю програми «Сертифікація Google із професійного використання ШІ» на Coursera.

Цього разу є цікаве оновлення — курс із вайбкодингу, де навчатимуть створювати застосунки за допомогою ШІ навіть без досвіду програмування.

📚 Що пропонують:
- 8 онлайн-курсів: від основ ШІ до аналітики, креативу та розробки.
- Практичні завдання на основі реальних робочих кейсів.
- Навчання у власному темпі — загалом 10–15 годин.
- Українські субтитри та навчальні матеріали.
- Сертифікати за кожен курс і за завершення всієї програми.

📅 Реєстрація — до 10 грудня 2026 року.

!!! Участь безкоштовна, але кількість місць обмежена.

👉 Подати заявку

А якщо знаєте когось, кому ці курси можуть стати в пригоді — поділіться посиланням.

Хороші можливості мають знаходити своїх людей 💙💛

💎 Instagram | LinkedIn | YouTube
🔥3
Друзі, запускаємо нову серію — 🔬 ПІД КАПОТОМ!

Будемо розбирати очевидні й не дуже очевидні речі в IT, якими ми користуємося щодня, але не завжди замислюємося, що там насправді відбувається.

Чому один рядок коду може покласти базу? Навіщо Docker раптом перебудовує пів світу? Куди Git подів ваш commit? Чому тест учора був зеленим, сьогодні червоний, а після retry знову «все добре»? І що насправді встигає відбутися між Enter і відкритою сторінкою?

Без занудства й лекцій на три години. Одна проблема → заглянули під капот → розібралися, як воно працює → пішли далі трохи розумнішими. 😎
👍3
🔬 ПІД КАПОТОМ #1

N+1 у Rails: коли все літає… поки не з’являються реальні дані

Друзі, а чи бувало у вас таке?

На локалці сторінка літає. Тести зелені. Rails мовчить. Ви задоволені собою.

А потім код потрапляє в production, даних стає більше і сторінка раптом відкривається так, ніби Rails перебирає кожен запис руками.

Вітаємо, можливо, ви зустріли N+1 query problem 😈

Заглядаємо під капот.

🚗 Що пішло не так?

Маємо список постів:


@posts = Post.all


І показуємо автора кожного:


@posts.each do |post|
puts post.author.name
end


Виглядає невинно. Але Rails спочатку отримує всі пости:


SELECT * FROM posts;


А потім для кожного поста окремо шукає автора:


SELECT * FROM authors WHERE id = 1;
SELECT * FROM authors WHERE id = 2;
SELECT * FROM authors WHERE id = 3;
...


Отримуємо:

1 запит за постами + N запитів за авторами = N+1.

10 постів? База навіть не образилась.

1 000? А можна було просто сказати, що ви її не любите.

🧠 Чому Rails так робить?

Через lazy loading.

Rails не завантажує пов’язані дані, поки вони реально не знадобляться. Викликали:


post.author


— Rails пішов у базу за автором.

Сам по собі підхід нормальний. Проблема починається, коли це відбувається всередині циклу.

Один рядок Ruby — і під капотом уже сотні SQL-запитів.

🔧 Як виправити?

Якщо знаємо, що автори нам знадобляться:


@posts = Post.includes(:author)


Це eager loading: Rails завантажить потрібні пов’язані записи заздалегідь замість окремого походу в базу для кожного поста.

База вдячна. Production теж.

👀 Чому N+1 легко пропустити?

На локалці у вас 20 записів — і все працює швидко.

Ви дивитесь: «Ну працює ж».

Production із 50 000 записів: «Зараз поговоримо».

Тому дивіться не тільки на швидкість сторінки, а й у SQL-логи. А Bullet допоможе автоматично знаходити потенційні N+1.

🎯 Що забираємо із собою

post.author виглядає як звичайне звернення до Ruby-об’єкта.

А під капотом там може бути SQL-запит.

Тому побачили асоціацію всередині циклу — запитайте себе:
«Скільки разів база зараз це виконає?»

Бо хороший код — це не тільки код, який працює.
Це ще й код, який не влаштовує власній базі DDoS. 😎

💎 Instagram | LinkedIn | YouTube
👍4