Нотатки програміста
175 subscribers
24 photos
8 videos
9 files
45 links
Кидаю нотатки й думки з роботи, як Senior Full Stack Developer, Tech Leader, Team Leader і лектор IT)

Огляд технологій, пояснення, новини, проходження співбесід, реклама цікавих додатків і компаній, і багато іншого!

Більше: https://linktr.ee/alex.demko
Download Telegram
Вітаю! 😃

Ну що ж)
Давай сьогодні дізнаємось детальніше про тему:

Функціональне програмування в Python 🔥

Функціональне програмування - це метод написання коду (парадигма програмування), яка базується на математичних функціях й уникатиме змінності даних і стану (останні два слова пояснюють те, що дані можна буде легше та чіткіше взяти дані з функцій + компʼютер буде менше тормозити)

В Python, ця парадигма не є єдиною, але мова надає численні засоби для реалізації функціональних підходів)

Зараз розглянемо деякі основні концепції функціонального програмування в Python та ти побачиш приклади коду до кожного пункту))

Основні Концепції Функціонального Програмування:

1. Функції в Python - першокласні об’єкти:

У Python функції є першокласними об’єктами (це означає, що їх можна передавати як аргументи до інших функцій)

Потім у цих функціях можна запускати передану функцію і результат зберігати у змінну (знаю, трохи заплутано, але перечитай текст та код декілька разів та точно зрозумієш 😉)

Приклад:

# Функція, яка приймає іншу функцію як аргумент
def apply(func, x):
return func(x)

# Функція, яку ми можемо передати
def square(x):
return x * x

result = apply(square, 5)
print(result) # Виведе: 25


2. Високорівневі функції:

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

І саме це дозволяє створювати більш загальні та універсальні функції, які полегшать тобі роботу з одним та тими же функціями (іншими словами, ти їх групуєш)

Приклад:

# Визначимо функцію repeat, яка викликає іншу функцію n разів.
def repeat(func, n):
for i in range(n):
func() # Викликаємо передану функцію func

# Визначимо функцію dev_notes, яка виводить повідомлення "Нотатки програміста!"
def dev_notes():
print("Нотатки програміста!")

# Викликаємо функцію repeat, передаючи їй функцію dev_notes і 5 в якості аргументів
repeat(dev_notes, 5) # Виведе 5 разів: Нотатки програміста!


3. Замикання (closures):

Замикання - це функції, які “запам’ятовують” місце та дані, в якому вони були створені, і можуть отримувати доступ до змінних цього оточення, навіть після того, як воно вийшло з області видимості!

Приклад:

# Визначимо зовнішню функцію outer_function, яка приймає аргумент x
def outer_function(x):
# Визначимо внутрішну функцію inner_function, яка приймає аргумент y
def inner_function(y):
return x + y # Внутрішня функція повертає суму x і y
return inner_function # Зовнішня функція повертає внутрішню функцію

# Викликаємо зовнішню функцію outer_function з аргументом 10 і зберігаємо результат у змінну closure
closure = outer_function(10)

# Викликаємо функцію closure (яка є внутрішньою функцією), передаючи їй аргумент 5, і зберігаємо результат у змінну result
result = closure(5)

# Виводимо результат, який дорівнює 15
print(result) # Виведе: 15


4. Рекурсія:

Функціональне програмування сприяє використанню рекурсії для вирішення задач, що можуть бути виражені рекурсивно (зазвичай це моменти, які суто звʼязані з математикою, наприклад: визначення факторіалу числа)

Python дуууже добре підтримує рекурсію завдяки стеку викликів (це такий механізм, який запамʼятовує місце де він запустився 😉)

Приклад:

# Рекурсивна функція для обчислення факторіалу
def factorial(n):
if n == 0:
return 1
else:
return n * factorial(n - 1)

result = factorial(5)
print(result) # Виведе: 120
👍4🔥2😍2👏1
5. Map, Filter і Reduce:

Python надає вбудовані функції map, filter і reduce, які спрощують операції над послідовностями даних, такими як списки і кортежі!

І з ними можна робити наступні дії 👇

map - дія над кожним елементом в списку/кортежі

filter - фільтрування всіх елементів в списку/кортежі

reduce - з усіх значень списку/кортежа повертає якесь одне загальне значення (наприклад: сума чисел, чи одне речення, якщо в списку було декілька окремих слів)

Приклад:

numbers = [1, 2, 3, 4, 5]

# Використання map для подвоєння кожного числа в списку
doubled_numbers = list(map(lambda x: x * 2, numbers))

