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
Интересная статистика)

Последние 30 дней я отправляю свой код на GitHub.
Без выходных.😅

За 2022 год я отправил 470 коммитов) И это только учебные проекты)
Аккаунт завел 15 августа прошлого года.

ссылка на мой аккаунт: https://github.com/avagners
Подписывайтесь)
🔥3
Сделал пагинацию в CRM.
Пока только в customers.
👍3
Добавил пагинацию для Products и Orders.
Столкнулся с проблемой некорректного порядкового номера.
При переходе на вторую страницу, порядковый номер начинался заново.
А должен продолжаться.

Один запрос в гугл и вот решение:
https://stackoverflow.com/questions/9373532/how-to-show-the-correct-object-numbers-when-using-django-pagination
👍3
ptpython

Интерактивная оболочка Python с подсветкой синтаксиса, автоматическими отступами, подсказками кода, многострочным редактированием.
https://github.com/prompt-toolkit/ptpython

То чувство, когда заменил кнопочный телефон на современный смартфон)))
👍2🔥1
Создал форму регистрации новых пользователей.
Проверил. Новые пользователи регистрируются.
🔥2
Генератор статических сайтов.

О генераторах статических сайтов узнал лет 5 назад, когда интересовался веб-разработкой.
В то время они мне казались чем-то очень сложным и непонятным.
Тогда сделал 1 сайт на генераторе jekyll. При этом магию преобразования md файлов в html страницы я так и не понял.

После этого, осенью прошлого года, сделал себе сайт с помощью генератора hugo. Он написан на go. Мне кажется, порог входа у него самый низкий. Поэтому, если хотите начать вести блог, то рекомендую данный генератор.

Несколько недель назад вновь задумался о том, чтобы разобраться как устроены эти генераторы.
Подумал: "Почему бы не сделать такой генератор самому на python?"

И вот сегодня выкладываю первую рабочую версию на github. =)

https://github.com/avagners/ssgpy
👍2🔥1
На прошлой неделе было несколько дней выходных. Я совсем ничего не изучал и не кодил.

И как всегда, когда пропускаешь несколько дней подряд, то происходит значительный спад в продуктивности.

В том числе по этой причине не писал ничего в канал.

Сегодня среда. Вернул английский. Ничего нового в CRM не реализовал. Книжек не читал.

Из плюсов за это время:
- вписался в проект сокурсника. Он хочет написать онлайн ассистента для постановки задач с интеграцией телеграм и GitHub.
Уже сделал несколько коммитов.

- придумал ещё 3 прикладных проекта, которые могут помочь в моей повседневной жизни. Надо создать 3 репозитория для них на GitHub и в README.md написать описание. Тогда есть шанс что я про них не забуду и смогу выделить время для их реализации.
На днях детально распишу о каждом из них в канале.

- начал изучать структуры данных. Изучил связанные списки, стек. Для понимания пришлось руками прописывать каждую структуру. Вопрос даётся не просто. Задачи решаются долго. Но главное, что решаются и приходит понимание.
👍4
This media is not supported in your browser
VIEW IN TELEGRAM
В Python list() - это не список, а динамический массив.
👍2
Сегодня:

- решал алгоритмические задачи;
- читал "Грокаем алгоритмы". Повторил ранее изученные темы: О-большое, бинарный поиск, массивы и связанные списки;
- CRM: на странице входа добавил ссылку на страницу регистрации, сделал доступ только для авторизованного пользователя;
- английский язык;

=)
👍4
This media is not supported in your browser
VIEW IN TELEGRAM
"Если вам нравится рекурсия или вы хотите изучить новый язык - присмотритесь к Haskell."
Цитата из книги "Грокаем алгоритмы".

С рекурсией вроде разобрался. Второй язык планирую начать изучать в июне-июле.
Какой язык пока не решил.
🔥2
Сегодня:

- "Грокаем алгоритмы": стек, рекурсия;
- CRM: 2 недели назад поставил задачу реализовать возможность сортировки при нажатии на заголовок столбца. Не знал как это сделать, поэтому затянул с решением. Сегодня сделал. Мне кажется есть более правильное решение. Завтра посмотрю как это можно сделать с помощью django-filters;
- английский;

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

Ссылка на роадмап: https://roadmap.sh/backend

