Iniciar sesión Registro
Anuncios
Tu espacio publicitario
Reserva este slot exclusivo para el periodo elegido.
Comprar publicidad →
Logotipo de la comunidad de telegram - Code ua
Añadido 06 ene. 2025

Code ua

@code_ukraine
Número de suscriptores: 9
Fotos: 1,010
Videos: 358
Enlaces: 1,470
Descripción:
You can view and join @code_ukraine right away.

👥 Número de suscriptores

9
Promedio/Día:: 0
Promedio/Tiempo:: 0
Promedio/Mes:: -1

📊 Mensajes por Día

0
Último día: 0
Promedio semanal: 0
Promedio por día: 0

Historial de cambios de nombre

Code ua 2025-08-07
Code Ukraine // Програмування 2025-01-06

Historial de cambios de estado

Oficialmente no confirmado 2025-01-06

Muro

Estadísticas de telegram canal

🖥 Хитре завдання на Python для просунутих: словник, який працює як списокУяви структуру даних, яка: • працює як dict — доступ за ключем • працює як list — доступ за індексом • зберігає порядок вставки • підтримує .index(key) та .key_at(i)📌 Завдання: Реалізуй клас IndexedDict, який робить усе це.⚠️ Підводний камінь:• Просто наслідувати dict не вийде — d[0] буде інтерпретуватися як ключ, а не індекс • Прийдеться реалізувати подвійну логіку доступу вручну • Потрібно коректно підтримати __iter__, __getitem__, __len__ та інші. Рішення: ```pythonfrom collections.abc import MutableMappingclass IndexedDict(MutableMapping): def __init__(self): self._data = {} self._keys = [] def __getitem__(self, key): if isinstance(key, int): real_key = self._keys[key] return self._data[real_key] return self._data[key] def __setitem__(self, key, value): if key not in self._data: self._keys.append(key) self._data[key] = value def __delitem__(self, key): if key in self._data: self._keys.remove(key) del self._data[key] def __iter__(self): return iter(self._keys) def __len__(self): return len(self._data) def index(self, key): return self._keys.index(key) def key_at(self, idx): return self._keys[idx]``` 📈 Навіщо це потрібно:• Відмінне тренування з перевизначення магічних методів • Часто зустрічається у фреймворках (Pandas, SQLAlchemy) • Тестує знання ABC-класів (collections.abc.MutableMapping) • Корисно для побудови кастомних структур данихХочете версію з __contains__, __reversed__, типізацією та серіалізацією — пишіть 💬Code Ukraine
📦 C++ Вектори — динамічні масиви без головного болюЯкщо динамічні масиви в C++ тебе трохи лякають через new, delete та управління памʼяттю — знайомся з `std::vector`. Це — динамічний масив 2.0, де все робиться зручно, безпечніше і читабельніше 🔥Що таке vector?std::vector — це контейнер із стандартної бібліотеки, який автоматично змінює свій розмір у процесі виконання.Корисні методи:🔹 push_back(x) — додає елемент в кінець🔹 pop_back() — видаляє останній елемент🔹 size() — повертає кількість елементів🔹 clear() — очищає вектор🔹 empty() — перевіряє, чи порожній🎯 Чому це круто? Не потрібно вручну виділяти або звільняти памʼять Можна легко змінювати розмір Ітерація, сортування, копіювання — усе підтримується стандартними методами📌 Коли використовувати `vector`?— Якщо не знаєш наперед кількість елементів— Якщо хочеш простий, зрозумілий та безпечний масив— Якщо треба передавати масив як параметр функції (вектор це спрощує)🧠 std::vector — один з найзручніших інструментів у C++. Якщо тільки починаєш — бери в руки вектор і не парся з new/delete.👀 Якщо хочете глибше? Напишу пост окремо про вектори 2D, сортування і пошук!#cpp #вектори #stdvector #програмування #розбіркодуCode Ukraine
🖥 Python bytes() — працюємо з байтами простоКоли треба зберігати бінарні дані (файли, зображення, мережеві пакети), ми не обійдемося без bytes.Це незмінна послідовність байтів, яка поводиться схоже на рядок, але працює на рівні нулів та одиниць⚙️ Як створити bytes?1️⃣ З рядка (через кодування)text = "Привіт"b = bytes(text, encoding='utf-8')print(b)# b'\xd0\x9f\xd1\x80\xd0\xb8\xd0\xb2\xd1\x96\xd1\x82' 2️⃣ З списку чисел (0–255)nums = [72, 101, 108, 108, 111]b = bytes(nums)print(b)# b'Hello' 3️⃣ Порожній об'єкт або заданої довжиниb1 = bytes()b2 = bytes(5)print(b1) # b''print(b2) # b'\x00\x00\x00\x00\x00' Що можна робити з bytes? Ітеруватися по байтах Індексувати як список Перетворити назад на рядок Використовувати для запису у файли або мережевих протоколів🚀 Де використовувати?- Зберігання зображень / файлів- Робота з мережами (сокети)- Хешування та шифруванняЗавжди пам'ятай:bytes — незмінний тип (immutable)bytearray — змінна версія (mutable) — якщо треба змінювати байтиХочете — можу підготувати пост і про bytearray? 😉#python #bytes #байти #програмуванняCode Ukraine
🌐 WebGL — 3D-графіка прямо у браузеріЯкщо ти колись грав у браузерну гру з 3D, крутив інтерактивну модель або виводив щось неймовірне в Canvas — велика ймовірність, що за цим стоїть WebGL.🔹 WebGL (Web Graphics Library) — це API для рендерингу 2D і 3D графіки у браузері через JavaScript без жодних плагінів.💡 Як це працює?Під капотом WebGL використовує OpenGL ES (мобільна версія OpenGL). Ти малюєш графіку через шейдери (GLSL), налаштовуєш камеру, світло, геометрію — і браузер виконує це все за допомогою GPU 💪➡️ Це створить 2D-полотно з фоном. Далі — вершини, шейдери, текстури, камери!🛠 А якщо не хочеш все вручну?Використовуй Three.js — бібліотеку, яка спрощує WebGL: const scene = new THREE.Scene();const camera = new THREE.PerspectiveCamera(...);const renderer = new THREE.WebGLRenderer(); 🚀 Де це застосовують?— Ігри (Unity WebGL build, Babylon.js) — Візуалізація даних — 3D-моделі товарів (e-commerce) — Навчальні симуляції — NFT/Metaverse-проєктиХочеш пост з прикладом взаємодії миші з 3D-сценою? 🎯#webgl #threejs #3d #графіка #js #програмування #візуалізаціяCode Ukraine
🎮 Pygame — твої перші кроки у геймдевіМрієш створити свою гру, але не знаєш з чого почати? 🔹 Pygame — ідеальний інструмент для знайомства з розробкою ігор. Це проста, але потужна бібліотека на Python, яка дозволяє створювати 2D-ігри без зайвої мороки.Що вміє Pygame? Малювати графіку: спрайти, фони, анімації Обробляти події з клавіатури та миші Працювати зі звуками та музикою Робити фізику зіткнень, таймери, FPS Створювати інтерактивні проєкти, симуляції, навіть прототипи AI🔹 Це просте вікно з червоним колом — твоя перша «гра». Далі — все у твоїх руках.📌 Для чого використовують Pygame?— Створення аркад, платформерів, шутерів — Освітні проєкти (інформатика, програмування) — Прототипування ідей без складного рушія — Моделювання фізики та графіки для AIНе обов’язково одразу лізти в Unity чи Unreal — Python + Pygame дає змогу легко стартанути й зрозуміти, як працюють ігри зсередини.🔹 Це просте вікно з червоним колом — твоя перша «гра». Далі — все у твоїх руках.Якщо цікаво — можу зробити цикл міні-проєктів на Pygame 🎯 #pygame #python #геймдев #ігри #інтерактив #освіта #2dCode Ukraine
🌳 Алгоритми Крускала vs Прима – будуємо мінімальне остовне дерево Коли у вас є зв'язний зважений граф і ви хочете з'єднати всі вершини з мінімальною сумарною вагою — вам потрібне мінімальне остовне дерево (MST). І тут на сцену виходять два класики: Крускал та Прим. 🔹 Алгоритм Крускала 🧠 Ідея: Будуємо дерево, додаючи найменші ребра, уникаючи циклів. Як працює: 1. Сортуємо всі ребра за вагою. 2. Ідемо по списку та додаємо ребро, якщо воно не створює цикл. 3. Для перевірки циклів використовуємо структуру Disjoint Set (Union-Find). Складність: O(E log E) Підходить для розріджених графів. 🔹 Алгоритм Прима 🧠 Ідея: Починаємо з будь-якої вершини і поступово розширюємо дерево, додаючи найменше ребро до нової вершини. Як працює: 1. Вибираємо стартову вершину. 2. Додаємо до MST найменше ребро, що веде до ще не включеної вершини. 3. Повторюємо, поки всі вершини не включено. Зазвичай використовують чергу з пріоритетом (heap) для оптимізації. Складність: O(E log V) Добре працює для щільних графів. 👉 Обидва алгоритми — маст-хев у скарбниці алгоритміста. А ти яким користувався частіше – Крускалом чи Примом? 💬#алгоритми #структуриданих #графи #mstCode Ukraine
🔢 Сортування з підрахунком vs Bucket Sort: нестандартні підходи до сортування Коли звичні QuickSort чи MergeSort не підходять, на допомогу приходять Count Sort та Bucket Sort. Вони працюють швидше O(n log n), але лише для певних випадків. 📌 Сортування з підрахунком (Counting Sort) Як працює? 1️⃣ Створюємо масив лічильників для кожного можливого значення. 2️⃣ Підраховуємо, скільки разів кожен елемент зустрічається. 3️⃣ Відновлюємо відсортований масив. Коли застосовувати? Коли діапазон чисел невеликий (наприклад, оцінки від 0 до 100). Не підходить для великих діапазонів (наприклад, 0–10⁹) через велику пам’ять. 📌 Bucket Sort Як працює? 1️⃣ Розподіляємо числа по "відрах" (buckets) за певним критерієм. 2️⃣ Сортуємо кожне "відро" окремо (часто за допомогою QuickSort або InsertSort). 3️⃣ Об’єднуємо результати. Коли застосовувати? Коли розподіл даних рівномірний (наприклад, числа від 0 до 1). Потребує більше пам’яті, бо використовує додаткові структури. ⚖️ Що вибрати? 🔹 Counting Sort – ідеальний для невеликих цілих чисел. 🔹 Bucket Sort – добре підходить для рівномірно розподілених чисел. Ось такі нестандартні методи сортування! Який алгоритм тобі здається цікавішим? 🤔Code Ukraine
10 фраз, які не варто говорити на співбесіді*за версією Software Engineer Діани Волошин1️⃣ «У мене немає запитань»Чому: Сигналізує про відсутність підготовки та інтересу.Натомість: Запитайте про поточні проєкти команди або корпоративну культуру.2️⃣ «Я готовий на будь-яку роботу зараз»Чому: Виглядає як відчай, знижує вашу переговорну позицію.Натомість: Підкресліть свої навички, які відповідають саме цій ролі.3️⃣ «Я не люблю, коли мені вказують, що робити»Чому: Ви здаєтеся некерованим.Натомість: Розкажіть, як ви росли завдяки зворотному зв’язку.4️⃣ «У мене немає слабких місць»Чому: Звучить або як брехня, або як зарозумілість.Натомість: Назвіть реальну слабку сторону та розкажіть, як працюєте над нею.5️⃣ «Я ненавиджу свого нинішнього керівника»Чому: Викликає сумніви у вашому професіоналізмі.Натомість: Сфокусуйтеся на своїх кар’єрних цілях та бажанні розвиватися.6️⃣ «Розберуся на ходу»Чому: Виглядає, ніби ви не готуєтеся.Натомість: Наголосіть на своїй здатності швидко навчатися (і наведіть приклади).7️⃣ «Ця робота для мене — просто трамплін»Чому: Компанії не хочуть вкладатися в тимчасових співробітників.Натомість: Поясніть, як ви бачите своє майбутнє з цією компанією.8️⃣ «Які у вас умови для віддаленої роботи?» (на початку розмови)Чому: Виглядає так, ніби вас цікавить лише гнучкість, а не сама робота.Натомість: Спочатку обговоріть роль і зацікавте роботодавця у вас.9️⃣ «О котрій годині всі зазвичай йдуть додому?»Чому: Натякає, що вас більше хвилює кінець робочого дня, ніж самі обов’язки.Натомість: Запитайте про типові робочі процеси та завдання.🔟 «Я погано справляюся зі стресом»Чому: Може скласти враження, що ви не витримуєте навантаження.Натомість: Розкажіть, як ви організовуєте роботу, щоб встигати у дедлайни.Який ваш найкращий лайфхак для співбесіди, про який ніхто не говорить?👇Code Ukraine
Що таке innerHTML і чому інколи його краще не використовувати?innerHTML — це властивість JavaScript, яка дозволяє працювати з вмістом HTML-елементів. Простіше кажучи, за допомогою innerHTML можна отримати або змінити все, що знаходиться всередині HTML-тега: текст, інші теги, атрибути тощо.Приклад:// Беремо елемент <div> зі сторінкиconst div = document.getElementById("example");// Встановлюємо його вмістdiv.innerHTML = "<p>Привіт, я новий текст!</p>"; Після виконання в <div id="example"> з’явиться:<p>Привіт, я новий текст!</p>.Весь попередній вміст <div> (якщо він був) буде замінено.Переваги innerHTML— Простота та швидкість. Одним рядком можна додати до елемента складний HTML-код.— Динамічність. HTML-контент можна створювати програмно, наприклад, на основі даних з API.Приклад:const list = ["яблуко", "банан", "апельсин"];document.getElementById("list").innerHTML = list.map(item => <li>${item}</li>).join(""); Результат:<ul> <li>яблуко</li> <li>банан</li> <li>апельсин</li></ul> Чому innerHTML не завжди варто використовувати?1. Уразливість до XSS-атак.При роботі з innerHTML ви вставляєте HTML-код у сторінку. Якщо код генерується на основі сторонніх даних (наприклад, від користувача або сервера), це може призвести до впровадження шкідливого коду.2. Перезапис старого вмісту.innerHTML повністю замінює вміст елемента. Якщо елемент мав обробники подій (додані через addEventListener), вони будуть видалені.3. Низька продуктивність із великими обсягами даних.При кожному використанні innerHTML вся внутрішня структура елемента пересоздається, навіть якщо зміни мінімальні.Чим замінити innerHTML?1. textContentЯкщо потрібно змінити лише текст (без HTML), використовуйте textContent. Це безпечніше, адже текст не інтерпретується як HTML.2. insertAdjacentHTMLЦей метод дозволяє додавати HTML-код у конкретне місце елемента без перезапису всього вмісту.3. DOM-методиДля складної логіки краще створювати елементи через методи на кшталт document.createElement та appendChild.ПорадаЯкщо ви все ж вирішили використати innerHTML, переконайтеся, що дані, які ви вставляєте, безпечні та ретельно перевірені.#простимисловами #html #javascript