DON'T STOP AND CODE – Telegram
DON'T STOP AND CODE
103 subscribers
58 photos
2 videos
1 file
119 links
Мой путь в программировании
#python

Для связи: @avagners
Download Telegram
Всем привет!

Забыл в субботу отписаться о том, что успел сделать за 7 дней помимо работы.

Исправляюсь)

Изучил следующие структуры данных:

9) ассоциативный массив (словарь) ;
10) множества;
11) фильтр Блюма;

Написал тестов на 480 строк.

Все эти структуры данных в своей реализации используют хэш-функции и хэш-таблицы. Это позволяет получить сложность операций поиска до О(1).

Очень интересной показалась структура "фильтр Блюма".
Фильтр даёт возможность проверки элементов со скоростью O(1). Но фильтр даёт вероятностный ответ. То есть фильтр может вернуть ложноположительный ответ. Это ситуация, когда мы не включали в фильтр строку, но фильтр нам пишет, что данная строка в фильтре есть.

Такое возникает, когда хэш-функции, используемые в фильтре, расчитывают один и тот же хэш для разных строк.

Вероятность срабатывания ложноположительного ответа находится в обратной зависимости от количества бит выделяемых под сам фильтр. Чем больше битовый массив, тем меньше вероятность ложноположительного ответа.
🔥5👍1
This media is not supported in your browser
VIEW IN TELEGRAM
Всем привет!

На прошлой неделе изучил одну структуру данных:

12) Кэш

Также написал тесты.

Итого за месяц изучил 12 структур данных. Написал тестов на 3000 строк.

А как у вас прошла неделя?
👍3🔥1
This media is not supported in your browser
VIEW IN TELEGRAM
▓▓▓▓▓▓▓▓▓▓▓░░░░░ 71%

👆👆👆
Это 2022 год.

Кто-то ставил цели на год?
Что у вас? Что выполнили? Что осталось?

У меня этот год довольно продуктивный. Все основые цели достиг.

Есть еще одна задача, которую я хочу сделать - создать свой сайт и написать на нём несколько статей.

У меня есть хостинг, домен. Даже накатывал уже движок и была одна заметка. Но зимой я всё снёс.

Давайте сделаем ставки))) Выкачу ли я до конца года блог с минимум 2-мя статьями? 😁

Судя по моей статистике, я бы поставил на отрицательный ответ. 😄
👍3👏1
Сделаю я свой блог с 2-мя статьями до конца этого года?
Anonymous Poll
82%
Да, сделаешь
18%
🚫 Нет, не сделаешь
Всем привет! 👋

Спасибо всем, кто в меня верит, что я закрою последнюю цель на этот год. Приятно получить поддержку)

А также спасибо тем, кто послушал меня и проголосовал за то, что я этого не сделаю и сольюсь)

На сегодня определился с тем на каком движке будет сайт.
Решил сделать его статическим и собирать с помощью генератора статических сайтов Pelican. Мне очень нравится идея писать статьи в Markdown. =)

Pelican полностью написан на питоне. Установка и настройка очень простые. Из минусов могу назвать только малое кол-во качественных тем.

Сейчас у меня дилемма - взять готовую тему или написать свою с нуля?
Склоняюсь к написанию своей темы. Для меня это будет дополнительной задачей, с помощью которой научусь еще чему-то новому.
Да, на это нужно будет потратить время. Зато буду ориентироваться в своем сайте от А до Я.

У меня к вам вопрос =)
У кого-то из вас есть свой сайт? Или кто-то планирует его сделать?
👍3
Пока сын на тренировке читаю книгу Алана Бьюли "Изучаем SQL".😎
👍8👏1
DON'T STOP AND CODE
🔥🔥🔥 По итогам собеседований и прохождения тестовых заданий мне сделали оффер и с 21.10 я иду работать в Магнит в должности разработчика.👨‍💻
Год назад, 21.10.2021, состоялся первый рабочий день в профессии разработчик!👨‍💻
Быстро время летит.

Что я могу сказать по итогам года?
Усилия на освоение новой профессии полностью себя оправдывают.
Я наконец работаю в профессии, которая мне интересна.
Увеличил доход.
Сейчас являюсь разработчиком в маленькой команде, но в крупной компании.
Чем больше кодишь, тем лучше получается.
Без теоретической базы кодишь плохо. Поэтому читаю книги и прохожу курсы.
После книг и курсов всегда поднимается качество работы на новый уровень.
Профессия уже не воспринимается так романтично. Это хорошо.
🔥7👍21
Тем временем продолжаю изучать структуры данных.
Сегодня изучал деревья.🌳

Создал структуру и методы. Покрыл код тестами.
Осталось реализовать метод перемещения узла вместе с дочерними узлами под другой узел.

Ознакомиться с кодом можно на гитхаб по ссылке:
https://github.com/avagners/algorithms_and_data_structures/blob/main/data_structures/trees/SimpleTree.py

P.s. если ещё не подписались на мой гитхаб, то подписывайтесь) Подпишусь взаимно)👨‍💻
🔥3👍2
This media is not supported in your browser
VIEW IN TELEGRAM
Дописал метод перемещения узла вместе с поддеревом.

