Лично я все записываю, зачем насиловать мозг и использовать его для хранения информации? Мозг это CPU, а не хард драйв, и качать нужно кэш и набор корневых инструкций, а не RAM. ;)
Все дело в повторении. За N лет практики многие вещи запоминаются настолько, что всплывают в памяти сами собой. Мозг как и мышцы нужно тренировать, чтобы связи укреплялись и самая адекватная информация всплывала при мышлении автоматически. Любят говорить, что чем старше человек, тем медленнее соображает, но это ошибка интерпретации: опытный специалист просто на любой чих автоматически производит оценку реализации и анализ рисков. У молодых специалистов нет богатого опыта и эта оценка просто не производится. Зато есть комплекс самозванца. А старческая деградация всего лишь результат отсутствия систематических физических нагрузок.
Неуверенность лечится лишь временем и соблюдением самого главного правила - никогда не останавливаться.
Посмотрите в Интернете "programming kata". Не суть в самом занятии, а суть в идее повторения. В целом, подобные ката хорошо для обучения в контексте наставничества, и напоминание самому себе основ. Абстрактный навык программирования это прокачивает, но разработку софта можно качать только через опенсорс и петпроекты.
Не совсем понятен ваш пример с функцией, но в этом и заключается работа прикладного программиста - постоянно освежать знания как использовать те или иные библиотеки, потому что набор адекватных библиотек с течением времени меняется. Единственное что более менее стабильно - это абстракции и сущности, предметная модель, которую реализует код конкретной либы. По названиям функций можно понять примерно как реализована эта модель в конкретной либе, но чтобы пончть модель, нужно ознакомится с достаточным количеством реализации, чтобы суметь обобщить.
Вы правы, через расширяющий метод решить нельзя.
Напутал по памяти, в моем случае я расширял DI локально особым поведением, расширение ссылалось на partial class.
По теме - реализовать можно по-разному, посмотрите в сторону демосцены. Но в любом случае, загрузчик не рендерит, загрузчик загружает, рендерит видеокарта и драйвер. А ошибки в пространстве ядра вообще не должны возникать.
Какие объекты имеете ввиду?
Ознакомьтесь с opengl pipeline.
Вообще, если отрисовывать в одном кадре - без разницы. Отсечение будет работать на этапе пост-обаработки вершин, а отбрасывание - на этапе обработки примитивов. Если что-то перекрывает, то это не рендеридтся.
Есть разные алгоритмы, можете сами поиграться и реализовать их для общего развития, но как будет по факту действовать видеокарта - это вопрос к производителю.
Советую почитать Кернигана и Ритчи, прежде чем нырять в cppreference и Страуструпа, и в устройство ОС.
Грубо говоря, C/C++ не использует абстрактную модель памяти, а использует модель памяти, которую представляет ОС, т.к. исходный код транслируется в ассемблер. Всё статическое загрузится в память, если загрузился исполняемый файл, все что выделяется на стэке в C/C++, первично будет выделяться в области памяти стэка процесса. В зависимости от итогового ассемберного кода в некоторых случаях, выделения памяти может не произойти, и для хранения может быть задействован регистр самого процессора. Но в случае выделения памяти на стэке (в уже выделенной ОС для процесса памяти из RAM) может потребоваться хранить это в кэшах данных CPU, и, если того потребует ОС, может быть задействован файл подкачки (swap). Тогда, фактически, значение переменной окажется на drive. Все что выделяется через ключевое слово new, если оператор не переопределен, будет однозначно выделено "на куче".
Это когда в языке нет ключевых слов и поддержки классов, и вы все концепции ООП реализуете прямо в своем процедурном или структурном коде (или функциональном, зависит от конкретного языка).
Например, таблицу виртуальных функций для иерархии классов явно сохраняете в поле-контейнере класса, а ключевое слово new реализуете как функцию, которая использует пул памяти, который вы сами как-то реализуете, например, через интерфейс системных вызовов или виртуальной машины (контекста исполнения программы).
А вообще, в чем проблема проверить?