# Використання filter для відфільтрування парних чисел зі списку
even_numbers = list(filter(lambda x: x % 2 == 0, numbers))

# Використання reduce для обчислення суми всіх чисел в списку
from functools import reduce
total = reduce(lambda x, y: x + y, numbers)

print("Подвоєні числа:", doubled_numbers)
print("Парні числа:", even_numbers)
print("Сума всіх чисел:", total)

6. Анонімні функції (lambda):

Python дозволяє створювати анонімні функції за допомогою ключового слова lambda

Це корисно для визначення невеликих функцій, які використовуються лише в один раз

Приклад:

# Використання анонімної функції для обчислення квадрата числа
square = lambda x: x * x
result = square(5)
print(result) # Виведе: 25


Які ж переваги функціонального програмування?

Переваги функціонального програмування:
1.) Покращену читабельність коду
2.) Зменшення багів від того, що великі функції становляться простіше
3) Спрощення тестування та розуміння коду

Однак!
Не завжди функціональний стиль є найкращим вибором, і його слід використовувати з обачливістю, особливо в контексті великих проектів 😉

У Python, функціональне програмування може бути потужним інструментом для вирішення багатьох завдань

Зрозуміння цих концепцій допоможе тобі покращити свій код і зробити його більш структурованим та ефективним 😌

Так що, навчайся!

І побачимось в наступних постах 🔥


Якщо ти насолоджуєшся моїми постами, донат допоможе мені віддавати більше часу на створення якісного контенту 🤗
5408810040380635

#python


А також хочу нагадати про акцію, яка зараз іде на мій Фронтенд курс 😉

Дивись не пропусти))
❤4🔥2🤩2👏1
Вітаю! 😃

Ну що ж)
Радий Вас повідомити, що з 6 листопада на каналі буде 25% інформації досягнуто!

А точніше базове знайомство з HTML та CSS завершиться)

З 6 листопада буде починатися продвинутий рівень цих технологій і оплата збільшується з 1000 грн до 1500 грн)

Тому!

Хто ще хоче встигнути ДО 6 ЛИСТОПАДА можете придбати курс за ціною 1000 грн, з 6 листопада вже буде за 1500 грн 😉

І, до речі, якщо ти хочеш спробувати та не знаєш, чи тобі підійде - напиши мені та я приєднаю тебе безкоштовно на день спробувати такий формат навчання) таким чином, краще зрозумієш, чи хочеш цього 😉

А ще хотів подякувати всім, хто встиг приєднатися та довіритись мені 😌 дякую підтримку!

Далі - більше! 🙌
❤7🔥2
Вітаю! 😃

Дякую всім, хто підписався! Тепер нас більше 30 😌

Продовжуємо працювати та розвивати україномовний контент та курси!!! 💪

І як я і казав, з сьогоднішнього дня 1500 грн за курс!!!

Нагадую, що зовсім (по завершенню створення) він буде коштувати 4000 грн! Так що! Встигни придбати по заниженій ціні 😉

Якщо сумніваєшся - напиши мені, і я тобі дам день абсолютно безкоштовно спробувати 😌

Чекаю на тебе!
🔥9❤2👍1
Вітаю! 😃️️️️️️

Дуже радий тебе чути знову тут)

Можливо, тобі буде цікава ось така вакансія?))

mid-level (3+ yrs of exp)
JS full-stack engineer, skilled in Nest.js, React.js and Flutter

Якщо так!
Пиши Жені ось сюди 👉 @YevheniiaCE

Побачимось у наступних постах))
🔥4❤3
Нотатки програміста
Вітаю! 😃 Ну що ж) Радий Вас повідомити, що з 6 листопада на каналі буде 25% інформації досягнуто! А точніше базове знайомство з HTML та CSS завершиться) З 6 листопада буде починатися продвинутий рівень цих технологій і оплата збільшується з 1000 грн до…
Вітаю! 😃️️️️️️

Хочу з тобою поділитися одним зі своїх уроків (48 заняття курсу 😌️️)

Це тобі добавить більше знань по transition у CSS, а також, більше будеш знати про мої курси))

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

Приємного перегляду!

Та ось відразу текст, щоб ти відчув (відчула), що на курсах 😉️️️️️️




Заняття 48

Що буде, якщо для анімації написати різний порядок часових рамок? Як працювати з transition? Що це таке та навіщо це?? Як працювати з багатьма властивостями? Як Найкраще (ну тут буде вже на мою особисту думку) працювати з transition?))

Домашнє завдання:
1. Зробити анімацію, як на відео (також зі сайту Rozetka 😜)
2. Ну що ж! Поки розслабляємось 😌 заварюємо чай) та чекаю завтра 🤗



