Hacker News new | ask | show | jobs
What's the best way to master a programming language?
2 points by AKdeBerg 3002 days ago
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?
3 comments

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

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

Great! very rigorous answer. Thanks mate :)
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.
this is a great piece of advice... thanks mate :)
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.
what do you mean by data processing exercises?
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.
ohh I got the picture now! Thanks mate :)