Кодим вместе: Путь к IT-Успеху
531 subscribers
112 photos
1 video
104 links
🌟Всем привет! Я начинающий Python-разработчик, вернувшийся к обучению. Здесь делюсь своими планами и достижениями, чтобы мотивировать вас и себя заниматься программированием каждый день! 🚀
Download Telegram
Интересная задачка дня: ход слона

А вот эту я пару дней назад скипнул, чет посидел над ней, минут 15-20, подумал. Ничего толком в голову не пришло. На данный момент так и осталось нерешенной. Наверно не пришел еще ее час расплаты🤔🙃🫡

Условие на фотке, тесты - тут, сама задача - здесь.

Пример данных:
Sample Input 1:
--------
---S----
--------
--------
--------
--------
--------
--------

Sample Output:
--+-+---
---S----
--+-+---
-+---+--
+-----+-
-------+
--------
--------
🤔4
Мой Django-путь: от гороскопа до блога с правами доступа.

Решил более подробно и понятно описать, что успел накрутить в своём учебном проекте за последнее время. Получился этакий «путь героя» от новичка до… ну, скажем так, до человека, который перестал бояться и начал писать на классах 😅 Погнали:

🔮 Гороскоп — первые шаги

С чего всё начиналось? С простейшего приложения «Гороскоп». Никакой базы данных — только словарь и список в отдельном питон-файле (местная БД, хе-хе). Разбирался с:
• маршрутами (urls)
• представлениями (только функции, про классы тогда даже не слышал)
• шаблонами и наследованием (extends, include)
• даже написал свой кастомный тег, чтобы выводить смайлик знака зодиака.

Тогда это казалось магией. Сейчас понимаю — цветочки.

🎬 Фильмы — подключаем базу данных

• Следом пошли «Фильмы». Тут уже полноценные модели, миграции и связи:
• Фильмы, актёры, режиссёры.
• Разобрался с «один ко многим» и «многие ко многим».
• Всё ещё на функциях, но данные уже из БД летят в шаблоны.
• Появилось понимание, как Django ORM дружит с SQL, а значит и мне следует тоже)

🔐 Регистрация, авторизация и приложение «Отзывы»

Захотелось, чтобы сайт стал чуточку интерактивнее. Добавил:
• регистрацию и логин (встроенный User, пока без заморочек)
• приложение «Отзывы» — любой авторизованный может оставить ровно один отзыв о проекте в целом. Проверка на количество — через логику в представлении.

Тут впервые столкнулся с ограничением доступа и понял, что просто if request.user.is_authenticated — это только верхушка айсберга.

📝 Блог — выходим на новый уровень

• Полный CRUD для постов.
• Права доступа: автор может редактировать/удалять свой пост, остальные — только читать.
• Комментарии и лайки: все как в обычной соц.сети (да, заморочился, нууу как я😅).
• Формы — и вот тут пришлось попотеть. Django-формы штука мощная, но с первого раза не запоминается.
• И самое главное — всё это написано на классах (CBV). Совсем другой подход, другая философия. Без помощи нейросетей пока сложно, всё не запомнить, но главное работает как я хотел!

Ещё открыл для себя кастомизацию админки — столько полей, фильтров, встроенных форм… Всё сразу не запомнить, да и не надо, наверное. Главное — знать, что такая возможность есть.

⏸️ Перерыв и возвращение
А потом был перерыв или можно сказать отдых. Совсем не занимался по Django. И когда вернулся — в рекомендациях YouTube всплыло видео «Django To Do List App With User Registration & Login». Решил: а почему бы не сделать ещё одно приложение для закрепления работы на классах?

• ToDo-лист:
• CRUD на классах.
• Права доступа (каждый авторизованный видит и взаимодействует только со своим списком задач)
• Поиск по задачам через Q и icontains.(пока сложнааа)
• Bootstrap для приличия(но еще в процессе допиливания)

Еще чем хорош Django - приложение, это по сути отдельный контейнер, ты можешь его перенести в другой проект, немного подправить, настроить, добавить, и оно уже будет работать там, как будто изначально для другого проекта и писалось)