Побачимось! 🤗
🔥7❤1
Вітаю! 😃

Ну що ж) цей рік доходить до кінця

Майже як рік буде від того часу, як цей канал був створений!

Я дуже вдячний тобі за те, що підтримуєш цей канал, читаєш пости та підтримуєш дОнатами (донАтами 😜) мене)) 😁🍩


Чесно кажучи, не так просто вести якісний та технологічно-інформаційний канал

Але я намагаюсь) і радий тобі повідомити, що на наступний рік я планую збільшити та автоматизувати пости та якісну інформацію для тебе 😉

Тим паче, тебе чекають навчання, як працювати з AI, VR та AR!!! Але подробиці пізніше))

Так що, чекай! Сподіваюсь, ти будеш дуже задоволений 😁😉


А ще! Хочу анонсувати!

Що більше 50% курсу готово! Прямо зараз!

Думав, минулого тижня написати про це, але захотів зробити тобі час для того, щоб ти міг після Нового року отримати курси за приємною ціною 😋 до понеділка 8-го січня ціна буде 1500 грн, а вже з понеділка 8-го січня 2000 грн! Так що)) пиши, як можливо, найшвидше!

І вже завтра починається навчання JS!!!

Пиши мені, якщо хочеш отримати безкоштовний денний пробний період та дізнатися, як тобі ці курси))

@alex_demko_work

У будь-якому випадку! Вітаю тебе зі святами! Бажаю як можливо більше спокою та миру! У серці та в житі ❤️

Дякую, що ти тут)
❤11🎉5🥰2🔥1
Вітаю! 😃

Генератори у Python: основи та ітератори! 🐍

Генератори у Python - це функції, які дозволяють створювати послідовність значень на льоту! Вони використовуються для створення ітераторів у Python

А от ітератори - це об’єкти, які дозволяють доступатися до послідовності елементів один за одним) Важливо в темі про генератори, оскільки генератори це спосіб створювати ітератори автоматично

Саме слово “yield” в Python грає важливу роль у генераторах 😉 Воно перекладається як “вихід” і дозволяє функції генератора повертати значення в будь-який момент виконання циклу) Це робить генератори потужними, оскільки можливо виводити значення по одному, без необхідності зберігати всю послідовність у пам’яті одразу

Отже, генератори у Python - це зручний спосіб створення послідовностей значень, а слово “yield” дозволяє повертати значення з циклу в будь-який час!

Звертайся, якщо потрібно ще додаткову інформацію! 😊

#python
🔥3👍1🤩1
Вітаю! 😃

Ну що ж, давайте розглянемо об'єкт Navigator у JavaScript! 🌐

Навіщо ця технологія? 🤔

Об'єкт Navigator - це потужний інструмент, який надає інформацію про браузер користувача та дозволяє отримати геолокацію, мікрофон та камеру!

Як її використовувати? 🚀

1. Геолокація:
Для отримання геолокації можна скористатися методом navigator.geolocation.getCurrentPosition(). Ось приклад:


navigator.geolocation.getCurrentPosition((position) => {
const { latitude, longitude } = position.coords;
console.log(`Ваша геолокація: ${latitude}, ${longitude}`);
}, (error) => {
console.error('Помилка отримання геолокації:', error.message);
});


2. Мікрофон та камера:
Для отримання доступу до мікрофона та камери, можна скористатися методом navigator.mediaDevices.getUserMedia(). Ось приклад:


navigator.mediaDevices.getUserMedia({ audio: true, video: true })
.then((stream) => {
// Отримано доступ до мікрофона та камери
console.log('Доступ до мікрофона та камери отримано!');
})
.catch((error) => {
console.error('Помилка отримання доступу до мікрофона та камери:', error.message);
});


Коли вона практично використовується? 🛠️

Об'єкт Navigator та його можливості дозволяють створювати веб-додатки, які адаптовані під різні браузери та використовують геолокацію, мікрофон та камеру для покращення функціональності.

Як часто її використовують? 📊

Використання геолокації та мультимедійних пристроїв у веб-додатках стає все популярнішим, особливо в інтерактивних та комунікаційних додатках. Розробники часто перевіряють інформацію про браузер користувача для забезпечення оптимального взаємодії зі своїм додатком на різних платформах)

Не забувай розумно використовувати ці можливості та дотримуватися правил конфіденційності!

На цьому все! 🚀 Дякую за увагу! Бажаю успішних тобі розробок! 😊

#js
❤‍🔥6❤3🔥3👍1🤩1
Привіт! 😃

Оператори нульового злиття та короткого злиття в JavaScript! 🚀

