For example, I have interest on C#. I noticed when I use framework like ASP.NET, it automates a lot of task for me. I don't want that. So I wanna completely focused on mastering the language and moved on to a framework. Is it the right thing to do? And if yes, how can master a language?
> So I wanna completely focused on mastering the language<p>Read the C# language specs. I think you can find it in doc format on microsoft's site.<p><a href="https://www.ecma-international.org/publications/files/ECMA-ST/Ecma-334.pdf" rel="nofollow">https://www.ecma-international.org/publications/files/ECMA-S...</a><p>Write C# code in vim or visual studio code ( not visual studio ). Use the csc.exe on the commmand line. I use powershell but this requires you importing the environment variables from the vs dev bat file. This way you have to write everything yourself and build/link everything yourself.<p>Also, use ildasm to look at the MSIL.<p>And move on from there. Other steps to mastering a language requires having built one yourself or at least a compiler for a language. Then you have to know other languages to compare it with. Function, procedural, imperative, declarative, object oriented, etc. Also, does mastering a managed language like C# mean that you have to understand MS IL? The CLR? Etc?<p>I guess it all depends on what you mean by "mastering" a language.<p>My advice is to not go overboard with "mastering a language". It's far more important that you learn a technology/libraries/tools/etc if you want a job. If you are trying to get a job as a developer, it's better you learn about ASP.NET, SQL Server, IIS, etc rather than mastering C#.
Practice, practice, practice.
I always suggest that you should start by writing your unit tests on the language you wish to learn, but this is valid only with languages that play together.
For instance, to learn groovy i wrote my unit tests for my JAVA code in groovy, now i'm repeating the process with Kotlin... Other than that, do as many KATAs as you can find online. "codewars.com" is nice, too.
But keep in mind that "language(s)" are just tools, you reaaly should focus on a better grasp of CS concepts and fundamentals, the tools will be obsolete before you notice.