🧠 Что понял за это время
• Функции → классы: переход сложный, но оно того стоит. Кода меньше, логика чище.
• Перерывы — зло, их лучше избегать, по возможности.
• Нейросети — отличный помощник, но базу надо иметь свою. Иначе через месяц не вспомнишь, что и зачем писал.
А у вас как с опытом в веб-фреймворках? Долго переваривали переход на классы? Делали ли перерывы и как быстро втягивались обратно?

📸 Скриншоты
Ниже накидаю несколько кадров того, что получилось. Мне кажется около половины времени я трачу только на красивый визуальный результат. Рационально ли?🫣 Реакции и комментарии приветствуются)
🔥8
С 8 Марта! Пусть в жизни не будет багов, а только чистый код счастья ☺️
10🔥4
Это была наверно самая непродуктивная неделя за последний год.

А здесь можете немного погрузиться в тестирование: Старый Новый Баг!

Вдруг кому интересно тестирование - у этого автора есть несколько более подробных курсов на эту тему.
👍2
Когда тебя ОЧЕНЬ не хотят брать на работу 😆

Откликнулся на вакансию. Получил вот такой ответ...
Ну, подумал, ок, отказ. Но потом получил его ещё раз. И ещё. И ещё.

Угадайте, сколько раз мне ответили одинаково? 🤔
Кто шарит за мем — тот поймёт и так.
Кто не шарит — ответ на второй картинке 👀

(спойлер: мне ответили 12 раз одинаково)

P.S. Вакансия junior, но судя по тому, как меня не хотят, я видимо слишком хороший кандидат 😄
P.P.S. Может в тринадцатый раз повезёт?!
😁8
Закончил Инди-курс программирования на Python

Если быть точнее - допроходил 😅

В далёком 2020+ году я уже проходил этот курс на 100% после двух «Поколений Python». А недавно заглянул в «архив» на Степике и с удивлением обнаружил: по баллам пройдено чуть больше половины. Думаю: «Что за ерунда? Непорядок, надо исправлять!»

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

Уже не помню детали, но курс реально хороший. Местами ловил себя на ошибке, хотя казалось бы - столько всего уже нарешал и прочитал. А кое‑где даже новое узнал, хотя куда уж, казалось бы🙃

Сейчас я больше занят Django, поэтому на Степике зависаю поменьше. Но нельзя, чтобы знания выветривались - нужно повторять. Хотя подготовка к будущим техсобесам - это уже совсем другая история.

💬 Теперь вопрос к тем, кто это проходил:
Как вы готовились к техническим собеседованиям?
Делитесь опытом в комментариях - интересно, кто как делал!
👍5🔥3
🔥 Поднимем немного мотивацию 🔥

На прошлой неделе мне написал человек со Степика. Спросил: устроился ли я уже работать? И планирую ли вообще?

Я коротко рассказал про свои дела. Он удивился, что я ещё не в IT😅
Потом я спросил его самого. Оказалось, у него похожий путь - несколько раз начинал и бросал, но на Java. Даже онлайн-школу почти закончил.

А в начале этого года он решил перейти на Python. Прошёл первый курс «Поколения Python» на Степике - за месяц где-то. И пошёл искать работу.

Через месяц - нашёл😳

Говорит, ничего не приукрашивал, опыт был нерелевантный, до этого в IT не работал.
Кем устроился, куда устроился, сколько получает - не ответил) NDA видать, ну или вопрос был не очень корректный(хм...)🧐

Устроился он не разработчиком, а в поддержку ( техподдержка / support engineer или как-то так. Подробней не вспомню, т.к. диалог был почему-то удален😅). В компании новичков прикрепляют к наставнику и дообучают.

Интересно, подумал я... В общем, человек прошёл один курс по основам Python и уже в IT. А я тут сижу, Django учу… Может что-то делаю не так?😅
🔥111
📌 Прошел курс: Знакомьтесь, Django

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

Рассказано что такое Django, из чего он состоит. Затронуты все основные компоненты. Местами есть небольшие непонятки/несостыковки, но в этом не сложно разобраться и понять, что к чему.

