1) Решал задачи по алгоритмам и структурам данных.
Первая задача: реализовать структуру данных "Дек". Дек - это очередь с возможностью добавления и извлечения элементов и в начало и в конец очереди. Требование задачи: использование кольцевого буфера.
Кольцевой буфер, или циклический буфер - это буфер фиксированного размера, в котором оба указателя указывают на ячейку с индексом ноль, если очередь пуста. Таким образом массив зациклен.
На решение задачи ушло порядка 5 часов. Зато здорово разобрался как работать с указателями и довольно хорошо понял эту структуру данных.
Вторая задача: реализовать польский калькулятор с использованием стека.
Описание задачи было довольно большим. Думал задача будет сложнее предыдущей. Но по факту оказалась намного проще.
Решил за 90 мин.
2) Создал новый репозиторий на github, в котором буду публиковать свой опыт в освоении алгоритмов и структур данных. Возможно, буду публиковать решения алгоритмических задач с LeetCode, CodeWars, HackerRank
3) Немного изучил аннотацию типов в Python. Почитал, написал код. Проверил как подсвечивается код в vscode и в PyCharm.
В PyCharm все настроено по-умолчанию. Сразу подсвечиваются переменные, в которых есть ошибка.
В vscode нужно произвести дополнительную настройку. Например, выбрать mypy в качестве линтера.
С аннотацией типов первый раз познакомился примерно пол года назад. Тогда не понял всю важность применения в работе, так как код также хорошо работает и без аннотации типов.
Сейчас убежден, что это обязательное требование в написании кода на питоне.
Первая задача: реализовать структуру данных "Дек". Дек - это очередь с возможностью добавления и извлечения элементов и в начало и в конец очереди. Требование задачи: использование кольцевого буфера.
Кольцевой буфер, или циклический буфер - это буфер фиксированного размера, в котором оба указателя указывают на ячейку с индексом ноль, если очередь пуста. Таким образом массив зациклен.
На решение задачи ушло порядка 5 часов. Зато здорово разобрался как работать с указателями и довольно хорошо понял эту структуру данных.
Вторая задача: реализовать польский калькулятор с использованием стека.
Описание задачи было довольно большим. Думал задача будет сложнее предыдущей. Но по факту оказалась намного проще.
Решил за 90 мин.
2) Создал новый репозиторий на github, в котором буду публиковать свой опыт в освоении алгоритмов и структур данных. Возможно, буду публиковать решения алгоритмических задач с LeetCode, CodeWars, HackerRank
3) Немного изучил аннотацию типов в Python. Почитал, написал код. Проверил как подсвечивается код в vscode и в PyCharm.
В PyCharm все настроено по-умолчанию. Сразу подсвечиваются переменные, в которых есть ошибка.
В vscode нужно произвести дополнительную настройку. Например, выбрать mypy в качестве линтера.
С аннотацией типов первый раз познакомился примерно пол года назад. Тогда не понял всю важность применения в работе, так как код также хорошо работает и без аннотации типов.
Сейчас убежден, что это обязательное требование в написании кода на питоне.
🔥4👍1
Что делал?
1) CRM
- создал карточку клиента;
- на странице карточки клиента вывел историю заказов;
- добавил поле "статус" для клиента: активный/неактивный. Добавил в модель, вывел в шаблон, в форму редактирования;
- добавил вывод ошибок в форме, если форма не проходит валидацию;
Получилось довольно неплохо. Скрин карточки ниже.
2) Алгоритмы и структуры данных. Продолжаю чтение книги "Грокаем алгоритмы". Постепенно переношу написанные мной алгоритмы на github.
3) Начал знакомиться с ассемблер.
Для инфо
Ассемблер - низкоуровневый язык второго уровня. Почему второго? На первом уровне машинный код, на втором - ассемблер. Ну а все остальные языки уже выше. В этом языке ты взаимодействуешь с железом напрямую. Работаешь непосредственно с инструкциями процессора.
На данном языке уже почти никто ничего не пишет. Остались очень узкоспециализированные ниши.
Зачем он мне?
Хочу достаточно уверенно понимать что происходит на уровне железа. Говорят, что потом лучше понимаешь высокоуровневые языки.
Хочу через пару месяцев (а может и раньше) переписать пару алгоритмов на ассемблер =).
1) CRM
- создал карточку клиента;
- на странице карточки клиента вывел историю заказов;
- добавил поле "статус" для клиента: активный/неактивный. Добавил в модель, вывел в шаблон, в форму редактирования;
- добавил вывод ошибок в форме, если форма не проходит валидацию;
Получилось довольно неплохо. Скрин карточки ниже.
2) Алгоритмы и структуры данных. Продолжаю чтение книги "Грокаем алгоритмы". Постепенно переношу написанные мной алгоритмы на github.
3) Начал знакомиться с ассемблер.
Для инфо
Ассемблер - низкоуровневый язык второго уровня. Почему второго? На первом уровне машинный код, на втором - ассемблер. Ну а все остальные языки уже выше. В этом языке ты взаимодействуешь с железом напрямую. Работаешь непосредственно с инструкциями процессора.
На данном языке уже почти никто ничего не пишет. Остались очень узкоспециализированные ниши.
Зачем он мне?
Хочу достаточно уверенно понимать что происходит на уровне железа. Говорят, что потом лучше понимаешь высокоуровневые языки.
Хочу через пару месяцев (а может и раньше) переписать пару алгоритмов на ассемблер =).
👍3🔥1
1) CRM - начал покрывать код тестами. Покрыл пока только URL в приложении Customers.
По итогам работы выявил баг с правами доступа. Оказался доступным адрес создания нового клиента для неавторизованного пользователя. =)
Исправил ошибку.
Вот чем полезно написание тестов =)
2) Ассемблер. Познакомился с основными регистрами процессора:
- регистры общего назначения (4 байта = 32 бита);
- регистр флагов (4 байта = 32 бита);
- сегментные регистры (2 байта = 16 бит);
Регистры общего назначения состоят из старшего слова и младшего слова.
У некоторых регистров младшее слово делится на старший байт и младший байт.
3) Чтение книги "Грокаем алгоритмы". Познакомился с жадными алгоритмами и NP-полными задачами.
По итогам работы выявил баг с правами доступа. Оказался доступным адрес создания нового клиента для неавторизованного пользователя. =)
Исправил ошибку.
Вот чем полезно написание тестов =)
2) Ассемблер. Познакомился с основными регистрами процессора:
- регистры общего назначения (4 байта = 32 бита);
- регистр флагов (4 байта = 32 бита);
- сегментные регистры (2 байта = 16 бит);
Регистры общего назначения состоят из старшего слова и младшего слова.
У некоторых регистров младшее слово делится на старший байт и младший байт.
3) Чтение книги "Грокаем алгоритмы". Познакомился с жадными алгоритмами и NP-полными задачами.
👍5
Вчера просидел около 3-х часов над алгоритмом сортировки слиянием. Никак не получалось добиться нужного результата.
Сегодня решил за 5 минут.
Как это называется? 😅
Сегодня решил за 5 минут.
Как это называется? 😅
🔥4
Завершил чтение книги "Грокаем алгоритмы".
Плюсы:
- для новичков
- нет сложных определений и математических доказательств
- много картинок
- написана простым языком
- не устаешь от чтения
Минусы:
- мало практики
- достаточно поверхностна
Думаю именно такой должна быть книга, которая знакомит человека с такой сложной темой как алгоритмы и структуры данных.
Тему алгоритмов и структур данных многие начинающие разработчики боятся как огня. Оттягивал знакомство и я. Было несколько подходов в том числе и к чтению этой книги.
Видимо сейчас дорос. Книгу можно прочитать буквально за несколько дней. Но я читал по 1 главе в день.
Можно ли сказать, что я освоил прочитанные алгоритмы? Однозначно, нет.
Но зато я теперь ориентируюсь в теме и могу копать в глубину, изучать более сложную литературу и практиковаться, практиковаться и еще раз практиковаться.
Плюсы:
- для новичков
- нет сложных определений и математических доказательств
- много картинок
- написана простым языком
- не устаешь от чтения
Минусы:
- мало практики
- достаточно поверхностна
Думаю именно такой должна быть книга, которая знакомит человека с такой сложной темой как алгоритмы и структуры данных.
Тему алгоритмов и структур данных многие начинающие разработчики боятся как огня. Оттягивал знакомство и я. Было несколько подходов в том числе и к чтению этой книги.
Видимо сейчас дорос. Книгу можно прочитать буквально за несколько дней. Но я читал по 1 главе в день.
Можно ли сказать, что я освоил прочитанные алгоритмы? Однозначно, нет.
Но зато я теперь ориентируюсь в теме и могу копать в глубину, изучать более сложную литературу и практиковаться, практиковаться и еще раз практиковаться.
🔥5
Посмотрите какая прикольная визуализация в Github подъехала =)
очень эпично
https://skyline.github.com/avagners/2022
очень эпично
https://skyline.github.com/avagners/2022
Github
@avagners' 2022 GitHub Skyline
3D model of the GitHub contributions made by @avagners in 2022.
👍3🔥2
Последние 2 дня изучаю структуры данных.
Вчера были ассоциативные массивы, хеш-таблицы. Сегодня деревья.
Вчера были ассоциативные массивы, хеш-таблицы. Сегодня деревья.
👍6
1) Обновил Ubuntu до 22.04, теперь у меня по-умолчанию версия Python 3.10
2) Установил PostgreSQL - буду знакомиться с самой популярной БД в России.
3) Научился создавать базу данных, таблицы, вносить/изменять/удалять данные
2) Установил PostgreSQL - буду знакомиться с самой популярной БД в России.
3) Научился создавать базу данных, таблицы, вносить/изменять/удалять данные
🔥5
Обновление Ubuntu прошло не так гладко как показалось.
Стал не стабильно работать WiFi. Подсказали обновить ядро линукс. Обновил. Адаптер WiFi пропал вовсе.
Решение: откат ядра на предыдущую стабильную версию.
Провозился с данной проблемой достаточно много времени. Зато прокачал скил в использовании Ubuntu.
Стал не стабильно работать WiFi. Подсказали обновить ядро линукс. Обновил. Адаптер WiFi пропал вовсе.
Решение: откат ядра на предыдущую стабильную версию.
Провозился с данной проблемой достаточно много времени. Зато прокачал скил в использовании Ubuntu.
🎉5
Начинаю знакомство с Яндекс.Облаком.
Сегодня успел зарегаться, познакомиться с интерфейсом, создать свою первую виртуальную машину, удалить первую виртуальную машину, создать вторую, на ней установить гит, привязать аккаунт гитхаб, склонировать и развернуть один учебный проект на Django.
Как здорово, что основная ОС на моём ноуте Ubuntu. Это ОС также ставится на виртуальную машину в облаке. Всё знакомо и поэтому довольно уверено чувствую себя в терминале)
Подключился к ВМ через SSH.
До этого никогда не доводилось иметь дело с подобными сервисами, разве что с хостинг-провайдерами. Как понимаю подобное есть у гугла и у амазона.
P.s. Кстати, для знакомства с облаком Яндекс предоставляет пробный период на 60 дней или 4000 руб грант.
Сегодня успел зарегаться, познакомиться с интерфейсом, создать свою первую виртуальную машину, удалить первую виртуальную машину, создать вторую, на ней установить гит, привязать аккаунт гитхаб, склонировать и развернуть один учебный проект на Django.
Как здорово, что основная ОС на моём ноуте Ubuntu. Это ОС также ставится на виртуальную машину в облаке. Всё знакомо и поэтому довольно уверено чувствую себя в терминале)
Подключился к ВМ через SSH.
До этого никогда не доводилось иметь дело с подобными сервисами, разве что с хостинг-провайдерами. Как понимаю подобное есть у гугла и у амазона.
P.s. Кстати, для знакомства с облаком Яндекс предоставляет пробный период на 60 дней или 4000 руб грант.
👍4
Первый отпуск
Ничего не писал на канале, т.к. был в первом отпуске в роли разработчика. =) Решил впервые за последний год отдохнуть от обучения.
Тем не менее, я несколько раз подключался для прохождения курса на Яндекс.Практикум. Сейчас не такие сложные темы, поэтому уроки даются довольно легко.
Помимо этого знакомился с рынком труда, откликался на вакансии, прошел несколько собеседований. Хочу отметить, что рынок труда начинает восстанавливаться. Появляется довольно много новых вакансий. Активизировались рекрутеры. Впервые с февраля мне в личку постучался рекрутер. =)
На счет отдыха.
Ездили с детьми на море. Хорошо провели время. По дороге останавливались в красивых и необычных местах. =)
Ничего не писал на канале, т.к. был в первом отпуске в роли разработчика. =) Решил впервые за последний год отдохнуть от обучения.
Тем не менее, я несколько раз подключался для прохождения курса на Яндекс.Практикум. Сейчас не такие сложные темы, поэтому уроки даются довольно легко.
Помимо этого знакомился с рынком труда, откликался на вакансии, прошел несколько собеседований. Хочу отметить, что рынок труда начинает восстанавливаться. Появляется довольно много новых вакансий. Активизировались рекрутеры. Впервые с февраля мне в личку постучался рекрутер. =)
На счет отдыха.
Ездили с детьми на море. Хорошо провели время. По дороге останавливались в красивых и необычных местах. =)
🔥5
Одна из ключевых внутренних мотиваций, которая двигает нас вперёд, - интерес к определенной сфере и желание знать больше, углубляясь в детали и технические подробности.
Будьте фанатом своего дела с горящими глазами. И ни один работодатель не останется равнодушным к вашей кандидатуре.
#мотивация
Будьте фанатом своего дела с горящими глазами. И ни один работодатель не останется равнодушным к вашей кандидатуре.
#мотивация
🔥5👍2
По работе в скором времени предстоит знакомство с Apache Kafka.
Решил немного подготовится и почитать что такое событийно-ориентированные системы и какую роль в них выполняет Kafka.
Решил немного подготовится и почитать что такое событийно-ориентированные системы и какую роль в них выполняет Kafka.
👍3
Как понимаю, событийно-ориентированное программирование, микросервисы вместо монолита, потоки данных, продуктовые команды - это сейчас очень востребовано на рынке и в этом нужно тоже разбираться и понимать.
Столько всего интересного)))
Столько всего интересного)))
👍2🤯1
На Яндекс.Практикум есть фишка проведения марафонов кодинга для отстающих. Обычно это суббота с 10:00 до 19:00.
Создают отдельный чат в slack, приглашают студентов из более старших групп.
Цель: подтянуть хвосты по программе.
Вчера я принял участие в таком марафоне как студент из старшей группы. Т.е. пытался помочь в решении задач и проблем.
И хочу сказать вам, что это наикрутейший опыт и очень полезное мероприятие для лучшего закрепления материала.
Сначала я немного по переписывался в слаке. Потом с одним студентом перешли в зум и один на один разбирали что такое тестирование и как оно работает. В итоге проработали около 6 часов. Всю работу мы не успели сделать, но самое главное в деталях разобрали как работает тестирование, как создаются фикстуры, разобрали все ошибки, поделился некоторыми фишка при написании кода.
Прям рекомендую участвовать в подобных мероприятиях. Очень полезно.🔥🔥🔥
P.s. говорят, что лучшим способом закрепления каких-либо знаний является обучение других людей.
Создают отдельный чат в slack, приглашают студентов из более старших групп.
Цель: подтянуть хвосты по программе.
Вчера я принял участие в таком марафоне как студент из старшей группы. Т.е. пытался помочь в решении задач и проблем.
И хочу сказать вам, что это наикрутейший опыт и очень полезное мероприятие для лучшего закрепления материала.
Сначала я немного по переписывался в слаке. Потом с одним студентом перешли в зум и один на один разбирали что такое тестирование и как оно работает. В итоге проработали около 6 часов. Всю работу мы не успели сделать, но самое главное в деталях разобрали как работает тестирование, как создаются фикстуры, разобрали все ошибки, поделился некоторыми фишка при написании кода.
Прям рекомендую участвовать в подобных мероприятиях. Очень полезно.🔥🔥🔥
P.s. говорят, что лучшим способом закрепления каких-либо знаний является обучение других людей.
🔥4
DON'T STOP AND CODE pinned «Одна из ключевых внутренних мотиваций, которая двигает нас вперёд, - интерес к определенной сфере и желание знать больше, углубляясь в детали и технические подробности. Будьте фанатом своего дела с горящими глазами. И ни один работодатель не останется равнодушным…»