I used to write code a long while ago, I always kept a hand in, messing about with this and that but I haven’t really written anything for years. During a week off from work I decided that I should probably do something about it.
As the languages I’ve always used, C; C++; PHP; and LUA, have all shared a similar syntax I decided that I’d stick with what I know and go for C#, and that the avenue of learning would be the Microsoft Virtual Academy. Granted, the C# videos at my level on Microsoft Academy are a little old, but tech changes so often you’re always having to adapt anyway, so it’s wasn’t a blocker, and I was very impressed with the videos I watched. Christopher Harrison, who presented some of the videos, is a very engaging host.
I’ll have to admit to being a bit sceptical about C# at first, with C & C++ you tend to work close to the metal, and moving to a higher level language means having to put trust in a lot of stuff that you can’t (immediately) see, but I was pleasantly surprised. The good thing about C# is that it feels familiar to developers of these more traditional languages, while giving you some fantastic built in features via the .NET framework to do a lot of that annoying boilerplate code for you. Anyone who has spent even the smallest amount of time with the Win32 API will be able to tell you that for every API call you make you’ll usually have to jump through at least one hoop; there are hoops in C#/.NET of course, but it usually provides the trampoline and trajectory to get through them and land back to your cool idea.
When I started my week of learning, my goal was web development, but I decided shortly thereafter that I would begin with desktop applications; it tends to be easier to find your footing with desktop applications, and I’m familiar with the Win32 API, and how Windows likes to (mis)behave. I hope to make some of my code publically available once I’ve gained more confidence with the language. Right now the code I’m writing seems to work just fine, but I’m not sure I’m taking enough advantage of languages features. By making code public I’m hoping that friends and strangers can give me a constructive flick of the ear and tell me what daft mistakes I made, or how I can do things better.