🐍 from exercise import "Самый богатый"
Представьте, что у вас есть "таблица"
Ваша задача — найти самый "богатого" клиента, то есть "столбец" с максимальной суммой всех счетов.
🎯 Задача:
Напишите функцию
Пример:
Разберем этот случай:
* Сумма
* Сумма
* Сумма
Самый богатый клиент имеет состояние
➡️ Ваша функция для
Еще пример:
* Портфель 0:
* Портфель 1:
* Портфель 2:
Результат:
#задача | 🍩 Поддержать канал 🫶
Представьте, что у вас есть "таблица"
accounts
, где: accounts[i][j]
— это сумма, которую некий j
-й клиент имеет на счете в i
-м банке.Ваша задача — найти самый "богатого" клиента, то есть "столбец" с максимальной суммой всех счетов.
🎯 Задача:
Напишите функцию
find_richest(accounts: list[list[int]]) -> int
, которая принимает таблицу accounts
и возвращает максимальную сумму по столбцам.Пример:
accounts = [[1, 2, 5], [3, 6, 1]]
Разберем этот случай:
* Сумма
accounts[0][0] + accounts[1][0] = 1 + 3 = 4
.* Сумма
accounts[0][1] + accounts[1][1] = 2 + 6 = 8
.* Сумма
accounts[0][2] + accounts[1][2] = 5 + 1 = 6
.Самый богатый клиент имеет состояние
8
.➡️ Ваша функция для
[[1,2,5],[3,6,1]]
должна вернуть 8
.Еще пример:
accounts = [[10, 5, 100], [20, 15, 0]]
* Портфель 0:
10 + 20 = 30
* Портфель 1:
5 + 15 = 20
* Портфель 2:
100 + 0 = 100
Результат:
100
#задача | 🍩 Поддержать канал 🫶
CloudTips
CloudTips – чаевые и донаты картой моментально
Сервис для приема безналичных чаевых и донатов CloudTips
👍4❤1🔥1
Сравниваем три gamedev-библиотеки на Python 🎮
Часто, когда речь заходит про разработку игр на Python, на ум приходит одно название — PyGame. Это, конечно, нестареющая классика, которой уже больше 20 лет, но мир не стоит на месте.
Вот вам небольшая подборка-сравнение трёх популярных библиотек: старого-доброго PyGame, портированного с C++ монстра Cocos2d и относительно свежего Ursina Engine.
Часто, когда речь заходит про разработку игр на Python, на ум приходит одно название — PyGame. Это, конечно, нестареющая классика, которой уже больше 20 лет, но мир не стоит на месте.
Вот вам небольшая подборка-сравнение трёх популярных библиотек: старого-доброго PyGame, портированного с C++ монстра Cocos2d и относительно свежего Ursina Engine.
🔥5🙏2❤1
НОВАЯ ОТКРЫТАЯ SOTA LLM ДЛЯ ПРОГРАММИРОВАНИЯ 🤖
Недавно появился новый персонаж среди LLM для написания кода — Kimi-Dev-72B от Moonshot AI.
Что в неё интересного:
▫️Это новая SOTA (state-of-the-art) среди open-source моделей на бенчмарке SWE-bench Verified (60.4%). Подвинули всех старичков.
▫️Главная фишка — обучение. Модель получала награду, только если проходили все тесты в её Docker-окружении.
▫️Работает в два этапа: сначала находит нужные файлы для правки (File Localization), а потом уже редактирует код (Code Editing).
▫️Сделана на базе Qwen 2.5-72B, обучена на гигатоннах кода с GitHub. Лицензия — MIT, можно брать и ковырять.
Потыкать можно тут:
👉🏻 GitHub
👉🏻 Hugging Face
👉🏻 Демка-чат
Недавно появился новый персонаж среди LLM для написания кода — Kimi-Dev-72B от Moonshot AI.
Что в неё интересного:
▫️Это новая SOTA (state-of-the-art) среди open-source моделей на бенчмарке SWE-bench Verified (60.4%). Подвинули всех старичков.
▫️Главная фишка — обучение. Модель получала награду, только если проходили все тесты в её Docker-окружении.
▫️Работает в два этапа: сначала находит нужные файлы для правки (File Localization), а потом уже редактирует код (Code Editing).
▫️Сделана на базе Qwen 2.5-72B, обучена на гигатоннах кода с GitHub. Лицензия — MIT, можно брать и ковырять.
Потыкать можно тут:
👉🏻 GitHub
👉🏻 Hugging Face
👉🏻 Демка-чат
👍4❤2🙏1
✍️ Решения вчерашней задачи
Я провафлил, поэтому по факту позавчерашней 😬
🏆 Лучшее решение по Big O
🤔 Как это работает?
Это классический подход "в лоб", который, тем не менее, является самым производительным по памяти.
1. Проходим по клиентам: Внешний цикл
2. Считаем накопления: Внутренний цикл
3. Ищем максимум: После подсчета суммы для очередного клиента, мы сравниваем ее с уже найденным максимумом
Сложность по времени: O(N * M), где N - количество банков (строк), M - количество клиентов (столбцов). Нам нужно проверить каждую ячейку.
Сложность по памяти: O(1). Мы используем всего несколько переменных для хранения промежуточных сумм и итогового максимума, не создавая новых больших структур данных.
🐍 Самое "питоничное" решение
Это как раз предложенный вариант, он самый красивый и идиоматичным для данной задачи.
🤔 Как это работает?
Разберем эту строку по частям, изнутри наружу:
1.
2.
3.
4.
Сложность по времени: O(N * M). Хотя код и короткий, он всё так же проходит по каждому элементу для вычисления сумм.
Сложность по памяти: O(M).
💡 Вариант с Numpy
Тоже отличный 👍🏻
Я провафлил, поэтому по факту позавчерашней 😬
🏆 Лучшее решение по Big O
def find_richest(accounts: list[list[int]]) -> int:
if not accounts or not accounts[0]:
return 0
num_clients = len(accounts[0])
max_wealth = 0
for client_index in range(num_clients):
current_client_wealth = 0
for bank_account in accounts:
current_client_wealth += bank_account[client_index]
if current_client_wealth > max_wealth:
max_wealth = current_client_wealth
return max_wealth
🤔 Как это работает?
Это классический подход "в лоб", который, тем не менее, является самым производительным по памяти.
1. Проходим по клиентам: Внешний цикл
for client_index in range(num_clients)
итерируется по каждому "столбцу" (каждому клиенту).2. Считаем накопления: Внутренний цикл
for bank_account in accounts
проходит по всем банкам (строкам) и суммирует деньги на счетах только текущего клиента.3. Ищем максимум: После подсчета суммы для очередного клиента, мы сравниваем ее с уже найденным максимумом
max_wealth
и обновляем его, если нужно.Сложность по времени: O(N * M), где N - количество банков (строк), M - количество клиентов (столбцов). Нам нужно проверить каждую ячейку.
Сложность по памяти: O(1). Мы используем всего несколько переменных для хранения промежуточных сумм и итогового максимума, не создавая новых больших структур данных.
🐍 Самое "питоничное" решение
Это как раз предложенный вариант, он самый красивый и идиоматичным для данной задачи.
def find_richest(accounts: list[list[int]]) -> int:
return max(map(sum, zip(*accounts)))
🤔 Как это работает?
Разберем эту строку по частям, изнутри наружу:
1.
*accounts
— Оператор *
"распаковывает" внешний список. Если accounts = [[1, 2], [3, 4]]
, то для функции zip
это будет выглядеть как zip([1, 2], [3, 4])
.2.
zip(*accounts)
— Функция zip
принимает несколько итерируемых объектов и "склеивает" их элементы с одинаковыми индексами. В нашем случае она "транспонирует" матрицу: из [[1, 2, 5], [3, 6, 1]]
она создает итератор, который последовательно вернет кортежи-столбцы: (1, 3)
, затем (2, 6)
, и наконец (5, 1)
.3.
map(sum, ...)
— Функция map
применяет функцию sum
к каждому элементу, который ей отдает zip
. То есть, она вычисляет sum((1, 3))
, sum((2, 6))
и sum((5, 1))
, получая поток сумм: 4
, 8
, 6
.4.
max(...)
— Наконец, max
просто находит наибольшее значение в этом потоке сумм. Результат — 8
.Сложность по времени: O(N * M). Хотя код и короткий, он всё так же проходит по каждому элементу для вычисления сумм.
Сложность по памяти: O(M).
zip
и map
создают ленивые итераторы и не хранят всю транспонированную матрицу в памяти. Однако для работы zip
требуется передать в функцию все строки как отдельные аргументы, что временно занимает память, пропорциональную количеству строк (N). В каждой итерации в памяти создается кортеж размером N (количество банков). 💡 Вариант с Numpy
Тоже отличный 👍🏻
import numpy as np
np.array(accounts).sum(axis=0).max()
Telegram
PythonTalk
🐍 from exercise import "Самый богатый"
Представьте, что у вас есть "таблица" accounts, где: accounts[i][j] — это сумма, которую некий j-й клиент имеет на счете в i-м банке.
Ваша задача — найти самый "богатого" клиента, то есть "столбец" с максимальной…
Представьте, что у вас есть "таблица" accounts, где: accounts[i][j] — это сумма, которую некий j-й клиент имеет на счете в i-м банке.
Ваша задача — найти самый "богатого" клиента, то есть "столбец" с максимальной…
👍9🔥2🙏1
This media is not supported in your browser
VIEW IN TELEGRAM
Консольный помощник "The Fuck"🤬
Опечатались в консольной команде? Написали
Например:
Или:
▫️ Как это работает? У
▫️ Установка: Проще простого –
И есть "мгновенный режим" без подтверждений перед изменениями (
Опечатались в консольной команде? Написали
git comit
вместо git commit
или puthon
вместо python
? Есть гениальная Python-утилита, которая позволяет просто написать fuck
после ошибочной команды, и она предложит исправленный вариант!Например:
➜ puthon run_my_super_script.py
No command 'puthon' found...
➜ fuck
python run_my_super_script.py [enter/↑/↓/ctrl+c]
Или:
➜ apt-get install vim
E: Could not open lock file... are you root?
➜ fuck
sudo apt-get install vim [enter/↑/↓/ctrl+c]
▫️ Как это работает? У
The Fuck
куча правил для распознавания типовых ошибок (опечатки, забытый sudo
, неправильные флаги git
и т.д.).▫️ Установка: Проще простого –
pip3 install thefuck --user
(или через brew
/ apt
/ pacman
для вашей системы) и не забудьте добавить eval $(thefuck --alias)
в ваш .bashrc
или .zshrc
. Можно даже eval $(thefuck --alias FUCK)
, чтобы ругаться ГРОМКО.И есть "мгновенный режим" без подтверждений перед изменениями (
fuck --yeah
).🔥12👍4😁2
Что получим при запуске кода?
Anonymous Quiz
25%
SyntaxError
7%
None
15%
<function <lambda> at …>
53%
42
👍9🔥2🙏2
This media is not supported in your browser
VIEW IN TELEGRAM
⚡️ Google снова уронили на нас ИИ-помощника. Прямо в терминал.
Знакомьтесь,
Что тут интересного:
1️⃣ Это бесплатно. Доступно 1000 запросов в день (и 60 в минуту).Ни OpenAI, ни Claude такой щедрости не показывают.
2️⃣ Под капотом Gemini. То есть в код умеет, можно сказать, лучше всех, а контекст — 1 млн токенов. Влезет почти любой ваш проектик.
3️⃣ Умеет в файлы и поиск. Может проанализировать код в директории, сгенерить приложение по PDF или наброску, да и просто в Google сходить за свежей инфой.
4️⃣ Интеграция с внешними тулами. Через MCP-серверы можно прикрутить генерацию картинок (Imagen), видео (Veo) и вообще что угодно.
Конечно, как и всё модное в этом мире, написано на Node.js 🌚. Так что для запуска сначала убедитесь, что он у вас стоит.
Запускается одной командой:
Все! Помощник запустится и попросит вас войти в ваш Google-аккаунт. Пробуем 🐸
Знакомьтесь,
Gemini CLI
— бесплатный и, судя по всему, довольно мощный AI-агент, который живёт прямо в командной строке.Что тут интересного:
1️⃣ Это бесплатно. Доступно 1000 запросов в день (и 60 в минуту).
2️⃣ Под капотом Gemini. То есть в код умеет, можно сказать, лучше всех, а контекст — 1 млн токенов. Влезет почти любой ваш проектик.
3️⃣ Умеет в файлы и поиск. Может проанализировать код в директории, сгенерить приложение по PDF или наброску, да и просто в Google сходить за свежей инфой.
4️⃣ Интеграция с внешними тулами. Через MCP-серверы можно прикрутить генерацию картинок (Imagen), видео (Veo) и вообще что угодно.
Конечно, как и всё модное в этом мире, написано на Node.js 🌚. Так что для запуска сначала убедитесь, что он у вас стоит.
Запускается одной командой:
npx https://github.com/google-gemini/gemini-cli
Все! Помощник запустится и попросит вас войти в ваш Google-аккаунт. Пробуем 🐸
👍18🙏1
Всё, ребята, допрограммировались 😔
Тут сервис знакомств Mamba подвёз исследование с такими результатами: IT-специалисты больше не самые завидные женихи в России. Хайп прошёл, пора возвращаться в реальный мир.
Сухие цифры:
▫️ В 2023 году 72% россиянок хотели замуж за айтишника.
▫️ Сегодня таких осталось всего 27%.
▫️ 45% женщин уже не верят в стереотип об «идеальном муже-программисте».
▫️ Аргумент против: «доход хороший, но слишком уж привязан к своему компьютеру».
А кто теперь в топе? Врачи (43%) и стоматологи (38%). Потому что «ответственность» и «золотые руки»🤘🏻
А по одобрению родителей айтишники оказались где-то между спасателями и музыкантами, почти на дне. Лишь 3% девушек уверены, что мама будет гордиться зятем, «который работает с компьютерами».
Во врачи через курсы уже не попасть 🌝
Тут сервис знакомств Mamba подвёз исследование с такими результатами: IT-специалисты больше не самые завидные женихи в России. Хайп прошёл, пора возвращаться в реальный мир.
Сухие цифры:
▫️ В 2023 году 72% россиянок хотели замуж за айтишника.
▫️ Сегодня таких осталось всего 27%.
▫️ 45% женщин уже не верят в стереотип об «идеальном муже-программисте».
▫️ Аргумент против: «доход хороший, но слишком уж привязан к своему компьютеру».
А кто теперь в топе? Врачи (43%) и стоматологи (38%). Потому что «ответственность» и «золотые руки»🤘🏻
А по одобрению родителей айтишники оказались где-то между спасателями и музыкантами, почти на дне. Лишь 3% девушек уверены, что мама будет гордиться зятем, «который работает с компьютерами».
Во врачи через курсы уже не попасть 🌝
РИА Новости
Исследование показало, кого россиянки считают лучшим кандидатом в мужья
IT-специалисты уже не так востребованы у девушек в качестве кандидатов в супруги, интерес к ним попадает: теперь в "фаворитах" врачи и стоматологи, выяснили для РИА Новости, 26.06.2025
😁22🔥3😢3 2🌚1 1 1
Google обновили модель, которая влезет даже в ваш смартфон 📱
Gemma 3n — компактная мультимодальная модель, созданная для работы прямо на устройствах.
Версия E4B стала первой моделью в категории "до 10 млрд параметров", которая набрала больше 1300 на LMArena. Неплохо для малютки.
Что в ней интересного👇🏻
▫️Работает на вашем железе. Модели требуют всего 2-3 ГБ памяти. Это значит — никаких облаков, API-ключей и платных подписок. Можно пилить фичи, которые будут работать оффлайн и не будут сливать код пользователя на сторонние сервера. Приватность, все дела.
▫️Гибкая архитектура "Матрёшка" (MatFormer). Из одной большой модели (E4B) можно достать модель поменьше (E2B), которая будет работать в 2 раза быстрее. Или даже нарезать кастомный размер под свои нужды.
▫️Улучшения в программировании и логике. Заявляют, что прокачали модель в математике, рассуждениях и в написании кода.
▫️Готовые интеграции. Модель уже поддерживается в Hugging Face Transformers, llama.cpp, Ollama, MLX и куче других инструментов.
Я уже вижу, как это можно вкрутить в IDE для локального автокомплита или в какой-нибудь мобильный клиент для анализа скриншотов с кодом😏
Где пощупать:
👉🏻 Модели на Hugging Face
👉🏻 Поиграться в Google AI Studio
Gemma 3n — компактная мультимодальная модель, созданная для работы прямо на устройствах.
Версия E4B стала первой моделью в категории "до 10 млрд параметров", которая набрала больше 1300 на LMArena. Неплохо для малютки.
Что в ней интересного👇🏻
▫️Работает на вашем железе. Модели требуют всего 2-3 ГБ памяти. Это значит — никаких облаков, API-ключей и платных подписок. Можно пилить фичи, которые будут работать оффлайн и не будут сливать код пользователя на сторонние сервера. Приватность, все дела.
▫️Гибкая архитектура "Матрёшка" (MatFormer). Из одной большой модели (E4B) можно достать модель поменьше (E2B), которая будет работать в 2 раза быстрее. Или даже нарезать кастомный размер под свои нужды.
▫️Улучшения в программировании и логике. Заявляют, что прокачали модель в математике, рассуждениях и в написании кода.
▫️Готовые интеграции. Модель уже поддерживается в Hugging Face Transformers, llama.cpp, Ollama, MLX и куче других инструментов.
Я уже вижу, как это можно вкрутить в IDE для локального автокомплита или в какой-нибудь мобильный клиент для анализа скриншотов с кодом
Где пощупать:
👉🏻 Модели на Hugging Face
👉🏻 Поиграться в Google AI Studio
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7 3 2⚡1🔥1🙏1
Есть такие тестовые, которые дочитать до конца – уже подвиг 🌚 А сделают его только самые упоротные 👇🏻
💳В Авито предлагали реализовать микросервис для работы с балансом пользователей (зачисление средств, списание средств, перевод средств от пользователя к пользователю, а также метод получения баланса пользователя). Сервис должен предоставлять HTTP API и принимать/отдавать запросы/ответы в формате JSON.
✍🏻Сценарии использования
Далее описаны несколько упрощенных кейсов приближенных к реальности.
1️⃣ Сервис биллинга с помощью внешних мерчантов (аля через visa/mastercard) обработал зачисление денег на наш счет. Теперь биллингу нужно добавить эти деньги на баланс пользователя.
2️⃣ Пользователь хочет купить у нас какую-то услугу. Для этого у нас есть специальный сервис управления услугами, который перед применением услуги проверяет баланс и потом списывает необходимую сумму.
3️⃣ В ближайшем будущем планируется дать пользователям возможность перечислять деньги друг-другу внутри нашей платформы. Мы решили заранее предусмотреть такую возможность и заложить ее в архитектуру нашего сервиса.
❕Требования к коду
🔸Фреймворки и библиотеки можно использовать любые
🔸Реляционная СУБД: MySQL или PostgreSQL
🔸Весь код должен быть выложен на Github с Readme файлом с инструкцией по запуску и примерами запросов/ответов (можно просто описать в Readme методы, можно через Postman, можно в Readme curl запросы скопировать, вы поняли идею...)
🔸Если есть потребность, можно подключить кеши (Redis) и/или очереди (RabbitMQ, Kafka)
🔸При возникновении вопросов по ТЗ оставляем принятие решения за кандидатом (в таком случае Readme файле к проекту должен быть указан список вопросов с которыми кандидат столкнулся и каким образом он их решил)
🔸Разработка интерфейса в браузере НЕ ТРЕБУЕТСЯ.
🔸Взаимодействие с API предполагается посредством запросов из кода другого сервиса. Для тестирования можно использовать любой удобный инструмент. Например: в терминале через curl или Postman.
➕Будет плюсом
▫️Использование docker и docker-compose для поднятия и развертывания dev-среды.
▫️Методы АПИ возвращают человеко-читабельные описания ошибок и соответствующие статус коды при их возникновении.
▫️Написаны unit/интеграционные тесты.
✔️Основное задание (минимум)
🔹Метод начисления средств на баланс. Принимает id пользователя и сколько средств зачислить.
🔹Метод списания средств с баланса. Принимает id пользователя и сколько средств списать.
🔹Метод перевода средств от пользователя к пользователю. Принимает id пользователя с которого нужно списать средства, id пользователя которому должны зачислить средства, а также сумму.
🔹Метод получения текущего баланса пользователя. Принимает id пользователя. Баланс всегда в рублях.
Думаете это всё? Продолжение ниже 👇🏻
#тестовое | 🍩 Поддержать канал 🫶
💳В Авито предлагали реализовать микросервис для работы с балансом пользователей (зачисление средств, списание средств, перевод средств от пользователя к пользователю, а также метод получения баланса пользователя). Сервис должен предоставлять HTTP API и принимать/отдавать запросы/ответы в формате JSON.
✍🏻Сценарии использования
Далее описаны несколько упрощенных кейсов приближенных к реальности.
1️⃣ Сервис биллинга с помощью внешних мерчантов (аля через visa/mastercard) обработал зачисление денег на наш счет. Теперь биллингу нужно добавить эти деньги на баланс пользователя.
2️⃣ Пользователь хочет купить у нас какую-то услугу. Для этого у нас есть специальный сервис управления услугами, который перед применением услуги проверяет баланс и потом списывает необходимую сумму.
3️⃣ В ближайшем будущем планируется дать пользователям возможность перечислять деньги друг-другу внутри нашей платформы. Мы решили заранее предусмотреть такую возможность и заложить ее в архитектуру нашего сервиса.
❕Требования к коду
🔸Фреймворки и библиотеки можно использовать любые
🔸Реляционная СУБД: MySQL или PostgreSQL
🔸Весь код должен быть выложен на Github с Readme файлом с инструкцией по запуску и примерами запросов/ответов (можно просто описать в Readme методы, можно через Postman, можно в Readme curl запросы скопировать, вы поняли идею...)
🔸Если есть потребность, можно подключить кеши (Redis) и/или очереди (RabbitMQ, Kafka)
🔸При возникновении вопросов по ТЗ оставляем принятие решения за кандидатом (в таком случае Readme файле к проекту должен быть указан список вопросов с которыми кандидат столкнулся и каким образом он их решил)
🔸Разработка интерфейса в браузере НЕ ТРЕБУЕТСЯ.
🔸Взаимодействие с API предполагается посредством запросов из кода другого сервиса. Для тестирования можно использовать любой удобный инструмент. Например: в терминале через curl или Postman.
➕Будет плюсом
▫️Использование docker и docker-compose для поднятия и развертывания dev-среды.
▫️Методы АПИ возвращают человеко-читабельные описания ошибок и соответствующие статус коды при их возникновении.
▫️Написаны unit/интеграционные тесты.
✔️Основное задание (минимум)
🔹Метод начисления средств на баланс. Принимает id пользователя и сколько средств зачислить.
🔹Метод списания средств с баланса. Принимает id пользователя и сколько средств списать.
🔹Метод перевода средств от пользователя к пользователю. Принимает id пользователя с которого нужно списать средства, id пользователя которому должны зачислить средства, а также сумму.
🔹Метод получения текущего баланса пользователя. Принимает id пользователя. Баланс всегда в рублях.
Думаете это всё? Продолжение ниже 👇🏻
#тестовое | 🍩 Поддержать канал 🫶
CloudTips
CloudTips – чаевые и донаты картой моментально
Сервис для приема безналичных чаевых и донатов CloudTips
☝🏻Детали по основному заданию
Методы начисления и списания можно объединить в один, если это позволяет общая архитектура.
➰По умолчанию сервис не содержит в себе никаких данных о балансах (пустая табличка в БД). Данные о балансе появляются при первом зачислении денег.
➰ Валидацию данных и обработку ошибок оставляем на усмотрение кандидата.
➰Список полей к методам не фиксированный.
➰Перечислен лишь необходимый минимум. В рамках выполнения доп. заданий возможны дополнительные поля.
➰Механизм миграции не нужен. Достаточно предоставить конечный SQL файл с созданием всех необходимых таблиц в БД.
➰Баланс пользователя - очень важные данные в которых недопустимы ошибки (фактически мы работаем тут с реальными деньгами). Необходимо всегда держать баланс в актуальном состоянии и не допускать ситуаций когда баланс может уйти в минус.
➰Валюта баланса по умолчанию всегда рубли.
🏅Дополнительные задания
Они не являются обязательными, но их выполнение даст существенный плюс перед другими кандидатами.
Доп. задание 1
Эффективные менеджеры захотели добавить в наши приложения товары и услуги в различных от рубля валютах. Необходима возможность вывода баланса пользователя в отличной от рубля валюте.
Задача: добавить к методу получения баланса доп. параметр. Пример:
Примечание: напоминаем, что базовая валюта которая хранится на балансе у нас всегда рубль. В рамках этой задачи конвертация всегда происходит с базовой валюты.
Доп. задание 2
Пользователи жалуются, что не понимают за что были списаны (или зачислены) средства.
Задача: необходимо предоставить метод получения списка транзакций с комментариями откуда и зачем были начислены/списаны средства с баланса. Необходимо предусмотреть пагинацию и сортировку по сумме и дате.
Дочитали? 😏
#тестовое |⚡️ Забустить канал 🚀
Методы начисления и списания можно объединить в один, если это позволяет общая архитектура.
➰По умолчанию сервис не содержит в себе никаких данных о балансах (пустая табличка в БД). Данные о балансе появляются при первом зачислении денег.
➰ Валидацию данных и обработку ошибок оставляем на усмотрение кандидата.
➰Список полей к методам не фиксированный.
➰Перечислен лишь необходимый минимум. В рамках выполнения доп. заданий возможны дополнительные поля.
➰Механизм миграции не нужен. Достаточно предоставить конечный SQL файл с созданием всех необходимых таблиц в БД.
➰Баланс пользователя - очень важные данные в которых недопустимы ошибки (фактически мы работаем тут с реальными деньгами). Необходимо всегда держать баланс в актуальном состоянии и не допускать ситуаций когда баланс может уйти в минус.
➰Валюта баланса по умолчанию всегда рубли.
🏅Дополнительные задания
Они не являются обязательными, но их выполнение даст существенный плюс перед другими кандидатами.
Доп. задание 1
Эффективные менеджеры захотели добавить в наши приложения товары и услуги в различных от рубля валютах. Необходима возможность вывода баланса пользователя в отличной от рубля валюте.
Задача: добавить к методу получения баланса доп. параметр. Пример:
?currency=USD
. Если этот параметр присутствует, то мы должны конвертировать баланс пользователя с рубля на указанную валюту. Данные по текущему курсу валют можно взять отсюда https://exchangeratesapi.io/ или из любого другого открытого источника.Примечание: напоминаем, что базовая валюта которая хранится на балансе у нас всегда рубль. В рамках этой задачи конвертация всегда происходит с базовой валюты.
Доп. задание 2
Пользователи жалуются, что не понимают за что были списаны (или зачислены) средства.
Задача: необходимо предоставить метод получения списка транзакций с комментариями откуда и зачем были начислены/списаны средства с баланса. Необходимо предусмотреть пагинацию и сортировку по сумме и дате.
Дочитали? 😏
#тестовое |⚡️ Забустить канал 🚀
exchangeratesapi.io
Real-Time and Historical Currency Data with Exchange Rates API
Access accurate exchange rate data with ExchangeRatesAPI. Our free API provides reliable rates for 170+ currencies, updated every 60 minutes. Get started now!
ХВАТИТ ТУПИТЬ В
SQL — это тот самый навык, про который многие думают «да я его знаю», а на первом же собесе на
Актуализировал для вас подборочку, где можно и нужно набивать руку 👇🏻
На русском 🇷🇺
▫️SQL Academy — Интерактивный учебник с кучей задач. Есть песочница, чтобы ковыряться с кодом без последствий.
▫️SQL-EX — Настоящий олдскул, где ещё деды учились (и я в том числе). Задач — вагон, до сих пор актуально. Можно даже платную сертификацию пройти, если вам такое надо.
▫️Тренажёр на Stepik — Классический тренажёр на Stepik. Сложность растёт постепенно, от табличек в вакууме до баз данных условного «Интернет-магазина».
Изучаем базу (на английском 🇬🇧)
▫️SQLBolt — Всего 20 интерактивных уроков. Для тех, кому надо быстро въехать в основы, не читая талмуды.
▫️PGExercises — Чисто под PostgreSQL. Для тех, кто работает с Постгресом и не хочет распыляться.
▫️SQL Practice — Практика на базе данных больницы. Лечим пациентов SQL-запросами.
Готовимся к собесам (🇬🇧) ⚔️
▫️Leetcode — Ну это база для подготовки к собесам. Можно подсмотреть чужие решения 🌚
▫️HackerRank — Похож на Leetcode, но со своей атмосферой. Тоже задачи, рейтинги и возможность получить бесполезную, но приятную ачивку-сертификат.
▫️DataLemur — Задачи прямиком с собесов в Microsoft, Tesla и прочих галер. Есть даже игра в Кальмара 🦑
Игровые тренажёры 🕵️♂️
▫️SQL Murder Mystery — Расследуем убийство, отправляя SQL-запросы к базе с уликами. Классная разминка.
▫️SQL Noir — То же самое, но в стиле нуар. Для ценителей.
▫️Lost at SQL — Спасаем команду с тонущей подлодки с помощью SQL. Есть сюжетка и таблица лидеров.
В общем, инструментов валом. Если до сих пор не умеете в SQL, то это не потому, что нет возможности, а потому что вы ленивая жопа 🌝
А где вы учились/практиковались? Кидайте в комменты свои находки, если чего-то в списке не хватает.
JOIN
АХ: БЕСПЛАТНЫЕ SQL-ТРЕНАЖЁРЫSQL — это тот самый навык, про который многие думают «да я его знаю», а на первом же собесе на
GROUP BY
с HAVING
начинают плавать. И неважно, бэкендер ты, аналитик или начинающий дата-сайентист — это очень нужно всем.Актуализировал для вас подборочку, где можно и нужно набивать руку 👇🏻
На русском 🇷🇺
▫️SQL Academy — Интерактивный учебник с кучей задач. Есть песочница, чтобы ковыряться с кодом без последствий.
▫️SQL-EX — Настоящий олдскул, где ещё деды учились (и я в том числе). Задач — вагон, до сих пор актуально. Можно даже платную сертификацию пройти, если вам такое надо.
▫️Тренажёр на Stepik — Классический тренажёр на Stepik. Сложность растёт постепенно, от табличек в вакууме до баз данных условного «Интернет-магазина».
Изучаем базу (на английском 🇬🇧)
▫️SQLBolt — Всего 20 интерактивных уроков. Для тех, кому надо быстро въехать в основы, не читая талмуды.
▫️PGExercises — Чисто под PostgreSQL. Для тех, кто работает с Постгресом и не хочет распыляться.
▫️SQL Practice — Практика на базе данных больницы. Лечим пациентов SQL-запросами.
Готовимся к собесам (🇬🇧) ⚔️
▫️Leetcode — Ну это база для подготовки к собесам. Можно подсмотреть чужие решения 🌚
▫️HackerRank — Похож на Leetcode, но со своей атмосферой. Тоже задачи, рейтинги и возможность получить бесполезную, но приятную ачивку-сертификат.
▫️DataLemur — Задачи прямиком с собесов в Microsoft, Tesla и прочих галер. Есть даже игра в Кальмара 🦑
Игровые тренажёры 🕵️♂️
▫️SQL Murder Mystery — Расследуем убийство, отправляя SQL-запросы к базе с уликами. Классная разминка.
▫️SQL Noir — То же самое, но в стиле нуар. Для ценителей.
▫️Lost at SQL — Спасаем команду с тонущей подлодки с помощью SQL. Есть сюжетка и таблица лидеров.
В общем, инструментов валом. Если до сих пор не умеете в SQL, то это не потому, что нет возможности, а потому что вы ленивая жопа 🌝
А где вы учились/практиковались? Кидайте в комменты свои находки, если чего-то в списке не хватает.
olegtalks.ru
Бесплатные тренажёры по Python, SQL, Regex
🚀 Откройте 30+ бесплатных онлайн-тренажеров по Python, SQL и Regex. Решайте задачи, оттачивайте навыки программирования и готовьтесь к собеседованиям. Всё в одном месте!
❤🔥10❤5🔥4⚡1🙏1 1
Please open Telegram to view this post
VIEW IN TELEGRAM
🤔4👀2⚡1👍1🔥1👨💻1🆒1 1