CodeShadow – Telegram
CodeShadow
76 subscribers
181 photos
11 videos
7 files
127 links
👋 Я Артемий — преподаватель Python и фрилансер.

💻 Показываю, как код и нейросети помогают зарабатывать и упрощать работу.

🚀 Делюсь проектами, опытом и лайфхаками из реальной практики.

✍🏻 Вопросы и идеи: @MifmanRu
Download Telegram
📎 Скрипт: отправка письма через Gmail

code
import smtplib

server = smtplib.SMTP("smtp.gmail.com", 587)
server.starttls()
server.login("you@gmail.com", "password")
server.sendmail("you@gmail.com", "friend@mail.com", "Привет от Python!")
server.quit()


Нужна настройка доступа в Gmail.
💼 Мотивация: твой первый проект важнее 100 туториалов

Не смотри курсы бесконечно. Возьми идею и сделай.
Да, будет криво. Но это твой опыт.
И он ценнее, чем месяц теории.
👍1
🌍 Python в реальной жизни: медицина

Python активно применяют для анализа медицинских снимков.
Библиотеки вроде TensorFlow и PyTorch позволяют обучать нейросети, которые помогают врачам находить опухоли на ранней стадии.

Это пример того, как программирование реально спасает жизни.
🏢 Python в реальной жизни: бизнес-аналитика

Компании используют Python для анализа продаж.
Например, с помощью pandas можно быстро понять, какие товары приносят больше прибыли, а какие нужно убрать из ассортимента.

Так бизнес принимает решения не “на глазок”, а на основе данных.
🚀 Python в реальной жизни: космос

NASA использует Python для обработки телеметрии и анализа данных с телескопов.
Этот язык позволяет быстро тестировать гипотезы и строить сложные графики.

Python помогает смотреть на звёзды… в прямом смысле.
📂 Мини-скрипт: объединение PDF файлов

code
from PyPDF2 import PdfMerger

merger = PdfMerger()
for pdf in ["1.pdf", "2.pdf", "3.pdf"]:
merger.append(pdf)

merger.write("merged.pdf")
merger.close()


Полезно для отчётов и документов.
📊 Мини-скрипт: статистика слов в тексте

code
from collections import Counter

text = open("book.txt").read().split()
counter = Counter(text)

print(counter.most_common(10))


Быстро показывает самые частые слова.
📧 Мини-скрипт: массовая рассылка писем

code
import smtplib

emails = ["a@mail.com", "b@mail.com"]
server = smtplib.SMTP("smtp.gmail.com", 587)
server.starttls()
server.login("you@gmail.com", "password")

for e in emails:
server.sendmail("you@gmail.com", e, "Привет! Это рассылка.")

server.quit()
🔥 Мотивация: твой код может изменить мир

Каждый скрипт — это вклад.
Сегодня ты написал парсер для таблицы, а завтра твои навыки помогут автоматизировать завод или построить стартап.

Не недооценивай свои маленькие проекты.
💡 Мотивация: нет “поздно”, чтобы начать

20, 30, 40 лет — неважно.
Python можно освоить в любом возрасте, а рынок айти всё ещё растёт.
Каждый день запускаются стартапы, которым нужны разработчики.
🛠️ Совет: сделай свой GitHub активным

Размещай проекты, даже маленькие.
Это твоё портфолио, и заказчики или работодатели смотрят на активность.
Даже “полезные скрипты” ценятся, если они решают реальные задачи.
🎯 Лайфхак: используй виртуальные окружения

code
python -m venv venv
source venv/bin/activate # Linux/Mac
venv\Scripts\activate # Windows


Так у тебя будут изолированные зависимости для каждого проекта.
Это сэкономит часы на отладке.
🦷 Реальный заказ с фриланса: создать универсальных ботов на конструкторе. Разберем на примере бота-визитки для стоматологии.

Задача: сделать ядро для обработки заявок — чтобы данные из бота приходили прямо в Telegram-чат менеджера.

Вот готовый микро-скрипт на Python:

import requests

TELEGRAM_BOT_TOKEN = "ВАШ_ТОКЕН"
ADMIN_CHAT_ID = "ВАШ_CHAT_ID"

def send_alert(name: str, phone: str, service: str):
message = f"🦷 Новая заявка!\nИмя: {name}\nТел: {phone}\nУслуга: {service}"
url = f"https://api.telegram.org/bot{TELEGRAM_BOT_TOKEN}/sendMessage"
requests.post(url, data={"chat_id": ADMIN_CHAT_ID, "text": message})

# Пример вызова
send_alert("Анна", "+79001234567", "Отбеливание")


Что ценного:
Показывает работу с API Telegram
Решает реальную проблему — уведомления о заявках
Код универсальный — подойдет для сантехника, калькулятора окон и т.д.

Фриланс-лайфхак: Часто заказчику нужно не кнопочки двигать, а чтобы заявки не терялись.

#фриланс #python
📢 Python для фриланса: вступление