Що це таке, і чому вони так корисні? 🤔

Оператор ?? (оператор нульового злиття) - твій врятівник в світі невизначених значень! 🦸‍♂️

Як його використовувати? 🛠️


const myVar = null;
const result = myVar ?? 'Значення за замовчуванням';


Тут result буде 'Значення за замовчуванням', бо myVar має значення null. Оператор ?? дозволяє тобі встановлювати значення за замовчуванням лише у випадку, якщо змінна має значення null або undefined

І ще одне круте нововведення - ??= (оператор присвоєння з об'єднанням нульового злиття)! 🧐

Тепер ти можеш легко присвоювати значення за замовчуванням, якщо змінна не визначена)


let myVar;
myVar ??= 'Нове значення';


Тепер myVar стане 'Нове значення', якщо вона раніше була null або undefined.

Переходимо до оператора ?. (оператор опитування) та короткого злиття && та ||. 🌐

Оператор ?. дарує тобі зручність у роботі з властивостями об'єктів, якщо об'єкт або його властивості можуть бути null або undefined.


const user = {
name: 'John',
address: null
};

const streetName = user?.address?.street;


Тут streetName автоматично отримає значення undefined, якщо address або street буде null або undefined

А тепер - коротке злиття. && (логічний "І") та || (логічний "АБО") - твої помічники в умовних виразах!


const a = 'Hello';
const b = null;
const result = a && b;


Тут result буде null, оскільки a - істина, а b - null. && повертає другий операнд лише у випадку, якщо обидва істина)


const x = null;
const y = 'World';
const result = x || y;


У цьому випадку result буде 'World', бо || повертає перший істинний операнд 😉

Коли це використовується на практиці? 🚀

Оператори нульового та короткого злиття роблять твоє програмістське життя легшим та код зрозумілішим. Вони особливо корисні при роботі зі змінними, які можуть мати невизначені значення)

Як часто це використовується? 📊

Як можна побачити оператори нульового та короткого злиття стали необхідністю в сучасному JavaScript, тому що вони активно використовуються в багатьох проектах для полегшення роботи з даними!

Отже, нехай вони завжди будуть з тобою у твоїх кодових пригодництвах! 💻✨

Бажаю тобі легкості та гнучкості в програмуванні!

До нових зустрічей та кодуй на радість! 🚀

#js
👍6🔥1🤩1😍1
Вітаю! 😃

Давай розберемося, як працювати з PHP масивами! 🚀

Навіщо ця технологія? 🤔

Масиви у PHP - це потужний інструмент для організації та роботи з даними)

Вони дозволяють зберігати інформацію у впорядкованому вигляді та легко маніпулювати нею

Як їх використовувати? 💻

Створення масиву в PHP - це просто! Використовуй конструкцію array() або скорочену версію з квадратними дужками []


$fruits = array('apple', 'orange', 'banana');
// або
$fruits = ['apple', 'orange', 'banana'];


Тепер, коли у тебе є масив, ти можеш додавати, видаляти, змінювати та отримувати доступ до його елементів

Коли вона практично використовується? 🛠️

Масиви використовуються в PHP для обробки великої кількості даних, таких як списки користувачів, товарів у магазині, або будь-якої іншої структурованої інформації

Як часто ти їх використовуєш? 🔄

Масиви - невід'ємна частина розробки на PHP, тому ти використовуєш їх дуже часто)

Кожен, хто пише скрипти або веб-додатки на PHP, взаємодіє з масивами практично в кожному проекті

Отже, вирушай в світ PHP масивів та легко організовуй свої дані! 😉✨

На наступні твої запитання таємниць світу PHP! 🚀

#php
🔥5❤‍🔥1❤1🤩1
Вітаю! 😃

Знаєш, чому Bootstrap такий популярний у світі веб-розробки? 😮

Bootstrap - це фронтенд фреймворк, який спрощує розробку веб-сайтів 🚀

Він пропонує готові стилі, компоненти та JavaScript плагіни, які забезпечують швидке створення адаптивних веб-сторінок 😎

А що з Bootstrap Grid? 😃

Це система розкладки, яка дозволяє легко створювати відповідні на всіх пристроях макети 📱💻

Завдяки гнучким класам, ти можеш керувати розміщенням та вирівнюванням контенту на різних розмірах екранів 🌟

Ти можеш створювати колонки, використовуючи класи, як .col-md-4 або .col-lg-2, щоб вказати, скільки місця колонка повинна займати на певних розмірах екрану 👍

Bootstrap і Bootstrap Grid використовуються у багатьох проектах, від простих сайтів до складних веб-додатків!)

