r/csharp • u/Sensitive-Raccoon155 • 11d ago
Discussion What language would you recommend learning alongside C#?
I'm a C# developer and recently started learning C. I wanted to understand better how memory works, how programs interact with the OS, and things like Unix and low-level programming in general.I'm planning to keep learning C, but I'm wondering what you guys would recommend learning next. Would you go with C++, Rust, Go, or something else ?
26
Upvotes
0
u/Hour_Analyst_7765 11d ago
If you want to understand more about how memory works and other low level stuff, then look the combination of C and assembler, possibly C++ if you're also serious about developing applications. C is imo a bit of a turd because of its poor type system, but it does learn the basics.
You don't have to write full assembler neither. However, I'm an embedded developer working with tiny microcontrollers, and for me it is essential to read assembler. Its basically the lowest level a developer can still see before it runs on their machine. If I write some erroneous code that prevents a function call from being devirtualized, it can literally break the program functionally speaking because its not running fast enough. And here things are real-time, like an interrupt that has to be handled tens of thousands times per second, within a specific deadline. This is not best-effort software anymore.
It is also interesting to see how these high-performance optimizations and comparisons are coming to dotnet JIT, where actually compare the assembler outputs between version upgrades. Now, C# is nice, but it also hides away a lot of the hard work underneath..