Понравилось, что даже DRF здесь был. Я его подзабыл, можно сказать, совсем не помню. Отложилось что это что-то страшное и тяжелое для понимания🫣 А тут освежил память. По материалам вроде не сложно и понятно — API, гоняние JSON туда-сюда, роутеры всякие 😄

Есть лабораторные работы для самопроверки. Но это, по большей части, повторение примеров из теории, что были раньше по курсу. Так же есть примеры практики с типами запросов в Postman.

Личный момент

Заметил, что в последнее время стал меньше заниматься, хотя казалось бы должно быть наоборот — подходя к концу 🙂 Не каждый день хочется что-то делать. Мысли всякие лезут, отвлекают. Напоминает момент с долгим прохождением курсов по "базе" Питона, теперь осел на Джанго. По хорошему, осталось пройти Балакирева, чтоб разобраться в ньюансах, потом сделать 1-2 больших проекта, хотя бы было что показать) и откликаться уже на работу начать, чаще чем сейчас🙃

💬 А у вас как с DRF?
Легко далось? Или эти API, роутеры и запросы на заборе вертели? 😄 Делитесь в комментариях 👇
👍4🔥31
А вы знаете, что такое перфекциони́зм?!)

Смотрю на профиль одного человека на Степике — и сразу видно:
— работает 5/2
— в июле-августе отпуск (законный отдых)
— в январе, видимо, болел (или ещё один отпуск)
— и ещё, наверно, любит шахматы 🧐

Такая регулярность — это уже диагноз 😅
Но если серьёзно — здорово, когда человек может поддерживать ритм в учёбе.
А у вас есть такой «перфекционистский» график?🙃


P.S. Профиль не мой, но очень показательный
🔥11😱72👌2👍1
Django ORM: от основ до продвинутых техник

Курс для тех, кто знает Python и основы Django, и хочет глубже разобраться в ORM.

Django 6 + PostgreSQL и сквозной проект e-commerce.
Каждый урок это код, SQL который генерирует ORM и performance implications.

👉 Ссылка на курс

Содержание:

0 - Настройка окружения

1.1 - Поля моделей
1.2 - Связи между моделями
1.3 - Meta и менеджеры
1.4 - Миграции

2.1 - Создание объектов
2.2 - Чтение данных и QuerySet API
2.3 - Фильтрация и lookups
2.4 - Сортировка, срезы, пагинация
2.5 - Обновление и удаление

3.1 - Q objects
3.2 - F expressions
3.3 - Annotate и Aggregate
3.4 - Subquery и Exists
3.5 - Case/When
3.6 - Window functions

4.1 - select_related
4.2 - prefetch_related
4.3 - Проблема N+1
4.4 - Through models и Generic relations

5.1 - Индексы
5.2 - EXPLAIN и анализ запросов
5.3 - only, defer и iterator
5.4 - Bulk операции

6.1 - Транзакции
6.2 - select_for_update и блокировки
6.3 - Constraints и валидация

7.1 - Raw SQL
7.2 - Специфика PostgreSQL
7.3 - Custom lookups и функции

8.1 - Custom managers и QuerySets

9.1 - Наследование моделей
9.2 - Продвинутые паттерны
9.3 - Async в Django ORM


Курс ещё не проходил, но думаю он будет хорош. Т.к. от человека с внушительным стажем в IT, причем большую часть в web-разработке.
🔥11
И снова здравствуйте! Как у вас дела, что нового?)

Не прошло и пол года(на самом деле прошло больше😁), как все-таки решил переустановить винду.

Писал об этом еще в начале лета😅 Олды помнят) Были проблемы со звуком, "дискотека" при засыпании(смотрите в коммент), видео никакие не работали без наушников, ну или нужно было выключать звук, что само по себе убирает суть видео. Никак их не вышло пофиксить.

И насколько же человек может приспосабливаться к разным неудобным ему ситуациям, или это я такой один?) Что почти год вынужденно одевал наушники, перезагружал комп после режима сна если была "дискотека". Теперь всё готово, разобрался за пару вечером с хламом файлов на компе, заранее накачал на флешку полезнего оставшегося. Надеюсь переустановка решит проблемы.