Вони дозволяють розробникам швидко створювати естетичні та функціональні веб-сторінки без необхідності писати багато CSS з нуля 😄

Це робить Bootstrap ідеальним інструментом для новачків та досвідчених розробників)

Так що, якщо ти хочеш створити веб-сайт, який виглядає добре на будь-якому пристрої та легко адаптується під різні розміри екранів, Bootstrap - це те, що тобі потрібно! 😉

Ну що ж) на сьогодні це все 😊

Бажаю тобі неймовірного кодингу та безлічі крутих проектів! 🚀

#bootstrap #webdevelopment #css #responsiveDesign
👍7❤3🔥2❤‍🔥1
Вітаю! 😃

Ти чув про Tailwind CSS? 🤔

Tailwind - це утилітарний фреймворк CSS, що дозволяє швидко створювати унікальний дизайн без написання CSS!)

З його допомогою ти можеш побудувати веб-інтерфейси набагато швидше, ніж традиційним способом 😉

Tailwind пропонує класи для стилізації, які можна застосовувати безпосередньо у HTML!

Наприклад:


<button class="bg-blue-500 text-white font-bold py-2 px-4 rounded">
Натисни мене
</button>


Цей код створить кнопку з блакитним фоном, білим текстом, жирним шрифтом, відступами та закругленими краями 😮

Але навіщо використовувати Tailwind?

По-перше, він підвищує швидкість розробки 💨

По-друге, він забезпечує узгодженість стилів 😎

По-третє, він мінімізує кількість необхідного CSS!

Коли він найбільш практичний?

Tailwind ідеально підходить для проектів, де потрібно швидко створити прототип або коли ти хочеш мати повний контроль над дизайном без громіздкого CSS 🚀

Розробники все частіше вибирають Tailwind для своїх проектів, особливо у стартапах та у розробці інтерактивних веб-інтерфейсів)

Ну що ж) на сьогодні це все 😉

Бажаю тобі креативних ідей та успішних проектів!

#css #webdesign
❤11👍3🔥2❤‍🔥1
Вітаю! 😃

Ти коли-небудь чув про TensorFlow? 🤔

TensorFlow - це потужна бібліотека для машинного навчання!

Розроблена Google, вона дозволяє створювати складні моделі ШІ!

Захоплююче, правда?)

Але навіщо вона потрібна? 😃

TensorFlow допомагає в розробці та тренуванні моделей ШІ!

Це включає в себе все: від розпізнавання мови до обробки зображень!

Справжній магічний інструмент у світі програмування!)

Як її використовувати? 😉

Для початку тобі потрібно встановити TensorFlow

Це можна зробити через pip:


pip install tensorflow


Після цього ти можеш створювати моделі, використовуючи її API!

Кодування з TensorFlow - це справжнє задоволення!)

Коли вона практично використовується? 😊

TensorFlow широко використовується в індустрії та наукових дослідженнях!

Це включає автономні автомобілі, медичну діагностику та багато іншого!

Хіба це не вражає?) 😃

Як часто її використовують? 😉

TensorFlow - одна з найпопулярніших бібліотек для машинного навчання!

Вона використовується компаніями та дослідниками по всьому світу!

Неймовірно, чи не так?) 😃

Ну що ж) на сьогодні це все 😉

#python #tensorflow #machinelearning #AI
❤5❤‍🔥2🔥1
Вітаю! 😃

Сьогодні ми говоримо про Unity! 🎮

Unity - це потужний двигун для розробки ігор, який зробив справжній переворот у світі геймдеву 🌟

Чому ж Unity такий популярний? 😲

Unity пропонує інтуїтивно зрозумілий інтерфейс і набір інструментів для створення ігор різних жанрів і платформ 🕹️ Від мобільних ігор до повноцінних ПК і консольних проектів!

Як його використовувати? 🧐

Все починається з ідеї гри! Потім, в Unity, ти створюєш сцени, об'єкти, додаєш текстури, анімації, і, звісно ж, пишеш скрипти (зазвичай на C#), щоб додати ігрову логіку 🖥️

Коли вона практично використовується? 🤔

Unity ідеально підходить для інді-розробників і невеликих студій, завдяки своїй доступності та гнучкості 😎 Але й великі студії також використовують Unity для створення деяких проектів!

Як часто її використовують? 🌍

Unity - один з найпопулярніших ігрових двигунів у світі! Багато ігор, які ми знаємо і любимо, створені саме на Unity 🎉

Ну що ж) на сьогодні це все 😉

#unity #gamedev #programming
🔥7🥰1🤩1