
What's the best way to master a programming language? - AKdeBerg
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&#x27;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?
======
zombieprocesses
> So I wanna completely focused on mastering the language

Read the C# language specs. I think you can find it in doc format on
microsoft's site.

[https://www.ecma-
international.org/publications/files/ECMA-S...](https://www.ecma-
international.org/publications/files/ECMA-ST/Ecma-334.pdf)

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.

Also, use ildasm to look at the MSIL.

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?

I guess it all depends on what you mean by "mastering" a language.

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#.

~~~
AKdeBerg
Great! very rigorous answer. Thanks mate :)

------
slipwalker
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.

~~~
AKdeBerg
this is a great piece of advice... thanks mate :)

------
tboyd47
Find a good, up-to-date reference manual for the language and read through it
a couple of times. Then do a lot of data processing exercises.

~~~
AKdeBerg
what do you mean by data processing exercises?

~~~
tboyd47
Things like transforming data from one format to another, algorithms to
process large amounts of data, etc. I singled out this type of code because it
tends to involve writing lots of code that uses the standard library of your
language, but the point is to become very familiar with your standard library.

~~~
AKdeBerg
ohh I got the picture now! Thanks mate :)