Оказывается 10-ю версию больше не будут поддерживать, в октябре было последнее обновление чтоли. И на оф-ном сайте образ не найти, связано это с политикой против России или еще чем-то - я не стал разбираться. Нашел в другом месте, надеюсь без вирусов предустановленных) 11-ю ставить не хочу, как и какой-нибудь линкус.

Еще был странный момент - у меня переустановка ассоциировалось с новой чистой жизнью. Буду писать проекты, закончу те нужные курсы что хотел, начну более продуктивно искать работу. Вообще не знаю откуда это у меня всё взялось в голове🙃 И в том числе еще и поэтому мое обучение/трудоустройство затягивалось. Такие дела.🫠
🤔62
Вот как-то так теперь выглядит мой рабочий стол🙃 Давно я его таким пустым не видел)

Обычно люди делятся на два типа: первый - всё полностью забито ярлыками и папками, второй - дай бог, 1-2 иконки будет.

Вы к какому относитесь? И почему?) Скидывайте свои "столы" в комментарии, интересно будет глянуть!)

Например, у меня до этого где-то треть была заполнена ярлыками основных приложений, которыми пользуюсь и всякие разные нужные в данный момент папки/документы с материалами.

p.s.
Винда нормально встала, наконец-то решились те непонятные проблемы со звуком! Вроде вирусов с собой не прихватил на флешке😅 Осталось лишь ...
🤔4🌭1
Djangoризада , 1000+ и 1 вопрос

Не знаю видели ли этот курс, но вот ловите:
Django 5 с нуля - для начинающих

Проще вам посмотреть, чем описывать что там есть. В кратце - оч много материала, подробно и понятно разложен текстово с примерами. Так же есть задачки на написание когда, с самопроверкой. Ну и 1000+ вопрос. Нигде не видел еще такого, особенно по Джанго. Так же последняя глава про Git. В общем, всем советую.

Сам пока его не проходил, просмотрел местами, но как закончу - отпишусь. Но думаю мое мнение так и останется положительным. Так же у этого автора есть и второй курс по Джанго, но посмотрев по комментам, он немного недоделан и может быть не разбериха при его прохождении.
5👍1🔥1
Последние несколько дней я бездельничал обновлял резюме, разбирался со всеми старыми проектами. Пытался хоть как-то структурировать у себя на компе и разместить что-то на Github. Не думал что столько времени потрачу на этот процесс😅

Насчет резюме:

Поизучал разные источники, там почитал, там посмотрел, где-то с готовых что-то выяснил(но эт не точно🙈) Резюме теперь выглядит уже получше чем собака сутулая, но всё еще далеко не сын маминой подруги😁 Пока оставлю как есть, без накрутки опыта, посмотрим что выйдет. Нет, конечно там есть почти 3 года опыта, но.... Мне кажется, что из которых полтора года курьером, 9 месяцев переподготовки и 3 месяца стажировки, явно не то что захочет увидеть рекрутер смотря на эти цифры🫤 Но посмотрим как будет

Гит и Github
😈

Ща буит мясо, вам возможно будет весело, а мне было грустно) Крч, Сначала поудалял оттуда совсем старые и никому ненужные(даже мне) репозитории. Некоторые скрыл, например обучение с 40-50 ветками, но к нему мы еще позже вернемся. Далее стал думать как мне размещать некоторые тестовые задания или свои проекты по Django/FastAPI. Совсем старые пока не стал трогать, пусть висят. А вот новые... По-хорошему же, для каждого задания свой репозиторий. Но мне пришла другая мысль, всё в одну папку, хотя бы тестовые. Зачем захламлять профиль.

Вроде всё просто и логично, один проект - одна ветка. Сделал - залил в мейн. Всё. Но нет же, при таком способе я за собой таскать буду все предыдущие проекты в других ветках. (Вы можете сказать мне, что можно от старого комита ответвляться, чтобы этого не было и я скажу вам да, но до меня не сразу дошёл такой способ. Я его не проверял еще=) Но при слиянии не должно быть проблем) Поэтому такой способ отпал.

