Где берёшь знания?

Ответ

Читаю официальную документацию Microsoft (docs.microsoft.com), книги (например, CLR via C#), блоги (devblogs.microsoft.com, Medium, Habr). Смотрю конференции (DotNext, DevWeek). Практикую на LeetCode, CodeWars. Изучаю open-source проекты на GitHub.

Пример:

// Узнал про Span<T> из документации  
int[] arr = { 1, 2, 3 };  
Span<int> span = arr.AsSpan();  

Важно: проверяю информацию в нескольких источниках, тестирую на практике.

Ответ 18+ 🔞

Слушай, я тебе как человек, который тоже в этой теме плавает, расскажу. Читаю я, сука, эту официальную документацию от Microsoft. Ну, docs.microsoft.com, там, блядь, всё разжёвано, но иногда так занудно, что глаза на лоб лезут. Ещё книги — вот, например, «CLR via C#» — это просто библия, её надо не читать, а вдумчиво жрать, по главе в неделю, иначе мозг взорвётся. Блоги всякие, конечно: devblogs.microsoft.com, Medium, этот наш Хабрахабр, где половина статей — вода, а вторая половина — пересказ документации с опечатками.

А ещё, блядь, конференции — DotNext, DevWeek. Сидишь, смотришь, как умные дядьки рассказывают про перфоманс, и думаешь: «Ёпта, а я-то свой код писал, как последний распиздяй». Осознание ебать, приходит такое.

Ну и без практики нихуя не выйдет. Я туда, на LeetCode, CodeWars, задачи решаю. Иногда такие задачки попадаются, что хочется монитор об стенку ебнуть, но потом, когда решение находишь, — кайф, блядь, просто космический.

И open-source на GitHub изучаю. Беру какой-нибудь популярный репозиторий, начинаю код читать. Первые полчаса — нихуя не понятно, потом врубаешься в архитектуру и диву даёшься: «Вот же, сука, красиво сделано!». Прям вдохновляет, блядь.

Главное, что я усвоил — информацию надо перепроверять. Нельзя, блядь, прочитал одну статью и понёс это в продакшн. Надо несколько источников, а потом ещё и на практике потестировать, а то будет тебе, как в том анекдоте — «оно вроде работало на моей машине».

Вот, например, про Span<T> я первый раз в документации вычитал. Сижу, такой, читаю, и думаю: «Ни хуя себе, так можно было?». И сразу же полез проверять, как это работает.

// Узнал про Span<T> из документации
int[] arr = { 1, 2, 3 };
Span<int> span = arr.AsSpan();

Создал массив, сделал спан, потом начал с ним экспериментировать: слайсы там разные делать, в циклы запихивать, смотреть, как память себя ведёт. Пока сам не потрогаешь — не поймёшь, где собака зарыта. А зарыта она, блядь, часто в неочевидных деталях.