Также написал метод установки уровня глубины узла в дереве.
Метод рекурсивно перебирает все узлы дерева, считает и устанавливает уровень узла относительно корня.

Код покрыл тестами.

Ссылка на гитхаб: https://github.com/avagners/algorithms_and_data_structures/blob/main/data_structures/trees/SimpleTree.py#L65:L77
👍4
~ 549 день👨‍💻 | Двоичные деревья поиска

Сегодня изучал двоичные деревья поиска (бинарные деревья).

Бывают:
- полными (full binary tree);
- строгими (strictly binary tree);
- законченными (complete binary tree);

Бинарные деревья обеспечивают быстрый поиск данных за O(log n).

Отличия от обычных деревьев, которые я изучал накануне:
1) данные в дереве хранятся в определённом порядке;
2) поиск выполняется с учётом этого порядка;

Порядок заключается в том, что у узла может быть только два потомка (левый и правый). Левый всегда меньше родителя, а правый всегда больше.

Допускается реализация с хранением узлов с одинаковыми ключами. Тогда действует правило: ключ правого потомка должен быть больше или равен ключу родителя. Подобные деревья называют частично упорядоченными.

------
Реализовал структуру данных и покрыл тестами.
Осталось реализовать метод удаления узла.

С кодом можно ознакомиться по ссылке на гитхаб:
https://github.com/avagners/algorithms_and_data_structures/tree/main/data_structures/binary_search_trees

📚Чтение:
+ 14 стр. "Изучаем SQL" Алан Бьюли (2007 год)
(135 страниц из 308)
🔥31
This media is not supported in your browser
VIEW IN TELEGRAM
😁2
~ 550 день👨‍💻 | День работы

Сегодня не удалось ничем дополнительным позаниматься кроме работы.
Почти завершил две долгоиграющие задачи, во время решения которых многому научился.

Например,
- впервые дописывал довольно большой блок модуля;
- впервые поработал с API Яндекс.Диска;
——————
Последнее время работаю в основном самостоятельно. Мой наставник занят своими задачами и уже не уделяет столько времени как раньше.
Радует, что справляюсь. =)

📚Чтение:
+ 0 стр. "Изучаем SQL" Алан Бьюли (2007 год)
(135 страниц из 308)
🔥5👍2🥰1
This media is not supported in your browser
VIEW IN TELEGRAM
🔥1
~ 551 день👨‍💻 | Удаление узла из бинарного дерева

Написать метод удаления узла из бинарного дерева оказалось не такой простой задачей. Просидел порядка 1 часа. Мой код пока не проходит мои тесты)
Проблема с указателями. После операции удаления не все указатели на родителя/потомков указываются верно.

Т.е. узел удаляется, находится узел-преемник, преемник занимает место удаленного узла, но осталось поправить указатели.

Интересная задача. Чем-то напомнила работу с узлами и указателями в связанном списке.

📚Чтение:
+ 0 стр. "Изучаем SQL" Алан Бьюли (2007 год)
(135 страниц из 308)
👍2
~ 552 день👨‍💻 | Удаление узла из бинарного дерева. Продолжение...

Время 1:30 ночи...

Сегодня работал над методом удаления узла из бинарного дерева. =)
Вроде все работает. Узлы удаляются. Тесты свои прохожу.

В общей сложности сегодня решал эту задачу около 9 часов.🙈
——————
Завтра еще раз нужно все перепроверить. И тесты и код.
Возможно, получится поправить код, чтобы он был более компактным и читабельным.

📚Чтение:
+ 0 стр. "Изучаем SQL" Алан Бьюли (2007 год)
(135 страниц из 308)
🔥1
This media is not supported in your browser
VIEW IN TELEGRAM
😁1
Снова восхищаюсь практикой написания тестов))

Сижу перепроверяю вчерашний код. Пишу новые тесты (ну, чтобы на 100% быть уверенным). Написал дополнительно 2 теста. Все работает отлично.

Про себя подумал, что все хорошо и можно заканчивать работу. Но решил написать еще один тест... Иии... Он упал!!!😳

Вроде уже тестов на удаление узла сделал вдоль и поперек. Но как оказалось из вида упускал еще один возможный вариант))

Сижу думаю как поправить метод)🤓

——————
Как я люблю тесты))) Без шуток)
👍2🔥1
~553, 554 дни 👨‍💻 | Закончил работу над бинарным деревом

Написал 545 строк тестов. Было не просто.

Какие сделал выводы?

1) Тестировать все возможные варианты;

2) Если по условию задачи в отрицательном случае метод должен возвращать False, то в противоположном случае обязательно реализуем возврат True. Не оставляем None.

3) Листок и ручка - лучшие друзья при решении подобных задач. Сначала пишем, рисуем. Только потом пишем код.

---------
И самое главное! Читаем условия задачи не жопой! А внимательно, с ручкой и бумагой!

С итоговым кодом можно ознакомиться по ссылке на гитхаб: https://github.com/avagners/algorithms_and_data_structures/tree/main/data_structures%2Fbinary_search_trees

📚Чтение:
+ 0 стр. "Изучаем SQL" Алан Бьюли (2007 год)
(135 страниц из 308)
🔥4