Потом я с несколькими ИИ посоветовался на эту тему, узнал что есть "сиротские" (--orphan) ветки. Вкратце - это ветка с чистой историей, которая начинается с нуля и технически никак не связана с предыдущими коммитами проекта. Получается как раз то что искал по своей задумке, ведь это способ внутри одного репозитория создать «новый проект в проекте» без общего прошлого. Но не всё так просто😂 Проблемы начинаются, когда переключаешься между ветками, допустим надо что-то в прошлом проекте доделать. Во 1-х надо всегда коммитить изменения(мб и пушить, уже помню точно), иначе эта вот вся шляпа перейдёт за вами в другую ветку...И от нее специальной командой надо избавляться, ну эт пол беды. Во 2-х, таскаются "пустые" папки с других проектов, тоже "сиротских", при чем те, которые ты добавил в .gitignore. К примеру виртуальное окружение venv, кэш __pycache, фактически он там не лежит и не мешает при коммите и пуше в эту ветку, но когда таких будет много, явно не то что ты хочешь видеть в чистой ветке твоего проекта. И самое веселое то, что так делается при КАЖДОМ переключении между ветками. уф... Поэтому этот способ тоже отпал.

Затем я решил вспомнить как делал раньше, тот самый репо с 40+ веток. А там все просто. Каждое ДЗ - одна ветка. И никаких слияний.Пустой main, максимально. И если надо что-то похожее брать, или дорабатывать, то уже от другой ветки почковаться. Вот к этому я окончательно и пришёл. Но сначала надо было сделать по первому варианту, понять что не подходит, удалить всё нахрен, сделать по второму, тот же самый исход, снова в раздумиях прийти к какому-то промежуточному варианту, удалить его тоже, т.к. уже че-то напутал в 3 утра, а начинал в середине дня где-то😂😂😂

А в итоге что?

Гибридный вариант😃 Тестовые FastAPI будут в разных ветках без слияния, main - чисто как содержание-ссылка с кратким описанием каждого. Свои же Django проекты буду сливать в мейн, чтоб видели все что есть, так же с кратким описанием содержимого. Если вообще гитхаб в наше время смотрят. Так же не определился с названием репозитория для небольших проектов, типа крестики-нолики писал когда-то, морской бой доделаю позже в ООП-шном стиле, программка для упрощения себе игры в кастомке во второй доте, ну и в таком стиле. Pet-project - называть не хочу, а другие кучи предложенных названий мне не понравились🙂

Кто дочитал до сюда - тот молодец!) А вообще, ой, буквы
🤯10
ы

Вспомнился еще один момент. Когда заполнял анкету для недавней стажировки(failed) один из вопросов был такой: - "Опиши свой самый большой проект, который вы делали" Что-то в таком стиле или может просили ссылку указать, если есть. И я тогда задумался что же написать...

И ничего толком не смог вспомнить.🙂 Какие-то неплохие, на тот момент мне так казалось, проекты были давно и сейчас уже не помню что и как там делалось, да и незачем наверное вспоминать.

А как бы вы ответили на такой вопрос? Делитесь в комментариях, интересно будет почитать😊


А из текущего?! Django-проект с плейлиста по ютубу плюс свои некоторые доработки к нему, 1.5-2 месячной давности. Что делал после него всё время - вообще без понятия😕 Такие дела.

А, вот что😅 Например, на скриншоте - декстопное gui. Чтобы не играть с tryhard-ерами в кастомной карте (Ability Arena) в Dota 2. И то я туда не помню когда заходил. Алгоритм был давно написан самим, а ИИ-шку доставал предложениями по улучшению интерфейса. По сути просто запихал всё в TKinker: парсер данных с сайта по API, распознавание никнеймов, отправление в чат сообщений, если кого-то нашло. Кого заинтересует - вот ссылка на гитхаб. В релизах есть уже собранный exe-шник.

Получается навайбкодил?) из чуть менее 200 строк кода, вышло 650. Да можно было самому разобраться как работает, как я это делал для версии в консоли, думаю это не так сложно. Но зачем? Когда есть инструмент, которая сделает это за тебя... Сиди и тыкай правки, пей кофе.🤪
👍41