P.s. там есть не только backend.
👍3
1) Решал задачи по алгоритмам и структурам данных.

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

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

На решение задачи ушло порядка 5 часов. Зато здорово разобрался как работать с указателями и довольно хорошо понял эту структуру данных.

Вторая задача: реализовать польский калькулятор с использованием стека.
Описание задачи было довольно большим. Думал задача будет сложнее предыдущей. Но по факту оказалась намного проще.
Решил за 90 мин.

2) Создал новый репозиторий на github, в котором буду публиковать свой опыт в освоении алгоритмов и структур данных. Возможно, буду публиковать решения алгоритмических задач с LeetCode, CodeWars, HackerRank

3) Немного изучил аннотацию типов в Python. Почитал, написал код. Проверил как подсвечивается код в vscode и в PyCharm.
В PyCharm все настроено по-умолчанию. Сразу подсвечиваются переменные, в которых есть ошибка.
В vscode нужно произвести дополнительную настройку. Например, выбрать mypy в качестве линтера.

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

Сейчас убежден, что это обязательное требование в написании кода на питоне.
🔥4👍1
Что делал?

1) CRM
- создал карточку клиента;
- на странице карточки клиента вывел историю заказов;
- добавил поле "статус" для клиента: активный/неактивный. Добавил в модель, вывел в шаблон, в форму редактирования;
- добавил вывод ошибок в форме, если форма не проходит валидацию;

Получилось довольно неплохо. Скрин карточки ниже.

2) Алгоритмы и структуры данных. Продолжаю чтение книги "Грокаем алгоритмы". Постепенно переношу написанные мной алгоритмы на github.
3) Начал знакомиться с ассемблер.

Для инфо
Ассемблер - низкоуровневый язык второго уровня. Почему второго? На первом уровне машинный код, на втором - ассемблер. Ну а все остальные языки уже выше. В этом языке ты взаимодействуешь с железом напрямую. Работаешь непосредственно с инструкциями процессора.
На данном языке уже почти никто ничего не пишет. Остались очень узкоспециализированные ниши.

Зачем он мне?
Хочу достаточно уверенно понимать что происходит на уровне железа. Говорят, что потом лучше понимаешь высокоуровневые языки.
Хочу через пару месяцев (а может и раньше) переписать пару алгоритмов на ассемблер =).
👍3🔥1
1) CRM - начал покрывать код тестами. Покрыл пока только URL в приложении Customers.
По итогам работы выявил баг с правами доступа. Оказался доступным адрес создания нового клиента для неавторизованного пользователя. =)
Исправил ошибку.
Вот чем полезно написание тестов =)

2) Ассемблер. Познакомился с основными регистрами процессора:
- регистры общего назначения (4 байта = 32 бита);
- регистр флагов (4 байта = 32 бита);
- сегментные регистры (2 байта = 16 бит);

Регистры общего назначения состоят из старшего слова и младшего слова.
У некоторых регистров младшее слово делится на старший байт и младший байт.

3) Чтение книги "Грокаем алгоритмы". Познакомился с жадными алгоритмами и NP-полными задачами.
👍5
This media is not supported in your browser
VIEW IN TELEGRAM
Вчера просидел около 3-х часов над алгоритмом сортировки слиянием. Никак не получалось добиться нужного результата.

Сегодня решил за 5 минут.

Как это называется? 😅
🔥4
Завершил чтение книги "Грокаем алгоритмы".

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

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

Тему алгоритмов и структур данных многие начинающие разработчики боятся как огня. Оттягивал знакомство и я. Было несколько подходов в том числе и к чтению этой книги.

Видимо сейчас дорос. Книгу можно прочитать буквально за несколько дней. Но я читал по 1 главе в день.
Можно ли сказать, что я освоил прочитанные алгоритмы? Однозначно, нет.
Но зато я теперь ориентируюсь в теме и могу копать в глубину, изучать более сложную литературу и практиковаться, практиковаться и еще раз практиковаться.
🔥5
Посмотрите какая прикольная визуализация в Github подъехала =)
очень эпично

https://skyline.github.com/avagners/2022
👍3🔥2
Последние 2 дня изучаю структуры данных.

Вчера были ассоциативные массивы, хеш-таблицы. Сегодня деревья.
👍6