Backstory:

At the moment I'm someone with very limited knowledge on computers and programming, but I would like to change that. I have discovered that I'm mainly interested in IT security and that I would especially like to learn more about that (not going to deny that Skyfall didn't have a part in this, but that's certainly not the main reason) as opposed to for example game/app development and such. I don't know exactly why, maybe it has something to do with the fact that I myself have been a victim of viruses and phising a couple of times.

Question itself:  

I have recently decided that I would like to learn my first programming language. This decision is seperate from my interest in IT security, but I would like my first language to be the language most useful for someone who wants to learn more about IT security. I feel this would be killing 2 birds with 1 stone. What would this language be and why?


Question: C#: Is it possible to have partial extension classes
Answer: You don't need them. Just write another extension class.

namespace Namespace1
{
    public static class MyEntityBlibblingExtensions
    {
        public void Blibble(this MyEntity self)
        {
            // ...
        }
    }
}


Then, elsewhere...

namespace Namespace2
{
    public static class MyEntityFurtlingExtensions
    {
        public void Furtle(this MyEntity self)
        {
            // ...
        }
    }
}


Anything importing Namespace1 will see the extension method Blibble() while anything importing Namespace2 will see Furtle(), and importing both will see both. They can be in different assemblies or anywhere which imports MyEntity's namespace. So, partial extensions aren't really a valid concept. In fact, the very idea of putting extension methods inside classes is a bit of a hack as it is - a shame they couldn't unbend C#'s rules enough to let extension methods live outside of classes.