I am not a coder. This is very much evident in the way I think; I do not have a logical, methodical, mathematical based brain.

This doesn’t mean that I don’t or can’t learn how to, it just means it’ll be a bit harder for me in the long run. This is the same with most things that a person is not familiar with. You either pick it up straight away or it takes you a bit longer. But, if you stick at it, you will eventually get there.

So why am I making a big fuss over learning a language?

The first thing I remember being told when I asked a question about code will stick with me forever. When I asked what a variable was I was given the answer “a variable is a variable”.

It is the same problem that I experience every time I attempt to learn to code – no matter the language. That particular instance was when I was around 21, being thrown a module on Java programming on my university course. Now, I won’t go into much detail about how much that course was not what it was advertised to be, but let’s just say I wasn’t expecting any programming modules 😉

So, university is all about being independent and teaching yourself – and believe me, I am totally down with learning on my own – but just a teeny tiny nugget of info would have helped there. It’s a pretty basic question, I’m sure you’ll agree, so why not just answer me?

The answer, I’m starting to think, is because being able to speak this language makes you forget that others don’t speak it.

You wouldn’t think of explaining a German phrase to someone learning the language in German. You’d explain it in their own language so that they could understand (or you’d explain it in words that they already knew). You wouldn’t just repeat the phrase as if the person just temporarily forgot what it meant.

So why do this for code?

Maybe because the words are still in English, I don’t know for sure.

So maybe this was just an isolated incident right? Maybe that lecturer was a having a bad day, or they were a bit shit and probably shouldn’t be teaching. Yeah, ok, I’ll take that. So why does this continue to happen?

I work (EDIT: used to between 2006 and 2015) in the games industry; there are lots of different types of developers there. Some work on the game engine, others on our in-house tools and then there are the content developers. Talking to them about this they have previously just assumed I don’t know anything, that I’m being dumb, or whatever. So I explain – in my terms – how I think inheritance in Object-Oriented Programming works and they’re almost shocked. “Hey, this chick has the potential to be able to speak our language” and the coding terms are thrown at me and I get lost again.

It’s quite funny, really.

So we come to today, and I find myself explaining to a friend (who is encouraging me to learn C#) why I’m currently hitting my head against a brick wall reading this book that supposedly teaches you C# in 21 days.

I’ve been ignoring the fact that, for several chapters now, I have had no idea what any of the explanations meant. I was looking at the code that I was typing, compiling it and working out what it does. Poking, changing, and seeing the effects those changes have (how I’ve “learned” aspects of ASP.net, VB, JavaScript, PHP and Java before).

So I’m “learning”, technically. But I don’t know why things work that way – I only know their effects. If I continue this line of “learning” then sure, I’ll be able to make stuff. I’ll probably be able to make pretty good stuff if I’m lucky, but I still won’t know why I’m doing it.

“Why” is very important to me. It shows that I understand things fully, not that I’m just doing something because that is how I’ve been told to do it.

So I poke my friend and tell him what is going on, giving him my usual rant that explaining one code term with another isn’t the way I’m going to learn (a la “a variable is a variable”). He responds with: “have you asked anyone any questions?”

“I’ll roll with this” I think to myself. This friend is a developer himself; maybe he can explain this to me. So I asked the difference between a method and a constructor. His response: “a special method that is called when an instance of the object is created”.

Now, I’m sure this will make sense eventually (maybe when the words method, instance and object have been fully explained to me) but at the moment this sentence is pure and absolute gobbledegook, and exactly the same problem that I keep encountering. He might as well have explained it to me in French, to be perfectly honest.

So, I’m thinking perhaps others are like me and need a bit of help with getting started. With learning the basics in some other method than the copy/pasta method I keep encountering. And suddenly, a wild blog appears.

The plan is to write progress reports and explain what I’ve learned and how it was explained to me. In the hope that, maybe, just maybe, this will help someone else.