Read about how the C# compiler creates Lambdas. Learn how eventing really works. Learn what your LINQ code is rewritten into.
A good C# developer knows the runtime and their compiler, the same way a good C++ developer does. Yes there is a performance gulf between what a good C# programmer can do and what a good C++ developer can do (although the size of that gulf is an argument for another day!), but there is also a huge performance difference between what a good C# developer does and what an average C# developer does.
As an example, my team has a log file that is consumed by other multiple teams. Log file parsers have been written in either C++ or C#.
The log file has a bunch of discreet entries in it, each one of which is independent of the others and measures in the tens of bytes.
One of the C++ parsers tries to read the entire log file it at once. It is dog slow and just chokes on larger files.
One of the C# parsers relies on the file system to predict future reads and just pulls the file in entry by entry.
The C# parser is faster and doesn't have file size limitations.
(On a related note, I have worked with C++ UI frameworks that are heavier weight than C# UI frameworks!!)
My point is, a good developer is a good developer, independent of the language.
(That said, some of the analysis of cache performance impressed me, instruction count is not everything!)
A good C# developer knows the runtime and their compiler, the same way a good C++ developer does. Yes there is a performance gulf between what a good C# programmer can do and what a good C++ developer can do (although the size of that gulf is an argument for another day!), but there is also a huge performance difference between what a good C# developer does and what an average C# developer does.
As an example, my team has a log file that is consumed by other multiple teams. Log file parsers have been written in either C++ or C#.
The log file has a bunch of discreet entries in it, each one of which is independent of the others and measures in the tens of bytes.
One of the C++ parsers tries to read the entire log file it at once. It is dog slow and just chokes on larger files.
One of the C# parsers relies on the file system to predict future reads and just pulls the file in entry by entry.
The C# parser is faster and doesn't have file size limitations.
(On a related note, I have worked with C++ UI frameworks that are heavier weight than C# UI frameworks!!)
My point is, a good developer is a good developer, independent of the language.
(That said, some of the analysis of cache performance impressed me, instruction count is not everything!)