How to improve your knowledge of C#

Study the code of software you like that you can found for example on CodeProject, GitHub, GitLab, SourceForge, etc.

Try to make similar software and adapt them, without plagiarizing outside of personal learning, like a notepad, a calculator, a file explorer, a bank manager... or a game.

Write code, don't stop to write.

And above all, read and re-read books.

Personally, I like Wrox (Wiley) books, they are very good: do not hesitate to read even old books if newer version not available.

Online course are great too, but they don't replace books and source code or professional training.

To be able to understand advanced and in depth subjects related to programming and the nature of computers, we must go to Assembly, not only IL, but native Assembly and machine code.


A special mention for these

Some other

  • Professional C# 7 and .Net Core 2.0 (Christian Nagel)
  • Professional Visual Studio 2015 as vol I and 2017 as vol II (Bruce Johnson)
  • Professional .NET 2.0 Generics (Tod Golding)
  • Professional ADO.NET 3.5 with LINQ and Entity Framework (Roger Jennings)
  • Professional Refactoring in C# & ASP.NET (Danijel Arsenovski)
  • C# Design and Development Expert One on One (John Paul Mueller)
  • C# 3.0 Cookbook (Jay Hilyard)
  • C# 4.0 How-To (Ben Watson)
  • Effective C# (Bill Wagner)
  • More Effective C# (Bill Wagner)
  • Code Complete (Steve McConnell)
  • The Software Craftsman (Sandro Mancuso)
  • Beginning Software Engineering (Rod Stephens)

Robert C. Martin

  • Agile principles, patterns and practices in C#
  • The Clean Coder
  • Clean Code
  • Clean Architecture
  • Clean Agile

Fundamentals

LINQ

Generics

Naming

Commenting

Advanced

Others

UML

.NET Framework Source

Computers and Assembly

Intel's CPU Developers Manuals

Bibliography