Ответ
В свободное время я стараюсь совмещать практику с изучением нового. Часто пробую свежие версии PHP и фреймворков (например, тестирую новые возможности Laravel 11 или смотрю, как реализованы те или иные паттерны в Symfony). Иногда вношу небольшие правки или документацию в open-source проекты на GitHub, связанные с моим стеком.
Чтобы поддерживать алгоритмическое мышление, периодически решаю задачи на платформах вроде LeetCode. Например, недавно разбирал реализацию кеша на основе LRU (Least Recently Used):
class LRUCache {
private int $capacity;
private SplDoublyLinkedList $list;
private array $map = [];
public function __construct(int $capacity) {
$this->capacity = $capacity;
$this->list = new SplDoublyLinkedList();
}
public function get(int $key): int {
if (!isset($this->map[$key])) {
return -1;
}
$node = $this->map[$key];
$this->list->push($this->list->shift()); // Упрощенный пример перемещения в конец
return $node['value'];
}
// ... put method
}
Также читаю техническую литературу и блоги, посвященные архитектуре приложений, производительности и конкретно экосистеме PHP.