Это серия постов, где мы шаг за шагом разберём, как программисту на Python выйти на фриланс.
Вместо сухой теории будут практические советы и код, который реально можно применить в заказах.

Каждый пост будет продолжением предыдущего.
Готов? Поехали! 🚀

Следующий пост — о том, зачем нужны мини-проекты.
👏1👨‍💻1
Please open Telegram to view this post
VIEW IN TELEGRAM
📂 Мини-проекты: основа твоего портфолио

Фрилансеру важно показать, что он умеет решать задачи.
Для этого создавай простые мини-проекты:
- парсер сайта новостей
- Telegram-бот, который отвечает на команды
- скрипт для Excel

Пример простого проекта: подсчёт слов в тексте.

code
from collections import Counter

text = open("article.txt").read().split()
print(Counter(text).most_common(5))


Клиенты любят видеть такие работы.

В следующем посте — сделаем своего первого Telegram-бота.
🤖 Telegram-бот: твой первый шаг во фриланс

Боты востребованы почти у каждого бизнеса.
Рассмотрим простейший бот на aiogram:

code
from aiogram import Bot, Dispatcher, executor, types

bot = Bot(token="TOKEN")
dp = Dispatcher(bot)

@dp.message_handler()
async def echo(msg: types.Message):
await msg.answer(msg.text)

executor.start_polling(dp)


Теперь бот повторяет сообщения. Просто, но уже работает!

Скоро разберём парсинг сайтов — частая задача на фрилансе.
👍1👨‍💻1
🥰🥰🥰 Кейс: Telegram-бот «Личный органайзер»🥰🥰🥰

Мысли, ссылки, задачи, идеи 💡 — всё это тонет в заметках телефона. Решение? Сделать собственного бота-органайзера.

⚙️ Что он умеет:

📝 Сохранять заметки прямо в чат
📋 Показывать список всех заметок
🔍 Искать по тегам
Ставить напоминания (опционально)
📤 Экспортировать записи в .txt или .csv
📜 Мини-шаблон на aiogram 3 + SQLite:
import sqlite3
from aiogram import Bot, Dispatcher, types
from datetime import datetime

API_TOKEN = "your_token"
bot, dp = Bot(API_TOKEN), Dispatcher()
conn = sqlite3.connect("notes.db")
cur = conn.cursor()
cur.execute("""CREATE TABLE IF NOT EXISTS notes (
id INTEGER PRIMARY KEY, user_id INT, text TEXT, tag TEXT, created_at TEXT)""")

@dp.message(commands=["note"])
async def add(msg: types.Message):
text, tag = msg.text.replace("/note", "").strip(), None
if "#" in text: text, tag = text.split("#", 1)
cur.execute("INSERT INTO notes VALUES(NULL,?,?,?,?)",
(msg.from_user.id, text.strip(), tag, datetime.now().isoformat()))
conn.commit()
await msg.answer(" Заметка сохранена!")


☕️ Такой бот — отличный мини-проект: полезен самому, впишется в портфолио и легко расширяется напоминаниями или экспортом.

#CodeShadow #TelegramBot #Python #aiogram #Кейс #Разработка
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥2👨‍💻1
Channel name was changed to «CodeShadow 💻»
Дополняем бота-органайзера напоминаниями

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

🗓 Мини-шаблон:
import asyncio
from datetime import datetime, timedelta

reminders = [] # [(user_id, text, time)]

@dp.message(commands=["remind"])
async def set_reminder(msg: types.Message):
# Пример: /remind Через 1 минуту Выпить кофе
parts = msg.text.split(" ", 3)
minutes, text = int(parts[1]), parts[2:]
remind_time = datetime.now() + timedelta(minutes=minutes)
reminders.append((msg.from_user.id, " ".join(text), remind_time))
await msg.answer(f" Напоминание через {minutes} мин!")

async def reminder_loop():
while True:
now = datetime.now()
for r in reminders[:]:
user_id, text, time = r
if now >= time:
await bot.send_message(user_id, f"🔔 Напоминание: {text}")
reminders.remove(r)
await asyncio.sleep(10)

asyncio.create_task(reminder_loop())


🚀 Теперь бот не просто хранит заметки, а помогает не забывать важное.
Дальше можно добавить:

✉️ экспорт напоминаний в файл

🗓 расписание на день/неделю

📌 автоповторы

#CodeShadow #TelegramBot #Python #aiogram #Кейс #Напоминания
Please open Telegram to view this post
VIEW IN TELEGRAM
111
🔎 Парсинг сайтов: быстрый старт

Парсинг — топ-задача на биржах. Например, собрать заголовки с сайта новостей:

code
import requests
from bs4 import BeautifulSoup

url = "https://site.com"
html = requests.get(url).text
soup = BeautifulSoup(html, "html.parser")

for h in soup.find_all("h2"):
print(h.text)


Клиенты часто заказывают именно такие штуки.

В последующих постах — автоматизация: как облегчить жизнь заказчику. Не пропустите!)
11