What makes one a good, solid C# coder in your opinion? I know the basics and some advanced technics like simpler design patterns and does & donts but there is still so much to learn. What gave your coding skills a push? Which were the technics you would have wanted to know before?

I am not looking for “easy” help. I am perfectly ok with sitting down some months and learn stuff. All I need are some key words to google for – setting priorities.
Thanks in advance.

Learn more languages. The best <any language here> coder is one who’s been exposed to many languages, systems, and platforms. That takes time and there’s no way to cheat it.

You don’t need to like the other languages, hell its fine to openly dislike them. The important thing is learning what designs and ideas transcend any particular tool. Learn what works everywhere, what you really don’t like, and what’s special about the things you do like.

Languages, systems, platforms, problems, frameworks, teams etc
I see there is a trend towards getting new experience outside of C# to extend my overall experience. Thanks for your advice!

I came here just to say that. C# is a multi paradigm language, it borrows concepts from many different languages, so having an idea of best practices from those languages is very important.

What made me a better c# developer was becoming a .net developer. So learning .net framework and .net core. Learning all the project types such as xamarin for mobile, asp.net core for web, windows forms, windows services etc. Learn how to use different db providers like mssql, mongodb, etc. Use EF core for connecting to DBs. Use new packages like serilog, asp.net identity etc.

Then when you’re confident I would progress to OSS and reading other large projects and contributing good first issues. It’s the most rewarding way to learn.
alright. Thank you very much!

Test different things so you have a broad understanding of what can be done. A good developer knows what tools to use for what problem. Not blindly using the only thing he/she knows for every problem.
Havent tried NoSql? Try MongoDb or Cosmos.

Have only used EF? Try building an app with Dapper.
Only used MSSQL? Try Postgres or MySql.
Get better at TDD, try xUnit or nUnit. Learn to write good tests, learn integration tests.

When you start with testning you will also write cleaner code, because you will get tired of mocking out many dependenies.
TDD were recommended a couple of times now. I think I’ll start there. Thank you, also for your tool-suggestions.

I watch some videos from Tim Correy and others in Youtube. Also reading posts and comment exchanges in this sub also help in some ways of learning how others do certain things.
Finally, as with some other skills, never be contented with the level of your knowledge. Study -> Practice -> Teach.
Tim Correy

I just watched his yt into video and like his learning philosophy. Thank you for this advice!
Build stuff

Making solid and well optimized code for me
Dive more into design patterns. IMO it’s not important to memorize all the “Gang of Four” patterns so much as you should understand the meta-patterns going on, if that makes any sense. Head First Design Patterns was great at classifying DPs like this. Like you don’t necessarily need to remember all the details of Flyweight, but you should be able to construct something resembling it when you recognize that problem arising in your code.

Really take the time to learn about the tools provided by your ide. These things help significantly as the size of your projects grow.

source