Комментарии (1)
Ответ сгенерирован нейросетью и может содержать ошибки
Чтение и саморазвитие: как я учусь
Да, я активно читаю, но выборочно и целенаправленно. Чтение — не просто хобби, это инвестиция в профессиональный рост.
Что я читаю
Технические книги (классика)
-
Clean Code (Robert C. Martin)
- Перечитываю несколько раз, каждый раз находятся новые insights
- Помогает писать код, который другие люди поймут
-
Design Patterns (Gang of Four)
- Не запоминаю все паттерны, а понимаю принципы
- Применяю когда реально нужны, не на всякий случай
-
Refactoring (Martin Fowler)
- Очень практична, показывает как улучшить существующий код
- Применял на реальных проектах с большим legacy кодом
-
The Pragmatic Programmer
- Философия программирования, а не конкретные техники
- Помогает мыслить как профессионал, а не как кодер
Python-специфичные материалы
# Из Fluent Python (Luciano Ramalho) узнал о метаклассах и дескрипторах
# Практическое применение:
class ValidatedString:
def __set_name__(self, owner, name):
self.name = name
def __set__(self, obj, value):
if not isinstance(value, str):
raise TypeError(f"{self.name} должен быть str")
obj.__dict__[self.name] = value
def __get__(self, obj, type=None):
if obj is None:
return self
return obj.__dict__.get(self.name)
class User:
name = ValidatedString()
user = User()
user.name = "Alice" # OK
user.name = 123 # TypeError: name должен быть str
- Effective Python (Brett Slatkin) — 90 лучших практик конкретно для Python
- High Performance Python (Micha Gorelick) — когда нужна оптимизация
Архитектура и системный дизайн
- Building Microservices (Sam Newman) — отличная книга, хотя не все выводы применимы
- System Design Interview (Alex Xu) — помогает думать о масштабируемости
- Статьи из блогов Netflix, Uber, Airbnb про их архитектурные решения
Где я читаю
1. Технические блоги
- Python.org official documentation (лучший источник!)
- Real Python (real-world примеры)
- Medium / Habr (статьи от практиков)
- GitHub (читаю исходный код известных библиотек)
2. Исходный код (важнейший источник!)
Я регулярно смотрю исходный код популярных библиотек:
# Пример: как реализован Pydantic
# Из кода Pydantic я научился:
# - Как использовать __getattr__ и метаклассы
# - Как писать валидаторы
# - Как оптимизировать производительность
from pydantic import BaseModel, validator
class User(BaseModel):
name: str
age: int
@validator("age")
def age_must_be_positive(cls, v):
if v < 0:
raise ValueError("age must be positive")
return v
3. Papers и Research
- arXiv (для ML и Data Science тем)
- Google Research Blog
- Иногда читаю academic papers, если они решают реальную проблему
4. Документация
Это недооценено, но документация — это книга:
- FastAPI docs (отличного качества)
- SQLAlchemy docs (полная и детальная)
- Docker documentation (лучше чем многие курсы)
Как я читаю
Активное, не пассивное чтение:
# Не просто читаю код, а:
# 1. Копирую и запускаю
from typing import Protocol
class Drawable(Protocol):
def draw(self) -> str: ...
class Circle:
def draw(self) -> str:
return "●"
def render(obj: Drawable):
print(obj.draw())
render(Circle()) # OK
# 2. Модифицирую и экспериментирую
# Что если я изменю параметры?
# 3. Пишу notes и примеры
# Сохраняю в личной wiki для будущих ссылок
Выборочность:
Не всё нужно читать полностью:
- Книгу читаю перепрыгивая, если не интересна глава
- Статьи читаю скимингом (быстрое сканирование)
- Код читаю только релевантные части
- Не зафиксирован на "прочитать всё"
Часто используемые источники
| Источник | Как использую | Частота |
|---|---|---|
| Python docs | Уточнить деталь | Ежедневно |
| GitHub (код библиотек) | Посмотреть реализацию | 2-3 раза в неделю |
| Real Python | Вглубь по теме | 1-2 статьи в неделю |
| Книги (техн.) | Глубокое изучение | 1-2 месяца на книгу |
| Блоги (Habr, Medium) | Узнать тренд | Несколько в неделю |
| Papers (arXiv) | Специальные случаи | Раз в месяц |
Результат чтения в коде
# Из Clean Code — понятные имена переменных
class OrderProcessor:
def process_customer_order(self, customer_id: str, items: list):
# Ясное имя функции, ясные параметры
pass
# Из Design Patterns — использую Singleton правильно
class DatabaseConnection:
_instance = None
def __new__(cls):
if cls._instance is None:
cls._instance = super().__new__(cls)
return cls._instance
# Из Refactoring — правильная декомпозиция
def calculate_total_price(order):
# Разбиваем на smaller functions
subtotal = calculate_subtotal(order.items)
tax = calculate_tax(subtotal)
shipping = calculate_shipping(order.region)
return subtotal + tax + shipping
Чего я НЕ читаю
- Учебники по основам — уже знаю, тратить время нет смысла
- Статьи про framework X версия Y — быстро устаревает
- Вся информация подряд — выбираю по need
- Много одновременно — фокусируюсь на одной теме 2-3 недели
Вывод
Чтение для меня — это не пассивное потребление, а активное формирование опыта. Я читаю то, что нужно для текущих задач, и то, что расширяет мой кругозор. Главное — применять полученные знания в коде, иначе это забывается через неделю.